基于at89c52单片机电子万年历设计(带程序内容摘要:

=26, yea=2020r,week=1。 /*****************************************************/ /* 延时函数 */ /******************************************************/ void delay(unsigned int t) { while(t)。 } /******************************************************/ /* 显示处理函数 */ /***************************************************/ void Displaypro(void) { if(( (second=0)amp。 amp。 (second=1))|| (KEY5==0)) //显示年、月、日 (自动或同时按下按键 0 和 2) {StrTab[0]=tab[year/1000]。 //年 StrTab[1]=tab[year/100%10]。 StrTab[2]=tab[year/10%10]。 StrTab[3]=tab[year%10]。 StrTab[4]=tab[month/10]。 //月 10 StrTab[5]=tab[month%10]。 StrTab[6]=tab[day/10]。 //日 StrTab[7]=tab[day%10]。 } if((second==2)||(KEY6==0)) //显示星期 (自动或同时按下按键 0 和 3) { StrTab[0]=0x40。 StrTab[1]=0x40。 StrTab[2]=0x40。 //显示 StrTab[3]=0x40。 StrTab[4]=0x40。 //显示 StrTab[5]=0x40。 //显示 StrTab[6]=0x40。 //显示 StrTab[7]=0x40。 //显示 StrTab[7]=tab[week]。 } if((second=3)amp。 amp。 (second=60)amp。 amp。 (KEY6==1)amp。 amp。 (KEY5==1)) {StrTab[0]=tab[hour/10]。 //显示小时 StrTab[1]=tab[hour%10]。 StrTab[2]=0x40。 //显示 StrTab[3]=tab[minute/10]。 //显示分钟 StrTab[4]=tab[minute%10]。 StrTab[5]=0x40。 //显示 StrTab[6]=tab[second/10]。 //显示秒 StrTab[7]=tab[second%10]。 } } /******************************************************/ /* 主函数 */ /******************************************************/ main() { TMOD |=0x01。 //定时器 0 10ms in 12M crystal 用于计时 TH0=0xd8。 //初值 11 TL0=0xf0。 ET0=1。 TR0=1。 TMOD |=0x10。 //定时器 1 用于动态扫描 TH1=0xF8。 //初值 TL1=0xf0。 ET1=1。 TR1=1。 EA =1。 Displaypro()。 //调用显示处理 while(1)//主循环 { if((!KEY1)amp。 amp。 KEY6amp。 amp。 KEY5) //按键 1 去抖以及动作 { delay(10000)。 if((!KEY1)amp。 amp。 KEY6amp。 amp。 KEY5) { hour++。 if(hour==24)hour=0。 //正常时间 小时 加 1 Displaypro()。 } } if((!KEY2)amp。 amp。 KEY6amp。 amp。 KEY5) //按键 2 去抖以及动作 { delay(10000)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。