版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目六
1602液晶顯示計(jì)數(shù)器制作1602液晶簡(jiǎn)介所謂1602就是指它的顯示內(nèi)容為16X2,即顯示兩行,每行16個(gè)字符。1602LCD模塊帶有背光光源,并行接口,可以與單片機(jī)I/O口直接相連。項(xiàng)目綱要任務(wù)一1602液晶顯示字符任務(wù)二1602液晶顯示計(jì)數(shù)器制作任務(wù)一1602液晶顯示字符(一)任務(wù)要求
使用YL-236單片機(jī)實(shí)訓(xùn)考核裝置顯示模塊中的1602LCD,上電后液晶屏第一行居中顯示字符Welcome,第二行居中顯示字符2013-05-01。顯示界面如下圖所示。任務(wù)一1602液晶顯示字符實(shí)現(xiàn)本任務(wù)的方法:可以采用前面LED點(diǎn)陣顯示的方法,建立顯示緩沖區(qū),將要顯示的內(nèi)容在顯示緩沖區(qū)中定義,掃描函數(shù)負(fù)責(zé)將顯示緩沖區(qū)中的內(nèi)容送入DDRAM,其余全部由顯示屏內(nèi)部電路進(jìn)行掃描顯示。實(shí)現(xiàn)的方法這種方法看起來(lái)是多進(jìn)行了一次緩沖(因?yàn)?602LCD已經(jīng)有內(nèi)部的顯存了),但比較直觀,容易理解;還有一種方法就是直接根據(jù)字符的位置,由顯示函數(shù)直接將要顯示的字符送入緩存中相應(yīng)的位置。本項(xiàng)目采用前面一種方法。(二)任務(wù)分析任務(wù)一1602液晶顯示字符2.1602液晶顯示模塊知識(shí)(1)模塊外形及引腳
YL-236裝置上1602液晶結(jié)構(gòu)示意圖數(shù)據(jù)總線接口DB0-DB7液晶電源開關(guān)控制引腳任務(wù)一1602液晶顯示字符2.1602液晶顯示模塊知識(shí)(1)模塊外形及引腳1602液晶引腳及其功能引腳號(hào)名稱輸入/輸出作用1Vss電源負(fù)端(0V)2Vdd電源正端(+5V)3V0對(duì)比度調(diào)節(jié)4RS輸入數(shù)據(jù)/指令寄存器選擇端RS=0,輸入指令;RS=1,輸入數(shù)據(jù)。5R/W輸入讀寫選擇端R/W=0,寫操作;R/W,讀操作。6E輸入使能信號(hào),下降沿觸發(fā)7-14DB0-DB7輸入/輸出數(shù)據(jù)總線從低位到高位15LEDA背光電源正端(+5V)16LEDK背光電源負(fù)端(0V)任務(wù)一1602液晶顯示字符2.1602液晶顯示模塊知識(shí)(2)模塊顯示字符原理
模塊內(nèi)部由三部分組成,控制器和驅(qū)動(dòng)器往往由專用的集成電路完成,大部分都是HD44780或其兼容的芯片。HD44780主要由DDRAM、CGROM等部分組成。任務(wù)一1602液晶顯示字符2.1602液晶顯示模塊知識(shí)(2)模塊顯示字符原理
DDRAM為數(shù)據(jù)顯示RAM(DataDisplayRAM),用以存放要LCD顯示的數(shù)據(jù),能存儲(chǔ)80個(gè)字符。只要將標(biāo)準(zhǔn)的ASCⅡ碼放入DDRAM,內(nèi)部控制線路就會(huì)自動(dòng)將數(shù)據(jù)傳送到顯示器上,并顯示出該ASCⅡ碼對(duì)應(yīng)的字符。顯示位置序號(hào)1234567。。。。。。3940DDRAM地址第一行00010203040506。。。。。。2627第二行40414243444546。。。。。。6667注:如果要在LCD1602屏幕的第一行第二列顯示一個(gè)"P"字,就要向DDRAM的01H地址寫入“P”字的代碼0X50就行了。那么一行可有40個(gè)地址呀?是的,在1602中我們就用前16個(gè)就行了。第二行也一樣用前16個(gè)地址,所以在后面寫程序的時(shí)候注意第二行的位置是從40開始的。另外需要注意的是:我們往DDRAM里的01H地址處送一個(gè)數(shù)據(jù),如0x50(P的代碼)并不能顯示P出來(lái),原因就是如果你要想在DDRAM的01H地址處顯示數(shù)據(jù),則必須將01H加上80H,即81H,若要在DDRAM的02H處顯示數(shù)據(jù),則必須將02H加上80H即82H。依次類推。任務(wù)一1602液晶顯示字符2.1602液晶顯示模塊知識(shí)(2)模塊顯示字符原理
CGROM為字符產(chǎn)生器ROM(CharacterGeneratorROM),它存儲(chǔ)了由8位字符碼生成的192個(gè)5點(diǎn)陣字符和32種5×10點(diǎn)陣字符。8位字符編碼和字符的對(duì)應(yīng)關(guān)系(內(nèi)置字符集)如圖所示。每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(0X41),顯示時(shí)模塊把地址0X41中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”了。任務(wù)一1602液晶顯示字符2.1602液晶顯示模塊知識(shí)模塊與單片機(jī)硬件接口電路(3)模塊的使用——硬件接口電路任務(wù)一1602液晶顯示字符2.1602液晶顯示模塊知識(shí)(3)模塊的使用——模塊控制指令指令名稱控制信號(hào)指令代碼功能RSR/WD7D6D5D4D3D2D1D0顯示模式設(shè)置0000111000設(shè)置16X2,5X7點(diǎn)陣,8位數(shù)據(jù)顯示開關(guān)控制0000001DCB設(shè)置顯示、光標(biāo)、閃爍開關(guān):D:為1開顯示;為0關(guān)顯示C:為1顯示光標(biāo);為0不顯示光標(biāo)B:為1光標(biāo)閃爍;為0不顯示光標(biāo)輸入模式控制00000001NS設(shè)置光標(biāo)、顯示畫面移動(dòng)方向N:為1,讀寫一個(gè)字符后,地址指針加1,光標(biāo)加1;為0,讀寫一個(gè)字符后地址指針減1,光標(biāo)減1。S:為1,寫入一個(gè)字符后整屏左移(N=1)或右移(N=0);為0,寫一個(gè)字符整屏顯示不動(dòng)。讀數(shù)據(jù)11數(shù)據(jù)從DDRAM中讀取數(shù)據(jù)寫數(shù)據(jù)10數(shù)據(jù)對(duì)DDRAM進(jìn)行寫數(shù)據(jù)清屏0000000001清除顯示器的內(nèi)容,光標(biāo)到左上角光標(biāo)歸位設(shè)定000000001*地址計(jì)數(shù)器清0,DDRAM數(shù)據(jù)不變。*表示為0或1。數(shù)據(jù)指針設(shè)置0080H+地址碼(0-27H,40-47H)設(shè)置數(shù)據(jù)地址指針忙碌標(biāo)志01BF指示LCD目前的工作情況。BF為1,LCD忙,不接收單片機(jī)送過(guò)來(lái)的數(shù)據(jù);為0,表示已準(zhǔn)備好接收指令或數(shù)據(jù)任務(wù)一1602液晶顯示字符2.1602液晶顯示模塊知識(shí)(3)模塊的使用——模塊指令操作時(shí)序任務(wù)一1602液晶顯示字符2.1602液晶顯示模塊知識(shí)(3)模塊的使用——驅(qū)動(dòng)函數(shù)voiddelay(uintus);//短延時(shí)函數(shù)聲明voiddelay_ms(uintms);//毫秒級(jí)延時(shí)函數(shù)聲明voidwcmd_1602(ucharcmd);//寫命令到LCD函數(shù)聲明voidwdat_1602(uchardat);//寫數(shù)據(jù)到LCD函數(shù)聲明voidinit_1602();//初始化函數(shù)聲明voiddisp_one(ucharx,uchary,uchardispbuf);//到指定位置顯示單個(gè)字符的函數(shù)聲明voiddisp_mul(ucharx,uchary,ucharcode*dispbuf);//到指定的位置顯示多個(gè)字符的函數(shù)聲明任務(wù)一1602液晶顯示字符2.1602液晶顯示模塊知識(shí)(3)模塊的使用——驅(qū)動(dòng)函數(shù)/******向LCD寫入命令********/voidwcmd_1602(ucharcmd){delay(60);//延時(shí),不檢測(cè)忙信號(hào)E=0;//初始狀態(tài)E=0RS=0;//初始狀態(tài)RS=0
RW=0;//初始狀態(tài)RW=0
_nop_();//極短延時(shí)
DATAPORT=cmd;//單片機(jī)給出有效的指令數(shù)據(jù)
_nop_();//極短延時(shí)_nop_();
E=1;//產(chǎn)生E下降沿執(zhí)行命令寫入_nop_();_nop_();_nop_();E=0;
_nop_();}任務(wù)一1602液晶顯示字符2.1602液晶顯示模塊知識(shí)(3)模塊的使用——驅(qū)動(dòng)函數(shù)/******到指定的位置顯示字符*******************/voiddisp_one(ucharx,uchary,uchardispbuf){
y&=0x01;//限制行數(shù)y不能大于1 x&=0x0f;//限制1行字符數(shù)x不能大于15 if(y==1)//如果在第二行則字符地址從0x40 x|=0x40; x|=0x80;//設(shè)置地址指針 wcmd_1602(x);//寫地址碼 wdat_1602(dispbuf);//寫數(shù)據(jù)}任務(wù)一1602液晶顯示字符2.1602液晶顯示模塊知識(shí)(3)模塊的使用——驅(qū)動(dòng)函數(shù)/******到指定的位置顯示多個(gè)字符****************/voiddisp_mul(ucharx,uchary,ucharcode*dispbuf){ ucharlen,i; len=strlen(dispbuf);//計(jì)算要顯示的字符串長(zhǎng)度 y&=0x01;//限制X,Y位置 x&=0x0F; if(x<=0x0F)//X坐標(biāo)小于一行執(zhí)行顯示
{ for(i=0;i<len;i++) {
disp_one(x,y,dispbuf[i]);//顯示單個(gè)字符 x++; }
}
}任務(wù)一1602液晶顯示字符3.C51的庫(kù)函數(shù)簡(jiǎn)介
C51強(qiáng)大功能及其高效率的重要體現(xiàn)之一在于其豐富的可直接調(diào)用的庫(kù)函數(shù),要使用庫(kù)函數(shù),則必須將用到的每個(gè)庫(kù)函數(shù)都在相應(yīng)的頭文件(.H)中給出了函數(shù)原型聲明,即用#include,將有關(guān)的頭文件包含進(jìn)來(lái),然后再用戶的源文件中就可以直接使用包含的頭文件中的庫(kù)函數(shù)了。(1)專用寄存器庫(kù)函數(shù)REG××.H專用寄存器庫(kù)函數(shù)REG××.H中定義了所有8052的SFR及其位,定義時(shí)都用大寫字母。任務(wù)一1602液晶顯示字符3.C51的庫(kù)函數(shù)簡(jiǎn)介(2)字符串函數(shù)STRING.H
該文件中包括了對(duì)字符的復(fù)制、比較、移動(dòng)等函數(shù),使用這些函數(shù)可以很方便地對(duì)字符串進(jìn)行處理。例如:strlen函數(shù)的函數(shù)原型為intstrlen(char*src);其功能是返回字符串src中的字符個(gè)數(shù),包括結(jié)束符。(3)內(nèi)部函數(shù)INTRINS.H該文件提供了幾個(gè)最常用的移位操作函數(shù)以及空操作等函數(shù)。例如:_nop_函數(shù)的原型為void_nop_(void),其功能是產(chǎn)生一個(gè)MCS-51單片機(jī)的NOP(空)指令,實(shí)現(xiàn)短暫的延時(shí)。任務(wù)一1602液晶顯示字符(三)硬件電路1602液晶顯示字符電路原理圖任務(wù)一1602液晶顯示字符(三)硬件電路硬件模塊接線圖任務(wù)一1602液晶顯示字符(四)參考程序#include<reg52.h>#include"1602LCD.h"/******變量定義***************/ucharcodeOnedisp1[] ={"Welcome!"}; //待顯示的字符串ucharcodeOnedisp2[] ={"2013-05-01"}; //待顯示的字符串/******主函數(shù)**************/voidmain() //定義主函數(shù){init_1602();
//LCD初始化
delay(50); //延時(shí)等待穩(wěn)定disp_mul(0,0,Onedisp1);//第一行顯示W(wǎng)elcome!
disp_mul(0,1,Onedisp2); //第二行顯示2013-05-01while(1); //無(wú)限循環(huán)}任務(wù)一1602液晶顯示字符(五)任務(wù)實(shí)施步驟1.硬件電路連接;2.打開KEIL軟件,通過(guò)菜單“項(xiàng)目/新建項(xiàng)目”,新建立一個(gè)工程項(xiàng)目1602LCD1,然后再建一個(gè)文件名為1602LCD1.C的源程序文件,將上面的參考程序輸入并保存,同時(shí)將該文件添加到項(xiàng)目中;3.對(duì)源程序進(jìn)行編譯和鏈接,產(chǎn)生目標(biāo)代碼并使用下載器將目標(biāo)代碼寫入單片機(jī);4.通電觀察運(yùn)行結(jié)果,如果不能實(shí)現(xiàn)任務(wù)要求,則修改程序、調(diào)整和檢查硬件連接,直到1602液晶顯示正常;5.進(jìn)行扎線,整理。謝謝!任務(wù)二1602液晶顯示計(jì)數(shù)器制作(一)任務(wù)要求
使用YL-236單片機(jī)實(shí)訓(xùn)考核裝置顯示模塊中的1602LCD制作一個(gè)計(jì)數(shù)器,顯示界面如圖所示。該計(jì)數(shù)器具體要求如下:1.計(jì)數(shù)器上電后第一行顯示“Count:000”(在Count:后空一格,然后是三位計(jì)數(shù)器的顯示數(shù)值從000-999)。第二行顯示功能操作鍵提示字符“S1:+S2:-S3:R”。2.計(jì)數(shù)器使用三個(gè)按鍵對(duì)計(jì)數(shù)器進(jìn)行控制。其中:S1鍵為計(jì)數(shù)值加鍵,每按一次,顯示的計(jì)數(shù)值加1;S2為計(jì)數(shù)值減鍵,每按一次鍵,顯示的計(jì)數(shù)值減1;S3鍵為復(fù)位鍵,按一次,計(jì)數(shù)器復(fù)位,顯示的計(jì)數(shù)值為000。任務(wù)二1602液晶顯示計(jì)數(shù)器制作與本項(xiàng)目的第一個(gè)任務(wù)相比,LCD1602在顯示上的最大區(qū)別是第一行中的計(jì)數(shù)值會(huì)隨著計(jì)數(shù)的進(jìn)行而實(shí)時(shí)改變;而第一行的count:和第二行顯示的字符是固定不變的,這些可以采用與第一個(gè)任務(wù)相同的方法,調(diào)用到指定的位置顯示字符的子函數(shù),將要顯示的內(nèi)容送到顯示緩沖區(qū)。而計(jì)數(shù)值因?yàn)槭亲兞?,所以必須定義變量,顯示時(shí)只要將該變量的實(shí)時(shí)值拆分后送到相應(yīng)的顯示位置就可以顯示所需的內(nèi)容了。按鍵等部分實(shí)現(xiàn)比較簡(jiǎn)單,這里就不再多述。(二)任務(wù)分析任務(wù)二1602液晶顯示計(jì)數(shù)器制作(三)硬件電路液晶顯示計(jì)數(shù)器電路原理圖任務(wù)二1602液晶顯示計(jì)數(shù)器制作(三)硬件電路液晶顯示計(jì)數(shù)器電路模塊接線圖任務(wù)二1602液晶顯示計(jì)數(shù)器制作(四)參考程序主函數(shù)流程圖任務(wù)二1602液晶顯示計(jì)數(shù)器制作/******變量定義***************/ucharOnedisp1[]={"Count:"};//待顯示的字符串ucharcodeOnedisp2[]={"S1:+S2:-S3:P"};//待顯示的字符串ucharcodedisp_tab[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x20};//0-9,不顯示uintcount=0;//設(shè)置計(jì)數(shù)變量(四)參考程序/******計(jì)數(shù)變量處理***************/Onedisp1[11]=disp_tab[count/100];//取計(jì)數(shù)百位數(shù)值送緩沖區(qū)Onedisp1[12]=disp_tab[(count%100)/10];//取
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年北京市高考政治試卷(含答案逐題解析)
- 2024購(gòu)買房產(chǎn)合同樣本
- 2024安置房買賣合同范本
- 2024年工程設(shè)備長(zhǎng)期租賃協(xié)議書
- 2024年工程項(xiàng)目防水合同文件
- 2024教室租賃合同
- 2024年大型預(yù)拌混凝土購(gòu)銷合同
- 2024年大型工程機(jī)械設(shè)備租賃與運(yùn)輸合同
- 2024商店加盟連鎖商店加盟合同
- 2024年企業(yè)并購(gòu)合同:并購(gòu)細(xì)節(jié)與權(quán)益分配
- 2024年氣象知識(shí)競(jìng)賽試題及滿分答案
- 2024年人教版小學(xué)六年級(jí)數(shù)學(xué)(上冊(cè))期中考卷附答案
- 高中政治選擇性必修3(綜合測(cè)試卷)(附答案)-2022-2023學(xué)年高二下學(xué)期政治選擇性必修3
- DLT1241-2013 電力工業(yè)以太網(wǎng)交換機(jī)技術(shù)規(guī)范
- 中核匯能吉林能源有限公司考試題庫(kù)
- 2023廣東廣州市白云區(qū)社會(huì)化工會(huì)工作者招聘筆試歷年典型考題及考點(diǎn)剖析附答案帶詳解
- 政府會(huì)議備忘錄格式范文
- 6儲(chǔ)能電站施工方案
- 可編程邏輯控制器(PLC)行業(yè)市場(chǎng)調(diào)研分析報(bào)告
- 學(xué)習(xí)簡(jiǎn)單的木工技巧 綜合實(shí)踐活動(dòng)七年級(jí)下冊(cè)
- 2024年江蘇南京市駐寧部隊(duì)軍人隨軍家屬(事業(yè)編制)定向招聘60人歷年公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
評(píng)論
0/150
提交評(píng)論