LCD液晶顯示屏(介紹及程序GOOD)_第1頁
LCD液晶顯示屏(介紹及程序GOOD)_第2頁
LCD液晶顯示屏(介紹及程序GOOD)_第3頁
LCD液晶顯示屏(介紹及程序GOOD)_第4頁
LCD液晶顯示屏(介紹及程序GOOD)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一節(jié):了解LCD液晶顯示屏作者:塵封往事 文章來源:本站原創(chuàng) 點擊數(shù): 2097 更新時間:2005-11-14 10:43:40 一:字符型點陣式LCD液晶顯示屏:    LCD的應(yīng)用很廣泛,簡單如手表上的液晶顯示屏,儀表儀器上的液晶顯示器或者是電腦筆記本上的液晶顯示器,都使用了LCD。在一般的辦公設(shè)備上也很常見,如傳真機,復(fù)印機,以及一些娛樂器材玩具等也常常見到LCD的足跡。    本站要介紹的LCD為字符型點陣式LCD模塊(liquid Crystal Display Module)簡稱LCM,或者是字符型LCD。 

2、   字符型液晶顯示模塊是一種專門用于顯示字母,數(shù)字,符號等的點陣式液晶顯示模塊。在顯示器件上的電極圖型設(shè)計,它是由若干個5*7或5*11等點陣符位組成。每一個點陣字符位都可以顯示一個字符。點陣字符位之間有一空點距的間隔起到了字符間距和行距的作用。目前市面上常用的有16字*1行,16字*2行,20字*2行和40字*2行等的字符模塊組。這些LCM雖然顯示字數(shù)各不相同,但是都具有相同的輸入輸出界面。上圖為1602LCD在本站2004學(xué)習(xí)套件上顯示一個字母A的運行圖片本章將以16*2字符型液晶顯示模塊RT-1602C為例,詳細介紹字符型晶顯示模塊的應(yīng)用技術(shù)。  

3、;  一般字符LCD模塊的控制器為日本日立公司的HD44780及其替代集成電路,驅(qū)動器為HD44100及其替代的集成電路以下將會略做介紹。    一般初學(xué)者由字符型LCD入手比較簡單,學(xué)完之后,再進一步控制圖案型LCD模塊。圖1.1所示為16*2地的外觀,表1.2為LCM的接腳及功能。  二、1602的外形尺寸 三、1602的接口信號說明:編號符號引腳說明編號符號引腳說明1VSS電源地9D2Data I/O2VDD電源正極10D3Data I/O3VL液晶顯示偏壓信號11D4Data I/O4RS數(shù)據(jù)/命令選擇端(H/L)1

4、2D5Data I/O5R/W讀/寫選擇端(H/L)13D6Data I/O6E使能信號14D7Data I/O7D0Data I/O15BLA背光源正極8D1Data I/O16BLK背光源負極表1.4:液晶顯示模塊RT-1602C的接腳及功能第二節(jié):LCD液晶顯示屏的內(nèi)部結(jié)構(gòu)作者:塵封往事 文章來源:本站原創(chuàng) 點擊數(shù): 1722 更新時間:2005-11-14 10:51:20 液晶顯示模塊WM-C1602N的內(nèi)部結(jié)構(gòu)可以分成三部份:一為LCD控制器,二為LCD驅(qū)動器,三為LCD顯示裝置,如圖示2.1所示:地址計數(shù)器 AC用戶自定義的字符發(fā)生器CGRAMCGRAM為可自編數(shù)據(jù)區(qū)DDRAM為

5、顯示緩沖區(qū);內(nèi)藏的字符發(fā)生存儲器(CGROM)圖2.1:LCM內(nèi)部方塊圖目前大多數(shù)的LCD液晶顯示器的控制器都有采用一顆型號為HD44780的集成電路作控制器。HD44780是集控制器,驅(qū)動器于一體,專用于字符顯示控制驅(qū)動集成電路。HD44780是字符型液晶顯示控制器的代表電路。HD44780集成電路的特點:1:HD44780不僅作為控制器而且還具有驅(qū)動40*16點陣液晶像素的能力,并且HD44780的驅(qū)動能力可通過外接驅(qū)動器擴展360列驅(qū)動。2:HD44780的顯示緩沖區(qū)及用戶自定義的字符發(fā)生器CGRAM全部內(nèi)藏在芯片內(nèi)。3:HD44780具有適用于M6800系列MPU的接口,并且接口數(shù)據(jù)傳

6、輸可為8位數(shù)據(jù)和4位數(shù)據(jù)傳輸兩種方式。4:HD44780具有簡單而功能較強的指令集,可實現(xiàn)字符移動,閃爍等顯示功能。    由于HD44780的DDRAM容量所限,HD44780可控制的字符高達每行80個字,也就是5*80=400點,HD44780內(nèi)藏有16路行驅(qū)動器和40路列驅(qū)動器,所以HD44780本身就具驅(qū)動有16*40點陣LCD能力(即單行16個字符或兩行8個字符)。如果在外部加一HD44100外擴展多40路/列驅(qū)動,則可驅(qū)動16*2LCD。     HD44780內(nèi)藏的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個

7、不同的點陣字符圖形,如表2.3所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼。比如數(shù)字“1”的代碼是00110001B(31H),又如大寫的英文字母“A”的代碼是01000001B(41H)。CGROM和CGRAM字符圖形代碼對應(yīng)表:表2.3:液晶顯示模塊WM-C1602N的CGRAM字符圖形代碼對應(yīng)表液晶顯示模塊WM-C1602N在顯示“1”時,則我們只需將ASCII碼31H存入DDRAM即可。顯示時模塊把地址31H中的點陣字符圖形顯示出來,我們就能看到數(shù)字“1”了。   DDRAM有80bytes空間,共可顯示80

8、個字,地址與實際顯示位置的排列順序跟LCD的型號有關(guān),液晶顯示模塊WM-C1602N的顯示地址如圖2.2所示。圖2.2:地址映射圖第三節(jié):字符LCD液晶屏控制器的指令字符LCD的指令共有11條,如表3.1所示已有詳細功能和用法:圖表3.1:LCD的指令表注:表中的*表示可以為0或1。第四節(jié):在1602LCD上顯示字母“A”做這實驗之前我們需要將相關(guān)的實驗器材準備好:    1:RT1602C液晶顯示模塊一個    2:AT89S51芯片一片    3:編程器及相關(guān)的編程軟件  

9、0; 4:電腦就不用我在這里提了吧。呵呵 現(xiàn)在你可以按下圖的LCD驅(qū)動電路做個電路板,購買了本站產(chǎn)品的朋可直接將配套的1602插到驅(qū)動接口上:如上圖所示各引腳功能表達如下:VSS為地電源                          VDD接5V正電源VL為液晶顯示器對比度調(diào)整端:接正電源時對比度最弱,接地電源時對比度最高,對比度過高

10、時                  會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。RS為寄存器選擇:高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。RW為讀寫信號線:高電平時進行讀操作,低電平時進行寫操作。當(dāng)RS和RW共同為低電平時可以寫                入指

11、令或者顯示地址,當(dāng)RS為低電平RW為高電平時可以讀忙信號,當(dāng)RS為高電                平RW為低電平時可以寫入數(shù)據(jù)。E端為使能端:當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。DB0DB7為8位雙向數(shù)據(jù)線BLK和BLA:是背光燈電源。在上一課我們已經(jīng)知道了字母“A”的代碼是01000001B了,為什么會是01000001B呢?如果還不明白?請返回上節(jié)再鞏固一下吧!其實現(xiàn)在有查詢LCD顯示內(nèi)碼的軟件,點擊這里下載,不過大家最好去理

12、解一下。;*源程序如下*;單片機自學(xué)網(wǎng)     RS   BIT   P3.0     RW   BIT   P3.1     E    BIT   P3.5     DB0_DB7 DATA P1     ORG    00H 

13、    AJMP   START     ORG    000BH     AJMP   INSE      ORG    50HSTART:MOV   TMOD,#0      MOV   TL0,#0    

14、;  MOV   TH0,#0      SETB  EA      SETB  ET0      SETB  TR0      MOV   R5,#50      MOV   SP,#60H     

15、; ACALL INIT      MOV   A,#10000000B   ;寫入顯示地址為第一行第一位。?      ACALL C51      MOV   A,#01000001B   ;字母“A”的代碼。      ACALL C51DDRLOOP: AJMP  LOOPINSE: MOV 

16、;  TL0,#0         ;中斷服務(wù)子程序。      MOV   TH0,#0      DJNZ  R5,NO      MOV   R5,#50NO:   RETIINIT: MOV   A,#00111000B   ;使用8Bits

17、匯流排,顯示兩行,使用5*7的字型。      LCALL C51      MOV   A,#00001110B   ;顯示器開,光標開,光標閃爍。      LCALL C51      MOV   A,#00000110B   ;字符不動,光標自動右移一格。    

18、0; LCALL C51      RETDDW:                 ;檢查忙碌子程序。      PUSH  ACCDDW1:CLR RS      SETB  RW      CLR 

19、0; E      SETB  E      MOV   A,DB0_DB7      CLR   E      JB    ACC.7,DDW1      POP   ACC      ACALL

20、DELAY      RETC51:                      ;寫入IR寄存器子程序。      ACALL DDW ;檢查忙碌否      CLR   E    

21、;  CLR   RS      CLR   RW      SETB  E      MOV   DB0_DB7,ACC      CLR   E      RETC51DDR:      

22、;             ;寫入DR寄存器子程序。      ACALL DDW      CLR   E      SETB  RS      CLR   RW      SE

23、TB  E      MOV   DB0_DB7,ACC      CLR   E      RETDELAY:                   ;延時子程序。    

24、0; MOV   R6,#5D1:   MOV   R7,#248      DJNZ  R7,$      DJNZ  R6,D1      RET      END以上程序書寫時用二進制目的是為了方便大家去理解。將上面的程序編譯好后用編程器將程序?qū)懭階T89S51芯片,然后將寫好的AT89S51芯片插入本站提供的實

25、驗板或自已DIY的實驗板上,通電運行,這時在1602液晶顯示器上就顯示出一個“A”了。上圖中,1602液晶顯示器在2004套件上顯示出字母“A”的圖片。第五節(jié):在1602LCD第二行顯示字母“B”在上一課中,我們已經(jīng)詳細的講解了怎么在液晶顯示屏顯示字母“A”,但1602LCD有兩行顯示,我們怎樣才能讓字符顯示在第二行呢?與顯示在第一行有什么區(qū)別嗎?下面我就與大家一起來探討這個課題。 下圖中,1602在我們學(xué)習(xí)套件中顯示在第二行第四位的圖片現(xiàn)在先來介紹用軟件查出字符“B”內(nèi)碼的方法,請大家先下載內(nèi)碼查詢軟件(請到本站下載中心下載)。解壓后,點擊圖標啟動軟件,如下圖所示,輸入字符“B” 可查漢字內(nèi)

26、碼?點擊“內(nèi)碼顯示”按鈕,42就是字符“B”的內(nèi)碼了,大家都學(xué)會使用了吧?;*源程序*    RS   BIT  P3.0    RW   BIT  P3.1    E    BIT  P3.5    DB0_DB7 DATA P1    ORG   00H    AJMP  START&

27、#160;   ORG   000BH    AJMP  INSE    ORG   50HSTART:MOV TMOD,#0    MOV   TL0,#0    MOV   TH0,#0    SETB  EA    SETB  ET0    SETB&#

28、160; TR0    MOV   R5,#50    MOV   SP,#60H    ACALL INIT    MOV   A,#0C3H      ;寫入顯示地址為第二行第四位。?    ACALL C51    MOV   A,#42H   

29、0;   ;字母B的代碼。    ACALL C51DDRLOOP:AJMP LOOPINSE:MOV  TL0,#0       ;中斷服務(wù)子程序。    MOV   TH0,#0    DJNZ  R5,NO    MOV   R5,#50NO: RETIINIT:    MOV  

30、A,#38H        ;使用8Bits匯流排,顯示兩行,使用5*7的字型。    LCALL C51    MOV   A,#0EH        ;顯示器開,光標開,光標閃爍。    LCALL C51    MOV   A,#06H     

31、;   ;字符不動,光標自動右移一格。    LCALL C51    RETDDW:              ;檢查忙碌子程序。    PUSH  ACCDDW1:  CLR RS    SETB  RW    CLR   E 

32、0;  SETB  E    MOV   A,DB0_DB7    CLR   E    JB    ACC.7,DDW1    POP   ACC    ACALL DELAY    RETC51:         &

33、#160;        ;寫入IR寄存器子程序。    ACALL DDW    CLR   E    CLR   RS    CLR   RW    SETB  E    MOV   DB0_DB7,ACC    CLR

34、60;  E    RETC51DDR:               ;寫入DR寄存器子程序。    ACALL DDW    CLR   E    SETB  RS    CLR   RW    SETB 

35、E    MOV   DB0_DB7,ACC    CLR   E    RETDELAY:                  ;延時子程序。    MOV   R6,#5D1: MOV   R7,#248  

36、  DJNZ  R7,$    DJNZ  R6,D1    RET    END第六節(jié):LCD相關(guān)的子程序在前面的課程中,我們已經(jīng)實驗了液晶顯示屏顯示字母了,其實大家亦不難理解上幾個例子的源程序,只不過是由幾個子程序構(gòu)成。下面向大家介紹前面例子中應(yīng)用到的幾個子程序。以下介紹常用到的六個子程序:1:查看忙碌子程序。2:寫指令到IR寄存器的子程序。3:寫指令到DR寄存器的子程序。4:清除LCD顯示器的子程序。5:啟動LCD子程序。6:延時子程序。  

37、0; 現(xiàn)在就給出開發(fā)液晶屏建立相關(guān)LCD規(guī)范的子程序。1:查看忙碌子程序:DDW:         ;檢查忙碌子程序。PUSH ACC    ;將A的內(nèi)容放到堆棧區(qū)內(nèi),在此這句可能沒有意義,但在實際應(yīng)用中ACC是頻繁使              用的,所以在進入子程序之前先把ACC的內(nèi)容放入堆棧中,以免破壞原來在ACC的   &

38、#160;          內(nèi)容。 DDW1:  CLR RS;選擇指令暫存器。SETB   RW     ;選擇讀模式。CLR    E      ;禁能LCD。SETB   E      ;使能LCD。MOV A,DB0_DB7 ;將LCD的DB0-DB7的資料經(jīng)

39、由P1口存入ACC中,以便查對第7位元BF是否為0。CLR   E     ;禁能LCD。JB    ACC.7,CB_Loop   ;判斷由LCD讀入資料的第7元位及BF是否為1,若為1表示LCD忙碌中。POP   ACC   ;將累加器ACC的內(nèi)容從堆棧區(qū)取出。ACALL   DELAY ;調(diào)用延時程序。RET        ;返回。2:寫指令到IR寄存

40、器的子程序:C51:        ;寫入IR寄存器子程序。ACALL DDW   ; 檢查忙碌。CLR  E      ;禁能LCD。CLR  RS     ;選擇指令暫存器。CLR  RW     ;選擇寫模式。SETB  E     ;使能LCD。MOV  DB0_DB7,ACC&#

41、160;   ;將存在ACC內(nèi)的指令碼經(jīng)由P1口輸出到期LCD。CLR  E      ;禁能LCD。RET    ;返回。3:寫指令到DR寄存器的子程序:C51DDR:    ;寫入DR寄存器子程序。ACALL DDW  ;檢查忙碌。CLR E      ;禁能LCD。SETB RS    ;選擇資料寄存器。CLR RW  &

42、#160;  ;選擇寫模式。SETB E     ;使能LCD。MOV DB0_DB7,ACC    ;將存在ACC內(nèi)的指令碼經(jīng)由P1口輸出到期LCD。CLR E     ;禁能LCD。RET    ;返回。4:清除LCD顯示器的子程序:CLS:           ;清除LCD顯示器程序。MOV A,#01H   &

43、#160; ;將01H放入ACC。ACALL C51      ;寫指令到IR寄存器RET            ;返回。5:啟動LCD子程序:INIT:MOV   A,#38H          ;使用8Bits匯流排,顯示兩行,使用5*7的字型。LCALL C51     &

44、#160;       ;寫指令到IR寄存器MOV   A,#0EH          ;顯示器開,光標開,光標閃爍。LCALL C51             ;寫指令到IR寄存器MOV   A,#06H       

45、   ;字符不動,光標自動右移一格。LCALL C51             ;寫指令到IR寄存器 RET                   ;返回。   6:延時間為R6*500us子程序: DELAY:  

46、60;            ;延時子程序。      MOV   R6,#5D1:   MOV   R7,#248      DJNZ  R7,$      DJNZ  R6,D1      RET第七節(jié):在

47、1602LCD顯示字 符串在前面的章節(jié)中,我們講述的都是顯示一個字母,從中,我們已知道了LCD顯示字的基本原理,下面我們就來點精采的吧。我們讓LCD上顯示出我們網(wǎng)站的網(wǎng)址:“http/”這是在ISP套件上顯示本站網(wǎng)址的圖片*源程序*;p1口為數(shù)據(jù)   rs  bit  p3.0   rw  bit  p3.1   e   bit  p3.5     org  00h   

48、60; mov  sp,#70h     mov  p1,#01h     call enrw     mov  p1,#38h     call enrw     mov  p1,#0fh     call enrw     mov  p1,#06h 

49、60;   call enrw     mov  p1,#80h     call enrw     mov  dptr,#tab     call rwram     mov  p1,#0ch     call enrw     mov  dptr,#tab

50、1     call rwram     mov  p1,#0c2h     call enrw     jmp  $enrw:clr  rs     clr  rw     clr  e     call delay     s

51、etb e     retrwram:mov r1,#00ha1:  mov  a,r1     movc a,a+dptr     call rwram2     inc  r1     cjne a,#00h,a1     retrwram2:mov p1,a     setb rs&

52、#160;    clr  rw     clr  e     call delay     setb e     retdelay:mov r4,#05d1:  mov  r5,#0ffh     djnz r5,$     djnz r4,d1   

53、60; rettab: db 'http/ ',00htab1:db 00h      end第七節(jié):用LCD顯示屏顯示字符串 來源:(朗騰電子網(wǎng)站)作者:程敬鋒    以下程序是要LCD液晶顯示屏顯示“Natiem  Electron”及“natiem”,大家不妨動手實驗來加深對LCD顯示屏的應(yīng)用和理解。(圖7.1)程序流程圖;*;    讓LCD顯示字符串的程序;*RS BIT P3.0RW BIT P3.1E BIT P3.5DB0_DB7 DATA P1;*ORG 00H

54、AJMP STARTORG 000BHAJMP INSE ;嵌入;*ORG 50HSTART: MOV TMOD,#0MOV TL0,#0MOV TH0,#0SETB EASETB ET0SETB TR0MOV R5,#50MOV SP,#60HACALL INITACALL CLSMOV A,#80HACALL WriteMOV DPTR,#L1ACALL PR_STRINGMOV A,#C0HACALL WriteMOV DPTR,#L2ACALL PR_STRINGLOOP: AJMP LOOPL1: DB 20h,4eh,61h,74h,69h,65h,6dh,20h,45h,6ch,

55、65h,63h,74H,72h,6fh,6eh,00h,L2: DB 7eH,6Eh,61H,74H,69H,65H,6DH,40H,32H,31H,63H,6eH,2eH,63H,6fH,6dH,00H;*INSE: MOV TL0,#0MOV TH0,#0DJNZ R5,NOMOV R5,#50NO: RETI;*INIT:MOV A,#38HLCALL WriteMOV A,#0EHLCALL WriteMOV A,#06HLCALL WriteRET;*CheckBusy:PUSH ACCCB_Loop: CLR RSSETB RWCLR ESETB EMOV A,DB0_DB7CLR

56、 EJB ACC.7,CB_LoopPOP ACCACALL DELAYRET;*Write:ACALL CheckBusyCLR ECLR RSCLR RWSETB EMOV DB0_DB7,ACCCLR ERET;*WriteDDR:ACALL CheckBusyCLR ESETB RSCLR RWSETB EMOV DB0_DB7,ACCCLR ERET;*CLS:MOV A,#01HACALL WriteRET;*PR_STRING:PUSH ACCPR_LOOP: CLR AMOVC A,A+DPTRJZ END_PRACALL WriteINC DPTRAJMP PR_LOOPEN

57、D_PR: POP ACCRET;*DELAY:MOV R6,#5D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETEND   將以上程序編譯后寫入單片機效果如下:(圖7.2)第八節(jié):用LCD顯示屏顯示圖形 來源:(朗騰電子網(wǎng)站)作者:程敬鋒     上一節(jié)介紹了LCD液晶顯示屏顯示字符串,那么字符型LCD液晶顯示屏能夠顯示圖形嗎?答案是肯定的?,F(xiàn)就讓字符型LCD液晶顯示屏顯示圖形的方法作一介紹。    記得開始時同大家說過,字符產(chǎn)生器RAM(CGRAM)可由使用者設(shè)計8個5*7點陣字型或圖

58、形。一個5*7的字型或圖形須用到8bytes的存儲空間,每bytes的bit5,bit6,bit7都是無效位元,LCD內(nèi)部的CGRAM的地址的6位元的長度,即A0-A5,而每一個字型或圖形須占用8bytes,所以此區(qū)域只能存8個字型或圖形。如果你已經(jīng)在CGRAM造好字型或圖形,要讓LCD顯示你的圖形時,只需要在DDRAM寫入00H-07H的地址,即可顯示DDRAM所對應(yīng)的資料了。    下面舉個例子好讓大家去理解,就讓LCD液晶顯示屏顯示一座寶殿的圖形吧!在程序設(shè)之前你必須將設(shè)計好的圖形用二進制代碼找出來,圖8.1是圖形與地址的對應(yīng)圖:(圖8.1)    前面已提到,一個字型或圖形為8bytes的資料,而且每一個資料的7,6,5元位是無效位,(5個有效位)因為它是5*7的點陣,要將圖形轉(zhuǎn)為二進制碼,你必需將圖形分解成8個圖形,分別將每個圖形用二進制代碼表示,如圖8.2-8.9:(圖8.2)DDRAM的地址07H的圖形代碼為:00H,00H,00H,00H,01H,03H,03H。(圖8.3)DDRAM的地址07H的圖形代碼為:04H,04H,0EH,1FH,1FH,1FH,0AH。(圖8.4)DDRAM

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論