第3章 系统的设计与实现
图3.2 STC89C52RC双列直插封装方式的引脚
3.1.2 LED显示器接口原理
LED(Light Emitting Diode)是发光二极管英文名称的缩写。LED显示器是由发光二极管构成的,所以在显示器前面冠以“LED”。LED显示器的结构:常用的LED显示器为8段(或7段,8段比7段多了一个小数点“dp”段)。每一段对应一个发光二极管。在微机应用系统中通常使用的是七段LED,这种显示器有共阴极与共阳极两种,如图3.3所示。共阴极结构的数码显示器阴极共地,如图3.3a所示,当某个发光二极管阳极为高电平时,将其燃亮。共阳极结构有一个公用的阳极,如图3.3所示,使用时接正电源,当阴极接低电平时,使其发光。因此共阳极和共阴极所需要的字型码正好相反。
15
第3章 系统的设计与实现
图3.3 8段LED显示器结构及外形
为了使LED显示器显示不同的符号或数字,就要把不同段的发光二极管点亮,这 就要为LED显示器提供代码,因为这些代码可以使LED相应的段发光,从而显示不同 字型,因此该代码称之为段码(或称为字型码)。
7段发光二极管,再加上1个小数点位,共计8段。因此提供给LED显示管的段 码正好是1B。各显示段与字节中各位对应关系如下: 代码位 D7 D6 D5 D4 D3 显示段 八段显示块与微机接口非常容易,如表3.1所示。
表3.1 八段LED的段选码
D2 c D1 b D0 a dp g F e d 16
第3章 系统的设计与实现
单片机对LED管的显示可分为静态和动态两种。
静态显示的特点是每位的段码线分别与1个8位的锁存器输出相连。如图3-4所示为1个4位静态LED显示电路。该电路各位可独立显示,只要在该位的段码线上保持段码电平,该位就能保持相应的显示字符。由于各位分别由1个8位的数据输出口控制段码线,故在同一时间里,每一位显示的字符可以各不相同。这种显示方式接口编程容易,但付出的代价是占用口线较多。
图3.4 四位静态LED电路
动态显示是将所有位的段码线相应段并联在一起,由一个8位I/O口控制,形成段码线的多路复用,而各位的共阳极或共阴极分别由相应的I/O口线控制,形成各位的分时选通。图3.5所示为1个4位8段LED动态显示器电路。其中段码线占用一个8位I/O
17
第3章 系统的设计与实现
口,而位选线占用一个4位I/O口。由于各位的段码线并联,8位I/O口输出的段码对各个显示位来说都是相同的。因此,在同一时刻,如果各位位选线都处于选通状态的话,4位LED将显示相同的字符。若要各位LED能够同时显示出与本位相应的显示字符,就必须采用动态显示方式,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应位要显示的字符的段码。这样,在同一时刻,4位LED中只有选通的那1位显示出字符,而其他3位是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,但由于LED显示器的余辉和人眼的视觉暂留作用,只要每位显示时间间隔足够短,就可以造成多位同时亮的假象,达到同时显示的效果。
图3.5 4位8段LED动态显示电路
LED不同位显示的时间间隔应根据实际情况而定。发光二极管从导通到发光有一定的延时,导通时间太短,则发光太弱,人眼无法看清。本设计采用动态显示原理,在显示秒表时间的时候有调用延时子程序。 发光二极管导通时间也不能太长,因为要受限于临界闪烁频率,而且此时间越长,占用CPU时间也越多。
本次设计综合考虑多方面因素,选用两个4位的共阳极LED显示器如图3.6所示 ,并采用动态显示电路。
18
第3章 系统的设计与实现
图3.6 4位共阳极LED显示器
3.1.3 按键输入
外部指令对单片机的输入一般是通过按键、键盘等输入器件来实现的。本设计是利用按键K0与K1来实现秒表的启动、暂停和复位清零功能。如图3.7所示为两按键的电路图。
图3.7 K0与K1按键电路图
19