资源简介
实现数字时钟的方式是使用单片机定时器来实现的,让数码管动态显示
代码片段和文件信息
#include
void delay(unsigned int a);
void xianshi();
void intn();
unsigned char shuzu[]={0xc00xf90xa40xb00x990x920x820xf80x800x900xbf};//共阳
unsigned int c=0;
unsigned char miao=0min=0hour=12;
void main()
{
intn();
while(1)
{
xianshi();
}
}
void intn()
{
TMOD = 0x01;
TH0=0x3c;
TL0=0xb0;
ET0=1;//打开定时器1中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
}
void Timer0() interrupt 1
{
TH0=0x3c;
TL0=0xb0;
c++;
if(c==20)
{
c=0;
miao++;
if(miao==60)
{
min++;
if(min==60)
{
hour++;
if(hour==24)
{hour=0;}
}
}
}
//xianshi();
}
void xianshi()
{
//显示秒个位
P2=0xff;
P0=0x01;//位选
P2=shuzu[miao%10];//段选
delay(100);
//显示秒十位
P2=0xff;
P0=0x02;
P2=shuzu[miao/10];
delay(100);
//显示-
P2=0xff;
P0=0x04;
P2=shuzu[10];
delay(100);
//显示分钟个位
P2=0xff;
P0=0x08;
P2=shuzu[min%10];
delay(100);
//显示分钟十位
P2=0xff;
P0=0x10;
P2=shuzu[min/10];
delay(100);
//显示-
P2=0xff;
P0=0x20;
P2=shuzu[10];
delay(100);
//显示小时个位
P2=0xff;
P0=0x40;
P2=shuzu[hour%10];
delay(10);
//显示小时十位
P2=0xff;
P0=0x80;
P2=shuzu[hour/10];
delay(100);
}
void delay(unsigned int a)
{
while(a--);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1311 2017-10-25 17:34 4位数码管\s.c
文件 4255 2017-10-25 17:31 4位数码管\s.LST
文件 4818 2017-10-25 17:31 4位数码管\s.OBJ
文件 4251 2017-10-25 17:31 4位数码管\ss
文件 1242 2017-10-25 17:31 4位数码管\ss.hex
文件 20 2017-10-25 17:31 4位数码管\ss.lnp
文件 6681 2017-10-25 17:31 4位数码管\ss.M51
文件 9392 2017-10-25 17:34 4位数码管\ss.plg
....... 55195 2017-10-25 17:34 4位数码管\ss.uvopt
....... 13216 2017-10-25 14:50 4位数码管\ss.uvproj
....... 55199 2017-10-25 15:16 4位数码管\ss_uvopt.bak
....... 0 2017-10-25 14:48 4位数码管\ss_uvproj.bak
目录 0 2017-10-25 17:34 4位数码管
----------- --------- ---------- ----- ----
155580 13
评论
共有 条评论