单片机电子时钟设计.docx
- 文档编号:15140038
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:15
- 大小:16.13KB
单片机电子时钟设计.docx
《单片机电子时钟设计.docx》由会员分享,可在线阅读,更多相关《单片机电子时钟设计.docx(15页珍藏版)》请在冰点文库上搜索。
单片机电子时钟设计
我这个用单片机+DS12C887时钟芯片制作的不怕掉电的带按键声音的时钟。
用的是数码管显示,你可以自己改成1602液晶显示。
原理图不好上,直接上程序了。
程序是我调试通过的,可直接用。
有问题再联系我。
#include
#defineuintunsignedint
#defineucharunsignedchar
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};
bitflag;
sbitdscs=P3^5;
sbitdswr=P3^6;
sbitdsre=P3^7;
sbitdsal=P3^1;
sbitJ1=P0^0;
sbitJ2=P0^1;
sbitJ3=P0^2;
sbitJ4=P0^3;
sbitD=P3^0;
charshi,fen,miao,temp,sett,setd,J2n,J3n;
chardshi,dfen,dmiao;
voiddelay(uchar);
voiddisplay(char,char,char,char);
voidwrite_ds(uchar,uchar);
ucharread_ds(uchar);
voidscakey();
voidsettime();
voiddingshi();
voidmain()
{
EA=1;
EX0=1;
dshi=read_ds(0x4e);
dfen=read_ds(0x4f);
dmiao=read_ds(0x50);
//write_ds(0x0a,0x2f);//启动振荡器设置SQW端输出2HZ方波//
write_ds(0x0a,0x0f);//关闭振荡器
write_ds(0x0b,0x2e);//设置二进制模式,24小时模式,方波允许模式//
//write_ds(0x04,23);
//write_ds(0x02,59);
//write_ds(0x00,57);
while
(1)
{
miao=read_ds(0x00);
fen=read_ds(0x02);
shi=read_ds(0x04);
display(shi,fen,miao,0);
scakey();
settime();
dingshi();
}
}
voiddelay(ucharz)
{
ucharx,y;
for(x=z;x>0;x--)
for(y=96;y>0;y--);
}
voiddisplay(charshi,charfen,charmiao,chartemp)//显示时间//
{
ucharx,y,z;
z=1;
x=shi/10;
y=shi%10;
if(temp==3&&y==0&&flag==1)
y=16;
if(temp==0&&x==0)
x=16;
P0=table[x];
P2=0x7f;
delay(z);
P2=0xff;
P0=table[y]|0x80;
P2=0xbf;
delay(z);
x=fen/10;
y=fen%10;
if(temp==2&&y==0&&flag==1)
y=16;
if(temp==0&&x==0)
x=16;
P2=0xff;//显示小时//
P0=table[x];
P2=0xdf;
delay(z);
P2=0xff;
P0=table[y]|0x80;
P2=0xef;
delay(z);
x=miao/10;
y=miao%10;
if(temp==1&&y==0&&flag==1)
y=16;
P2=0xff;//显示分钟//
if(temp==0&&x==0)
x=16;
P0=table[x];
P2=0xf7;
delay(z);
P2=0xff;
P0=table[y];
P2=0xfb;
delay(z);
P2=0xff;//显示秒//
if(sett!
=0)
{
P0=table[sett+9];
P2=0xfe;
delay(z);
P2=0xff;
}
if(setd!
=0)
{
P0=table[13];
P2=0xfd;
delay(z);
P2=0xff;
P0=table[setd+9];
P2=0xfe;
delay(z);
P2=0xff;
}
P0=0xff;
}
voidwrite_ds(ucharadds,uchardate)
{
dsal=1;
dswr=1;
dscs=0;
P1=adds;
dsal=0;
dswr=0;
P1=date;
dswr=1;
dsal=1;
dscs=1;
}
ucharread_ds(ucharadds)
{
ucharnum;
dsal=1;
dsre=1;
dscs=0;
P1=adds;
dsal=0;
dsre=0;
P1=0xff;
dsre=1;
num=P1;
dsal=1;
dscs=1;
returnnum;
}
voidscakey()
{
J1=P0^0;
if(J1==0)
{
delay(5);
if(J1==0)
{
//display
(1);
//P1=0xfe;
//D=0;
//delay(50);
//D=1;
sett++;
while(J1==0)
{
J1=P0^0;
}
P0=0xff;
}
}
J2=P0^1;
if(J2==0)
{
delay(5);
if(J2==0)
{
//display
(2);
//P1=0xfd;
//D=0;
//delay(50);
//D=1;
J2n++;
while(J2==0)
{
J2=P0^1;
}
P0=0xff;
}
}
J3=P0^2;
if(J3==0)
{
delay(5);
if(J3==0)
{
//display(3);
//P1=0xfb;
//D=0;
//delay(50);
//D=1;
J3n++;
while(J3==0)
{
J3=P0^2;
}
P0=0xff;
}
}
J4=P0^3;
if(J4==0)
{
delay(5);
if(J4==0)
{
//display(4);
//P1=0xf7;
//D=0;
//delay(50);
//D=1;
setd++;
while(J4==0)
{
J4=P0^3;
}
P0=0xff;
}
}
}
voidsettime()
{
while(sett!
=0)
{
scakey();
display(shi,fen,miao,sett);
switch(sett)
{
case1:
{
if(J2n==1)
{
J2n=0;
miao++;
if(miao==60)
miao=0;
}
if(J3n==1)
{
J3n=0;
miao--;
if(miao==-1)
miao=59;
}
break;
}
case2:
{
if(J2n==1)
{
J2n=0;
fen++;
if(fen==60)
fen=0;
}
if(J3n==1)
{
J3n=0;
fen--;
if(fen==-1)
fen=59;
}
break;
}
case3:
{
if(J2n==1)
{
J2n=0;
shi++;
if(shi==24)
shi=0;
}
if(J3n==1)
{
J3n=0;
shi--;
if(shi==-1)
shi=23;
}
break;
}
case4:
sett=0;break;
default:
break;
}
write_ds(4,shi);
write_ds(2,fen);
write_ds(0,miao);
}
}
voiddingshi()
{
while(setd!
=0)
{
D=1;
scakey();
display(dshi,dfen,dmiao,setd);
switch(setd)
{
case1:
{
if(J2n==1)
{
J2n=0;
dmiao++;
if(dmiao==60)
dmiao=0;
}
if(J3n==1)
{
J3n=0;
dmiao--;
if(dmiao==-1)
dmiao=59;
}
break;
}
case2:
{
if(J2n==1)
{
J2n=0;
dfen++;
if(dfen==60)
dfen=0;
}
if(J3n==1)
{
J3n=0;
dfen--;
if(dfen==-1)
dfen=59;
}
break;
}
case3:
{
if(J2n==1)
{
J2n=0;
dshi++;
if(dshi==24)
dshi=0;
}
if(J3n==1)
{
J3n=0;
dshi--;
if(dshi==-1)
dshi=23;
}
break;
}
case4:
setd=0;break;
default:
break;
}
write_ds(5,dshi);
write_ds(3,dfen);
write_ds(1,dmiao);
write_ds(0x4e,dshi);
write_ds(0x4f,dfen);
write_ds(0x50,dmiao);
}
}
voidinterrupt0()interrupt0
{
D=0;
read_ds(0x0c);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电子 时钟 设计