LCD1602A顯示屏_第1頁(yè)
LCD1602A顯示屏_第2頁(yè)
LCD1602A顯示屏_第3頁(yè)
LCD1602A顯示屏_第4頁(yè)
LCD1602A顯示屏_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、LCD顯示屏1602A,LCD1602蘭屏,帶背光 藍(lán)底白字標(biāo)準(zhǔn)型16X2液晶顯示字符模塊(背光/藍(lán)屏)1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為地電源第2腳:VDD接5V正電源第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和RW共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電

2、平時(shí)可以寫(xiě)入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光電源正極第16腳:背光電源負(fù)極1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如表1所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A” 。以下是在液晶模塊的第二行第一個(gè)字符的位置顯示字母“A”的程序: ORG 0000HRS EQU

3、P3.7;確定具體硬件的連接方式RW EQU P3.6 ;確定具體硬件的連接方式E EQU P3.5 ;確定具體硬件的連接方式MOV P1,#00000001B ;清屏并光標(biāo)復(fù)位ACALL ENABLE;調(diào)用寫(xiě)入命令子程序MOV P1,#00111000B ;設(shè)置顯示模式:8位2行5x7點(diǎn)陣ACALL ENABLE ;調(diào)用寫(xiě)入命令子程序MOV P1,#00001111B ;顯示器開(kāi)、光標(biāo)開(kāi)、光標(biāo)允許閃爍ACALL ENABLE ;調(diào)用寫(xiě)入命令子程序MOV P1,#00000110B ;文字不動(dòng),光標(biāo)自動(dòng)右移ACALL ENABLE ;調(diào)用寫(xiě)入命令子程序MOV P1,#0C0H ;寫(xiě)入顯示起始地

4、址(第二行第一個(gè)位置)ACALL ENABLE ;調(diào)用寫(xiě)入命令子程序MOV P1,01000001B ;字母A的代碼SETB RS ;RS=1CLR RW ;RW=0 ;準(zhǔn)備寫(xiě)入數(shù)據(jù)CLR E ;E=0 ;執(zhí)行顯示命令A(yù)CALL DELAY ;判斷液晶模塊是否忙?SETB E ;E=1 ;顯示完成,程序停車(chē)AJMP $ENABLE:CLR RS ;寫(xiě)入控制命令的子程序CLR RWCLR EACALL DELAYSETB ERETDELAY:MOV P1,#0FFH ;判斷液晶顯示器是否忙的子程序CLR RSSETB RWCLR ENOPSETB EJB P1.7,DELAY ;如果P1.7為高

5、電平表示忙就循環(huán)等待RETEND    程序在開(kāi)始時(shí)對(duì)液晶模塊功能進(jìn)行了初始化設(shè)置,約定了顯示格式。注意顯示字符時(shí)光標(biāo)是自動(dòng)右移的,無(wú)需人工干預(yù),每次輸入指令都先調(diào)用判斷液晶模塊是否忙的子程序DELAY,然后輸入顯示位置的地址0C0H,最后輸入要顯示的字符A的代碼41H。SMC1602A(16*2)模擬口線接線方式連接線圖:        -       |LCM-51   | LCM-51  

6、| LCM-51      |       -|       |DB0-P1.0 | DB4-P1.4 | RW-P2.0    |       |DB1-P1.1 | DB5-P1.5 | RS-P2.1    |       |DB2-P1.2

7、| DB6-P1.6 | E-P2.2    |       |DB3-P1.3 | DB7-P1.7 | VLCD接1K電阻到GND|       - 注:AT89S52使用12M晶振=*/#define LCM_RW  P2_0 /定義引腳#define LCM_RS  P2_1#define LCM_E   P2_2#define LCM_Data  P1#define Busy&

8、#160;   0x80 /用于檢測(cè)LCM狀態(tài)字中的Busy標(biāo)識(shí)i nclude <at89x51.h>void WriteDataLCM(unsigned char WDLCM);void WriteCommandLCM(unsigned char WCLCM,BuysC);unsigned char ReadDataLCM(void);unsigned char ReadStatusLCM(void);void LCMInit(void);void DisplayOneChar(unsigned char X, unsigned char Y, unsign

9、ed char DData);void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);void Delay5Ms(void);void Delay400Ms(void);unsigned char code uctech = "uctech"unsigned char code net = ""void main(void) Delay400Ms(); /啟動(dòng)等待,等LCM講入工作狀態(tài) LCMInit(); /LCM初始化

10、60;Delay5Ms(); /延時(shí)片刻(可不要) DisplayListChar(0, 5, uctech); DisplayListChar(0, 0, net); ReadDataLCM();/測(cè)試用句無(wú)意義 while(1);/寫(xiě)數(shù)據(jù)void WriteDataLCM(unsigned char WDLCM) ReadStatusLCM(); /檢測(cè)忙 LCM_Data = WDLCM; LCM_RS = 1; LCM_RW = 0; LCM_E = 0; /若晶振速度太高可以在這后加小的延時(shí)&#

11、160;LCM_E = 0; /延時(shí) LCM_E = 1;/寫(xiě)指令void WriteCommandLCM(unsigned char WCLCM,BuysC) /BuysC為0時(shí)忽略忙檢測(cè) if (BuysC) ReadStatusLCM(); /根據(jù)需要檢測(cè)忙 LCM_Data = WCLCM; LCM_RS = 0; LCM_RW = 0;  LCM_E = 0; LCM_E = 0; LCM_E = 1; /讀數(shù)據(jù)unsigned char ReadDataLCM(void) 

12、LCM_RS = 1;  LCM_RW = 1; LCM_E = 0; LCM_E = 0; LCM_E = 1; return(LCM_Data);/讀狀態(tài)unsigned char ReadStatusLCM(void) LCM_Data = 0xFF;  LCM_RS = 0; LCM_RW = 1; LCM_E = 0; LCM_E = 0; LCM_E = 1; while (LCM_Data & Busy); /檢測(cè)忙信號(hào) r

13、eturn(LCM_Data);void LCMInit(void) /LCM初始化 LCM_Data = 0; WriteCommandLCM(0x38,0); /三次顯示模式設(shè)置,不檢測(cè)忙信號(hào) Delay5Ms();  WriteCommandLCM(0x38,0); Delay5Ms();  WriteCommandLCM(0x38,0); Delay5Ms();  WriteCommandLCM(0x38,1); /顯示模式設(shè)置,開(kāi)始要求每次檢測(cè)忙信號(hào) WriteCo

14、mmandLCM(0x08,1); /關(guān)閉顯示 WriteCommandLCM(0x01,1); /顯示清屏 WriteCommandLCM(0x06,1); / 顯示光標(biāo)移動(dòng)設(shè)置 WriteCommandLCM(0x0C,1); / 顯示開(kāi)及光標(biāo)設(shè)置/按指定位置顯示一個(gè)字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData) Y &= 0x1; X &= 0xF; /限制X不能大于15,Y不能大于1 if (Y) X |=

15、 0x40; /當(dāng)要顯示第二行時(shí)地址碼+0x40; X |= 0x80; / 算出指令碼 WriteCommandLCM(X, 0); /這里不檢測(cè)忙信號(hào),發(fā)送地址碼 WriteDataLCM(DData);/按指定位置顯示一串字符void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData) unsigned char ListLength;  ListLength = 0; Y &= 0x1; X &= 0xF; /限制X不能大于15,Y不能大于1 while (DDataListLength>0x20) /若到達(dá)字串尾則退出     if (X <= 0xF) /X坐標(biāo)應(yīng)小于0xF         DisplayOneChar(X, Y, DDataListLength); /顯示單個(gè)字符     ListLength+;     X+;     

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論