項目九_液晶顯示器顯示電路設(shè)計)_第1頁
項目九_液晶顯示器顯示電路設(shè)計)_第2頁
項目九_液晶顯示器顯示電路設(shè)計)_第3頁
項目九_液晶顯示器顯示電路設(shè)計)_第4頁
項目九_液晶顯示器顯示電路設(shè)計)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、 項目九項目九 液晶顯示器顯示電路設(shè)計液晶顯示器顯示電路設(shè)計 知識目標(biāo)知識目標(biāo) 1.1.熟練使用單片機的定時器。熟練使用單片機的定時器。 2.2.熟練運用字符串、數(shù)組、指針。熟練運用字符串、數(shù)組、指針。 3.3.學(xué)習(xí)學(xué)習(xí)LCDLCD顯示模塊的使用方法。顯示模塊的使用方法。 能力目標(biāo)能力目標(biāo):1.1.掌握掌握LCM1602LCM1602液晶模塊顯示西文的原理及使用方法。液晶模塊顯示西文的原理及使用方法。 2.2.掌握用掌握用8 8位數(shù)據(jù)模式及位數(shù)據(jù)模式及8 8位數(shù)據(jù)模式驅(qū)動位數(shù)據(jù)模式驅(qū)動LCM1602LCM1602液晶的液晶的C C語語 言編程方法言編程方法3.3.掌握用掌握用LCM1602LC

2、M1602液晶模塊顯示動態(tài)數(shù)字的液晶模塊顯示動態(tài)數(shù)字的C C語言編程方法。語言編程方法。 任務(wù)任務(wù)1 LCM16021 LCM1602液晶顯示數(shù)字鐘的設(shè)計液晶顯示數(shù)字鐘的設(shè)計 2.1 單片機與單片機與LCM1602接口以接口以8位數(shù)據(jù)顯示模式電路位數(shù)據(jù)顯示模式電路設(shè)計,如圖所示設(shè)計,如圖所示用用5151單片機驅(qū)動單片機驅(qū)動LCM1602LCM1602液晶顯示器,使液晶屏在第液晶顯示器,使液晶屏在第一行中間以格式一行中間以格式“03:34:56”03:34:56”顯示時間,在第二行顯示時間,在第二行中間顯示中間顯示“A091A091。2 2 分析任務(wù)分析任務(wù)1 1 提出任務(wù)提出任務(wù) 圖圖1 LC

3、D1 LCD顯示電路原理圖顯示電路原理圖 軟件程序設(shè)計要嚴(yán)格按照LCM1602液晶顯示器的讀操作時序和寫操作時序來編寫。單片機所用的晶體振蕩器頻率不同,在編寫延時程序時延時參數(shù)要作適當(dāng)?shù)男薷?,使之符合LCM1602的時序要求。編寫程序時盡量按照模塊化的編程思想進行編程。其主程序流程如圖2所示。 2. 2. 軟件程序設(shè)計軟件程序設(shè)計圖圖 2 28 8位數(shù)據(jù)顯示模式時鐘顯示主程序流程圖位數(shù)據(jù)顯示模式時鐘顯示主程序流程圖開始單片機I/O端口初始化液晶LCD初始化顯示“00:00:00“A091結(jié)束循環(huán)刷新顯示時間 知識鏈接知識鏈接 LCM1602液晶點陣字符顯示器用57點陣圖形來顯示西文字符,可顯示

4、2行16個西文字符。單片機通過寫控制方式訪問驅(qū)動控制器來實現(xiàn)對顯示屏的控制。LCM的主要由三部分組成:LCD控制器、LCD驅(qū)動器、LCD顯示裝置。如圖3所示。 液晶顯示器的基本知識液晶顯示器的基本知識一、一、16021602字符型液晶顯示模塊字符型液晶顯示模塊(LCM)(LCM)的基本組成的基本組成LCD控制器LCD驅(qū)動器LCD顯示裝置VssVDDVLRSR/WEDB0DB7圖3 LCM的組成LED+LED- 知識鏈接知識鏈接 字符型液晶顯示器的引腳排列如下圖所示。1602字符型液晶顯示器的引腳功能說明表1所示。二、二、 LCM1602LCM1602字符型液晶顯示器引腳及功能字符型液晶顯示器引

5、腳及功能LCM1602LCM16021 2 3 4 5 6 7 89 10 11 12 13 14圖4 162液晶顯示器引腳排列15 16 知識鏈接知識鏈接表1 162LCM管腳說明管腳編號名稱方向功能操作1VSS電源電源接地0V2VDD電源電源正極5V3VL電源LCD亮度調(diào)整電壓輸入電壓越低,屏幕越亮4RS輸入寄存器選擇信號1選擇數(shù)據(jù)寄存器0選擇指令寄存器5R/W輸入Read/Write1Read/讀取0Write/寫入6E輸入LCD/響應(yīng)信號1響應(yīng)LCD0禁用LCD710DB0DB3輸入/輸出低四位總線可用4bit輸入數(shù)據(jù)、命令及地址1114DB4DB7輸入/輸出高四位總線配合DB0DB3

6、的8位輸入數(shù)據(jù)、命令及地址15LED輸入背光源正極5V16LED輸入背光源負(fù)極0V 知識鏈接知識鏈接 用單片機來控制LCD模塊,方法十分方便。LCD模塊其內(nèi)部可以看成兩組寄存器,一個為指令寄存器IR,另一個為數(shù)據(jù)寄存器DR,由RS引腳來控制。所有對指令寄存器或數(shù)據(jù)寄存器的存取均需檢查LCD內(nèi)部的忙碌標(biāo)志BF的狀態(tài),此標(biāo)志用來告知LCD內(nèi)部正在工作,并不允許接收任何控制命令。而此位的檢查可以令RS=0,用讀取DB7來加以判斷。當(dāng)DB7為0時,才可以寫入指令寄存器或數(shù)據(jù)寄存器。LCD控制器共有11種指令,LCD指令碼控制表如表2所示。下面分別介紹。三、三、 LCDLCD指令碼工作說明指令碼工作說明

7、 知識鏈接知識鏈接序號指令操作RSR/WDB7DB6DB5DB4DB3DB2DB1DB0執(zhí)行1清除顯示屏0000000001.64us2光標(biāo)回到原點0000000011.64us3進入模式設(shè)定00000001I/DS40us4顯示ON/OFF0000001DCB40us5顯示/光標(biāo)移位000001S/CR/L40us6功能設(shè)定00001DLNF40us7設(shè)定字符發(fā)生器(CGRAM)地址 0001A5A4A3A2A1A040us8設(shè)置(DD RAM)顯示地址001A6A5A4A3A2A1A040us9忙碌標(biāo)志位BFBF01BFD6D5D4D3D2D1D040us10寫入數(shù)據(jù)寄存器(顯示數(shù)據(jù))10

8、D7D6D5D4D3D2D1D040us11讀取數(shù)據(jù)寄存器11D7D6D5D4D3D2D1D040us12.2LCD指令控制碼表 知識鏈接知識鏈接1. 清除顯示屏(Clear Display)RSR/WDB7DB6DB5DB4DB3DB2DBDB000000000 指令代碼為01H,將DDRAM數(shù)據(jù)全部填入“空白”的ASCII代碼20H,執(zhí)行指令將清除顯示屏的內(nèi)容,同時光標(biāo)移到左上角。2.光標(biāo)回原點(左上角)RSR/WDB7DB6DB5DB4DB3DB2DB1DB0000000001指令代碼為02H,地址計數(shù)器AC被清0,但DDRAM內(nèi)容保持不變,光標(biāo)回原點(左上角),“”表示該位可以為0或1

9、。 知識鏈接知識鏈接3.設(shè)定進入模式RSR/WDB7DB6DB5DB4DB3DB2DB1DB000000001I/DSI/D(INC/DEC):I/D=1,表示當(dāng)讀或?qū)懲暌粋€數(shù)據(jù)操作后,地址指針AC加1,且光標(biāo)加1(光標(biāo)右移一格)I/D=0,表示當(dāng)讀或?qū)懲暌粋€數(shù)據(jù)操作后,地址指針AC減1,且光標(biāo)減1(光標(biāo)左移一格)S(Shift):S=1表示當(dāng)寫一個數(shù)據(jù)操作時,整屏顯示左移(I/D=1)或右移(I/D=0),以得到光標(biāo)不移動而屏幕移的效果。S=0表示當(dāng)寫一個數(shù)據(jù)操作時,整屏顯示不移動 知識鏈接知識鏈接4.顯示屏開關(guān)顯示屏開關(guān)(Display ON/OFF)(Display ON/OFF)R-S

10、R/-WDB7DB6DB5DB4DB3DB2DB1DB00000001DCBD(Display):顯示屏開啟或關(guān)閉控制位。當(dāng)D=1時,顯示屏開啟;當(dāng)D=0時,顯示屏關(guān)閉,但DDRAM內(nèi)的顯示數(shù)據(jù)仍保留。C(Cursor):光標(biāo)顯示/關(guān)閉控制位。C=1時,表示在顯示屏上顯示光標(biāo),C=0時,表示光標(biāo)不顯示。B(Blink):光標(biāo)閃爍控制位。B=1時,表示光標(biāo)出現(xiàn)后會閃爍;B=0時,表示光標(biāo)不閃爍。 知識鏈接知識鏈接5.顯示顯示/ /光標(biāo)移位光標(biāo)移位(Display/Cursor shift)(Display/Cursor shift)RSR/WDB7DB6DB5DB4DB3DB2DB1 DB000

11、0001S/CR/L“”表示該位可以為0或1。S/C(Display/Cursor):S/C=1表示顯示屏上的畫面平移一個字符位,S/C=0表示光標(biāo)平移一個字符位。R/L(Right/Left):R/L=1表示右移,R/L=0表示左移。 知識鏈接知識鏈接6.功能設(shè)定功能設(shè)定(Function Set)(Function Set)RSR/WDB7DB6DB5DB4DB3DB2DB1 DB000001DLNF“”表示該位可以為0或1。DL(Data Legth):數(shù)據(jù)長度選擇位。DL=1時,為8位(DB7DB0)數(shù)據(jù)接口;DL=0為4位數(shù)據(jù)接口,使用DB7DB4位,分2次送入一個完整的字符數(shù)據(jù)。N

12、(Number of Display):顯示屏為單行或雙行選擇。N=1為雙行顯示;N=0為單行顯示。F(Font):字符顯示選擇。F=1時,為510點陣字符;F=0時,為57點陣字符 知識鏈接知識鏈接7.字符產(chǎn)生器字符產(chǎn)生器RAM(CGRAM)RAM(CGRAM)地址設(shè)定地址設(shè)定RSR/WDB7DB6DB5DB4DB3DB2DB1DB00001A5A4A3A2A1A0設(shè)定下一個要讀/寫數(shù)據(jù)的CGRAM地址,地址由(A5A0)給出,可設(shè)定003FH共64個地址。8.顯示數(shù)據(jù)顯示數(shù)據(jù)RAM(DDRAM)RAM(DDRAM)地址設(shè)定地址設(shè)定RSR/WDB7DB6DB5DB4DB3DB2DB1DB00

13、01A6A5A4A3A2A1A0設(shè)定下一個要讀/寫數(shù)據(jù)的DDRAM地址,地址由(A6A0)給出,可設(shè)定007FH共128個地址。N0 一行顯示A6A000 4FH,N1 兩行顯示,首行A6A000H2FH 次行A6A040H67H 顯示數(shù)據(jù)顯示數(shù)據(jù)RAMRAM(DDRAMDDRAM)地址與顯示位置對應(yīng)表)地址與顯示位置對應(yīng)表 知識鏈接知識鏈接9.忙碌標(biāo)志忙碌標(biāo)志/ /地址計數(shù)器讀取地址計數(shù)器讀取(Busy Flag/Address Counter(Busy Flag/Address Counter)RSR/WDB7DB6DB5DB4DB3DB2DB1DB001BFA6A5A4A3A2A1A0L

14、CD的忙碌標(biāo)志BF用以指示LCD目前的工作情況;當(dāng)BF=1時,表示正在做內(nèi)部數(shù)據(jù)的處理,不接收單片機送來的指令或數(shù)據(jù);當(dāng)BF=0時,則表示已準(zhǔn)備收命令或數(shù)據(jù)。當(dāng)程序讀取此數(shù)據(jù)的內(nèi)容時,DB7表示忙碌標(biāo)志,而另外DB6DB0的值表示CGRAM或DDRAM中的地址。至于是指向哪一地址,則根據(jù)最后寫入的地址設(shè)定指令而定。 知識鏈接知識鏈接10.寫入數(shù)據(jù)寄存器寫入數(shù)據(jù)寄存器RSR/WDB7DB6DB5DB4DB3DB2DB1DB010D7D6D5D4D3D2D1D0 先設(shè)定CGRAM或DDRAM地址,再將數(shù)據(jù)寫入DB7DB0中,以使LCD顯示出字 型, 也可使使用者創(chuàng)的圖形存入CGRAM中。RSR/W

15、DB7DB6DB5DB4DB3DB2DB1DB011D7D6D5D4D3D2D1D0先設(shè)定好CGRAM或DDRAM地址,再讀取其中的數(shù)據(jù)。11.11.讀取數(shù)據(jù)寄存器讀取數(shù)據(jù)寄存器 CGROMCGROM與與CGRAMCGRAM中字符代碼與字符圖形對應(yīng)表中字符代碼與字符圖形對應(yīng)表 知識鏈接知識鏈接四、四、LCDLCD控制器接口時序說明控制器接口時序說明1. 1. 寫操作時序(單片機至寫操作時序(單片機至LCDLCD)寫操作時序如圖所示寫操作時序如圖所示。圖寫操作時序 知識鏈接知識鏈接讀操作時序如圖所示。2. 2. 讀操作時序(讀操作時序(LCDLCD至單片機)至單片機)圖讀操作時序 知識鏈接知識鏈

16、接1.時序參數(shù)時序參數(shù)時序圖中的各個延遲時間如表3所示。 表3時序圖中的各個延遲時間 知識鏈接知識鏈接1.信號真值表信號真值表 讀/寫控制信號真值表如表.4所示。 知識鏈接知識鏈接 1. 初始化設(shè)置 (1)顯示器清屏 (2)顯示器開/關(guān)及光標(biāo)設(shè)置 (3)顯示光標(biāo)移動設(shè)置 2.數(shù)據(jù)控制 控制器內(nèi)部設(shè)有一個數(shù)據(jù)地址指針,用戶可通過它們來訪問內(nèi)部全部80字節(jié)RAM。 (1)數(shù)據(jù)指針設(shè)置 數(shù)據(jù)地址指針:80H地址碼(00H27H,40H67H) (2)讀數(shù)據(jù):見上表 (3)寫數(shù)據(jù):見上表五、五、LCDLCD初始化設(shè)置初始化設(shè)置 知識鏈接知識鏈接(1)延時)延時15ms(2)寫指令)寫指令38H(不檢測

17、忙信號)(不檢測忙信號)(3)延時)延時5ms(4)寫指令)寫指令38H(不檢測忙信號)(不檢測忙信號)(5)延時)延時5ms(6)寫指令)寫指令38H(不檢測忙信號)(不檢測忙信號)注:復(fù)位過程一般可以只寫一次注:復(fù)位過程一般可以只寫一次(7)以后每次寫指令、讀)以后每次寫指令、讀/寫數(shù)據(jù)操作寫數(shù)據(jù)操作 之前均需檢測忙信號之前均需檢測忙信號(8)寫指令38H:顯示模式設(shè)置(9)寫指令08H:顯示關(guān)閉,不顯示 光標(biāo)(10)寫指令01H:顯示清屏(11)寫指令06H:顯示光標(biāo)移動設(shè) 置,寫一個字符后,N1,地址 加1,光標(biāo)加1,S0,整屏顯示。(12)寫指令0CH:顯示開及光標(biāo)設(shè) 置,D1開顯示

18、,C1不顯示光 標(biāo),B0光標(biāo)不閃。六、六、LCDLCD初始化過程(復(fù)位過程)初始化過程(復(fù)位過程) 源程序源程序延時函數(shù)延時函數(shù)void delay( uintvoid delay( uint z) z) uint x,y uint x,y; ; for(x=z;x0;x- for(x=z;x0;x- for(yfor(y=600;y0;y-);=600;y0;y-); 寫命令函數(shù)寫命令函數(shù)void write_com(ucharvoid write_com(uchar com) com) lcdrs lcdrs=0;=0;lcdrwlcdrw=0;=0;P0=com;P0=com;lcden

19、lcden=1;=1; delay(1); delay(1);lcdenlcden=0;=0; 寫顯示數(shù)據(jù)函數(shù)寫顯示數(shù)據(jù)函數(shù)void write_data(ucharvoid write_data(uchar date) date) read_state read_state( );( );lcdrslcdrs=1;=1;lcdrwlcdrw=0;=0; P0=date;P0=date;lcdenlcden=1;=1; delay(1); delay(1);lcdenlcden=0;=0; 忙碌標(biāo)志位查詢函數(shù)忙碌標(biāo)志位查詢函數(shù)void read_statevoid read_state()()

20、 uchar tmp uchar tmp; ;lcdrslcdrs=0;=0;lcdrwlcdrw=1;=1;lcdenlcden=1;=1; delay(1); delay(1); while(1) while(1) tmp tmp=P0;=P0; tmp tmp=tmp&0 x80;=tmp&0 x80; if(tmp if(tmp=0)=0) break; break; lcdenlcden=0;=0; 顯示屏初始化顯示屏初始化void init( ) void init( ) lcden lcden=0;=0; delay(80); delay(80); write_c

21、om(0 x38); write_com(0 x38); );/2);/2行,行,5X75X7 delay(80); delay(80);write_com(0 x0c);/write_com(0 x0c);/開啟屏,光標(biāo),不閃爍開啟屏,光標(biāo),不閃爍write_com(0 x06);/write_com(0 x06);/地址指針自動加地址指針自動加1 1write_com(0 x01);/write_com(0 x01);/清屏清屏delay(20);delay(20); 主函數(shù)頭文件定義主函數(shù)頭文件定義#include #include #define uchar#define uchar

22、unsigned char unsigned char #define uint unsigned int#define uint unsigned intvoid delay(ucharvoid delay(uchar););uchar table_hmsuchar table_hms=1, 2, : ,3 ,4 ,:,5 , 6;=1, 2, : ,3 ,4 ,:,5 , 6;ucharuchar * *p=A091;p=A091;ucharuchar i ,j; i ,j;void read_statevoid read_state();();sbit lcdensbit lcden=P

23、27; =P27; sbit lcdrwsbit lcdrw=P26;=P26;sbit lcdrssbit lcdrs=P25;=P25; 主函數(shù)主函數(shù)void main( )void main( ) init( ); / init( ); / 顯示屏初始化顯示屏初始化 write_com(0 x80+4);/write_com(0 x80+4);/指向第一行第指向第一行第5 5個字符位置,顯示時間初始值個字符位置,顯示時間初始值 for(jfor(j=0;j8; j+)=0;j8; j+) if(j if(j!=2)&(j!=5)!=2)&(j!=5) write_data(table_hmsj+0 x30); write_data(table_hmsj+0 x30); else else write_data(table_hmsj write_data(table_hmsj);); write_com(0 x80+0 x40+6);/write_com(0 x80+0 x40+6);/指向第二行第指向第二行第7 7個字符位置,顯示個字符位置,顯示“A091”A091” while(while(* *p)!=0)p)!=0) write_data write_data( (* *p);p); p+; p+; TH1=0 x3c; / TH1=0 x

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論