51单片机数码管显示时钟程序.docx
- 文档编号:25346265
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:11
- 大小:61.83KB
51单片机数码管显示时钟程序.docx
《51单片机数码管显示时钟程序.docx》由会员分享,可在线阅读,更多相关《51单片机数码管显示时钟程序.docx(11页珍藏版)》请在冰豆网上搜索。
51单片机数码管显示时钟程序
51单片机数码管显示时钟程序
D
display(m,m1,f,f1,s,s1);
alram();
}
else
{
keyscan1();
display0(nf,nf1,ns,ns1);
}
}
}
voidkeyscan()
{
if(key1==0)
{
delay(10);
if(key1==0)
nums++;
if(nums==24)
nums=0;
while(!
key1);
display(m,m1,f,f1,s,s1);
}
if(key2==0)
{
delay(10);
if(key2==0)
numf++;
if(numf==60)
numf=0;
while(!
key2);
display(m,m1,f,f1,s,s1);
}
if(key3==0)
{
delay(10);
if(key3==0)
{
dingshi=~dingshi;
while(!
key3)
display(m,m1,f,f1,s,s1);
}
}
/*if(key4==0)
{
delay(10);
if(key4==0)
{
flag=1;
while(!
key4);
display(m,m1,f,f1,s,s1);
}
}*/
}
voidkeyscan1()
{
if(key1==0)
{
delay(10);
if(key1==0)
numns++;
if(numns==24)
numns=0;
while(!
key1);
//display(nf,nf1,ns,ns1);
}
if(key2==0)
{
delay(10);
if(key2==0)
numnf++;
if(numnf==60)
numnf=0;
while(!
key2);
//display(nf,nf1,ns,ns1);
}
if(key3==0)
{
delay(10);
if(key3==0)
{
dingshi=0;
while(!
key3);
//display(m,m1,f,f1,s,s1);
}
}
}
voidalram()
{
if((numnf==numf)&&(numns==nums))
beep=0;
if(((numnf+1==numf)&&(numns==nums))&&(dingshi==0))//一分钟报时提示
beep=1;
}
voiddisplay0(ucharnf,ucharnf1,ucharns,ucharns1)//闹钟显示函数
{
nf=numnf%10;
nf1=numnf/10;
ns=numns%10;
ns1=numns/10;
/*wela=1;
P0=0xc0;//送位选数据
wela=0;
P0=0xff;*/
dula=1;
P0=table[ns1];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay
(1);
dula=1;
P0=table[ns]|0x80;
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay
(1);
dula=1;
P0=table[nf1];
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay
(1);
dula=1;
P0=table[nf];
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delay
(1);
}
voiddisplay(ucharm,ucharm1,ucharf,ucharf1,uchars,uchars1)//时间显示
{
dula=1;
P0=table[m1];//秒位第1位
dula=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delay
(1);
dula=1;
P0=table[m];//秒位第2位
dula=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delay
(1);
dula=1;
P0=table[s1];//时位第一位
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay
(1);
dula=1;
P0=table[s]|0x80;
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay
(1);
dula=1;
P0=table[f1];//分位第一位
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay
(1);
dula=1;
P0=table[f]|0x80;
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delay
(1);
}
voidT0_timer()interrupt1
{
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
num2++;
if(num2==20)
{
num++;
num2=0;
m=num%10;
m1=num/10;
f=numf%10;
f1=numf/10;
s=nums%10;
s1=nums/10;
if(num==59)
{
num=0;
numf++;
if(numf==59)
{
numf=0;
nums++;
}
if(nums==24)
nums=0;
}
}
}
voiddelay(uintz)
{
uintx,y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 数码管 显示 时钟 程序