基于at89c52单片机的电子万年历设计内容摘要:

= { 0xfe, 0xfd, 0xfb, 0xf7 }。 //键盘扫 描码 uchar code getKeyboardCode[] = { 0xee, 0xde, 0xbe, 0x7e, 0xed, 0xdd, 0xbd, 0x7d, //键值 0xeb, 0xdb, 0xbb, 0x7b, 0xe7, 0xd7, 0xb7, 0x77 }。 uchar code theActionCode[] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}。 // 键盘序号 void Keyscan(void)//键盘扫描 { uchar sender = 0x00。 uchar counterOne = 0x00。 uchar counterTwo = 0x00。 uchar keyvals=0xff。 for(counterOne=0x00。 counterOne4。 counterOne++) { keyboardCode = initialKeyboardCode[counterOne]。 //选择扫描码 sender = keyboardCode。 //得到键值 delay10ms(1)。 for(counterTwo=0x00。 counterTwo16。 counterTwo++) { if(sender==getKeyboardCode[counterTwo]) //比较键值 { keyvals = theActionCode[counterTwo]。 //获得键盘序号 //You can write you control functions here too. keyval = keyvals。 } } } } 8 void addtime(uchar keyi) /*控制时间量的加 */ { time_data[keyi]+=1。 if(time_data[keyi]==0x0a || time_data[keyi]==0x1a || time_data[keyi]==0x2a || time_data[keyi]==0x3a || time_data[keyi]==0x4a || time_data[keyi]==0x5a || time_data[keyi]==0x6a || time_data[keyi]==0x7a || time_data[keyi]==0x8a || time_data[keyi]==0x9a) time_data[keyi]+=6。 if(keyi==0||keyi==1) //分,秒 { if(time_data[keyi]0x59) time_data[keyi]=0。 } if(keyi==2) //时 { if(time_data[keyi]0x23) time_data[keyi]=0。 } if(keyi==3) //日 { if(time_data[keyi]0x31) time_data[keyi]=1。 } if(keyi==4) //月 { if(time_data[keyi]0x12) time_data[keyi]=1。 } if(keyi==5) //星期 { if(time_data[keyi]0x07) time_data[keyi]=1。 } if(keyi==6) //年 { if(time_data[keyi]0x99) time_data[keyi]=0。 } 9 Convert()。 } void subtime(uchar keyi) /*控制时间量的减 */ { if(keyi==0||keyi==1) //分,秒 { if(time_data[keyi]==0x00) time_data[keyi]=0x59。 else time_data[keyi]=1。 } if(keyi==2) //时 { if(time_data[keyi]==0x00) time_data[keyi]=0x23。 else time_data[keyi]=1。 } if(keyi==3) //日 { if(time_data[keyi]==0x01) time_data[keyi]=0x31。 else time_data[keyi]=1。 } if(keyi==4) //月 { if(time_data[keyi]==0x01) time_data[keyi]=0x12。 else time_data[keyi]=1。 } if(keyi==5) //星期 { if(time_data[keyi]==0x01) time_data[keyi]=0x07。 else time_data[keyi]=1。 } if(keyi==6) //年 { if(time_data[keyi]==0x00) time_data[keyi]=0x99。 else time_data[keyi]=1。 } 10 if(time_data[keyi]==0x0f || time_data[keyi]==0x1f || time_data[keyi]==0x2f || time_data[keyi]==0x3f || time_data[keyi]==0x4f || time_data[keyi]==0x5f|| time_data[keyi]==0x6f || time_data[keyi]==0x7f || time_data[keyi]==0x8f || time_data[keyi]==0x9f) time_data[keyi]=6。 Convert()。 } void Keyproc() /*选择需要控制的时间变量 */ { if(keyval!=0xff) { beep()。 if(keyval==0) {df+=1。 if(df==8) { v_Set1302(time_data)。 df=0。 } delay10ms(50)。 } if(df==1) {if(keyval==1) addtime(0)。 if(keyval==2) subtime(0)。 } if(df==2) {if(keyval==1) addtime(1)。 if(keyval==2) subtime(1)。 } if(df==3) {if(keyval==1) 11 addtime(2)。 if(keyval==2) subtime(2)。 } if(df==4) {if(keyval==1) addtime(3)。 if(keyval==2) subtime(3)。 } if(df==5) {if(keyval==1) addtime(4)。 if(keyval==2) subtime(4)。 } if(df==6) {if(keyval==1) addtime(5)。 if(keyval==2) subtime(5)。 } if(df==7) {if(keyval==1)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。