LCD顯示秒表89C51_第1頁
LCD顯示秒表89C51_第2頁
LCD顯示秒表89C51_第3頁
LCD顯示秒表89C51_第4頁
LCD顯示秒表89C51_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、代碼部分:#include <reg51.h>#include <intrins.h> /包含_nop_( )空函數(shù)指令的頭文件#define uchar unsigned char#define uint unsigned int#define out P0sbit RS=P20; /位變量sbit RW=P21; /位變量sbit E=P22; /位變量void lcd_initial(void); / LCD初始化函數(shù)void check_busy(void); /檢查忙標(biāo)志函數(shù)void write_command(uchar com); /寫命令函數(shù)void w

2、rite_data(uchar dat);/寫數(shù)據(jù)函數(shù)void string(uchar ad ,uchar *s);void str(uchar h,uchar g); /LCD一個(gè)位置固定顯示字符函數(shù)void lcd_test(void);void delay(uint);uchar tab='0','1','2','3','4','5','6','7','8','9'void main(void) /主程序uchar t1,t2,

3、t3,t4,t5,t6;lcd_initial( ); /調(diào)用對LCD初始化函數(shù)string(0x87,":");string(0x84,":");string(0x89,"0");string(0x88,"0");string(0x86,"0");string(0x85,"0");string(0x83,"0");string(0x82,"0"); t2=0;t3=1;t4=1;t5=1;t6=1; while(1)string(0x

4、89,&tabt1);t2+;str(0x88,tabt2); /秒的十位進(jìn)1if(t2=0x6) t2=0x0; /秒的十位滿5進(jìn)分的個(gè)位str(0x88,tabt2);str(0x86,tabt3);t3=t3+1; if(t3>0x9) /分的個(gè)位滿9進(jìn)分的十位t3=0;str(0x86,tabt3);str(0x85,tabt4);t4+;if(t4>0x5) t4=0; str(0x84,tabt4); /分的十位滿5進(jìn)時(shí)的個(gè)位 str(0x83,tabt5); t5=t5+1; if(t5>0x5) t5=0; /時(shí)的個(gè)位滿9進(jìn)時(shí)的十位 str(0x83,

5、tabt5); str(0x82,tabt6); t6=t6+1; if(t6>0x2) /時(shí)的十位滿2清零 t6=0; str(0x82,tabt6); void delay(uint j) /1ms延時(shí)子程序uchar i=250;for(;j>0;j-)while(-i);i=249;while(-i);i=250;void check_busy(void)/檢查忙標(biāo)志函數(shù)uchar dt;dodt=0xff;E=0;RS=0;RW=1;E=1;dt=out;while(dt&0x80);E=0;void write_command(uchar com) /寫命令函數(shù)

6、check_busy();E=0;RS=0;RW=0;out=com;E=1;_nop_( );E=0;delay(1);void write_data(uchar dat) /寫數(shù)據(jù)函數(shù)check_busy();E=0;RS=1;RW=0;out=dat;E=1;_nop_();E=0;delay(1);void LCD_initial(void) /液晶顯示器初始化函數(shù)write_command(0x38);/寫入命令0x38:8位兩行顯示,5×7點(diǎn)陣字符write_command(0x0C);/寫入命令0x0C:開整體顯示,光標(biāo)關(guān),無黑塊write_command(0x03);/寫入命令0x06:光標(biāo)右移write_command(0x01); /寫入命令0x01:清屏delay(1);void string(uchar ad,uchar *s) /輸出顯示字符串的函數(shù)while(*s>0)write_command(ad);write_data(*s+)

溫馨提示

  • 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

提交評論