51 单片机并行口驱动LED 数码管显示电路及程序 介绍利用51 单片机的一个并行口实现多个LED 数码管显示的方法,给出了利用此方法设计的多路LED 显示系统的硬件电路结构原理图和软件程序流程,同时给出了采用51 汇编语言编写程序
1 硬件电路 多位LED 显示时,常将所有位的段选线并联在一起,由一个8 位I/O 口控制,而共阴极点或共阳极点分别由另一个8 位I/O 口控制;也可采用并行扩展口构成显示电路,通常,需要扩展器件管脚的较多,价格较高
本文将介绍一种利用单片机的一个并行I/O 口实现多个LED 显示的简单方法,图1 所示是该电路的硬件原理图
其中,74LS138 是3 线-8线译码器,74LS164 是8 位并行输出门控串行输入移位寄存器,LED 采用L05F 型共阴极数码管
显示时,其显示数据以串行方式从89C52 的P12 口输出送往移位寄存器74LS164 的A、B 端,然后将变成的并行数据从输出端 Q0~Q7 输出,以控制开关管WT1~WT8 的集电极,然后再将输出的LED 段选码同时送往数码管LED1~LED8
位选码由89C52 的P14~P16 口输出并经译码器74LS138 送往开关管Y1~Y8 的基极,以对数码管LED1~LED8 进行位选控制,这样,8 个数码管便以100ms的时间间隔轮流显示
由于人眼的残留效应,这8 个数码管看上去几乎是同时显示
2 软件编程 该系统的软件编程采用MCS-51 系列单片机汇编语言完成,并把显示程序作为一个子程序,从而使主程序对其进行方便的调用
图 2 所示是其流程图
具体的程序代码如下: pic单片机驱动led数码管显示程序 ;*****该程序用于驱动led数码管显示,在8个LED数码管上依次显示数字1、2、3、4、5、6、7、8******* ;****http://www
com 单片