- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序:
#include reg52.h
#define uchar unsigned char
#define uint unsigned int
uchar num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar t,s=0,m=11,h=0,qian=0,bai=0,shi=0,ge=0,s0=0,m0=0,h0=0,qian0=0,bai0=0,shi0=0,ge0=0,n1=0;
sbit key1=P1^0; //功能
sbit key2=P1^1; //加一
sbit key3=P1^2; //减一
sbit key4=P1^3; //查看秒数
bit mm=0;
sbit beep=P2^3;
uint a;
void delay_1ms(uint z)
{
uint x,y;
for(x=z;x0;x--)
for(y=110;y0;y--);
}
void delay(uint i)
{
uint j;
for(;i0;i--)
for(j19;j0;j--);
}
/*void clock()
{
for(a=0;a=50;a++)
{
beep=1;
delay_1ms(200);
beep=0;
delay_1ms(200);
}
}*/
void timer () interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t++;
if(t==20)
{
s++;t=0;
if(s==60)
{
m++;s=0;
if(m==60)
{
h++;m=0;
if(h==24)
h=0;
}
}
}
}
void display(uchar h,uchar m,uchar s)
{
qian=h/10;
bai=h%10;
shi=m/10;
ge=m%10;
P0=num[qian];
P2=0xef;
delay_1ms(2);
P0=0xff;
P0=num[bai];
P2=0xdf;
delay_1ms(2);
P0=0xff;
P0=num[shi];
P2=0xbf;
delay_1ms(2);
P0=0xff;
P0=num[ge];
P2=0x7f;
delay_1ms(2);
P0=0xff;
}
void display0(uchar h0,uchar m0,uchar s0)
{
qian0=h0/10;
bai0=h0%10;
shi0=m0/10;
ge0=m0%10;
P0=num[qian0];
P2=0xef;
delay_1ms(2);
P0=0xff;
P0=num[bai0];
P2=0xdf;
delay_1ms(2);
P0=0xff;
P0=num[shi0];
P2=0xbf;
delay_1ms(2);
P0=0xff;
P0=num[ge0];
P2=0x7f;
delay_1ms(2);
P0=0xff;
}
void keyscan()//按键扫描
{
if(key4==0)
mm=!mm;
while(!key4)
display(m,s,0);
if(key1==0)
{
mm=0;
delay(20);//消抖
if(key1==0) //功能选择
{
TR0=0;
n1++;
while(!key1)
display(h,m,s);
if(n1==7)
{
TR0=1;
n1=0;
}
}
}
if(n1!=0)
{
if(n1==1)
{
if(key2==0) //调时
{ //加
delay(20);
if(key2==0)
{
h++;
if(h==24)
h=0;
}
while(!key2)
display(h,m,s);
}
else if(key3==0) //减
{
delay(20);
if(key3==0)
{
if(h==0)
h=24;
h--;
文档评论(0)