1 引言
随着计算机及相关的微电子、光电子技术的迅猛发展。led显示屏以其可靠性高、使用寿命长、环境适应能力强、性价比高的特点,迅速成长为平板显示的主流产品。它利用发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕,led电子显示屏虽不如lcd显示屏的界面友好直观,但由于其具有显示信息量大、操作方便灵活、用户可随时自行修改显示内容和显示屏幕的大小、显示方式图文并茂等优点,被广泛应用于公共场所。
这里介绍一种24×40的显示屏控制系统,该系统可同时显示4个14×10的汉字和8个7×5的字符或数字,以c8051f340单片机为控制器,以74hc595作为行列驱动器。
2 系统硬件设计
2.1 总体设计
该系统由显示屏控制器、行驱动器、列驱动器、led点阵显示屏、与pc机的串口通信,品振电路和存储器模块等构成。总体设计框图如图1所示。
2.2 显示屏控制器
显示屏控制器选用c8051f340单片机,它是完全集成的混合信号系统级芯片(soc),具有与8051兼容的高速cip-51内核,与mcs-51指令集完全兼容,片内集成数据采集和控制系统中常用的模拟、数字外设及其他功能部件:内置flash程序存储器、内部ram,大部分器件内部还有位于外部数据存储器空间的ram,即xram。
2.3 行驱动器
设计中使用3块74he595和3个相对应的三态门2803作为行驱动器。2803是常用的达林顿驱动器。达林顿管又称复合管,将两只三极管适当的连接在一起,组成一只等效的三极管。新的三极管的放大倍数是二者之积。在电子电路设计中,达林顿接法常用于功率放大器和稳压电源中。
这类器件的com端(的引脚io)主要有两种作用:
(1)试验用时接地输出端都接发光二极管,只要将com端接地,则所有发光二极管都点亮,否则,可能是二极管毁坏或其他毁坏。
(2)保护用时接电源正极该器件是接继电器或针式打印头,因为电感作用,会在开关过程中产生低于地电位和高于电源电位的反电动势,这样,很容易击穿器件。为防止这种现象的发生,可将com端接到电源正极.来削弱冲击电压低到二极管压降和电源电压的幅度,这样可使内部的三极管受到最小的正电压冲击。
2.4 列驱动器
设计中使用5块74hc595作为列驱动。74hc595是内含8位串入、8位串入并出的移位寄存器和8位三态输出锁存器的结构,且移位寄存器和输出锁存器分别有各自的时钟输入,控制各自独立,这使列数据的准备和列数据的显示可同时进行。74hc595通过串行级联方式传输。系统扩展容易。图2为其内部结构。
2.5 led点阵显示屏
图3为led点阵显示屏电路图。点阵显示屏由15个8×8的点阵led显示模块构成,图3a为显示模块,图3b为行驱动模块中的一个行驱动单元,图3c为c8051f340的引脚配置图,图3d为列驱动模块中的一个列驱动单元。
2.6 串口通信接口
max232实现rs232与ttl电平的转换,使pc机与单片机传输信息。如果传输距离超过rs232要求的距离,可在两者之间增加rs232/rs485转换模块,则达到rs485的传输要求。
3 系统软件设计
整个软件设计分为显示和通信两部分。软件设计语言采用汇编语言和keil c51语言。在c8051f系列自带的ide编程环境结合keil环境实现显示功能。通信部分上位机部分则直接在pc机vc 环境下实现。
3.1 显示部分
显示部分采用动态扫描方式,实现汉字、图像、数字字符等数据信息的控制以及显示等功能。采用行扫描方式,当选通第1行led点阵时,对应列数据,由于74hc595器件的特殊性,通过将每个器件的串行数据输入引脚14(ser)与下一个器件的串行数据输出引脚9(q'h)级联,可以把需要显示的数据信息依次存入74hc595器件内,通过其锁存器功能将数据锁存,待40列数据都存入74hc595器件内时,把输出有效引脚13(oe)置为低电平,则40列数据一起输出,达到一行显示的效果。依次类推,实现整个显示屏的显示功能。
显示部分的设计还要考虑最示方式和显示状态等。显示方式有上移、下移、左移、右移等,其实现取决于从数据存储区中取出数据放入显示缓冲区时取数的顺序,左右移每次取出中位数据,上下移则每次取出1行数据。显示状态则要考虑到显示数字的移动速度和停留时间等。
一般程序中将数据存储器分为显示缓冲区、数据存储区和接收缓冲区3部分。接收缓冲区存放pc机传给单片机要显示的数据;经处理后按一定规律存储在数据存储区;再根据显示方式依次从数据存储区中取出数据放入显示缓冲区中显示。图为4为显示部分程序流程。
3.2 通信部分
c8051f340有2个uart,将一个uart的txd和rxd分别与max232的t1in和r1out相连,max232的t1out和r1in分别与pc机的串行接口com1或com2相连。注意通信协议和波特率要相一致。
通信部分上位机软件采用visual c 编程。应用其开发串行通信方法有:(1)利用windows api通信函数;(2)利用其标准通信函数inp、inpw、inpd、outp、outpw、outp等直接对串口操作;(3)使用visual c 的通用控件(mscomm);(4)利用第三方编写的通信类程序。综合考虑,上述各种方法的性能,这里采用第3种方法,即采用mscomm控件。
mscomm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。mscomm控件在串口编程时非常方便,程序员不必了解较为复杂的api函数,而且在vc、vb、delphi等语言中均可使用。表1为mscomm控件较为重要和常用属性。
4 结束语
led点阵显示屏控制系统以c8051f340单片机为基础,采用其自身的ram和flash存储器作为数据存储器,利用max232作为rs232和单片机的接口转换模块,实现与pc机的数据传输,也可以随时更新显示内容。采用c和汇编语言混合编程,其中显示模块的关键部分代码采用汇编语言编写,因该系统采用基于keil c51的编程,故具有较好移植性。