![](https://csdnimg.cn/release/download_crawler_static/87506126/bg7.jpg)
静态显示方式,即七段 LED 数码管在显示某一个字符时,相应的段恒定的导
通或截止,直至换显其他字符为止。
LED 的静态显示虽然有编程容易、管理简单等优点,但是静态显示所要占的 I/O
口资源很多,所以在显示的 LED 点较多的情况下,一般都采用动态显示方式,即在
多位七段 LED 显示中,将所有位的段选线并联在一起,由 8 个 I/O 口来控制 8 个
段。而公共端(共阳极/共阴极)则分别由相应的 I/O 口控制,以实现各个位的分时
选通。
由于所有的段选线并联到同一个 I/O,由这个 I/O 口来控制,因此,若是所有
的 4 位 7 段 LED 都选通的话,4 位 7 段 LED 将会显示相同的字符。要使各个位
的 7 段 LED 显示不同的字符,就必须采用动态扫描方法来轮流点亮每一位 7 段 LED,
即在每一瞬间只选通一位 7 段 LED 进行显示单独的字符。在此段点亮时间内,段选
控制 I/O 口输出要显示的相应字符的段选码,而位选控制 I/O 口则输出位选信号,
向要显示的位送出选通电平(共阴极则送出低电平,共阳极则送出高电平),使得该
位显示相应字符。这样将四位 7 段 LED 轮流去点亮,使得每位分时显示该位应显示
的字符。由于人眼的视觉暂留时间为 0.1 秒,当每位显示的间隔未超过 33ms 时,并
在显示时保持直到下一位显示,则由于人眼的视觉暂留效果眼睛看上去就像是 4 位 7
段 LED 都在点亮。设计时,要注意每位显示的间隔时间,由于一位 7 段 LED 的熄
灭时间不能超过 100ms,也就是说点亮其它位所用的时间不能超过 100ms,这样当有
N 位的 7 段 LED 用来显示时,每一位间隔的时间 t 就必须符合下面的式子:
t≦100ms/(N-1)
比如,现在使用 3 位,也就是 N=3,则由式子可以算出 t≦50ms,就是每一位
的间隔时间不能超过 33ms。实际应用中,时间可以设得短一些,比如 5ms
[5]
。
2.3 键盘模块
在单片机应用系统中,用户要向计算机输入数据和命令,这些任务主要由键盘
来完成。键盘由若干个按键按一定规则组合而成,根据按键的识别方法分类,可分为
编码键盘和非编码键盘,在单片机系统中多用非编码键盘。
键盘中的按键都是一个常开开关电路,是利用机械触点来实现按键的闭合和释放。
由于机械触点的弹性作用,触点在闭合和断开瞬间的电接触情况不稳定,造成了电压
信号的抖动现象。键的抖动时间一般为 5~10ms。这种现象会引起单片机对于一次键
操作进行多次处理,因此须设法消除键接通或断时的抖动现象。去抖动的方法有硬件
和软件两种方法,本系统采用软件延时的方法来避开抖动阶段。