日历时钟(带闹钟、图).doc_第1页
日历时钟(带闹钟、图).doc_第2页
日历时钟(带闹钟、图).doc_第3页
日历时钟(带闹钟、图).doc_第4页
日历时钟(带闹钟、图).doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/*按键1用于切换时分秒 年月日 闹钟一 闹钟二 */*按键2用于当前显示调节 闪烁进入调节状态 调节秒(日)分(月) 时(年)*/*按键3用于配合按键2调表 两位闪烁 一位不闪 不闪位每次加1*/*按键4用于中断闹钟1、2 闹钟响应20s内如不按1、2,一段时间后闹钟再想*/#include#define uint unsigned int#define uchar unsigned charuchar miao=0,fen=0,shi=0,ri=20,yue=12,nian=13;/年月日时分秒定义uchar i1=0,i2=0; /判断按键变量uchar miao1,fen1,shi1,miao2,fen2,shi2,naofen=0,0;/调闹钟变量uchar d1,d2,d3,d4,d5; /显示变量uchar t1=1,t2=1,t3=1; /显示延时变量uint n13,n12,n11,n21,n22,n23,nz1,nz2; /闹钟变量void xianshi();void init1();void delayms(uchar ms);void display(d1,d2,d3,d4,d5);void naozhong();int key();void tiaobiao();sbit nao1=P10;/定义闹钟1端sbit nao2=P11;/定义闹钟2端sbit key1=P14;/定义按键1sbit key2=P15;/定义按键2sbit key3=P16;/定义按键3sbit key4=P17;/定义按键4uint num=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40,0x80; /用于显示的数组 0,1,2,3,4,5,6,7,8,9,-,.void main() /主程序init1(); while(1)key();xianshi();tiaobiao();naozhong();void xianshi() /显示切换if(i1=0)display(shi,11,fen,11,miao);if(i1=1)display(nian,10,yue,10,ri);if(i1=2)display(shi1,10,fen1,10,miao1);if(i1=3)display(shi2,10,fen2,10,miao2);void delayms(uchar ms)/延时 uint z;for(ms;ms0;ms-)for(z=200;z0;z-);void init1()/定时器1初始化 装初值 TMOD=0x10;ET1=1;TH1=(65535-50000)/256;TL1=(65535-50000)%256;TR1=1; EA=1;void timer1() interrupt 3 using 1/定时器1方式1中断uchar count;count+;if(count=20) nz1+;nz2+;miao+;count=0;if(miao=60)fen+;miao=0;if(fen=60)shi+;fen=0;if(shi=24)ri+;shi=0;if(yue=1|3|5|7|8|10|12)&(ri=33)yue+;ri=1;if(yue=4|6|9|11)&(ri=32)yue+;ri=1;if(nian%4=0)&(yue=2)&(ri=30)yue+;ri=1;if(nian%4!=0)&(yue=2)&(ri=29)yue+;ri=1;if(yue=13)nian+;yue=1;if(nian=99)nian=0;TH1=(65535-50000)/256;TL1=(65535-50000)%256; void naozhong()/闹钟n13=miao1-miao;n12=fen1-fen;n11=shi1-shi;n21=miao2-miao;n22=fen2-fen;n23=shi2-shi;if(i1=2&key()=3) /调 闹钟1if(i2=2)miao1+;if(miao1=60)miao1=0;if(i2=3)fen1+;if(fen1=60)fen1=0;naofen0=fen1;if(i2=4)shi1+;if(shi1=24)shi1=0;if(i1=3&key()=3)/调 闹钟2if(i2=2)miao2+;if(miao2=60)miao2=0;if(i2=3)fen2+;if(fen2=60)fen2=0;naofen1=fen2;if(i2=4)shi2+;if(shi2=24)shi2=0;if(miao1!=0)|(fen1!=0)|(shi1!=0)/闹钟1if(n11=0&n12=0&n13=0)nz1=0;while(nz120)nao1=0;xianshi();if(key()=4)nao1=1;fen1=naofen0;break;if(key()!=4&nz1=19)fen1=fen1+5;nao1=1;nz1=20;if(miao2!=0)|(fen2!=0)|(shi2!=0)/闹钟2if(n21=0&n22=0&n23=0)nz2=0;while(nz220)nao2=0;xianshi(); if(key()=4)nao2=1;fen2=naofen1;break;if(key()!=4&nz2=19)fen2=fen2+5;nao2=1;nz2=20; void display(d1,d2,d3,d4,d5) /显示 uchar a,b,c,d,e,f,g,h;a=d5%10;b=d5/10;c=d4;d=d3%10;e=d3/10;f=d2;g=d1%10;h=d1/10;P2=0x7f;P0=numa;delayms(t3);P2=0xbf;P0=numb;delayms(t3);P2=0xdf;P0=numc;delayms(1);P2=0xef;P0=numd;delayms(t2);P2=0xf7;P0=nume;delayms(t2);P2=0xfb;P0=numf; delayms(1);P2=0xfd;P0=numg;delayms(t1);P2=0xfe;P0=numh;delayms(t1);int key() /判断按键程序if(key1=0) i1+;while(!key1);if(i1=4)i1=0;return 1;else if(key2=0) i2+;while(!key2);if(i2=5)i2=0; return 2; else if(key3=0)while(!key3);return 3;else if(key4=0)while(!key4)return 4; else return 0;void tiaobiao()/调表 程序if(i2=1)t1=t2=t3=15;if(i2=2)t3=20;t1=t2=1;if(i2=3)t2=20;t3=t1=1;if(i2=4)t3=t2=1;t1=20;if(i2=0)t1=t2=t3=1;if(i1=1&key()=3)if(i2=2)ri+;if(yue=1|3|5|7|8|10|12)&(ri=33)ri=1;else if(yue=4|6|9|11)&(ri=32)ri=1;else if(nian%4=0)&(yue=2)&(ri=30)ri=1;else if(nian%4!=0)&(yue=2)&(ri=29)ri=1;if(yue=13)yue=1; if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论