LED数字显示电子时钟源程序代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LED数字显示电子时钟源程序代码
程序:(注已完全经过调试,达到预期目的)
#include
#define uchar unsigned char
#define uint unsigned int
uchar count=0;
sbit LED=P1^0;
uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //显示数码管
0,1,3,4,5,6,7,8,9 uchar miao=0,fen=0,hour=0;
void delay(uint i) //延迟函数
{
uint j;
for(;i>0;i--)
for(j=124;j>0;j--);
}
void init()
{
ET0=1;
TMOD=0x51; //选定定时器0,1和中断0,1
TH0=(65536-25000)/256;
TL0=(65536-25000)%256; //设定时器0时间为250ms一次
ET1=1;
TH1=0xff;
TL1=0xff; //定时器1为中断
EX0=1;
IT0=1; //中断0开
EX1=1;
IT1=1; //中断1开
TR0=1; //定时器0开
TR1=1; //定时器1开
EA=1; //总中断开
}
void display() //时钟显示函数
{
P0=tab[hour/10%10];
P2=0xfe;
delay(1);
P0=tab[hour%10];
P2=0xfd;
delay(1);
P0=tab[fen/10%10];
P2=0xfb;
delay(1);
P0=tab[fen%10];
P2=0xf7;
delay(1);
P0=tab[miao/10%10];
P2=0xef;
delay(1);
P0=tab[miao%10];
P2=0xdf;
delay(1);
}
void main() //主函数
{
init();
LED=0;
while(1)
{
display();
}
}
void T0_int() interrupt 1 //定时器0函数{
TH0=(65536-25000)/256;
TL0=(65536-25000)%256;
count++;
if(count==20)
{
count=0;
miao= miao +1;
LED=~LED;
if(sec==60)
{
miao=0;
fen= fen +1;
if(fen ==60)
{
fen =0;
hour=hour+1;
if(hour==24)
hour=0;
}
}
}
}
void T1_int() interrupt 3 //定时器1函数控制秒针加1 {
TH1=0xff;
TL1=0xff;
miao=miao+1;
if(miao ==60)
miao =0;
}
void I1_int() interrupt 2 //中断1函数控制按键分针加1 {
EX0=0;
fen= fen +1;
if(fen ==60)
fen =0;
EX0=1;
}
void I0_int() interrupt 0 //中断函数0控制按键时针加1 {
EX1=0;
hour=hour+1;
if(hour==24)
hour=0;
EX1=1;
}