工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->综合电路图->综合电路图->led动态显示电路及显示程序

led动态显示电路及显示程序

作者:fanxiaoxi时间:2022-12-13

我们讲述了单只LED单片机接口电路及编程实例,目的在于让初学者了解LED在
单片机中的应用原理,单只LED显示在实际应用中并无多大用途,
一般都是多位的LED显示。现在我们作进一步学习,我们要讲解的是8位LED的显示原理及实际的
编程方法。

AT89C2051单片机, 它的软件编程与C51完全一致。
    在多数的应用场合中,我们并不希望使用多I/O端口的单片机,原则上是使用尽量少引脚的
器件。在没有富余端口的情况下,怎样通过扩展电路达到预期的目的呢?我们希望通过此例使
设计人员在实际应用中了解一点电路扩展的原理,对实际的应用有所帮助。

下图是led动态显示电路及显示程序, 由于AT89C2051外部 15个I/O引脚, 即P1口和P3口, 单P3口的 P3.6是不引出的, 15个I/O口要直接驱动 8位LED显然是不够的, 我们通过一片面 74LS273对地址进行锁存,如果P1口仅用于显示驱动而没有与其它外设进行 数据交换, 可省略这个锁存器, 直接或通过其他 驱动电路驱动连接LED。 地址线我们通过 一片74LS138三—八译码器对8位LED进行分时选通,这样在任一时刻, 只有一位LED是点亮的, 但只要扫描的频率足够高(一般大于25Hz), 由于人眼的视觉暂留特性直观上感觉却是连续 点亮的,这就是我们常说的动态扫描电路。

    此电路中,74LS273用于驱动LED的8位段码,8位LED相应的"a"—"g"段连在一起,
它们的公共端分别连至由74LS138(点击芯片型号可浏览其详细的技术手册)译码选通后经74LS04反相驱动的输出端。这样当选通某一位LED时,
相应的地址线(74LS04输出端)输出的是高电平,所以我们的LED选用共阳LED数码管。
    动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。
如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,
所以一般均取几个ms左右为宜,这就要求在编写程序时,
选通某一位LED使其点亮并保持一定的时间,
程序上常采用的是调用延时子程序。在C51指令中,延时子程序是相当简单的,
并且延时时间也很容易更改,
可参见程序清单中的DELAY延时子程序。
    为简单起见,我们只是编写了8位LED同步显示"00000000"—"11111111"
直到"99999999"数字,并且反复循环。
程序很简单,流程图略去。 

显示程序


关键词: led 动态显示

评论

技术专区