提示:请点击上方↑↑↑单片机精讲吴鉴鹰一键免费关注!
微信第一单片机技术分享公众号
导读
1.硬件电路设计
如下图是电子时钟的电路设计,按键的作用:其中K1将小时加1,K2将小时减1,K3用于将分钟加1,K4用于将分钟减1;数码管用于显示数字时间关于电路说明如下:
1:按键:四个独立按键占用单片机p1.4,p1.5,p1.6,p1.7引脚,并且每个引脚上加上拉电阻,保证按键释放后引脚上为可靠的高电平,以区分按键的按下和释放状态。
2:显示电路采用四位一体的数码管两个,采用动态显示方式,P0口送显示段码决定数码管显示什么数字,P2口送位选码决定哪个数码管显示,P0口上接0.47K的电阻为限流电阻,调节数码管的亮度,10K电阻为P0口上拉电阻。
2:软件设计思想
首先分析一下,完成数字电子时钟应该让程序完成哪些任务,然后再把任务合理的组合起来,最后形成清晰的流程图,数字电子时钟应该具备一下几个基本的功能。
第一:要求每隔一秒钟位加一,且在到60秒时位清零,同时分钟位加1,如果分钟位到60那么小时位要加1,同时分钟位清零,而且时位到了24要将时位清零,这部分由定时器T0中断服务子程序TIMER0完成。
第二:由于在本设计中采用的是动态显示方式,因此单片机在能够完成第一中的任务的情况下,要“经常”去执行一个显示程序,保证数码管不熄灭,看上去一直显示当前的时间信息,这部分由显示子程序DESPLAY完成。
第三:定时调用一个按键子程序,完成对按键是否按下的判定,如果有按键按下,则根据按下的按键做相应处理,如果没有按键就继续执行其他程序,如显示子程序,按键程序有KEY完成。
第四:要对最新的当前时间进行数据进行处理,如当前时间为“12-11-06“,要实现这个数据在数码管上显示,需要将时,分,秒三个数码管分别拆成十位和各位两个数字,如秒位位06需要拆成0和6两个数字,这部分由PROCESS程序完成,实现的原理是分别用时,分,秒这三个数据除以10,将得到的十位和各位分别存在两个单独的存储器里,这样就实现了将数据分开的目的。
第五:除了上述主要程序以外,当然还要有初始化子程序,这部分主要是为上面的程序做准备工作,这部分有START开始到MAIN结束的这段代码。
上述的五部分内容在程序中是这样安排的,首先执行初始化子程序,将一切准备工作做好后,进入到一个无限循环执行的程序,其中主程序包括按键子程序,数据处理子程序和显示子程序,还有就是定时1秒进行秒,分,时的进位问题,这部分交给定时器完成。
喜欢本文的亲们,欢迎转载点赞
| 单 | 片| 机 | 精 | 讲 | 吴| 鉴 | 鹰 |
微信第一单片机分享 最受欢迎图文公号
微信号:wujianying_danpianji
《2015.4.17》● 技术源于积累,成功来自执着——单片机精讲吴鉴鹰
|
欢迎转载,但是请保持以上内容的完整性!来源:单片机精讲吴鉴鹰