




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
4.5.3字符型LCD液晶顯示器的應(yīng)用《單片機(jī)應(yīng)用技術(shù)(C語(yǔ)言版)》深圳職業(yè)技術(shù)學(xué)院
12345678910111213141516VSSVDDVOLCD模塊DB0DB1DB3DB2DB5DB4DB7DB6AKRSR/WERSR/W操作00寫(xiě)命令操作(初始化、光標(biāo)定位等)01讀狀態(tài)操作(讀忙標(biāo)志)10寫(xiě)數(shù)據(jù)操作(要顯示的內(nèi)容)11讀數(shù)據(jù)操作(可以把顯示存儲(chǔ)區(qū)中的數(shù)據(jù)反讀出來(lái))使能端E引腳下降沿時(shí)執(zhí)行操作四種操作三種常用寫(xiě)命令操作是指給液晶模塊寫(xiě)入命令字,也就是指令字。讀狀態(tài)操作用來(lái)讀入液晶模塊的忙標(biāo)志。寫(xiě)數(shù)據(jù)操作用來(lái)給液晶模塊寫(xiě)入顯示的數(shù)據(jù)。RSR/W操作00寫(xiě)命令操作(初始化、光標(biāo)定位等)01讀狀態(tài)操作(讀忙標(biāo)志)10寫(xiě)數(shù)據(jù)操作(要顯示的內(nèi)容)11讀數(shù)據(jù)操作(可以把顯示存儲(chǔ)區(qū)中的數(shù)據(jù)反讀出來(lái))RS=0;R/W=1;E下降沿unsignedcharlcd_r_start()//8位數(shù)據(jù)線(xiàn)連接方式{unsignedchars;RW=1; //RW=1,RS=0,讀LCD狀態(tài)
delayus();RS=0;delayus();E=1; //E端時(shí)序
delayus();
s=LCD_DB; //從LCD的數(shù)據(jù)口讀狀態(tài)
delayus();E=0;delayus();RW=0;delayus();
return(s); //返回讀取的LCD狀態(tài)字}讀狀態(tài)函數(shù)i=lcd_r_start();//調(diào)用讀狀態(tài)函數(shù),讀取LCD狀態(tài)字D7D6D5D4D3D2D1D0BFBF=1:表示LCD正在忙
BF=0:表示LCD不忙do{
i=lcd_r_start();
//調(diào)用讀狀態(tài)函數(shù),讀取LCD狀態(tài)字
i&=0x80;//采用與操作屏蔽掉低7位
delayms(1);
//延時(shí)
}while(i!=0);
//LCD忙,繼續(xù)查詢(xún),否則退出循環(huán)查詢(xún)忙狀態(tài)程序段voidlcd_w_cmd(unsignedcharcom)//8位數(shù)據(jù)線(xiàn)連接方式{unsignedchari;
do{//查L(zhǎng)CD忙操作
i=lcd_r_start(); //調(diào)用讀狀態(tài)字函數(shù)
i=i&0x80;//與操作屏蔽掉低7位
delayms(1);}while(i!=0); //LCD忙,繼續(xù)查詢(xún),否則退出循環(huán)
RW=0;delayus();RS=0;
//RW=0,RS=0,寫(xiě)LCD命令字
delayus();E=1;
//E端時(shí)序
delayus();LCD_DB=com; //將com中的命令字寫(xiě)入LCD數(shù)據(jù)口
delayus();E=0;delayus();RW=1;delayms(50);}寫(xiě)命令函數(shù)寫(xiě)數(shù)據(jù)操作:RS=1;R/W=0;E下降沿voidlcd_w_dat(unsignedchardat)//8位數(shù)據(jù)線(xiàn)連接方式{unsignedchari;
do{//查L(zhǎng)CD忙操作
i=lcd_r_start(); //調(diào)用讀狀態(tài)字函數(shù)
i=i&0x80;//與操作屏蔽掉低7位
delayms(1);}while(i!=0); //LCD忙,繼續(xù)查詢(xún),否則退出循環(huán)
RW=0;delayus();RS=0; //RW=0,RS=0,寫(xiě)LCD命令字
delayus();E=1; //E端時(shí)序
delayus();LCD_DB=dat; //將com中的命令字寫(xiě)入LCD數(shù)據(jù)口
delayus();E=0;delayus();RW=1;delayms(50);}寫(xiě)數(shù)據(jù)函數(shù)寫(xiě)命令操作是指給LCD寫(xiě)入命令字。寫(xiě)數(shù)據(jù)是指寫(xiě)入要顯示的字符voidlcd_w_cmd(unsignedcharcmd);//cmd為要寫(xiě)入的命令字編號(hào)指令名稱(chēng)控制信號(hào)命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012歸home位000000001×3輸入方式設(shè)置00000001I/DS4顯示狀態(tài)設(shè)置0000001DCB5光標(biāo)畫(huà)面滾動(dòng)000001S/CR/L××6工作方式設(shè)置00001DLNF××7CGRAM地址設(shè)置0001A5A4A3A2A1A08DDRAM地址設(shè)置001A6A5A4A3A2A1A09讀BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模塊常用指令表lcd_w_cmd(0x01);//LCD清屏,同時(shí)光標(biāo)定位在第1行,第1列LCD清屏命令字在LCD模塊上指定光標(biāo)位置,也就是下一個(gè)要顯示字符的位置在哪里。編號(hào)指令名稱(chēng)控制信號(hào)命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012歸home位000000001×3輸入方式設(shè)置00000001I/DS4顯示狀態(tài)設(shè)置0000001DCB5光標(biāo)畫(huà)面滾動(dòng)000001S/CR/L××6工作方式設(shè)置00001DLNF××7CGRAM地址設(shè)置0001A5A4A3A2A1A08DDRAM地址設(shè)置001A6A5A4A3A2A1A09讀BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模塊常用指令表
列行123456789101112131415161808182838485868788898A8B8C8D8E8F2C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF光標(biāo)位置與相應(yīng)命令字(1)表中命令字以十六進(jìn)制形式給出,該命令字就是與LCD顯示位置相對(duì)應(yīng)的DDRAM地址。(2)第一行和第二行的命令字是不連續(xù)的。lcd_w_cmd(0x84);//光標(biāo)定位在第1行第5列光標(biāo)畫(huà)面滾動(dòng)命令字可以設(shè)置LCD上畫(huà)面滾動(dòng)效果編號(hào)指令名稱(chēng)控制信號(hào)命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012歸home位000000001×3輸入方式設(shè)置00000001I/DS4顯示狀態(tài)設(shè)置0000001DCB5光標(biāo)畫(huà)面滾動(dòng)000001S/CR/L××6工作方式設(shè)置00001DLNF××7CGRAM地址設(shè)置0001A5A4A3A2A1A08DDRAM地址設(shè)置001A6A5A4A3A2A1A09讀BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模塊常用指令表CGRAM地址設(shè)置可以讓我們自己編寫(xiě)要顯示的字形編號(hào)指令名稱(chēng)控制信號(hào)命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012歸home位000000001×3輸入方式設(shè)置00000001I/DS4顯示狀態(tài)設(shè)置0000001DCB5光標(biāo)畫(huà)面滾動(dòng)000001S/CR/L××6工作方式設(shè)置00001DLNF××7CGRAM地址設(shè)置0001A5A4A3A2A1A08DDRAM地址設(shè)置001A6A5A4A3A2A1A09讀BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模塊常用指令表歸位命令可以使得光標(biāo)返回到第一行第一列編號(hào)指令名稱(chēng)控制信號(hào)命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012歸home位000000001×3輸入方式設(shè)置00000001I/DS4顯示狀態(tài)設(shè)置0000001DCB5光標(biāo)畫(huà)面滾動(dòng)000001S/CR/L××6工作方式設(shè)置00001DLNF××7CGRAM地址設(shè)置0001A5A4A3A2A1A08DDRAM地址設(shè)置001A6A5A4A3A2A1A09讀BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模塊常用指令表LCD初始工作方式設(shè)置顯示狀態(tài)設(shè)置清屏返回輸入方式設(shè)置001DLNF00DL:設(shè)置LCD的連接方式;DL=1:8位、DL=0:4位;N:設(shè)置LCD顯示的行數(shù);N=1:2行、N=0:1行F:用來(lái)設(shè)置LCD字符顯示的點(diǎn)陣;F=1:5×10、F=0:5×7例:設(shè)置數(shù)據(jù)位數(shù)8位,2行顯示,5×7點(diǎn)陣字符00111000lcd_w_cmd(0x38);//數(shù)據(jù)位數(shù)8位
//2行顯示,5×7點(diǎn)陣字符化工作方式設(shè)置LCD初始工作方式設(shè)置顯示狀態(tài)設(shè)置清屏返回輸入方式設(shè)置00001DCBD:整體顯示開(kāi)關(guān),D=1,表示開(kāi)顯示,D=0,表示關(guān)顯示C:光標(biāo)開(kāi)關(guān),C=1,表示有光標(biāo)顯示,C=0,表示沒(méi)有光標(biāo)顯示B:控制光標(biāo)是否閃爍,B=1,光標(biāo)閃爍,B=0,光標(biāo)不閃爍例如:設(shè)置開(kāi)顯示,沒(méi)有光標(biāo),光標(biāo)位字符不閃爍
00001100lcd_w_cmd(0x38);//開(kāi)顯示,沒(méi)有光標(biāo),光標(biāo)位字符不閃爍化顯示狀態(tài)設(shè)置試一試:寫(xiě)出設(shè)置開(kāi)顯示,有光標(biāo),光標(biāo)位字符閃爍的命令字是什么呢?LCD初始工作方式設(shè)置顯示狀態(tài)設(shè)置清屏返回輸入方式設(shè)置lcd_w_cmd(0x01);//LCD清屏,同時(shí)光標(biāo)定位在第1行,第1列化清屏命令LCD初始化工作方式設(shè)置顯示狀態(tài)設(shè)置清屏返回輸入方式設(shè)置000001I/DSI/D:光標(biāo)移動(dòng)方向設(shè)置,I/D=1:增量方式右移、I/D=0:減量方式左移S:控制屏幕上所有文字是否移動(dòng),S=1:移位、S=0:不移位例如:設(shè)置光標(biāo)增量方式右移,顯示字符不移動(dòng)
00000110lcd_w_cmd(0x06);//光標(biāo)增量方式右移,顯示字符不移動(dòng)輸入方式設(shè)置LCD初始工作方式設(shè)置顯示狀態(tài)設(shè)置清屏返回輸入方式設(shè)置化//函數(shù)名:lcd_init//函數(shù)功能:lcd初始化
//形式參數(shù):無(wú)//返回值:無(wú)voidlcd_init(){lcd_w_cmd(0x3c);//設(shè)置工作方式lcd_w_cmd(0x0e);//設(shè)置光標(biāo)lcd_w_cmd(0x01);//清屏lcd_w_cmd(0x06);//設(shè)置輸入方式}初始化函數(shù)一般一個(gè)獨(dú)立的模塊包括兩個(gè)文件1)頭文件,它里面定義所有液晶顯示需要的預(yù)定義和函數(shù)聲明;2)c程序源文件,液晶顯示所需要的函數(shù)。模塊化程序設(shè)計(jì)工程主函數(shù)模塊main.c液晶顯示模塊lcd.hlcd.c/*************lcd.h**********/sbitRS=P2^6;//P2.6sbitRW=P2^5;//P2.5sbitE=P2^7; //P2.7#defineLCD_DBP0控制接口定義/***********************lcd.h**************************/sbitRS=P2^6;//P2.6sbitRW=P2^5;//P2.5sbitE=P2^7; //P2.7#defineLCD_DBP0externunsignedcharlcd_r_start();//讀狀態(tài)函數(shù)externvoidlcd_w_cmd(unsignedcharcom);//寫(xiě)命令字函數(shù)externvoidlcd_w_dat(unsignedchardat);//寫(xiě)數(shù)據(jù)函數(shù)externvoidlcd_init(); //LCD初始化函數(shù)externvoiddelayms(unsignedinti);//可控延時(shí)函數(shù)externvoiddelayus(); //延時(shí)函數(shù),5個(gè)機(jī)器周期Lcd.h在C語(yǔ)言中,修飾符extern用在變量或者函數(shù)的聲明前,用來(lái)說(shuō)明這個(gè)變量/函數(shù)是在別處定義的,要在此處引用或調(diào)用。/******************************lcd.c**************************/#include<regx51.h>#include<lcd.h>#include<INTRINS.H>//庫(kù)函數(shù)頭文件,代碼中引用了_nop_()函數(shù)
Lcd.cunsignedcharlcd_r_start()//8位數(shù)據(jù)線(xiàn)連接方式{unsignedchars;RW=1; //RW=1,RS=0,讀LCD狀態(tài)
delayus();RS=0;delayus();E=1; //E端時(shí)序
delayus();
s=LCD_DB; //從LCD的數(shù)據(jù)口讀狀態(tài)
delayus();E=0;delayus();RW=0;delayus();
return(s); //返回讀取的LCD狀態(tài)字}讀狀態(tài)函數(shù)voidlcd_w_cmd(unsignedcharcom)//8位數(shù)據(jù)線(xiàn)連接方式{unsignedchari;
do{//查L(zhǎng)CD忙操作
i=lcd_r_start(); //調(diào)用讀狀態(tài)字函數(shù)
i=i&0x80;//與操作屏蔽掉低7位
delayms(1);}while(i!=0); //LCD忙,繼續(xù)查詢(xún),否則退出循環(huán)
RW=0;delayus();RS=0;
//RW=0,RS=0,寫(xiě)LCD命令字
delayus();E=1;
//E端時(shí)序
delayus();LCD_DB=com; //將com中的命令字寫(xiě)入LCD數(shù)據(jù)口
delayus();E=0;delayus();RW=1;delayms(50);}寫(xiě)命令函數(shù)voidlcd_w_cmd(unsignedcharcom)//8位數(shù)據(jù)線(xiàn)連接方式{unsignedchari;
do{//查L(zhǎng)CD忙操作
i=lcd_r_start(); //調(diào)用讀狀態(tài)字函數(shù)
i=i&0x80;//與
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 菊花烘干項(xiàng)目節(jié)能評(píng)估報(bào)告(節(jié)能專(zhuān)用)
- 2025年四省名校物理高一下期末聯(lián)考模擬試題含解析
- 健康社區(qū)建設(shè)課件
- 2025年中國(guó)樓梯行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資前景展望報(bào)告
- 環(huán)評(píng)資質(zhì)申請(qǐng)報(bào)告范文
- 2025年中國(guó)耐磨石墨制品行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 健康的校園生活
- 信息技術(shù)-計(jì)算機(jī)行業(yè)深度報(bào)告:RWA:真實(shí)資產(chǎn)走向鏈上世界開(kāi)啟數(shù)字金融新時(shí)代
- 2025年港股醫(yī)藥行業(yè)投資策略分析報(bào)告:創(chuàng)新藥主線(xiàn)關(guān)注出海機(jī)會(huì)
- 營(yíng)銷(xiāo)宣傳品領(lǐng)用管理辦法
- GB 18068-2000水泥廠(chǎng)衛(wèi)生防護(hù)距離標(biāo)準(zhǔn)
- 教師調(diào)動(dòng)登記表(模板)
- 2022年醫(yī)院收費(fèi)員考試試題及答案
- 粵信簽小程序操作使用說(shuō)明
- 福建省林業(yè)行政執(zhí)法人員法律考試
- 《組織機(jī)構(gòu)代碼證》word版
- 鋼筋下料單(參考模板)
- 歐亨利短篇小說(shuō)集(課堂PPT)
- OPGW光纜計(jì)算
- 5710裝備生產(chǎn)過(guò)程質(zhì)量監(jiān)督要求
- 建筑分戶(hù)驗(yàn)收監(jiān)理質(zhì)量評(píng)估報(bào)告
評(píng)論
0/150
提交評(píng)論