版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字电子时钟程序【闹铃(持续5s),整点报时(几点报几下,每两下之间隔间2s,每声持续2s)】程序:#include<reg51.h>#include<absacc.h>#defineucharunsignedchar#defineuintunsignedint〃此表为LED的字模,共阴数码管0-9-ucharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};〃段码控制/*定义并初始化变量*/sbitkey1=P3A0;sbitkey2=P3A1;sbitkey3=P3A2;sbitkey4=P3A3;sbitbuzz=P1A3;ucharmstcnt=0;〃定时器计数,定时50ms,mstcnt满20,秒加1ucharseconde1=0;ucharbjcs;ucharminite1=0;ucharhour1=7;ucharseconde2=0;ucharminite2=0;ucharhour2=8;uchartemp1=0;uchartemp2=0;ucharcount1,flag,temp;/*函数声明*/voiddelay(uintz);//延时子程序voidtime_pro();〃时间处理子程序voiddisplay(ucharhour,ucharminite,ucharseconde);湿示子程序voidkeyscan();//键盘扫描子程序voidzhengdian();voiddinshi();voiddelay(uintz){uintx,y;for(x=0;x<z;x++)for(y=0;y<110;y++);voidtime_pro(void) /*时间处理子程序*/(if(seconde1==60)(seconde1=0;minite1++;if(minite1==60)(minite1=0;hour1++;if(hour1==24)hour1=0;} _voiddisplay(ucharhour,ucharminite,ucharseconde)/*显示子程序*/(ucharh1,h2,m1,m2,s1,s2;s2=seconde/10;s1=seconde%10;m2=minite/10;m1=minite%10;h2=hour/10;h1=hour%10;P2=0XFE;〃11111110if(temp1==1) //功能选项,通过点提醒来调节相应位的时间P0=dispcode[s1]|0x80;//点提醒elseP0=dispcode[s1];//秒个位delay(1);P2=0XFD;//11111101P0=dispcode[s2];//秒十位delay(1);P2=0XFB;//11111011P0=dispcode[10];〃间隔符-delay(1);P2=0XF7;〃11110111if(temp1==2)//P0=dispcode[m1]|0x80;elseP0=dispcode[m1];〃分个位delay(1);P2=0XEF;//11101111P0=dispcode[m2];//^+fedelay(1);P2=0XDF; 〃11011111P0=dispcode[10];〃间隔符-delay(1);P2=0XBF;//10111111if(temp1==3)P0=dispcode[h1]|0x80;//时个位elseP0=dispcode[h1];delay(1);P2=0X7F; //01111111P0=dispcode[h2];//时十位delay(1);voidkeyscan(void)/*键盘扫描子程序*/(if(key1==0)(delay(10);if(key1==0)//TR0=0;temp1++;if(temp1==4){temp1=0;TR0=1;)while(!key1)switch(temp2){case0:display(hour1,minite1,seconde1);break;case1:display(hour2,minite2,seconde2);break;if(key2==0){delay(10);if(key2==0)if(temp2==0)〃闹钟选择 键{//TR0=0;switch(templ){case1:seconde1++;if(seconde1==60)seconde1=0;break;case2:minite1++;if(minite1==60)minite1=0;break;case3:hour1++;if(hour1==24)hour1=0;break;}while(!key2)display(hour1,minite1,seconde1);}if(temp2==1){ TR0=1;switch(temp1){case1:seconde2++;if(seconde2==60)seconde2=0;break;case2:minite2++;if(minite2==60)minite2=0;break;case3:hour2++;if(hour2==24)hour2=0;break;}while(!key2)display(hour2,minite2,seconde2);}}}if(key3==0){delay(10);if(key3==0){if(temp2==0){ //TR0=0;switch(temp1){case1:if(seconde1==0)seconde1=60;seconde1--;break;case2:if(minite1==0)minite1=60;minite1--;break;case3:if(hour1==0)hour1=24;hour1--;break;}while(!key3)display(hour1,minite1,seconde1);}if(temp2==1){ TR0=1;switch(templ){case1:if(seconde2==0)seconde2=60;seconde2--;break;case2:if(minite2==0)minite2=60;minite2--;break;case3:if(hour2==0)hour2=24;hour2--;break;}while(!key3)display(hour2,minite2,seconde2);}}}if(key4==0){delay(10);if(key4==0){temp1=0;temp2++;if(temp2==2)temp2=0;while(!key4)switch(temp2){case0:display(hour1,minite1,seconde1);break;case1:display(hour2,minite2,seconde2);break;}}}switch(temp2){case0:display(hour1,minite1,seconde1);break;case1:display(hour2,minite2,seconde2);break;}}voiddinshi() /*定时闹钟*/{uinti;if(hour1==hour2&&minite1==minite2&&(seconde1>=seconde2&&seconde1<seconde2+5)){for(i=0;i<200;i++){buzz=1;)buzz=0;}/*整点报警/*整点报警*//*voidzhengdian(void){uintk;if((seconde1==0)&&(minite1==0)){for(bjcs=0;bjcs<hour1;bjcs++){for(k=0;k<150;k++){buzz=0;delay(20);}buzz=1;delay(20);}}} */voidzhengdian(void){if(seconde1==0&&minite1==0){temp=hour1;flag=1; //标记buzz=1;}}/*主函数*/voidmain(void){TMOD=0x11;〃time0为定时器,方式1TH0=0x3c;〃预置计数初值,50msTL0=0xb0;TH1=(65535-50000)/256;TL1=(65535-50000)%256;EA=1; 〃总中断开ET0=1;〃允许定时器0中断TR0=1;ET1=1;TR1=1;buzz=0; 〃开启定时器0while(1)(keyscan(); 〃按键扫描dinshi(); 〃定时闹钟〃zhengdian(); 〃整点报时switch(temp2)〃显示时间{case0:display(hour1,minite1,seconde1);break;case1:display(hour2,minite2,seconde2);break;}}voidtimer0(void)interrupt1〃定时器0方式1,50ms中断一次{TH0=0x3c; 〃手动加载计数脉冲次数TL0=0xb0;//TMOD=0x11;mstcnt++;zhengdian();〃用于计算时间,每隔50ms加1if(mstcnt==20) //mstcnt满20即为一秒{seconde1++; //秒+1time_pro();//时间处理mstcnt=0; 〃对计数单元的清零
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育馆安全评估设计
- 浅谈体育游戏在中学体育教学中的作用
- 企业劳动合同范例15篇
- 以劳务纠纷案件为视角加强法院服务“三农”问题的统计分析
- 六年级语文上册 第一单元复习教案 新人教版(一)
- 初中心理健康北师大版(2025)七年级下册第五单元 架设爱心桥《第十二课 传递温暖点亮星光》2026春教学设计
- 2026 学龄前自闭症日常情绪课件
- 绿色供应链管理在企业中的应用前景
- 土方承包合同(14篇)
- 尊老爱幼演讲稿14篇
- 2026年企业破产债权申报实务培训课件与债权确认指南
- GB/T 4982-2025真空技术夹紧型快卸连接器尺寸
- 齐商银行笔试题库及答案
- 雨课堂学堂在线学堂云《国学通论(吉大 )》单元测试考核答案
- 科研助理聘用协议书
- 2025年国家义务教育质量监测小学四年级劳动教育模拟测试题及答案
- 2025年生物会考成都真题及答案
- 2024集中式光伏电站场区典型设计手册
- 新媒体伦理与法规-形成性考核一(第1-3章权重15%)-国开-参考资料
- GB/T 46075.3-2025电子束焊机验收检验第3部分:电子束电流特性的测量
- 生物医药创新药物研发成本效益可行性研究报告
评论
0/150
提交评论