单片机89C52并行I/O口实现多个LED显示
扫描二维码
随时随地手机看文章
来源:电子工程世界 在单片机应用系统中,普遍使用成本低廉、配置灵活的数码管(led)做显示器。常用的为4~8位八段led数码管显示器,即需要4~8个led数码管。实现这种显示的方法很多,但是,必须采用相应的措施才能实现多个led的显示。本文介绍了一种设计方法,利用该方法设计的多路led数码管显示系统具有硬件设备简单,可移植性好,成本低廉的特点,在各种仪表显示系统中应用效果良好。 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所示是其流程图。具体的程序编码如下: 3 结束语 该设计方法已多次应用于学生单片机实验的显示电路和多种仪器显示系统中。只要将该显示程序调入其它主程序中,即可完成显示功能。经过多次使用证明:该方法可移植性好、实用性强。