51单片机设置的电子闹钟(可调时间和闹钟)

51单片机设置的电子闹钟(可调时间和闹钟)

ID:39453231

大小:144.01 KB

页数:9页

时间:2019-07-03

51单片机设置的电子闹钟(可调时间和闹钟)_第1页
51单片机设置的电子闹钟(可调时间和闹钟)_第2页
51单片机设置的电子闹钟(可调时间和闹钟)_第3页
51单片机设置的电子闹钟(可调时间和闹钟)_第4页
51单片机设置的电子闹钟(可调时间和闹钟)_第5页
资源描述:

《51单片机设置的电子闹钟(可调时间和闹钟)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#defineuintunsignedint#defineucharunsignedchar#defineLEDP0//数码管的段选#defineLIGHTP1//时分秒位的指示灯#defineWSP2//数码管的位选sbitkey1=P3^0;//时间暂停/开始sbitkey2=P3^1;//时间/闹钟设置sbitkey3=P3^2;//增加sbitkey4=P3^3;//减少sbitalarm=P3^6;//闹铃uchartab[10]={0x3f,0x06,

2、0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9uchartab_dp[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//0.-9.(带小数点)uchardata1[]={0,0,0,0,0,0};uchardata2[]={0,0,0,0,0,0};uintt,k,kk,k1,flag;uintbbh,bbm,bbs,bbh1,bbm1,bbs1;uintsec,min,hour,sec

3、1,min1,hour1;//定义秒,分,时voidinit();voiddisplay();voiddisplay_bb();voiddelay(uint);voidkeyscan();voidmain(){init();while(1){keyscan();if(k1==0

4、

5、k1==1

6、

7、k1==2

8、

9、k1==3)//显示调节时间{display();第9页}if(k1==4

10、

11、k1==5

12、

13、k1==6)//显示调节闹钟{display_bb();}if((bbh==hour)&&(bbm=

14、=min)&&data1[4]==0&&data1[5]==5)//5s报时{alarm=~alarm;delay(1);}if((bbs==sec)&&(bbm==min)&&(bbh==hour))//可调报时{alarm=~alarm;delay(1);}}}voidinit(){WS=LIGHT=flag=0;sec=min=hour=0;//将0赋给时分秒TMOD=0x01;//方式1P129(见课本)TH0=0x3c;//65536-50000=15536=0x3cb0(50ms)P1

15、28(见课本)TL0=0xb0;EA=1;//开总中断P161(见课本)TR0=1;//定时/计数器0开启ET0=1;//定时器/计数器0溢出中断启动P161(见课本)}voiddelay(unsignedintt)//延时函数{unsignedinti;while(t--)for(i=0;i<125;i++);}voiddisplay()//显示时间函数{if(TF0==1)//定时器/计数器溢出P130(见课本){TF0=0;//清中断标志位t++;第9页if(t==20)//(50ms*20

16、=1s){t=0;sec++;//秒加1if(sec==60)//秒为60,则清零,分加1{sec=0;min++;}if(min==60)//分为60,则清零,时加1{min=0;hour++;}if(hour==24)//时为24,则清零{hour=0;}}}data1[5]=sec%10;data1[4]=sec/10;data1[3]=min%10;data1[2]=min/10;data1[1]=hour%10;data1[0]=hour/10;WS=0xdf;//11011111,低电

17、平显示LED=tab[data1[5]];delay(1);WS=0xef;//11101111LED=tab[data1[4]];delay(1);WS=0xf7;//11110111LED=tab_dp[data1[3]];delay(1);WS=0xfb;//11111011LED=tab[data1[2]];delay(1);第9页WS=0xfd;//11111101LED=tab_dp[data1[1]];delay(1);WS=0xfe;//11111110LED=tab[data1[

18、0]];delay(1);}voiddisplay_bb()//显示闹钟函数{data2[5]=bbs%10;data2[4]=bbs/10;data2[3]=bbm%10;data2[2]=bbm/10;data2[1]=bbh%10;data2[0]=bbh/10;WS=0xdf;//11011111,低电平显示LED=tab[data2[5]];delay(1);WS=0xef;//11101111LED=tab[data2[4]];delay(1);WS=0xf7;//11

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。