根据七段译码器的型号共阴极或者共阳极,给予信号0或1点亮对应的led灯,一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选(a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即;共阳数码管的字符编码为11000000。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
本模块采用6个七段译码器显示闹钟小时分钟秒位,使用一个计数器不停计数0-5,每个数字代表一个七段译码器,在对应的七段译码器给予对应的字符编码,以此达到扫描数码管显示数据的功能。
信号列表如下:
2.矩阵键盘扫描模块
本次案例万年历使用的是4x4矩阵键盘,本模块就是实现了矩阵键盘的扫描并使用以及按键消抖功能。通过行扫描法得到按下的键的位置信息。
信号列表如下:
3.时钟计数模块
本模块实现了时钟计数功能,按键1按下则进入时钟数字调节界面,此时利用按键2来位选,按键3来调节数字,按一次按键3则加1,再次按下按键1则恢复计数。
信号列表如下:
4.闹钟设定模块
本模块实现了设定闹钟时间功能,按下按键14则进入闹钟时间设定界面,此时利用按键13来位选,然后按下对应的按键则设定对应的数字,按下按键15则退出闹钟设定界面,当时钟数据和闹钟数据相同时,也就是到达设定时间时,蜂鸣器响5s。
信号列表如下:
代码资料下载:http://pan.baidu.com/s/1skIJLRv
`
0