C51單片機(jī)對1602lcd模塊的驅(qū)動(dòng)_第1頁
C51單片機(jī)對1602lcd模塊的驅(qū)動(dòng)_第2頁
C51單片機(jī)對1602lcd模塊的驅(qū)動(dòng)_第3頁
C51單片機(jī)對1602lcd模塊的驅(qū)動(dòng)_第4頁
C51單片機(jī)對1602lcd模塊的驅(qū)動(dòng)_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C51單片機(jī)對1602lcd模塊的驅(qū)動(dòng)手上有一片1602的LCD,ks0066的驅(qū)動(dòng)芯片,帶LED背光。參考網(wǎng)站上的一些資料,寫了個(gè)驅(qū)動(dòng)程序,寫完了才發(fā)現(xiàn),跟網(wǎng)上流傳的代碼基本上差不多/*=======================================1602lcd模塊驅(qū)動(dòng)程序===============說明:1.晶體:11.0592MHz2.1602驅(qū)動(dòng):ks0066******************************************/#include#include#definelcm_rsP2_7//寄存器選擇#definelcm_rwP2_6//讀/寫控制#definelcm_eP2_5//讀/寫使能#definelcm_blkP2_4//背光led1.off0.on#definelcm_dataP0//函數(shù)聲明voiddelay5ms(void);voiddelay400ms(void);voidlcm_write_command(unsignedcharwc_lcm,busy_c);/***********************************//函數(shù)名稱:voidlcm_ini(void)//傳遞參數(shù):無//返回值:無//函數(shù)功能:LCM初始化//函數(shù)說明:***********************************/voidlcm_ini(void){lcm_data=0;lcm_write_command(0x38,0);//16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口,不檢測忙delay5ms();lcm_write_command(0x38,0);delay5ms();lcm_write_command(0x38,0);//三次顯示模式,不檢測忙delay5ms();lcm_write_command(0x38,1);//16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口,需要檢測忙lcm_write_command(0x80,1);//關(guān)閉顯示lcm_write_command(0x01,1);//clear顯示lcm_write_command(0x06,1);//指針和光標(biāo)+1,不滾屏lcm_write_command(0x0c,1);//開顯示,不顯示光標(biāo)}/***********************************//函數(shù)名稱:unsignedcharlcm_read_status(void)//傳遞參數(shù):無//返回值:unsignedchar//函數(shù)功能:讀lcm狀態(tài),等待lcm空閑//函數(shù)說明:DB7=1,忙***********************************/unsignedcharlcm_read_status(void){lcm_data=0xff;lcm_rs=0;lcm_rw=1;lcm_e=0;lcm_e=0;lcm_e=1;while(lcm_data&0x80);returnlcm_data;}/***********************************//函數(shù)名稱:voidlcm_write_data(unsignedcharwd_lcm)//傳遞參數(shù):unsignedcharwd_lcm//返回值:無//函數(shù)功能:lcm寫數(shù)據(jù)//函數(shù)說明:***********************************/voidlcm_write_data(unsignedcharwd_lcm){lcm_read_status();//判斷l(xiāng)cm忙標(biāo)志lcm_data=wd_lcm;lcm_rs=1;lcm_rw=0;lcm_e=0;lcm_e=0;lcm_e=1;}/***********************************//函數(shù)名稱:voidlcm_write_command(unsignedcharwc_lcm,busy_c)//傳遞參數(shù):unsignedcharwc_lcm,busy_c//返回值:無//函數(shù)功能:lcm寫命令//函數(shù)說明:busy_c=0是,不用檢測忙信號***********************************/voidlcm_write_command(unsignedcharwc_lcm,busy_c){if(busy_c)lcm_read_status();lcm_data=wc_lcm;lcm_rs=0;lcm_rw=0;lcm_e=0;lcm_e=0;lcm_e=1;}/***********************************//函數(shù)名稱:voiddisp_one_char(unsignedcharx,unsignedchary,unsignedchardisp_data)//傳遞參數(shù):unsignedcharx,unsignedchary,unsignedchardisp_data//返回值:無//函數(shù)功能:指定位置顯示一個(gè)字符//函數(shù)說明:***********************************/voiddisp_one_char(unsignedcharx,unsignedchary,unsigneddisp_data){y=y&0x01;x=x&0x0f;//限制2行,沒行15個(gè)字if(y)x=x+0x40;//算RAM地址x=x+0x80;lcm_write_command(x,0);lcm_write_data(disp_data);}/***********************************//函數(shù)名稱:voiddisp_one_char(unsignedcharx,unsignedchary,unsignedchar*disp_data)//傳遞參數(shù):unsignedcharx,unsignedchary,unsignedchar*disp_data//返回值:無//函數(shù)功能:指定位置顯示一串字符//函數(shù)說明:***********************************/voiddisp_list_char(unsignedcharx,unsignedchary,unsignedchar*disp_data){unsignedcharchar_length,j;char_length=strlen(disp_data);y=y&0x1;x=x&0x0f;for(j=0;j{disp_one_char(x,y,disp_data[j]);//顯示一個(gè)字符x++;}}/***********************************//函數(shù)名稱:voiddelay5ms(void)//傳遞參數(shù):無//返回值:無//函數(shù)功能:延時(shí)5MS//函數(shù)說明:***********************************/voiddelay5ms(void){unsignedintTempCyc=5552;while(TempCyc--);}/***********************************//函數(shù)名稱:voiddelay400ms(void)//傳遞參數(shù):無//返回值:無//函數(shù)功能:L延時(shí)400MS//函數(shù)說明:LCM開機(jī)延時(shí)***********************************/voiddelay400ms(void){unsignedcharTempCycA=5;unsignedintTempCycB;while(TempCycA--){TempCycB=7269;while(TempCycB--);};}/*****d******************************//函數(shù)名稱:voidmain(void)//傳遞參數(shù):無//返回值:無//函數(shù)功能:主函數(shù)//函數(shù)說明:************************************/voidmain(void){delay400ms();lcm_ini();disp_list_char(1,0,“Welcome”);disp_list_char(1,0,“”)while(1);}以上的程序只是簡單的顯示兩行字符,沒有滾屏和背光4線液晶1602的C51程序----------------------------------|LCM-----51|LCM-----51|----------------------------------|RS-----P2.1|DB4-----P1.4||RW-----P2.0|DB5-----P1.5||E-----P2.2|DB6-----P1.6||VLCD接1K電阻到GND|DB7-----P1.7|---------------------------------------------------[注:AT89S51使用12M晶振]=============================================================*/voidwritelcd(bitcommand,unsignedcharddata){ReadStatusLCM();//檢測忙LCM_Data=(ddata&0xf0)|(P1&0x0f);LCM_RW=0;if(command==0)LCM_RS=0;elseLCM_RS=1;LCM_E=1;LCM_E=0;LCM_E=0;LCM_Data=((ddata《《4)&0xf0)|(P1&0x0f);if(command==0)LCM_RS=0;elseLCM_RS=1;LCM_E=1;LCM_E=0;LCM_E=0;}//讀狀態(tài)unsign

溫馨提示

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

評論

0/150

提交評論