版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目六
1602液晶顯示計數(shù)器制作1602液晶簡介所謂1602就是指它的顯示內容為16X2,即顯示兩行,每行16個字符。1602LCD模塊帶有背光光源,并行接口,可以與單片機I/O口直接相連。項目綱要任務一1602液晶顯示字符任務二1602液晶顯示計數(shù)器制作任務一1602液晶顯示字符(一)任務要求
使用YL-236單片機實訓考核裝置顯示模塊中的1602LCD,上電后液晶屏第一行居中顯示字符Welcome,第二行居中顯示字符2013-05-01。顯示界面如下圖所示。任務一1602液晶顯示字符實現(xiàn)本任務的方法:可以采用前面LED點陣顯示的方法,建立顯示緩沖區(qū),將要顯示的內容在顯示緩沖區(qū)中定義,掃描函數(shù)負責將顯示緩沖區(qū)中的內容送入DDRAM,其余全部由顯示屏內部電路進行掃描顯示。實現(xiàn)的方法這種方法看起來是多進行了一次緩沖(因為1602LCD已經有內部的顯存了),但比較直觀,容易理解;還有一種方法就是直接根據(jù)字符的位置,由顯示函數(shù)直接將要顯示的字符送入緩存中相應的位置。本項目采用前面一種方法。(二)任務分析任務一1602液晶顯示字符2.1602液晶顯示模塊知識(1)模塊外形及引腳
YL-236裝置上1602液晶結構示意圖數(shù)據(jù)總線接口DB0-DB7液晶電源開關控制引腳任務一1602液晶顯示字符2.1602液晶顯示模塊知識(1)模塊外形及引腳1602液晶引腳及其功能引腳號名稱輸入/輸出作用1Vss電源負端(0V)2Vdd電源正端(+5V)3V0對比度調節(jié)4RS輸入數(shù)據(jù)/指令寄存器選擇端RS=0,輸入指令;RS=1,輸入數(shù)據(jù)。5R/W輸入讀寫選擇端R/W=0,寫操作;R/W,讀操作。6E輸入使能信號,下降沿觸發(fā)7-14DB0-DB7輸入/輸出數(shù)據(jù)總線從低位到高位15LEDA背光電源正端(+5V)16LEDK背光電源負端(0V)任務一1602液晶顯示字符2.1602液晶顯示模塊知識(2)模塊顯示字符原理
模塊內部由三部分組成,控制器和驅動器往往由專用的集成電路完成,大部分都是HD44780或其兼容的芯片。HD44780主要由DDRAM、CGROM等部分組成。任務一1602液晶顯示字符2.1602液晶顯示模塊知識(2)模塊顯示字符原理
DDRAM為數(shù)據(jù)顯示RAM(DataDisplayRAM),用以存放要LCD顯示的數(shù)據(jù),能存儲80個字符。只要將標準的ASCⅡ碼放入DDRAM,內部控制線路就會自動將數(shù)據(jù)傳送到顯示器上,并顯示出該ASCⅡ碼對應的字符。顯示位置序號1234567。。。。。。3940DDRAM地址第一行00010203040506。。。。。。2627第二行40414243444546。。。。。。6667注:如果要在LCD1602屏幕的第一行第二列顯示一個"P"字,就要向DDRAM的01H地址寫入“P”字的代碼0X50就行了。那么一行可有40個地址呀?是的,在1602中我們就用前16個就行了。第二行也一樣用前16個地址,所以在后面寫程序的時候注意第二行的位置是從40開始的。另外需要注意的是:我們往DDRAM里的01H地址處送一個數(shù)據(jù),如0x50(P的代碼)并不能顯示P出來,原因就是如果你要想在DDRAM的01H地址處顯示數(shù)據(jù),則必須將01H加上80H,即81H,若要在DDRAM的02H處顯示數(shù)據(jù),則必須將02H加上80H即82H。依次類推。任務一1602液晶顯示字符2.1602液晶顯示模塊知識(2)模塊顯示字符原理
CGROM為字符產生器ROM(CharacterGeneratorROM),它存儲了由8位字符碼生成的192個5點陣字符和32種5×10點陣字符。8位字符編碼和字符的對應關系(內置字符集)如圖所示。每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(0X41),顯示時模塊把地址0X41中的點陣字符圖形顯示出來,我們就能看到字母“A”了。任務一1602液晶顯示字符2.1602液晶顯示模塊知識模塊與單片機硬件接口電路(3)模塊的使用——硬件接口電路任務一1602液晶顯示字符2.1602液晶顯示模塊知識(3)模塊的使用——模塊控制指令指令名稱控制信號指令代碼功能RSR/WD7D6D5D4D3D2D1D0顯示模式設置0000111000設置16X2,5X7點陣,8位數(shù)據(jù)顯示開關控制0000001DCB設置顯示、光標、閃爍開關:D:為1開顯示;為0關顯示C:為1顯示光標;為0不顯示光標B:為1光標閃爍;為0不顯示光標輸入模式控制00000001NS設置光標、顯示畫面移動方向N:為1,讀寫一個字符后,地址指針加1,光標加1;為0,讀寫一個字符后地址指針減1,光標減1。S:為1,寫入一個字符后整屏左移(N=1)或右移(N=0);為0,寫一個字符整屏顯示不動。讀數(shù)據(jù)11數(shù)據(jù)從DDRAM中讀取數(shù)據(jù)寫數(shù)據(jù)10數(shù)據(jù)對DDRAM進行寫數(shù)據(jù)清屏0000000001清除顯示器的內容,光標到左上角光標歸位設定000000001*地址計數(shù)器清0,DDRAM數(shù)據(jù)不變。*表示為0或1。數(shù)據(jù)指針設置0080H+地址碼(0-27H,40-47H)設置數(shù)據(jù)地址指針忙碌標志01BF指示LCD目前的工作情況。BF為1,LCD忙,不接收單片機送過來的數(shù)據(jù);為0,表示已準備好接收指令或數(shù)據(jù)任務一1602液晶顯示字符2.1602液晶顯示模塊知識(3)模塊的使用——模塊指令操作時序任務一1602液晶顯示字符2.1602液晶顯示模塊知識(3)模塊的使用——驅動函數(shù)voiddelay(uintus);//短延時函數(shù)聲明voiddelay_ms(uintms);//毫秒級延時函數(shù)聲明voidwcmd_1602(ucharcmd);//寫命令到LCD函數(shù)聲明voidwdat_1602(uchardat);//寫數(shù)據(jù)到LCD函數(shù)聲明voidinit_1602();//初始化函數(shù)聲明voiddisp_one(ucharx,uchary,uchardispbuf);//到指定位置顯示單個字符的函數(shù)聲明voiddisp_mul(ucharx,uchary,ucharcode*dispbuf);//到指定的位置顯示多個字符的函數(shù)聲明任務一1602液晶顯示字符2.1602液晶顯示模塊知識(3)模塊的使用——驅動函數(shù)/******向LCD寫入命令********/voidwcmd_1602(ucharcmd){delay(60);//延時,不檢測忙信號E=0;//初始狀態(tài)E=0RS=0;//初始狀態(tài)RS=0
RW=0;//初始狀態(tài)RW=0
_nop_();//極短延時
DATAPORT=cmd;//單片機給出有效的指令數(shù)據(jù)
_nop_();//極短延時_nop_();
E=1;//產生E下降沿執(zhí)行命令寫入_nop_();_nop_();_nop_();E=0;
_nop_();}任務一1602液晶顯示字符2.1602液晶顯示模塊知識(3)模塊的使用——驅動函數(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;//設置地址指針 wcmd_1602(x);//寫地址碼 wdat_1602(dispbuf);//寫數(shù)據(jù)}任務一1602液晶顯示字符2.1602液晶顯示模塊知識(3)模塊的使用——驅動函數(shù)/******到指定的位置顯示多個字符****************/voiddisp_mul(ucharx,uchary,ucharcode*dispbuf){ ucharlen,i; len=strlen(dispbuf);//計算要顯示的字符串長度 y&=0x01;//限制X,Y位置 x&=0x0F; if(x<=0x0F)//X坐標小于一行執(zhí)行顯示
{ for(i=0;i<len;i++) {
disp_one(x,y,dispbuf[i]);//顯示單個字符 x++; }
}
}任務一1602液晶顯示字符3.C51的庫函數(shù)簡介
C51強大功能及其高效率的重要體現(xiàn)之一在于其豐富的可直接調用的庫函數(shù),要使用庫函數(shù),則必須將用到的每個庫函數(shù)都在相應的頭文件(.H)中給出了函數(shù)原型聲明,即用#include,將有關的頭文件包含進來,然后再用戶的源文件中就可以直接使用包含的頭文件中的庫函數(shù)了。(1)專用寄存器庫函數(shù)REG××.H專用寄存器庫函數(shù)REG××.H中定義了所有8052的SFR及其位,定義時都用大寫字母。任務一1602液晶顯示字符3.C51的庫函數(shù)簡介(2)字符串函數(shù)STRING.H
該文件中包括了對字符的復制、比較、移動等函數(shù),使用這些函數(shù)可以很方便地對字符串進行處理。例如:strlen函數(shù)的函數(shù)原型為intstrlen(char*src);其功能是返回字符串src中的字符個數(shù),包括結束符。(3)內部函數(shù)INTRINS.H該文件提供了幾個最常用的移位操作函數(shù)以及空操作等函數(shù)。例如:_nop_函數(shù)的原型為void_nop_(void),其功能是產生一個MCS-51單片機的NOP(空)指令,實現(xiàn)短暫的延時。任務一1602液晶顯示字符(三)硬件電路1602液晶顯示字符電路原理圖任務一1602液晶顯示字符(三)硬件電路硬件模塊接線圖任務一1602液晶顯示字符(四)參考程序#include<reg52.h>#include"1602LCD.h"/******變量定義***************/ucharcodeOnedisp1[] ={"Welcome!"}; //待顯示的字符串ucharcodeOnedisp2[] ={"2013-05-01"}; //待顯示的字符串/******主函數(shù)**************/voidmain() //定義主函數(shù){init_1602();
//LCD初始化
delay(50); //延時等待穩(wěn)定disp_mul(0,0,Onedisp1);//第一行顯示Welcome!
disp_mul(0,1,Onedisp2); //第二行顯示2013-05-01while(1); //無限循環(huán)}任務一1602液晶顯示字符(五)任務實施步驟1.硬件電路連接;2.打開KEIL軟件,通過菜單“項目/新建項目”,新建立一個工程項目1602LCD1,然后再建一個文件名為1602LCD1.C的源程序文件,將上面的參考程序輸入并保存,同時將該文件添加到項目中;3.對源程序進行編譯和鏈接,產生目標代碼并使用下載器將目標代碼寫入單片機;4.通電觀察運行結果,如果不能實現(xiàn)任務要求,則修改程序、調整和檢查硬件連接,直到1602液晶顯示正常;5.進行扎線,整理。謝謝!任務二1602液晶顯示計數(shù)器制作(一)任務要求
使用YL-236單片機實訓考核裝置顯示模塊中的1602LCD制作一個計數(shù)器,顯示界面如圖所示。該計數(shù)器具體要求如下:1.計數(shù)器上電后第一行顯示“Count:000”(在Count:后空一格,然后是三位計數(shù)器的顯示數(shù)值從000-999)。第二行顯示功能操作鍵提示字符“S1:+S2:-S3:R”。2.計數(shù)器使用三個按鍵對計數(shù)器進行控制。其中:S1鍵為計數(shù)值加鍵,每按一次,顯示的計數(shù)值加1;S2為計數(shù)值減鍵,每按一次鍵,顯示的計數(shù)值減1;S3鍵為復位鍵,按一次,計數(shù)器復位,顯示的計數(shù)值為000。任務二1602液晶顯示計數(shù)器制作與本項目的第一個任務相比,LCD1602在顯示上的最大區(qū)別是第一行中的計數(shù)值會隨著計數(shù)的進行而實時改變;而第一行的count:和第二行顯示的字符是固定不變的,這些可以采用與第一個任務相同的方法,調用到指定的位置顯示字符的子函數(shù),將要顯示的內容送到顯示緩沖區(qū)。而計數(shù)值因為是變量,所以必須定義變量,顯示時只要將該變量的實時值拆分后送到相應的顯示位置就可以顯示所需的內容了。按鍵等部分實現(xiàn)比較簡單,這里就不再多述。(二)任務分析任務二1602液晶顯示計數(shù)器制作(三)硬件電路液晶顯示計數(shù)器電路原理圖任務二1602液晶顯示計數(shù)器制作(三)硬件電路液晶顯示計數(shù)器電路模塊接線圖任務二1602液晶顯示計數(shù)器制作(四)參考程序主函數(shù)流程圖任務二1602液晶顯示計數(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ù)變量(四)參考程序/******計數(shù)變量處理***************/Onedisp1[11]=disp_tab[count/100];//取計數(shù)百位數(shù)值送緩沖區(qū)Onedisp1[12]=disp_tab[(count%100)/10];//取
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版高科技產品出口許可與合同履行協(xié)議3篇
- 二零二五版國際貿易合同擔保法風險管理合同3篇
- 碎石加工設備2025年度保險合同2篇
- 二零二五版企業(yè)員工勞務派遣與員工福利保障合同3篇
- 二零二五年度糧食儲備與農業(yè)產業(yè)化合作合同3篇
- 二零二五年度高層綜合樓公共收益分配管理合同3篇
- 二零二五年度校車運營服務與兒童座椅安全檢測合同3篇
- 二零二五版帶儲藏室裝修包售二手房合同范本3篇
- 二零二五年房地產合作開發(fā)與股權讓渡綜合合同2篇
- 二零二五年度花木種植與生態(tài)農業(yè)園區(qū)建設合同3篇
- 畢淑敏心理咨詢手記在線閱讀
- 亞硝酸鈉安全標簽
- pcs-985ts-x說明書國內中文版
- GB 11887-2012首飾貴金屬純度的規(guī)定及命名方法
- 小品《天宮賀歲》臺詞劇本手稿
- 醫(yī)院患者傷口換藥操作課件
- 欠薪強制執(zhí)行申請書
- 礦山年中期開采重點規(guī)劃
- 資源庫建設項目技術規(guī)范匯編0716印刷版
- GC2級壓力管道安裝質量保證體系文件編寫提綱
- 預應力混凝土簡支小箱梁大作業(yè)計算書
評論
0/150
提交評論