1.静态显示接口电路
利用单片机控制LED数码管静态显示,显示几位就需要几个8位并行I/O口,当单片机I/O口不够用时,则需要进行I/O口扩展。若采用共阳极数码管,单片机I/O口通过限流电阻接在LED数码管的a~dp口即可。若采用共阴极数码管,由于单片机I/O口驱动能力不足,无法提供发光二极管导通所需电流,除了限流电阻以外,还应在I/O口与LED数码管段选口之间增加缓冲器或三极管驱动电路。
【例3.1】8051单片机与共阳极LED数码管的接口电路如图3.9所示,利用P1口并行输出控制LED数码管,完成0~9循环显示的程序。
图3.9 8051单片机与共阳极LED数码管的接口电路
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define N 10
2.动态显示接口电路(www.xing528.com)
单片机控制多位LED数码管动态显示,选用一个8位I/O口作为段选信号,用另一个8位I/O口作为位选信号。为了节省端口资源,还可以用74LS138、8155等集成电路进行扩展。例如,采用译码器74LS138,则可实现用3根位选线实现8位LED数码管的动态扫描,也可以利用可编程接口芯片8155进行并口扩展。另外,也可以利用串口实现显示控制,但是实现程序和电路较复杂。
【例3.2】8051单片机与4位共阳极数码管的接口电路如图3.10所示,利用8051单片机实现4位LED数码管的动态扫描电路,使数码管显示“2015”4个字符。(提示:Proteus软件中数码管可选择7SEG-MPX4-CC)
C语言源程序如下:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code Pattern[]={0xC0,0xF9,0xA4,0xB0,0x99,
图3.10 4位数码管动态显示接口电路
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。