




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、LCD,LCM 介紹介紹LCM1602LCM1602 編程步驟編程步驟8.1 8.28.3第八章 LCD 編程自定義字符自定義字符 及其及其 顯示方法顯示方法8.4()8 8.1 .1 LCDLCD,LCM LCM 介紹介紹1、什么是 LCD、LCM2、LCD模塊 分類STM32F10 xLCD:Liquid Crystal Display,液晶顯示器背光:液晶是一種介于固態(tài)與液態(tài)之間的物質(zhì),本身不能發(fā)光,需要借助額外的光源才行。在液晶顯示屏背面,需要有背光。LCM:Liquid Crystal Display Module,LCD模塊1、什么是 LCD、LCM:v嚴(yán)格地說,1602,1286
2、4都應(yīng)該稱為 LCD模塊STM32F10 x2、LCD模塊 分類:段碼型點(diǎn)陣型段碼型顯示的產(chǎn)品:例如計(jì)算器、電子表字符點(diǎn)陣型圖形點(diǎn)陣型字符點(diǎn)陣型的產(chǎn)品:例如LCM1602圖形點(diǎn)陣型的產(chǎn)品:例如LCM12864STM32F10 x段碼液晶叫法起源于早期液晶顯示屏開始應(yīng)用之時(shí),主要是替代LED數(shù)碼管(由7個(gè)筆段組成,僅能顯示數(shù)字09),產(chǎn)品如計(jì)算器、電子表等,顯示內(nèi)容均為數(shù)字,也較簡單。段碼型:STM32F10 x 段碼式液晶,最普遍的,類似數(shù)碼管的“8”字段,一個(gè)“8”字由7個(gè)筆段組成,也就是7個(gè)液晶像素。只能這7個(gè)筆段顯示,或不顯示。 STM32F10 x “米”字型 段式液晶的“8”字由15
3、個(gè)像素組成。 STM32F10 x 當(dāng)然段式液晶的筆段可以做成任意形狀,只要驅(qū)動(dòng)芯片的驅(qū)動(dòng)能力許可。比如公司的logo,其它圖案,文字等等。段式液晶材料制作,價(jià)格低廉。段式液晶的驅(qū)動(dòng)成本也很低廉STM32F10 x字符點(diǎn)陣型 和 圖形點(diǎn)陣型產(chǎn)品 的區(qū)別:(i)字符點(diǎn)陣型 :STM32F10 x(ii)圖形點(diǎn)陣型 :STM32F10 xSTM32F10 x字符點(diǎn)陣型 和 圖形點(diǎn)陣型產(chǎn)品 的區(qū)別:(i)字符點(diǎn)陣型:整個(gè)屏雖然是由點(diǎn)陣構(gòu)成。但整個(gè)屏被分成若干個(gè)小區(qū)域(例如1602:被分成16*2=32個(gè)區(qū)域),每個(gè)小區(qū)域顯示1個(gè)字符,該小區(qū)域是由很少的點(diǎn)陣來顯示,(例如1602:該小區(qū)域是由5*7點(diǎn)
4、陣構(gòu)成)。所以,通常字符(點(diǎn)陣)型只用來顯示數(shù)字、字母,不用來顯示漢字、圖形。但是,若要用字符點(diǎn)陣型,顯示漢字、圖形也可:處理方法-用2個(gè)或更多個(gè)小區(qū)域來顯示漢字、圖形。(ii)圖形點(diǎn)陣型:它是由許多等間隔的點(diǎn),圍成的一個(gè)大的點(diǎn)陣列構(gòu)成。例如LCM12864是由128*64個(gè)點(diǎn)構(gòu)成。8 8. .2 2 LCM1602LCM1602 1、LCM1602簡介2、LCM1602各引腳的定義3、LCM1602 與 單片機(jī) 的連接圖4、LCM1602控制器 控制時(shí)序5、LCM1602控制器 指令和狀態(tài)字6、LCM1602的4種存儲(chǔ)器類型STM32F10 xn LCM1602為字符型(點(diǎn)陣式)LCD模塊。
5、n字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等的點(diǎn)陣式液晶顯示模塊。n但是,通過自定義,也可顯示簡單的漢字和圖形。nLCM1602的每一個(gè)顯示的字符(或字母、數(shù)字等)是由5*7或5*11點(diǎn)陣組成。n每個(gè)點(diǎn)陣字符(5*7或5*11點(diǎn)陣)之間有一個(gè)間隔,起到字符間距和行間距的作用。1、LCM1602簡介STM32F10 xSTM32F10 x正面反面STM32F10 x2、LCM1602各引腳的定義STM32F10 xSTM32F10 x3、LCM1602 與 單片機(jī) 的連接圖(1)LCM1602 與 MCS51單片機(jī) 的連接圖(2)LCM1602 與 STM32單片機(jī) 的連接圖STM3
6、2F10 xnLCM與STC89C52的連接圖,如右圖所示:(1)LCM1602 與 MCS51單片機(jī) 的連接圖lLCM1602有八個(gè)數(shù)據(jù)引腳(D0D7)與STC89C52相連,用于接收指令和數(shù)據(jù);lSTC89C52通過LCM1602的RS,RW和E這三個(gè)端口控制LCM模塊。P22P22STM32F10 x(2)LCM1602 與 STM32單片機(jī) 的連接圖原理圖-LCM1602 與 STM32單片機(jī) 的連接圖.pptSTM32F10 xn寫指令 輸入:RS=L,RW=L,E=下降沿脈沖,DB0DB7=指令碼輸出:無n讀狀態(tài) 輸入:RS=L,RW=H,E=H輸出:DB0DB7=狀態(tài)n寫數(shù)據(jù) 輸
7、入:RS=H,RW=L,E=下降沿脈沖,DB0DB7=數(shù)據(jù)輸出:無n讀數(shù)據(jù) 輸入:RS=H,RW=H,E=H輸出:DB0DB7=數(shù)據(jù)(從LCD讀數(shù)據(jù),一般無必要)狀態(tài)狀態(tài)指令指令4 4、LCM1602LCM1602控制器控制時(shí)序:控制器控制時(shí)序:數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)LCM1602的控制器,(控制驅(qū)動(dòng)電路為HD44780/KS0066),其控制時(shí)序如下:STM32F10 x5 5、LCLCM M16021602控制器指令和狀態(tài)字控制器指令和狀態(tài)字工作方式工作方式設(shè)置指令:設(shè)置指令: DL:設(shè)置數(shù)據(jù)總線寬度,一般設(shè)置為 1;DL=1:數(shù)據(jù)總線寬度為 8 位,即 DB7DB0 有效; DL=0:數(shù)據(jù)總線
8、寬度為 4 位,即 DB7DB4 有效。N:設(shè)置顯示字符的行數(shù),1602 LCD一般都設(shè)置為 1;N=0:為一行字符; N=1:為兩行字符;F:設(shè)置顯示字符的點(diǎn)陣,一般設(shè)置為 0;F=0:為 5X7點(diǎn)陣字符體; F=1:為 5X11 點(diǎn)陣字符體;1這位,很多的數(shù)據(jù)參考手冊都寫錯(cuò)了STM32F10 x顯示狀態(tài)顯示狀態(tài)設(shè)置指令:設(shè)置指令:該指令控制著畫面、光標(biāo)和閃爍的開與關(guān)。D:畫面顯示控制位; D=1 為顯示開, D=0 為顯示關(guān);該指令僅影響顯示屏的開關(guān),并不影響顯存中的數(shù)據(jù)。 C:光標(biāo)顯示控制位;C=1 光標(biāo)顯示;C=0 光標(biāo)不顯示。B:光標(biāo)閃爍閃爍顯示控制位;B=1 光標(biāo)閃爍啟動(dòng);B=0
9、光標(biāo)閃爍關(guān)閉;STM32F10 x光標(biāo)光標(biāo)或或畫面畫面滾動(dòng)滾動(dòng)設(shè)置指令:設(shè)置指令:S/C (Screen/Cursor):滾動(dòng)對像的選擇 S/C=1 畫面滾動(dòng) S/C=0 光標(biāo)滾動(dòng)R/LR/L(Right/LeftRight/Left):滾動(dòng)方向的選擇 R/L=1 向右滾動(dòng) R/L=0 向左滾動(dòng) S/C R/L 設(shè)定情況 0 0 光標(biāo)左移 1 格,且 AC 值減 1 0 1 光標(biāo)右移 1 格,且 AC 值加 1 1 0 顯示器上畫面(即字符和光標(biāo)全部)左移一格1 1 顯示器上畫面(即字符和光標(biāo)全部)右移一格STM32F10 x寫或讀一個(gè)字符后,寫或讀一個(gè)字符后, 光標(biāo)光標(biāo)或或畫面畫面滾動(dòng)滾動(dòng)設(shè)
10、置指令設(shè)置指令:I/DI/D(Increase/DecreaseIncrease/Decrease): I/D=0 I/D=0 當(dāng)當(dāng)寫或讀一個(gè)字符后,光標(biāo)寫或讀一個(gè)字符后,光標(biāo)左左移移1 1格格,ACAC自動(dòng)減一;自動(dòng)減一; I I/ /D=1 D=1 當(dāng)當(dāng)寫或讀一個(gè)字符后,光標(biāo)寫或讀一個(gè)字符后,光標(biāo)右右移移1 1格格,ACAC自動(dòng)增一;自動(dòng)增一; S S(shiftshift):設(shè)置):設(shè)置寫或讀一個(gè)字符后寫或讀一個(gè)字符后,是否允許,是否允許畫面平移畫面平移S = 1S = 1:當(dāng)寫或讀一個(gè)字符后,:當(dāng)寫或讀一個(gè)字符后,允許允許畫面畫面平移平移; S = 0S = 0:當(dāng)寫或讀一個(gè)字符后,:
11、當(dāng)寫或讀一個(gè)字符后,畫面不動(dòng)畫面不動(dòng)。例如,S=1:當(dāng)寫或讀一個(gè)字符后,整屏顯示(I/D=1)左移或者右移(I/D=0)一格。達(dá)到光標(biāo)不移動(dòng)而屏幕移動(dòng)的效果。S=0S=0:當(dāng)寫或讀一個(gè)字符后,整屏顯示不移動(dòng)。當(dāng)當(dāng)I/D=1I/D=1,光標(biāo)光標(biāo)右右移移1 1格格,ACAC自動(dòng)增一自動(dòng)增一;當(dāng)當(dāng)I/D=0I/D=0,光標(biāo)光標(biāo)左左移移1 1格,格,ACAC自動(dòng)減一自動(dòng)減一。STM32F10 x清屏清屏指令:指令: 功能: 清除液晶顯示器,即將 DDRAM 的內(nèi)容全部填入空白的 ASCII 碼 20H; 光標(biāo)歸位,即將光標(biāo)撤回液晶顯示屏的左上方; 將地址計(jì)數(shù)器(AC)的值設(shè)為 0。 STM32F10
12、x光標(biāo)歸位光標(biāo)歸位指令:指令:功能: 把光標(biāo)撤回到顯示器的左上方; 把地址計(jì)數(shù)器(AC)的值設(shè)置為 0; 保持 DDRAM 的內(nèi)容不變。 STM32F10 xCGRAMCGRAM 地址設(shè)置地址設(shè)置指令指令:該指令將 6位的 CGRAM 地址寫入地址指針計(jì)數(shù)器 AC 內(nèi),隨后的數(shù)據(jù)操作是對 CGRAM的讀/寫操作。 注:CGRAM 為用戶自定義字符的空間,用來保存用戶自定義的字符的字模。不同于顯存(DDRAM)。 例如,把自定義的字符的字模,寫入CGRAM中。STM32F10 xDDRAMDDRAM 地址設(shè)置地址設(shè)置指令:指令: 該指令將 7位的 DDRAM 地址寫入地址指針計(jì)數(shù)器 AC 當(dāng)中,
13、隨后的數(shù)據(jù)操作是對 DDRAM(顯存)的讀/寫操作例如,把當(dāng)前所要顯示的字符的字符代碼(即該字符的ASCII碼,即該字符在字符庫中的字符庫中的地址碼地址碼)寫入DDRAM。注意:該指令不是把欲顯示的字符的字模寫入DDRAM中。這點(diǎn)不同于CGRAM 地址設(shè)置指令。欲顯示的字符的字模事先已保存在CGROM中。一旦某字符的ASCII碼寫入DDRAM,LCM1602控制器 就會(huì)自動(dòng)去CGROM字模存儲(chǔ)器中,查找該字符的字模,在LCM1602液晶屏上,顯示該字符。 STM32F10 x固化在CGROM中的字符,和在CGRAM中自定義的字符,顯示方式都是一樣:首先,光標(biāo)定位:用函數(shù)函數(shù)LCD_SetCur
14、sor( )光標(biāo)定位。其次,顯示字符:用函數(shù)函數(shù)LCD_DISP_CHAR(m)顯示字符。該函數(shù)的參數(shù):參數(shù):在字符庫中,當(dāng)前所要顯示的字符的字符代碼(即該字符的ASCII碼,即該字符在字符庫中的地址碼字符庫中的地址碼)STM32F10 x狀態(tài)查詢字狀態(tài)查詢字BFBF(Busy FlagBusy Flag):為狀態(tài)查詢位,代表內(nèi)部操作是否完成。):為狀態(tài)查詢位,代表內(nèi)部操作是否完成。1 1: 忙,代表內(nèi)部操作忙,代表內(nèi)部操作未未完成。完成。0 0:空閑,代表內(nèi)部操作:空閑,代表內(nèi)部操作已已完成。完成。AC6AC60 0:為:為7 7位的位的 AC AC 值,即當(dāng)前地址指針計(jì)數(shù)器值,即當(dāng)前地址指
15、針計(jì)數(shù)器ACAC的值。的值。 STM32F10 xSTM32F10 x6、LCM1602的4種存儲(chǔ)器類型在LCM1602中,包括4種類型的存儲(chǔ)器:DDRAM、CGROM、CGRAM、字模存儲(chǔ)器。1、DDRAM 顯示數(shù)據(jù)RAM2、CGROM 用于保存已固化好的字模庫3、CGRAM 用于保存自定義的字模庫4、字模存儲(chǔ)器 是由CGROM和CGRAM構(gòu)成固化了192 個(gè)常用字符的字模 STM32F10 x3、LCD初始化初始化5、設(shè)置光標(biāo)位置,顯示字符設(shè)置光標(biāo)位置,顯示字符4、LCD清屏清屏8.8.3 3 LCM1602 LCM1602 編程步驟編程步驟1、加入頭文件、加入頭文件2、使能、使能使用到的
16、使用到的外設(shè)對應(yīng)的時(shí)鐘外設(shè)對應(yīng)的時(shí)鐘STM32F10 x1、加入頭文件、加入頭文件#include stm32f10 x_lib.h/若使用RCC_Configuration( ); 使能GPIO外設(shè)對應(yīng)的時(shí)鐘,還必須加入以下頭文件。/若使用具體的使能外設(shè)命令(例如,RCC_APB2PeriphClockCmd( )等 ),則不需要加入以下命令。#include HelloRobot.hSTM32F10 x#include “LCD.h/該頭文件的作用:對main()函數(shù)中使用的函數(shù),進(jìn)行聲明。聲明,本文件要用到的,其它文件中的函數(shù)。(省略了extern)實(shí)際可以直接在main函數(shù)之前,聲明這
17、些函數(shù),以代替本頭文件。聲明聲明調(diào)用調(diào)用/以上這些函數(shù)在LCD.C中定義STM32F10 x2、使能使能使用到的使用到的外設(shè)對應(yīng)的外設(shè)對應(yīng)的時(shí)鐘時(shí)鐘 RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);在LCD_Init( )函數(shù)中,只定義了外設(shè)的結(jié)構(gòu)體變量,沒有對外設(shè)的時(shí)鐘使能,必須在這里,補(bǔ)加 對外設(shè)的時(shí)鐘使能。void LCD_Init(void)GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO
18、_Pin_5 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &
19、;GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); for(i=0;i100000;i+); LCD_SET_IRS(); /選擇輸出:命令 給LCD LCD_WRITE(); /使74HC595的OE腳,為0:74595并行輸出數(shù)據(jù);同時(shí)LCM1602寫控制端:0, 寫LCM1602有效 for(i=0;i100;i+); LCD_IN
20、PUT(0 x38);/設(shè)置顯示模式:8位數(shù)據(jù)寬度,2行顯示,5*7點(diǎn)陣 LCD_INPUT(0 x0E); /開顯示,顯示光標(biāo) LCD_INPUT(0 x06); /光標(biāo)移動(dòng)的設(shè)置:在寫入或讀出一個(gè)字符后,光標(biāo)加1右移,并且地址指針加1定義結(jié)構(gòu)體變量對GPIO參數(shù),進(jìn)行設(shè)置寫寫LCM1602LCM1602控制器指令,控制器指令,設(shè)置其工作方式設(shè)置其工作方式STM32F10 xLCD_Init( )功能: GPIO端口參數(shù)設(shè)置, 寫LCM1602控制器指令,設(shè)置其工作方式STM32F10 x3、LCD初始化初始化:使用函數(shù)LCD_Init( )設(shè)置與LCD相連的 STM32管腳初始化LCD模塊
21、初始化過程包括以下初始化過程包括以下2 2方面:方面:void LCD_Init(void) GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.
22、GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); for(i=0;i100000;i+); LCD_S
23、ET_IRS(); /選擇輸出:命令 給LCD LCD_WRITE(); /使74HC595的OE腳,為0:74595并行輸出數(shù)據(jù);同時(shí)LCM1602寫控制端:0, 寫LCM1602有效 for(i=0;i100;i+); LCD_INPUT(0 x38);/設(shè)置顯示模式:8位數(shù)據(jù)寬度,2行顯示,5*7點(diǎn)陣 LCD_INPUT(0 x0E); /開顯示,顯示光標(biāo) LCD_INPUT(0 x06); /光標(biāo)移動(dòng)的設(shè)置:在寫入或讀出一個(gè)字符后,光標(biāo)加1右移,并且地址指針加1設(shè)置與LCD相連的 STM32管腳初始化LCD模塊STM32F10 x!詳細(xì)注釋:!詳細(xì)注釋:LCD_Init( )LCD_I
24、nit( )函數(shù)函數(shù).doc.docSTM32F10 x4、LCD清屏清屏【法一】使用函數(shù) LCD_Clr( )【法二】使用函數(shù) LCD_CMD(0 x01)STM32F10 xvoid LCD_Clr(void) unsigned char i; LCD_SetCursor(0 x00); for(i=0;iLCD_MAX_Col;i+) LCD_DISP_CHAR( ); LCD_SetCursor(0 x40); for(i=0;iLCD_MAX_Col;i+) LCD_DISP_CHAR( );【法一】使用函數(shù) LCD_Clr( )STM32F10 x【法二】使用函數(shù) LCD_CMD(0 x01)void LCD_CMD(unsigned char ch) int i; LCD_SET_IRS(); for(i=0;i100;i+)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 仿真公路設(shè)計(jì)試題及答案
- 道路標(biāo)牌系統(tǒng)維護(hù)與更新策略考核試卷
- 信息系統(tǒng)監(jiān)理師考試知識的應(yīng)用案例試題及答案
- 軟件項(xiàng)目中的風(fēng)險(xiǎn)評估技巧試題及答案
- 軟件測試工程師發(fā)展的必經(jīng)之路試題及答案
- 提升學(xué)業(yè)的試題及答案價(jià)值
- 客房員工調(diào)配管理制度
- 土地調(diào)查保密管理制度
- 外包配送車輛管理制度
- 公司實(shí)行專利管理制度
- 棗莊學(xué)院教師招聘考試歷年真題
- 語文復(fù)習(xí)-圖表題解析課件
- 高考運(yùn)送試卷車輛應(yīng)急方案
- 用頻率估計(jì)概率說課
- 2019年一級注冊建筑師考試《建筑結(jié)構(gòu)》真題及答案詳解【完整版】-1
- 工會(huì)經(jīng)費(fèi)收支決算表
- 【超星爾雅學(xué)習(xí)通】航空與航天網(wǎng)課章節(jié)答案
- 九招致勝課件完整版
- GB/T 26516-2011按摩精油
- GB/T 1185-2006光學(xué)零件表面疵病
- GB 29415-2013耐火電纜槽盒
評論
0/150
提交評論