可调时报时单片机电子钟.doc

可调时报时单片机电子钟.doc

ID:55659409

大小:25.00 KB

页数:5页

时间:2020-05-23

可调时报时单片机电子钟.doc_第1页
可调时报时单片机电子钟.doc_第2页
可调时报时单片机电子钟.doc_第3页
可调时报时单片机电子钟.doc_第4页
可调时报时单片机电子钟.doc_第5页
资源描述:

《可调时报时单片机电子钟.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、可调时报时的单片机电子钟#include#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlongsbitp3_0=P3^0;//显示日期sbitp3_1=P3^1;//时间设置外部中断0sbitp3_2=P3^2;//选择设置位sbitp3_3=P3^3;//时间设置+1sbitp3_4=P3^4;//设置完成,电子钟开始走sbitp3_5=P0^0;//闹铃显示bitflag=0;//判断一般显示还是设置显示位uintg_month[]={31,28,31,30,31,30

2、,31,31,30,31,30,31};//非闰年uintr_month[]={31,29,31,30,31,30,31,31,30,31,30,31};//闰年uinttimes=59;//T0一秒中断次数uintsettimes=1;//设置位初始为最高位—年ucharwhichshow=0x80;//显示位初始为最高位ucharyu;//显示设置的位uintstor;//存放设置开始时显示的位structdate{uintyear;uintmonth;uintday;}date1={00,1,1};//初始化日期structtime{uinthour;uintminit

3、e;uintsecond;}time1={0,0,0};//初始化时间structtimetime2={0,0,0};unionshowdata{//定义显示的位为共用体uintyear1,year2;uintmonth1,month2;uintday1,day2;}a;unionshowtime{uinthour1,hour2;uintmin1,min2;uintsec1,sec2;}b;voiddelay(uinti)//延时程序ims{ucharj;while(i--){for(j=0;j<125;j++);}}uintmo_days()//函数mo_days判断每月天

4、数并返回{if((date1.year%4==0

5、

6、date1.year%100==0)

7、

8、date1.year%400==0)//若为闰年returnr_month[date1.month-1];elsereturng_month[date1.month-1];}voidring()//整点报时,几点亮几下{if(time1.minite==0&&time1.second

9、x,y;if(flag==0)P1=whichshow&0xff;elseP1=whichshow&yu;switch(p){//0~9及横杠显示case0:P2=0x03;break;case1:P2=0x9f;break;case2:P2=0x25;break;case3:P2=0x0d;break;case4:P2=0x99;break;case5:P2=0x49;break;case6:P2=0x41;break;case7:P2=0x1f;break;case8:P2=0x01;break;case9:P2=0x09;break;default:P2=0xfd;}d

10、elay(2);x=whichshow<<7;//显示位循环右移1位y=whichshow>>1;whichshow=x

11、y;}voiddisplay(){//时间显示程序if(p3_0==1){//显示时分秒b.hour1=time1.hour/10;show(b.hour1);//时高位0~2b.hour2=time1.hour%10;show(b.hour2);//时低位0~9show(10);//横线b.min1=time1.minite/10;show(b.min1);//分高位0~5b.min2=time1.minite%10;show(b.min2);//分低位

12、0~9show(10);//横线b.sec1=time1.second/10;show(b.sec1);//秒高位0~5b.sec2=time1.second%10;show(b.sec2);//秒低位0~9}if(p3_0==0){//显示年月日a.year1=date1.year/10;show(a.year1);//年a.year2=date1.year%10;show(a.year2);show(10);//横线a.month1=date1.month/10;show(a.month1);//月

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

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

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