|
|
|
相比于静态显示方式(1根口线驱动一个LED),动态扫描方式需要的口线要少得多。如仿真实验板上有8位数码管,每位数码管有8个LED,如果采用静态驱动方式,则需要8×8=64根口线来驱动。而采用动态驱动方式,只需要8(段驱动)+8(位驱动)=16根口线。
动态方式利用了人眼的视觉暂留效应,每位数码管依次显示一个较短的时间,虽然每个瞬时只有一位数码管在显示,但对观察者看来,好像所有的数码管是在同时显示一样。
虽然动态显示方式节省了接口线,但对编程提高了要求。每位数码管显示的 时间(或频率)需要在一个合理的范围:显示频率通常在25Hz以上才能保证 较好的显示效果。频率低于25Hz时,观察者能够看出数码管在闪烁,频率在25Hz左右,有相当一部分人能够感觉到数码管的闪烁,当频率增加到50Hz时,数码管看上去就十分流畅、舒服了。但显示频率再增加,几乎没有人能够分辨出显示效果的改善。显示频率过高,显示程序耗时大幅度增加,编程困难,显示亮度下降。
利用显示的位扫描,增加几个口线就可以实现扫描(阵列)式键盘。在LED数码管显示时,每个瞬时8255的PC口给出位扫描信号只有1根口线为低电平。由PC口的口线组成“列”,而PB口的3根线组成“行”,在行列的焦点上放置一个按键。如果在某个瞬时单片机检测到PB口线上的低电平时,就可以根据检测到低电平的PB口口线和此时给出低电平的PC口口线判断出按键的位置,也就是键值。为了清楚起见,在图中重新给出阵列式键盘接口电路。
在需要按键较多时,阵列式按键占用的口线较少,特别是在有LED数码管动态扫描显示的情况下,能够大幅度节省口线,但阵列式按键的编程复杂,特别是需要作防抖处理时更为烦琐。因而,实际应用的单片机系统几乎都采用专门的、同时具备LED数码管动态扫描显示驱动功能和阵列式按键管理功能的集成电路,不但没有提高成本,接口电路也大大地简化,编程也极为简单,耗用机时更少。这些芯片有CH451、BC7280/81和ZLG7289A等。