基于.51单片机的数码管时钟(带闹钟调时秒表).docx

上传人:王** 文档编号:1033058 上传时间:2024-03-16 格式:DOCX 页数:13 大小:21.26KB
下载 相关 举报
基于.51单片机的数码管时钟(带闹钟调时秒表).docx_第1页
第1页 / 共13页
基于.51单片机的数码管时钟(带闹钟调时秒表).docx_第2页
第2页 / 共13页
基于.51单片机的数码管时钟(带闹钟调时秒表).docx_第3页
第3页 / 共13页
基于.51单片机的数码管时钟(带闹钟调时秒表).docx_第4页
第4页 / 共13页
基于.51单片机的数码管时钟(带闹钟调时秒表).docx_第5页
第5页 / 共13页
基于.51单片机的数码管时钟(带闹钟调时秒表).docx_第6页
第6页 / 共13页
基于.51单片机的数码管时钟(带闹钟调时秒表).docx_第7页
第7页 / 共13页
基于.51单片机的数码管时钟(带闹钟调时秒表).docx_第8页
第8页 / 共13页
基于.51单片机的数码管时钟(带闹钟调时秒表).docx_第9页
第9页 / 共13页
基于.51单片机的数码管时钟(带闹钟调时秒表).docx_第10页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于.51单片机的数码管时钟(带闹钟调时秒表).docx》由会员分享,可在线阅读,更多相关《基于.51单片机的数码管时钟(带闹钟调时秒表).docx(13页珍藏版)》请在优知文库上搜索。

1、*基于51单片机的数码管时钟程序*#include#defineuintunsignedint#defineucharunsignedcharsbitdula=P26;申明ul锁存器的锁存端sbitwela=P27;申明u2锁存器的锁存端sbitkeyl=P30;功能键sbitkey2=P3人1;增大键sbitkey3=P3人2;减小键sbitkey4=P3人3;秒表查看键sbitbeep=P2人3;蜂鸣端ucharnum,numl,num2,numm;ucharnumf,num,numsznum;uchars,slzfzflzmzml;ucharns,nsl,nf,nfl;ucharnumn

2、sznumnf;uchardingshi;voiddisplay(ucharmzucharmlzucharfzucharflzuchars,ucharsi);voiddisplayl(ucharnfzucharnflzucharnszucharnsl);voidkey();voidkeyl();voidalram();voiddi();voiddelayms(xms);voidT0Jme()interrupt1;voidmiaobiao();ucharcodetable=0x3fz0x06z0x5bz04fz0x66,0x6d,0x77,0x7c,0x39z0x5e,0x79z0x71;主函数

3、voidmain()intmain()TMOD=0X01;TH0=(65536-46080)256;TL0=(65536-46080)%256;EA=I;ETO=1;TRO=1;nums=12;numf=0;num2=0;num=0;while(l)(if(dingshi=O)(keyscan();display(mzmlzfzfl,szsl);alarm();)elsemiaobiao();keyscanl();displayl(nfznflznsznsl);returnO;蜂鸣器函数di()voiddi()(beep=0;delayms(100);beep=l;按键调时函数key()voi

4、dkeyscan()(if(keyl=O)(delayms(10);if(keyl=O)nums+;if(nums=24);nums=0;while(!keyl);di();display(mzmlzf,flzs,sl);if(key2=0)delayms(10);if(key2=0)numf+;if(numf=24);numf=0;while(!key2);di();display(mzmlzfzflzszsl);)if(key3=0)delayms(10);if(key3=0)(dingshi=dingshi;WhiIe(Ikeyl);di();display(mzmlzfzflzszsl

5、);按键设定闹钟函数keyscanl();voidkeyscan1()if(keyl=O)delayms(10);if(keyl=O)numns+;if(numns=24);numns=0;while(!keyl);di();displayl(nfznfl,nsznsl);)if(key2=0)delayms(10);if(key2=0)numnf+;if(numnf=24);numnf=0;while(!key2);di();displayl(nfznflznsznsl);)if(key3=0)(delayms(10);if(key3=0)dingshi=O;while(!keyl);di(

6、);displayl(nf,nflzns,nsl);)闹钟函数alram()voidalram()if(nums=numns)&(numnf=numf)beep=0;)秒表函数miaobiao()voidmiaobiao()if(key4=0)delayms(100);if(key4=O)while(!key4);di();displaym(ucharmzucharml);正常显示函数dispgy()voiddisplay(ucharmzucharmlzucharfzucharflzucharszucharsi)dula=l;PO=tableml秒位第1位dula=0;PO=Oxff;/送入位

7、选信号前关闭所有显示,防止翻开位选锁存时wela=1;PO=Oxef;wela=0;delayms(10);dula=l;PO=tablem;秒第2位dula=O;PO=Oxff;wela=l;PO=Oxdf;wela=0;delayms(100)dula=l;PO=tablefl;分第1位dula=O;PO=Oxff;wela=1;PO=Oxfb;wela=O;delayms(100)dula=l;PO=tablef;分第2位dula=O;PO=Oxff;wela=l;P0=0xf7;wela=0;delayms(10)dula=l;PO=tablesl;时第1位dula=O;PO=Oxff

8、;wela=1;PO=Oxfe;wela=0;delayms(100)dula=l;PO=tables;时第2位dula=O;PO=Oxff;wela=l;PO=Oxfd;wela=0;delayms(10)调时闹钟显示函数displayl()voiddisplayl(ucharnfzucharnflzucharnszucharnsl)nfl=numnf10;nf=numnf%10;nsl=nums10;ns=nums%10;dula=l;PO=tablenfl;分第1位dula=O;PO=Oxff;wela=l;PO=OXfb;待改参数wela=0;delayms(10);dula=l;PO

9、=tablenf;分第2位dula=O;PO=Oxff;wela=l;Po=OXf7;待改参数wela=0;delayms(10);dula=l;PO=tablensl;时第1位dula=O;PO=Oxff;wela=1;PO=OXfe;待改参数wela=0;delayms(10);dula=l;PO=tablens;时第2位dula=O;PO=Oxfd;wela=1;Po=OXm待改参数wela=0;delayms(10);秒表显示函数displaym()voiddisplaym(ucharmzucharml)dula=l;PO=tableml;秒位第T立dula=O;PO=Oxff;wel

10、a=l;PO=OXbf;wela=0;delayms(10);dula=l;PO=tablem;dula=O;PO=Oxff;wela=l;P0=0X7f;wela=0;delayms(10);中断服务函数voidTOjjme()interrupt1voidT0_time()interrupt1TH0=(65536-45872)256;/46080TL0=(65536-45872)%256;num2+;if(num2=20)num+;num2=0;m=num%10;ml=num10;f=numf%10;fl=numf10;s=nums%10;sl=nums10;if(num=59)num=0;numf+;numf=O;nums+;if(nums=24)nums=0;)延时函数delayms()voiddelayms(xms)uintizj;for(i=xms;i0;i-)for0=HO;jO;j-);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 通信/电子 > 电子设计

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!