




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目六
1602液晶顯示計數器制作1602液晶簡介所謂1602就是指它的顯示內容為16X2,即顯示兩行,每行16個字符。1602LCD模塊帶有背光光源,并行接口,可以與單片機I/O口直接相連。項目綱要任務一1602液晶顯示字符任務二1602液晶顯示計數器制作任務一1602液晶顯示字符(一)任務要求
使用YL-236單片機實訓考核裝置顯示模塊中的1602LCD,上電后液晶屏第一行居中顯示字符Welcome,第二行居中顯示字符2013-05-01。顯示界面如下圖所示。任務一1602液晶顯示字符實現本任務的方法:可以采用前面LED點陣顯示的方法,建立顯示緩沖區,將要顯示的內容在顯示緩沖區中定義,掃描函數負責將顯示緩沖區中的內容送入DDRAM,其余全部由顯示屏內部電路進行掃描顯示。實現的方法這種方法看起來是多進行了一次緩沖(因為1602LCD已經有內部的顯存了),但比較直觀,容易理解;還有一種方法就是直接根據字符的位置,由顯示函數直接將要顯示的字符送入緩存中相應的位置。本項目采用前面一種方法。(二)任務分析任務一1602液晶顯示字符2.1602液晶顯示模塊知識(1)模塊外形及引腳
YL-236裝置上1602液晶結構示意圖數據總線接口DB0-DB7液晶電源開關控制引腳任務一1602液晶顯示字符2.1602液晶顯示模塊知識(1)模塊外形及引腳1602液晶引腳及其功能引腳號名稱輸入/輸出作用1Vss電源負端(0V)2Vdd電源正端(+5V)3V0對比度調節4RS輸入數據/指令寄存器選擇端RS=0,輸入指令;RS=1,輸入數據。5R/W輸入讀寫選擇端R/W=0,寫操作;R/W,讀操作。6E輸入使能信號,下降沿觸發7-14DB0-DB7輸入/輸出數據總線從低位到高位15LEDA背光電源正端(+5V)16LEDK背光電源負端(0V)任務一1602液晶顯示字符2.1602液晶顯示模塊知識(2)模塊顯示字符原理
模塊內部由三部分組成,控制器和驅動器往往由專用的集成電路完成,大部分都是HD44780或其兼容的芯片。HD44780主要由DDRAM、CGROM等部分組成。任務一1602液晶顯示字符2.1602液晶顯示模塊知識(2)模塊顯示字符原理
DDRAM為數據顯示RAM(DataDisplayRAM),用以存放要LCD顯示的數據,能存儲80個字符。只要將標準的ASCⅡ碼放入DDRAM,內部控制線路就會自動將數據傳送到顯示器上,并顯示出該ASCⅡ碼對應的字符。顯示位置序號1234567。。。。。。3940DDRAM地址第一行00010203040506。。。。。。2627第二行40414243444546。。。。。。6667注:如果要在LCD1602屏幕的第一行第二列顯示一個"P"字,就要向DDRAM的01H地址寫入“P”字的代碼0X50就行了。那么一行可有40個地址呀?是的,在1602中我們就用前16個就行了。第二行也一樣用前16個地址,所以在后面寫程序的時候注意第二行的位置是從40開始的。另外需要注意的是:我們往DDRAM里的01H地址處送一個數據,如0x50(P的代碼)并不能顯示P出來,原因就是如果你要想在DDRAM的01H地址處顯示數據,則必須將01H加上80H,即81H,若要在DDRAM的02H處顯示數據,則必須將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位數據顯示開關控制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,寫一個字符整屏顯示不動。讀數據11數據從DDRAM中讀取數據寫數據10數據對DDRAM進行寫數據清屏0000000001清除顯示器的內容,光標到左上角光標歸位設定000000001*地址計數器清0,DDRAM數據不變。*表示為0或1。數據指針設置0080H+地址碼(0-27H,40-47H)設置數據地址指針忙碌標志01BF指示LCD目前的工作情況。BF為1,LCD忙,不接收單片機送過來的數據;為0,表示已準備好接收指令或數據任務一1602液晶顯示字符2.1602液晶顯示模塊知識(3)模塊的使用——模塊指令操作時序任務一1602液晶顯示字符2.1602液晶顯示模塊知識(3)模塊的使用——驅動函數voiddelay(uintus);//短延時函數聲明voiddelay_ms(uintms);//毫秒級延時函數聲明voidwcmd_1602(ucharcmd);//寫命令到LCD函數聲明voidwdat_1602(uchardat);//寫數據到LCD函數聲明voidinit_1602();//初始化函數聲明voiddisp_one(ucharx,uchary,uchardispbuf);//到指定位置顯示單個字符的函數聲明voiddisp_mul(ucharx,uchary,ucharcode*dispbuf);//到指定的位置顯示多個字符的函數聲明任務一1602液晶顯示字符2.1602液晶顯示模塊知識(3)模塊的使用——驅動函數/******向LCD寫入命令********/voidwcmd_1602(ucharcmd){delay(60);//延時,不檢測忙信號E=0;//初始狀態E=0RS=0;//初始狀態RS=0
RW=0;//初始狀態RW=0
_nop_();//極短延時
DATAPORT=cmd;//單片機給出有效的指令數據
_nop_();//極短延時_nop_();
E=1;//產生E下降沿執行命令寫入_nop_();_nop_();_nop_();E=0;
_nop_();}任務一1602液晶顯示字符2.1602液晶顯示模塊知識(3)模塊的使用——驅動函數/******到指定的位置顯示字符*******************/voiddisp_one(ucharx,uchary,uchardispbuf){
y&=0x01;//限制行數y不能大于1 x&=0x0f;//限制1行字符數x不能大于15 if(y==1)//如果在第二行則字符地址從0x40 x|=0x40; x|=0x80;//設置地址指針 wcmd_1602(x);//寫地址碼 wdat_1602(dispbuf);//寫數據}任務一1602液晶顯示字符2.1602液晶顯示模塊知識(3)模塊的使用——驅動函數/******到指定的位置顯示多個字符****************/voiddisp_mul(ucharx,uchary,ucharcode*dispbuf){ ucharlen,i; len=strlen(dispbuf);//計算要顯示的字符串長度 y&=0x01;//限制X,Y位置 x&=0x0F; if(x<=0x0F)//X坐標小于一行執行顯示
{ for(i=0;i<len;i++) {
disp_one(x,y,dispbuf[i]);//顯示單個字符 x++; }
}
}任務一1602液晶顯示字符3.C51的庫函數簡介
C51強大功能及其高效率的重要體現之一在于其豐富的可直接調用的庫函數,要使用庫函數,則必須將用到的每個庫函數都在相應的頭文件(.H)中給出了函數原型聲明,即用#include,將有關的頭文件包含進來,然后再用戶的源文件中就可以直接使用包含的頭文件中的庫函數了。(1)專用寄存器庫函數REG××.H專用寄存器庫函數REG××.H中定義了所有8052的SFR及其位,定義時都用大寫字母。任務一1602液晶顯示字符3.C51的庫函數簡介(2)字符串函數STRING.H
該文件中包括了對字符的復制、比較、移動等函數,使用這些函數可以很方便地對字符串進行處理。例如:strlen函數的函數原型為intstrlen(char*src);其功能是返回字符串src中的字符個數,包括結束符。(3)內部函數INTRINS.H該文件提供了幾個最常用的移位操作函數以及空操作等函數。例如:_nop_函數的原型為void_nop_(void),其功能是產生一個MCS-51單片機的NOP(空)指令,實現短暫的延時。任務一1602液晶顯示字符(三)硬件電路1602液晶顯示字符電路原理圖任務一1602液晶顯示字符(三)硬件電路硬件模塊接線圖任務一1602液晶顯示字符(四)參考程序#include<reg52.h>#include"1602LCD.h"/******變量定義***************/ucharcodeOnedisp1[] ={"Welcome!"}; //待顯示的字符串ucharcodeOnedisp2[] ={"2013-05-01"}; //待顯示的字符串/******主函數**************/voidmain() //定義主函數{init_1602();
//LCD初始化
delay(50); //延時等待穩定disp_mul(0,0,Onedisp1);//第一行顯示Welcome!
disp_mul(0,1,Onedisp2); //第二行顯示2013-05-01while(1); //無限循環}任務一1602液晶顯示字符(五)任務實施步驟1.硬件電路連接;2.打開KEIL軟件,通過菜單“項目/新建項目”,新建立一個工程項目1602LCD1,然后再建一個文件名為1602LCD1.C的源程序文件,將上面的參考程序輸入并保存,同時將該文件添加到項目中;3.對源程序進行編譯和鏈接,產生目標代碼并使用下載器將目標代碼寫入單片機;4.通電觀察運行結果,如果不能實現任務要求,則修改程序、調整和檢查硬件連接,直到1602液晶顯示正常;5.進行扎線,整理。謝謝!任務二1602液晶顯示計數器制作(一)任務要求
使用YL-236單片機實訓考核裝置顯示模塊中的1602LCD制作一個計數器,顯示界面如圖所示。該計數器具體要求如下:1.計數器上電后第一行顯示“Count:000”(在Count:后空一格,然后是三位計數器的顯示數值從000-999)。第二行顯示功能操作鍵提示字符“S1:+S2:-S3:R”。2.計數器使用三個按鍵對計數器進行控制。其中:S1鍵為計數值加鍵,每按一次,顯示的計數值加1;S2為計數值減鍵,每按一次鍵,顯示的計數值減1;S3鍵為復位鍵,按一次,計數器復位,顯示的計數值為000。任務二1602液晶顯示計數器制作與本項目的第一個任務相比,LCD1602在顯示上的最大區別是第一行中的計數值會隨著計數的進行而實時改變;而第一行的count:和第二行顯示的字符是固定不變的,這些可以采用與第一個任務相同的方法,調用到指定的位置顯示字符的子函數,將要顯示的內容送到顯示緩沖區。而計數值因為是變量,所以必須定義變量,顯示時只要將該變量的實時值拆分后送到相應的顯示位置就可以顯示所需的內容了。按鍵等部分實現比較簡單,這里就不再多述。(二)任務分析任務二1602液晶顯示計數器制作(三)硬件電路液晶顯示計數器電路原理圖任務二1602液晶顯示計數器制作(三)硬件電路液晶顯示計數器電路模塊接線圖任務二1602液晶顯示計數器制作(四)參考程序主函數流程圖任務二1602液晶顯示計數器制作/******變量定義***************/ucharOnedisp1[]={"Count:"};//待顯示的字符串ucharcodeOnedisp2[]={"S1:+S2:-S3:P"};//待顯示的字符串ucharcodedisp_tab[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x20};//0-9,不顯示uintcount=0;//設置計數變量(四)參考程序/******計數變量處理***************/Onedisp1[11]=disp_tab[count/100];//取計數百位數值送緩沖區Onedisp1[12]=disp_tab[(count%100)/10];//取
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 移交保密協議書
- 廉租房出售合同協議書
- 子女拒絕養老人協議書
- 花椒批發協議書
- 男方退秦協議書
- 用戶工程協議書
- 機動地租憑合同協議書
- 小型水電站購買協議書
- 退股撤資協議書
- 苗木移植協議書
- 數控機床裝調維修工(技師)職業技能鑒定理論考試題庫(含答案)
- 金蝶云星空應用開發初級認證
- 《食品添加劑》課件
- 磁懸浮發動機研發進展
- 中醫醫術確有專長人員醫師資格考核申報資料表
- 電網的電流保護課程設計
- 【課件】第七單元能源的合理利用與開發新版教材單元分析-九年級化學人教版(2024)上冊
- 2024年認證行業法律法規及認證基礎知識 CCAA年度確認 試題與答案
- 2024年江西省高考歷史試卷真題(含答案解析)
- 醫療糾紛的防范與處理
- 2024年裝載機司機試題庫附答案
評論
0/150
提交評論