哈哈。終于把一直認(rèn)為好高深的時(shí)鐘電路做出來(lái)了,現(xiàn)在想想,其實(shí)也挺簡(jiǎn)單的,有些東西要自已去做了,并認(rèn)真地做好,你會(huì)發(fā)現(xiàn)其實(shí)它沒(méi)有你想的那么神秘的。
程序:#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
code uchar number[]={0x3f
,0x06,
0x5b,
0x4f,
0x66,
0x6d,
0x7d,
0x07,
0x7f,
0x6f
};
uint second=50,minter=58,hour=15;
uint ss,sg,mg,ms,hs,hg;
static char court=0;
void delay()
{
uchar i,j;
for(i=0;i<2;i++)
for(j=0;j<120;j++);
}
void int1() interrupt 3
{
TH1=(65536-20000)/256;
TL1=(65536-20000)%256;
court++;
}
void main()
{
TMOD =0x10;
TH1=(65536-20000)/256;
TL1=(65536-20000)%256;
EA =1;
ET1=1;
TR1=1;
P1=0xff;
for(;;)
{
ss=second /10;
sg =second %10;
ms=minter/10;
mg =minter%10;
hs=hour/10;
hg =hour%10;
P1=number[sg];
P0=0x07;
delay();
P1=number[ss];
P0=0x06;
delay();
P1=0x40;
P0=0x05;
delay();
P1=number[mg];
P0=0x04;
delay();
P1=number[ms];
P0=0x03;
delay();
P1=0x40;
P0=0x02;
delay();
P1=number[hg];
P0=0x01;
delay();
P1=number[hs];
P0=0x00;
delay();
if(court==50)
{
court=0;
second++;
if(second==60)
{
second=0;minter++;
if(minter==60)
{
minter=0;hour++;
if(hour==24)
hour=0;
}
}
}
}
}