LED数字显示电子时钟源程序代码
程序:(注 已完全经过调试,达到预期目的)
#include<reg51.h>
#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;html特效代码天气时钟
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;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论