基于单片机的数码管动态显示器的设计方案
扫描二维码
随时随地手机看文章
1.前言
数码管静态显示系统需要占用过多的单片机口线,但是可以保证正常的亮度。为了解决占用口线较多而浪费硬件资源等问题,研究人员开发了一系列诸如74HC595的数码管驱动芯片,该类芯片可以实现串行转并行的工作方式,驱动数码管实现静态和动态显示。但是,这样一种工作方式暴露出控制系统实时性不足等问题,在某些对系统响应时间要求比较高的场合的应用产生了一定的限制。为了解决上述几个弊端,本文提出了一种基于单片机的数码管动态显示器的设计方案,以IAP15F2K61S2系列单片机做控制核心,并采用全新的软硬件电路实现数码管的动态显示。
2.控制系统硬件设计
2.1 显示器外观设计
本显示器采用六个共阳极的数码管,按照通常的做法,六个数码管水平排列在产品的最上方,如图1所示,这样的设计可以方便的将控制系统的控制状态显示出来。下方采用的是40管脚DIP封装的单片机,所有并行口线都安排了插针,可以方便的实现系统的外部扩展,增强本显示器的可移植性。
采用透明的亚克力材料制作显示器的外壳,可以很好的进行可见光线传播,同时,可以坚固的固定电路板。
2.2 显示器控制核心的选择IAP15F2K61S2单片机是宏晶科技有限公司(STC)于2013年所推出的最新款的1T单片机,是常规51单片机的加强版。该系列单片机的运行速度要比普通51单片机快7-12倍,可以较大幅度的提高单片机控制系统的响应速度,降低系统的响应时间。
IAP15F2K61S2单片机集成了丰富的实用功能部件,简化了常规单片机最小系统的硬件构成,省去了外部复位电路和时钟电路等部分,优化了管脚配置,配置了五个8位(P0,P1,P2,P3,P4)和一个2位(P5)通用并行I/O口线。
本显示器配置IAP15F2K61S2单片机的P2口的低六位作为数码管的选择控制信号,P0口作为数码管的显示段码传送数据总线。
2.3 显示器控制电路设计
本显示器的控制电路包括电源模块、驱动模块、显示模块、程序下载模块等模块,产品电路原理图如图2所示。
显示器的电源模块采用两种供电方式。
第一种方式是通过USB转串行口的下载器给显示器供电,第二种方式是通过5V直流电源适配器供电,另外还可以方便的改装成220V交流电供电,下载器的供电电源来自计算机的USB口,能够提供给控制系统的电流太小,影响了数码管的正常显示亮度,而采用220V交流电供电方式还需要添加过多的电源处理电路,选用第二种方式5V直流电源适配器给本显示器供电,既便于给产品供电,也可以提供充足的电流。
驱动模块保证了共阳极数码管的正常显示,由于单片机的管脚输出电流是有限的,因此,P2口对共阳极数码管公共端的控制需要添加三极管进行驱动,本显示器选用NPN型三极管9013实现对数码管公共端的控制。
将六个数码管水平排成一行,公共端通过三极管进行控制,而数据段与单片机的口线直接相连构成了本显示器的显示模块。
IAP15F2K61S2系列单片机程序的下载可以通过其自带的全双工异步串行口(UART)所配置的两条管脚RXD(P3.0)和TXD(P3.1)实现,这种程序下载方式需要的硬件条件非常简单,下载软件的操作方式非常的便捷,受到众多单片机系统研发人员的青睐。本显示器正是采用了这样的程序下载方式。[!--empirenews.page--]
3.显示器控制系统软件设计
3.1 显示信息处理
动态显示器是一种通过异步显示方式控制数码管显示位置和对应显示字符的高效显示器。当需要在显示器上显示某些信息时,必须先取得该信息对应的段码作为待显示数据存入相应的数组。在发送显示段码之前需要将对应数码管的共阳极公共端置为高电平,之后再通过P0口向该数码管发送显示代码,该代码所需显示的信息将会显示在显示器上。
显示缓冲数组信息的排列方式与本产品的硬件,以及显示函数的功能恰好相符,以备方便的实现数据显示。
3.2 系统软件设计
本产品采用六个共阳极数码管制作了本显示器。设计共阳极数码管显示代码表如下:
为了充分发挥C语言的模块化编程优势,将动态显示子函数封装为一个通用的模块,程序如下:
当需要显示器工作的时候,主程序只需将显示缓冲区的首个信息单元的地址通过子函数的形式参数传递到子函数的内部,通过子函数的处理,依次将显示缓冲区的数据全部显示出来。
本显示器的显示效果如图3所示。
4.总结
本方案中所设计的数码管动态显示器,在保证了数码管正常工作以及节省口线的前提下,大幅提高了系统的实时性能,加快了系统的响应素服,功耗更低,结构新颖,成本低廉。