基于定时器的51单片机时钟程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于定时器的
51单片机时钟程序,基于定时器写出,同时还有定时、日历、键盘调节功能
#in elude <reg51.h> #in cludev intrin s.h> sbit dula=P2A6;
sbit wela=P2A7;
sbit key1=P3A4;
sbit key2=P3A5;
sbit luis=P3A6;
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)
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)
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() interrupt1 {
TH0=(65536-45872)/256;
TL0=(65536-45872)%256; a++;
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;
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(wenku.baidu.comi==32)
{
ri=0;
yue=yue+1;
}
if(yue==2)
{ri++;
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;
sbit key4=P3A7;
#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};
{
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;
相关文档
最新文档