您的位置 首页 硬件

89C52单片机之数字时钟制造

这里和上面一篇数字秒表差不多,只不过复杂在多了四个七段显示屏,整个显示分为时、分、秒三部分。时为24时置为0,分为60时置为0并向时进1

这儿和上面一篇数字秒表差不多,只不过杂乱在多了四个七段显现屏,整个显现分为时、分、秒三部分。时为24时置为0,分为60时置为0并向时进1,秒为60时置为0并向分进1。

程序:
#include
#include
void delay(unsigned char dly)
{
unsigned char i,j;
for(i=100;i>0;i–)
for(j=dly;j>0;j–)
;
}
unsigned char num,time1,time2,time3;
void timer0()interrupt 1
{
TH0=(65535-46080)/256;
TL0=(65535-46080)% 256;
num++;
if(num==20)
{
num=0;
time1++;
}
}
void intial()
{
TMOD=0x01;
ET0=1;
EA=1;
TR0=1;
num=0;
time1=0;
time2=0;
time3=0;
}
void main()
{
unsigned char table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char shi,fen;
intial();
while(1)
{
if(time1==60)
{
time1=0;
time2++;
}
if(time2==60)
{
time2=0;
time3++;
}
if(time3==24)
time3=0;
shi=time1/10;
fen=time1% 10;
P2=0xf7;
P0=table[shi];
delay(2);
P2=0xfb;
P0=table[fen];
delay(2);
shi=time2/10;
fen=time2% 10;
P2=0xdf;
P0=table[shi];
delay(2);
P2=0xef;
P0=table[fen];
delay(2);
shi=time3/10;
fen=time3% 10;
P2=0x7f;
P0=table[shi];
delay(2);
P2=0xbf;
P0=table[fen];
delay(2);
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/yingjian/261554.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部