基于51單片機的1602LCD顯示_第1頁
基于51單片機的1602LCD顯示_第2頁
基于51單片機的1602LCD顯示_第3頁
基于51單片機的1602LCD顯示_第4頁
基于51單片機的1602LCD顯示_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、標簽: 單片機  LCD  基于51單片機的1602LCD顯示基于51單片機的1602LCD顯示 LCD(liquid crystal display)為液晶顯示器,它一般不會單獨使用,而是將LCD面板、驅(qū)動與控制電路組合成LCD模塊(1iquid crystal display moulde,簡稱為LCM)來使用。LCM是一種很省電的顯示設(shè)備,常被應(yīng)用在數(shù)字或微處理器控制的系統(tǒng),做為簡易的人機接口,但人們一般還是習慣稱之為LCD顯示器。1 硬件設(shè)計采用51單片機控制1602LCD顯示器的電路如下所示。在桌面上雙擊圖標,打開ISIS 7 Professi

2、onal窗口(本人使用的是v7.4 SP3中文版)。單擊菜單命令“文件”“新建設(shè)計”,選擇DEFAULT模板,保存文件名為“LCD.DSN”。在器件選擇按鈕中單擊“P”按鈕,或執(zhí)行菜單命令“庫”“拾取元件符號”,添加如下表所示的元件。51單片機AT89C51 一片晶體CRYSTAL 12MHz 一只瓷片電容CAP 22pF 二只電解電容CAP-ELEC 10uF 一只電阻RES 10K 一只排阻 RESPAC-8 10K 一只1602液晶顯示器 LM016L 一只若用Proteus軟件進行仿真,則上圖中的晶振和復(fù)位電路以及U1的31腳,都可以不畫,它們都是默認的。在ISIS原理圖編輯窗口中放置

3、元件,再單擊工具箱中元件終端圖標,在對象選擇器中單擊POWER和GROUND放置電源和地。放置好元件后,布好線。左鍵雙擊各元件,設(shè)置相應(yīng)元件參數(shù),完成電路圖的設(shè)計。2 軟件設(shè)計用1602LCD顯示兩行字符的流程圖如下所示。 用1602LCD顯示“Welcom to China”和“Hi!Good morning!”的詳細C51程序如下。/用LCD循環(huán)顯示"Welcome to China"和"Hi!Good morning!"#include<reg51.h> /包含單片機的頭文件#include<intrins.h>

4、/包含_nop_()函數(shù)定義的頭文件sbit RS="P2"0; /寄存器選擇位,將RS位定義為P2.0引腳sbit RW="P2"1; /讀寫選擇位,將RW位定義為P2.1引腳sbit E="P2"2; /使能信號位,將E位定義為P2.2引腳sbit BF="P0"7; /忙碌標志位,將BF位定義為P0.7引腳unsigned char code string ="Welcome to China"unsigned char code string1 ="Hi!Good mornin

5、g!" /*函數(shù)功能:延時1ms(3j+2)*i=(3×33+2)×10=1010(微秒),可以認為是1毫秒*/void delay1ms()unsigned char i,j;for(i=0;i<10;i+)for(j=0;j<33;j+) ; /*函數(shù)功能:延時若干毫秒入口參數(shù):n*/void delay(unsigned char n)unsigned char i;for(i=0;i<n;i+)delay1ms(); /*函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)返回值:result。result=1,忙碌; result=0,不忙*/unsign

6、ed char BusyTest(void)bit result;RS=0; /根據(jù)規(guī)定,RS為低電平,RW為高電平時,可以讀狀態(tài) RW=1; E=1; /E=1,才允許讀寫 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應(yīng)時間 result=BF; /將忙碌標志電平賦給resultE=0; return result;/*函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊入口參數(shù):dictate*/void WriteInstruction (unsigned char dictate) while(BusyTest()=1);

7、/如果忙就等待RS=0; /根據(jù)規(guī)定,RS和R/W同時為低電平時,可以寫入指令RW=0; E=0; /E置低電平_nop_();_nop_(); /空操作兩個機器周期,給硬件反應(yīng)時間P0=dictate; /將數(shù)據(jù)送入P0口,即寫入指令或地址_nop_();_nop_();_nop_();_nop_(); /空操作四個機器周期,給硬件反應(yīng)時間E=1; /E置高電平(正跳變)_nop_();_nop_();_nop_();_nop_(); /空操作四個機器周期,給硬件反應(yīng)時間E=0; /當E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 /*函數(shù)功能:將數(shù)據(jù)(字符的標準ASCII碼)寫入液晶模塊入

8、口參數(shù):y(為字符常量)*/void WriteData(unsigned char y)while(BusyTest()=1); RS=1; /RS為高電平,RW為低電平時,可以寫入數(shù)據(jù)RW=0;E=0; /E置低電平P0=y; /將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊_nop_();_nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應(yīng)時間E=1; /E置高電平(正跳變)_nop_();_nop_();_nop_();_nop_(); /空操作四個機器周期,給硬件反應(yīng)時間E=0; /當E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 /*函數(shù)功能:對LCD的顯

9、示模式進行初始化設(shè)置*/void LcdInitiate(void)delay(15); /延時15ms,首次寫指令時應(yīng)給LCD一段較長的反應(yīng)時間 WriteInstruction(0x38); /顯示模式設(shè)置:8位數(shù)據(jù),16×2顯示,5×7點陣,delay(5); /延時5msWriteInstruction(0x38);delay(5);WriteInstruction(0x38);delay(5);WriteInstruction(0x0f); /顯示模式設(shè)置:顯示開,有光標,光標閃爍delay(5);WriteInstruction(0x06); /顯示模式設(shè)置:光

10、標右移,字符不移delay(5);WriteInstruction(0x01); /清屏幕指令,將以前的顯示內(nèi)容清除delay(5); void main(void) /主函數(shù)unsigned char i; LcdInitiate(); /調(diào)用LCD初始化函數(shù) delay(10); while(1) WriteInstruction(0x01);/清顯示:清屏幕指令WriteInstruction(0x80); /第一行顯示地址 i = 0;while(stringi != '0')/ 顯示字符WriteData(stringi);i+;delay(150); for(i=0

11、;i<4;i+) delay(250);WriteInstruction(0xc0);/第二行顯示地址 i = 0;while(string1i != '0')/ 顯示字符WriteData(string1i);i+;delay(150); for(i=0;i<4;i+) delay(250);打開Keil程序(本人使用的是Keil8.05中文版),執(zhí)行菜單命令“工程”“新建工程”創(chuàng)建“LCD”項目,并選擇單片機型號為AT89C51。執(zhí)行菜單命令“文件”“新建”創(chuàng)建文件,輸入C語言源程序,保存為“LCD.C”。在Project Workspace窗口中右擊源代碼組1

12、,選擇“添加文件到組源代碼組 l”將源程序“LCD.C”添加到項目中。在Keil中執(zhí)行執(zhí)行菜單命令“工程”“創(chuàng)建目標”(或點擊“創(chuàng)建目標”快捷按鈕),編譯源程序。如果編譯成功,則在“Output Window”的“創(chuàng)建”窗口中顯示沒有錯誤,并創(chuàng)建了“LCD.HEX”文件。3 仿真與調(diào)試關(guān)于Proteus與Keil的聯(lián)合仿真調(diào)試,可參見我以前所寫的博文或其它參考資料。啟動Proteus的ISIS,并將其放在屏幕的右上角(可將原理圖放大到合適大?。?;再啟動Keil的Vision3,并將其放在屏幕的左下角。 在Keil中執(zhí)行菜單命令“調(diào)試”“啟動停止調(diào)試”,或直接單擊圖標,進入Keil調(diào)試環(huán)境。同時,在Proteus ISIS的窗口中可看出Proteus也進入了程序調(diào)試狀態(tài)。 在Keil代碼編

溫馨提示

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

評論

0/150

提交評論