首页 51单片机时钟程序另加日期定时.doc

51单片机时钟程序另加日期定时.doc

举报
开通vip

51单片机时钟程序另加日期定时.doc51单片机时钟程序另加日期定时.doc #include #include sbit dula=P2^6; sbit wela=P2^7; sbit key1=P3^4; sbit key2=P3^5; sbit luis=P3^6; sbit key4=P3^7; #define uint unsigned int #define uchar unsigned char uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, ...

51单片机时钟程序另加日期定时.doc
51单片机时钟程序另加日期定时.doc #include #include sbit dula=P2^6; sbit wela=P2^7; sbit key1=P3^4; sbit key2=P3^5; sbit luis=P3^6; sbit key4=P3^7; #define uint unsigned int #define uchar unsigned char uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; uchar code table2[]={ 0xbf,0x86,0xdb,0xcf, 0xe6,0xed,0xfd,0x87, 0xff,0xef}; uchar a,b,d,shis,ges, shif,gef,shim,gem,shi, fen,miao,shiy,gey,shir, ger,yue,ri; void display1(uchar,uchar, uchar,uchar,uchar,uchar); void display2(uchar,uchar, uchar,uchar); void init(); void keyscan1(); void keyscan2(); void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void main() { init(); a=0; miao=0; shi=0; fen=0; yue=1; ri=1; while(1) { if(luis==1) { display1(shis,ges,shif,gef,shim,gem); keyscan1(); } else { display2(shiy,gey,shir,ger); keyscan2(); } } } void init() { d=0xaa; P1=d; TMOD=0x11; TH0=(65536-45872)/256; TL0=(65536-45872)%256; TH1=(65536-45872)/256; TL1=(65536-45872)%256; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; } void display1(uchar shis,uchar ges,uchar shif, uchar gef,uchar shim,uchar gem) { dula=1; P0=table[shis]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1); dula=1; P0=table2[ges]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1); dula=1; P0=table[shif]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1); dula=1; P0=table2[gef]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1); dula=1; P0=table[shim]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); dula=1; P0=table[gem]; dula=0; P0=0xff; wela=1; P0=0xdf; wela=0; delay(1); } void r0() interrupt 1 { TH0=(65536-45872)/256; TL0=(65536-45872)%256; a++; { if(a==20) { a=0; miao++; if(miao==60) { miao=0; fen++; if(fen==60) { fen=0; shi++; if(shi==24) { shi=0; { if(yue==1) { ri++; if(ri==32) { ri=0; yue=yue+1; } } if(yue==2) { ri++; if(ri==29) { ri=0; yue=yue+1; } } if(yue==3) { ri++; if(ri==32) { ri=0; yue=yue+1; } } if(yue==4) { ri++; if(ri==31) { ri=0; yue=yue+1; } } if(yue==5) { ri++; if(ri==32) { ri=0; yue=yue+1; } } if(yue==6) { ri++; if(ri==31) { ri=0; yue=yue+1; } } if(yue==7) { ri++; if(ri==31) { ri=0; yue=yue+1; } } if(yue==8) { ri++; if(ri==32) { ri=0; yue=yue+1; } } if(yue==9) { ri++; if(ri==31) { ri=0; yue=yue+1; } } if(yue==10) { ri++; if(ri==32) { ri=0; yue=yue+1; } } if(yue==11) { ri++; if(ri==31) { ri=0; yue=yue+1; } } if(yue==12) { ri++; if(ri==32) { ri=0; yue=1; } } } } } } shiy=yue/10; gey=yue%10; shir=ri/10; ger=ri%10; shis=shi/10; ges=shi%10; shim=miao/10; gem=miao%10; shif=fen/10; gef=fen%10; } } } void r1() interrupt 3 { TH1=(65536-45872)/256; TL1=(65536-45872)%256; b++; { if(b==20) { b=0; d=_crol_(d,1); P1=d; } } } void keyscan1() { if(key1==0) { delay(5); if(key1==0); { shi++; if(shi==24) shi=0; while(!key1); } } if(key2==0) { delay(5); if(key2==0); { fen++; if(fen==60) fen=0; while(!key2); } } if(key4==0) { delay(5); if(key4==0); { delay(5); while(!key4); TR0=~TR0; } } } void display2(uchar shiy,uchar gey, uchar shir,uchar ger) { dula=1; P0=table[shiy]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1); dula=1; P0=table2[gey]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1); dula=1; P0=table[shir]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1); dula=1; P0=table2[ger]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1); } void keyscan2() { if(key1==0) { delay(5); if(key1==0); { yue++; if(yue==13) yue=1; while(!key1); } } if(key2==0) { delay(10); if(key2==0); { delay(5); if(key2==0); { if(yue==1) { ri++; if(ri==32) { ri=1; } } if(yue==2) { ri++; if(ri==29) { ri=1; } } if(yue==3) { ri++; if(ri==32) { ri=1; } } if(yue==4) { ri++; if(ri==31) { ri=1; } } if(yue==5) { ri++; if(ri==32) { ri=1; } } if(yue==6) { ri++; if(ri==31) { ri=1; } } if(yue==7) { ri++; if(ri==31) { ri=1; } } if(yue==8) { ri++; if(ri==32) { ri=1; } } if(yue==9) { ri++; if(ri==31) { ri=1; } } if(yue==10) { ri++; if(ri==32) { ri=1; } } if(yue==11) { ri++; if(ri==31) { ri=1; } } if(yue==12) { ri++; if(ri==32) { ri=1; } } while(!key2); } while(!key2); } while(!key2); } }
本文档为【51单片机时钟程序另加日期定时.doc】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_591137
暂无简介~
格式:doc
大小:33KB
软件:Word
页数:20
分类:生活休闲
上传时间:2017-10-22
浏览量:77