基于51单片机电子时钟程序内容摘要:

in)) /*当时间到闹钟的时间时,蜂铃器叫 5次 */ { if(ring5) { ring++。 alarm=0。 delay(100)。 alarm=1。 } } } } void Leap_Nonleap(int aa) /*判断是否为闰年 */ { if(((aa%4==0)amp。 amp。 (aa%100!=0))||(aa%400==0)) { Mounth_array[1]=29。 /*将 2月份的最大天数赋给数组 Mounth[1]*/ } else { Mounth_array[1]=28。 } } /*===========================================按键值读取函数 =============================================*/ uchar Key_num(void) /*读取按键的值并返回按键的标号 */ { uchar L1,L2,L3,key,flag1=0。 P2=0xf0。 // L1=P2。 if(P2!=0xf0) delay(3)。 P2=0xf0。 if(P2!=0xf0) /*此时确认有按键被按下 */ { L2=P2。 /*将被按下后的数据赋给 L2*/ P2=0x0f。 /*将 P2低四位置高 */。 /* 此处 延时消抖 */ L3 = P2。 while(P2!=0x0f) /*当按键没有升起来就一直循环,直到按键回复, P2不等于 0x0f了并推出循环 */ {P2 = 0x0f。 } /*将此时 P2的数据赋给 L3*/ key=L3|L2。 switch(key) { case 0xe7: num=1。 flag1=1。 break。 /*从左往右从下往上依次为 16个按键的或编码 */ case 0xeb: num=2。 flag1=1。 break。 case 0xed: num=3。 flag1=1。 break。 case 0xee: num=4。 flag1=1。 break。 case 0xd7: num=5。 flag1=1。 break。 case 0xdb: num=6。 flag1=1。 break。 case 0xdd: num=7。 flag1=1。 break。 case 0xde: num=8。 flag1=1。 break。 case 0xb7: num=9。 flag1=1。 break。 case 0xbb: num=10。 flag1=1。 break。 case 0xbd: num=11。 flag1=1。 break。 case 0xbe: num=12。 flag1=1。 break。 case 0x77: num=13。 flag1=1。 break。 case 0x7b: num=14。 flag1=1。 break。 case 0x7d: num=15。 flag1=1。 break。 case 0x7e: num=16。 flag1=1。 break。 } } return flag1。 } /*====================================判断被按下的键,并进行设置 =========================================*/ void Judge_Setting(uchar Key_set) /*对按键操作进行判断并进行设置 */ { if(Key_set==1) /*对 hour进行加 1设置 */ { hour++。 if(hour==24) hour=0。 } else if(Key_set==2) /*对 hour进行减 1设置 */ { hour。 if(hour==1) hour=23。 } else if(Key_set==3) /*对 min进行加 1设置 */ { min++。 if(min==60) min=0。 } else if(Key_set==4) /*对 min进行减 1设置 */ {。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。