51(52)单片机定时器实现数码管时钟-创新互联
单片机小白,主页第一篇文章有共通代码详解。
我们提供的服务有:成都做网站、网站设计、微信公众号开发、网站优化、网站认证、大关ssl等。为上1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的大关网站制作公司独立按键一:按下数码管显示小时增加(>23变00)
独立按键二:按下数码管显示分钟增加(>59变00)
独立按键三:长按关闭时钟自增后,可使用按键一.二对数码管显示时间进行更改
独立按键四:按下时钟启动
运行效果:
代码:
#include#define u8 unsigned char
#define u16 unsigned int
sbit button1=P3^1;
sbit button2=P3^0;
sbit button3=P3^2;
sbit button4=P3^3;
sbit add_1=P2^2;
sbit add_2=P2^3;
sbit add_3=P2^4;
u16 n=0;
u8 x,y,z;
u8 code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//DingshiQi YanShi
void delay_ds(u8 ms)
{u8 T=0;
TMOD=0x01;
TH0=0xfb;
TL0=0x80;
TR0=1;
while(T if(TF0==1)
{TF0=0;
TH0=0xfb;
TL0=0x80;
T++;
}
}
}//1.25*ms
//shuaxin
void shuaxin()
{ add_1=0;
add_2=0;
add_3=0;
P0=table[z%10];
delay_ds(1);
P0=0x00; //01
add_1=1;
add_2=0;
add_3=0;
P0=table[z/10%10];
delay_ds(1);
P0=0x00; //02
add_1=0;
add_2=1;
add_3=0;
P0=0x40;
delay_ds(1);
P0=0x00; //03
add_1=1;
add_2=1;
add_3=0;
P0=table[y%10];
delay_ds(1);
P0=0x00; //04
add_1=0;
add_2=0;
add_3=1;
P0=table[y/10%10];
delay_ds(1);
P0=0x00; //05
add_1=1;
add_2=0;
add_3=1;
P0=0x40;
delay_ds(1);
P0=0x00; //06
add_1=0;
add_2=1;
add_3=1;
P0=table[x%10];
delay_ds(1);
P0=0x00; //07
add_1=1;
add_2=1;
add_3=1;
P0=table[x/10%10];
delay_ds(1);
P0=0x00; //08
} //11.25ms
//1 s
void Ding_shi()
{u8 T=0;
TMOD=0x01;
TH0=0xf7;
TL0=0x00; //2.5ms
shuaxin();
TR0=1;
while(T<80)
{ if(TF0==1)
{ TF0=0;
TH0=0xf7;
TL0=0x00; //2.5
shuaxin(); //10 12.5ms*79=987.5ms
T++;
}
}
}
//
void Ding_shi01()
{u8 T=0;
TMOD=0x01;
TH0=0xf7;
TL0=0x00; //1.25ms
TR0=1;
while(T<20)
{ if(TF0==1)
{ TF0=0;
TH0=0xf7;
TL0=0x00; //1.25
shuaxin(); //20 12.5ms*79=987.5ms
T++;
}
}
}
void main()
{ u8 k,j;
k=j=0;
button1=0xff;
button2=0xff;
button3=0xff;
button4=0xff;
while(1)
{
shuaxin();
if(button1==0)
{ delay_ds(2);
if(button1==0)
{ while(!button1)
{ x++;
if(x>23)
x=0;
Ding_shi01();
}
}
}
if(button2==0)
{ delay_ds(2);
if(button2==0)
{ while(!button2)
{ y++;
if(y>59)
y=0;
Ding_shi01();
}
}
}
if(button3==0)
{ delay_ds(3);
if(button3==0)
{ while(!button3)
{ shuaxin();
}
}
}
if(button4==0)
{ delay_ds(2);
if(button4==0)
{ while(!button4)
{ while(1)
{
z++;
if(z>59)
{y++;
z=0;}
if(y>59)
{x++;
y=0;}
if(x>23)
x=0;
Ding_shi();
if(button3==0)
break;
}
}
}
}
}
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
新闻名称:51(52)单片机定时器实现数码管时钟-创新互联
新闻来源:http://cdiso.cn/article/didpei.html