




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 #include #include#define uint unsigned int #define uchar unsigned char signed long count=0; signed long houd,fq;signed long k1,k2,k3;int i=0, x=0;sbit p2_4=p24; sbit rs=p25; sbit rw=p26; sbit e=p27; /數(shù)字ascii碼放在數(shù)組中 /unsigned int shu=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39; unsigned int shu
2、1=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39; void delay(int count) /延時 int p; while(count-) for(p=0;p110;p+); void write_com(unsigned int n) /寫指令 rs=0; p1=n; delay(5); e=1; delay(5); e=0; void write_data(unsigned char t) /寫數(shù)據(jù) rs=1; p1=t; delay(5); e=1; delay(5); e=0; void time1_int(void) int
3、errupt 3 th1=tl1=0; tr1=1; x+; void time0_int(void) interrupt 1 th0=(65535-50000)/256; /裝初值,定時50ms tl0=(65535-50000)%256; i+; if(i=20) /1s時間已到 i=0; tr1=0; /關(guān)閉計數(shù)器1 count=(65536*x+256*th1+tl1)*1000; x=0; if(k1=1)fq=2.65; else if(k2=1)fq=2.7; else if(k3=1) fq=3.97; houd=0.123*(6000000-count)/fq; th1=tl
4、1=0; /重新裝初值 tr1=1; /重新啟動計數(shù)器器 void show() write_com(0x85);write_data(shucount/100000); delay(5); /顯示十萬位 write_com(0x86);write_data(shu(count/10000)%10);delay(5); /顯示萬位 write_com(0x87);write_data(shu(count/1000)%10);delay(5); /顯示千位 write_com(0x88); write_data(shu(count/100)%10);delay(5); /顯示百位 write_c
5、om(0x89);write_data(shu(count/10)%10);delay(5); /顯示十位 write_com(0x8a);write_data(shucount%10);delay(5); /顯示個位 write_com(0x83);write_data(0x66);delay(5); /顯示頻率表示的字符f write_com(0x84);write_data(0x3d);delay(5); /顯示字符= write_com(0x8b);write_data(0x48);delay(5); /顯示字母h write_com(0x8c);write_data(0x7a);de
6、lay(5); /顯示字母z write_com(0xc5);write_data(shu1houd/100000); delay(5); /顯示十萬位 write_com(0xc6);write_data(shu1(houd/10000)%10);delay(5); /顯示萬位 write_com(0xc7);write_data(shu1(houd/1000)%10);delay(5); /顯示千位 write_com(0xc8); write_data(shu1(houd/100)%10);delay(5); /顯示百位 write_com(0xc9);write_data(shu1(h
7、oud/10)%10);delay(5); /顯示十位 write_com(0xca);write_data(shu1houd%10);delay(5); /顯示個位 write_com(0xc3);write_data(0x68);delay(5); /顯示頻率表示的字符hwrite_com(0xc4);write_data(0x3d);delay(5); /顯示字符= write_com(0xcb);write_data(0x6e);delay(5); /顯示字母n write_com(0xcc);write_data(0x6d);delay(5); /顯示字母m void main()
8、tmod=0x51; /t1計數(shù)、t2定時,且都工作在方式1 th1=0x00;tl1=0x00; th0=(65535-50000)/256; /裝初值,定時50ms tl0=(65535-50000)%256; ea=1; /開總中斷 et0=1;et1=1; /中斷允許 tr0=1;tr1=1; /啟動定時器 rw=0; e=0; write_com(0x01); /顯示清零,數(shù)據(jù)指針清零 write_com(0x38); /設(shè)置16x2顯示5x7點陣,8位數(shù)據(jù)口 write_com(0x0c); /設(shè)置開顯示,顯示光標且閃爍 write_com(0x06); /寫一個字符后地址指針加1
9、 while(1) show(); delay(5); #include #define uchar unsigned charsbit rs=p25;sbit rw=p26;sbit e=p27;uchar busyc,line;uchar code table116= freq= 6000.0 khz;uchar code table216= houd= 0000.0 nm ;void delay(uchar n) uchar x,y; for(x=n;x0;x-) for(y=110;y0;y-);void busy(uchar busyc)rs=0;rw=1;e=1;delay(1);
10、busyc=p1;e=0;void write_command(uchar command)while(busyc);/判斷l(xiāng)cd是否忙碌rs=0;rw=0;e=1;p1=command;delay(10);e=0;void write_date(uchar date)while(busyc);/判斷l(xiāng)cd是否忙碌rs=1;rw=0;e=1;p1=date;delay(10);e=0;void init()e=0;write_command(0x38);delay(15);write_command(0x0c);write_command(0x06);write_command(0x01);v
11、oid display()uchar i;write_command(0x80);/設(shè)置顯示位置(第一行開頭)for(i=0;i16;i+)write_date(table1i);/顯示字符write_command(0xc0);/ 設(shè)置顯示位置(第二行開頭)for(i=0;i16;i+)write_date(table2i);/ 顯示字符void main(void)init(); / 初始化lcddelay(20);while(1)display();#include#include#define uchar unsigned char#define uint unsigned intsb
12、it rs=p25;sbit rw=p26;sbit en=p27;uchar str=f=6000.0khz,h=0000.0nm;/延時void delayms(uint ms)uchar i;while(ms-) for(i=0;i120;i+);/忙檢查uchar busy_check()uchar lcd_status;rs=0;/寄存器選擇rw=1;/讀狀態(tài)寄存器en=1;/開始讀delayms(1);lcd_status=p1;en=0;return lcd_status;/寫lcd命令void write_lcd_command(uchar cmd)while(busy_che
13、ck()&0x80)=0x80);/忙等待rs=0;/選擇命令寄存器rw=0;/寫en=0;p1=cmd;en=1;delayms(1);en=0;/發(fā)送數(shù)據(jù)void write_lcd_data(uchar dat)while(busy_check()&0x80)=0x80);/忙等待rs=1;rw=0;en=0;p1=dat;en=1;delayms(1);en=0;/lcd初始化void initialize_lcd()write_lcd_command(0x38);delayms(1);write_lcd_command(0x01);delayms(1);/清屏write_lcd_co
14、mmand(0x06);delayms(1);/字符進入模式:屏幕不動,字符后移write_lcd_command(0x0c);delayms(1);/顯示開,光標關(guān)/顯示字符串void showstring(uchar x,uchar y,uchar *str)uchar i=0;if(y=0) write_lcd_command(0x80|x);/設(shè)置顯示起始位置if(y=1) write_lcd_command(0xc0|x);for(i=0;i16;i+)/輸出字符串write_lcd_data(stri);void main()initialize_lcd();while(1)sho
15、wstring(0,0,str);showstring(0,1,str);#include #include#define uint unsigned int #define uchar unsigned char sbit lcd_rs=p25; sbit lcd_rw=p26; sbit lcd_en=p27; uchar code disa = 6000.0 khzz ;uchar code disb = 0000.0nm ;void delaynop( )_nop_( );_nop_( );_nop_( );_nop_( );_nop_( );void delay (uint ms)u
16、char t;while(ms-) for(t=0; t120;t+);bit lcd_busy( )bit result;lcd_rs=0;lcd_rw=1;lcd_en=1;delaynop( );result=(bit)(p0&0x80);lcd_en=0;return(result);void lcd_write(bit start,uchar in_data)while(lcd_busy();if(start=0)lcd_rs=0;elselcd_rs=1;lcd_rw=0;lcd_en=0;delaynop( );p0=in_data;lcd_en=1;delaynop( );lc
17、d_en=0;delaynop( );void lcd_init( )delay(15);lcd_write(0,0x28);delay(5);lcd_write(0,0x28);delay(5);lcd_write(0,0x28);delay(5);lcd_write(0,0x0c);delay(5);lcd_write(0,0x06);delay(5);lcd_write(0,0x01);delay(25);void lcd_pos(uchar pos)lcd_write(0,pos|0x80);void main( )uchar m;lcd_init( );lcd_pos(0x00);f
18、or(m=0;m16;m+)lcd_write(1,disam);delay(150);lcd_pos(0x40);for(m=0;m16;m+)lcd_write(1,disbm);delay(150);while(1);#include #define uchar unsigned charsbit rs=p25;sbit rw=p26;sbit e=p27;uchar busyc,line;uchar code table116= 6000 khzz ;uchar code table216= 0000nm ;void delay(uchar n) uchar x,y; for(x=n;
19、x0;x-) for(y=110;y0;y-);void busy(uchar busyc)rs=0;rw=1;e=1;delay(1);busyc=p0;e=0;void write_command(uchar command)while(busyc);/判斷l(xiāng)cd是否忙碌rs=0;rw=0;e=1;p0=command;delay(10);e=0;void write_date(uchar date)while(busyc);/判斷l(xiāng)cd是否忙碌rs=1;rw=0;e=1;p0=date;delay(10);e=0;void init()e=0;write_command(0x38);de
20、lay(15);write_command(0x0c);write_command(0x06);write_command(0x01);void display()uchar i;write_command(0x80);/設(shè)置顯示位置(第一行開頭)for(i=0;i16;i+)write_date(table1i);/顯示字符write_command(0xc0);/ 設(shè)置顯示位置(第二行開頭)for(i=0;i16;i+)write_date(table2i);/ 顯示字符void main(void)init(); / 初始化lcddelay(20);while(1)display();#include #define uchar unsigned char#define uint unsigned intsbit rs=p25; /數(shù)據(jù)、命令選擇,
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同范本水印去掉
- 中藥苗代銷合同范本
- 肺炎研究課題申報書
- 員工餐具采購合同范本
- 住房調(diào)換合同范本
- 煤礦研究課題申報書
- 廚房廚具采購合同范本
- 醫(yī)師勞動合同范本診所
- 南昌市商品房預(yù)售合同范本
- 合伙式經(jīng)營合同范本
- 2022年高考(全國甲卷)語文仿真模擬卷【含答案】
- 腸瘺治療PPT醫(yī)學(xué)課件(PPT 25頁)
- 員工轉(zhuǎn)正評價表
- 道路交通事故責(zé)任認定行政復(fù)議申請書范例
- 鄭州大學(xué)圖書館平立剖面效果圖
- 高效液相含量測定計算公式
- 公安機關(guān)通用告知書模板
- 《小學(xué)數(shù)學(xué)課程與教學(xué)》教學(xué)大綱
- 《手機攝影》全套課件(完整版)
- 礦井無計劃停電停風(fēng)安全技術(shù)措施
- 標前合作合同協(xié)議書范本
評論
0/150
提交評論