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,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。