利用LabVEW产生字模的LED显示屏设计
扫描二维码
随时随地手机看文章
文中介绍了一种直接利用LabVIEW的图片处理功能自动生成字符点阵的方法,利用该程序无需使用专门的字库可自动得到各种字符的点阵,然后将显示信息通过串行传输方式发送到单片机,通过单片机驱动相应的二极管发光,显示信息。硬件由计算机、单片机、驱动电路和LED显示屏构成,结构如图1所示。
1 基于LabVIEW的汉字字模的提取
1.1 基于LabVIEW的汉字字模的提取方法
现在比较流行的方法是基于汉字字符的编码方式形成字模。
汉字机内码与区位码的关系为
区位码=机内码-160 (1)
对于16×16点阵字库,每个汉字占用32 bit,其首字节的起始位置的计算公式为
首字节=[(区码-1)×94+位码-1]×32(2)
以此为基点连续读取32 bit就是此汉字的点阵字模。在LabVIEW编程中基本流程为:以字符串形式输入一个汉字,按照上述运算规则找出汉字字模首字节在汉字库文件HZK16中的位置,从HZK16中以首地址开始连续读取32 bit的数据,这样就得到了一个容量为32的数组,即输入汉字的点阵字模。然后再按照下位机的构建运用数组的算术运算控件对数组修改,将最终结果通过串口发送给单片机,以进行显示。
本系统利用LabVIEW的图片处理功能生成字模,包括汉字、数字、英文以及各种特殊符号等等,提高工作效率和灵活性。
1.2 利用LabVIEW的图片处理功能生成字模的设计
首先设置一个白色的按钮,通过属性节点,把输入的字符作为这个按钮的文本显示。在通过调用节点,获取这个布尔的图像数据。将图像数据转化为8位像素矩阵。同样的方法获得一个同样大小但没有布尔文本的纯白色按钮的像素矩阵。将2个矩阵做异或比较。得到一个二维布尔矩阵,直接输出这个矩阵就得到了该字符的点阵。生成字符矩阵框图程序如图2所示。采用比较的方法获得点阵,因此可以采用这种方法在同一系统中产生数字、汉字、英文或各种特殊符号的字模点阵,简化了编程过程,使用方便灵活。
由于LahVIEW有很强的格式转化功能,将生成的点阵按照下位机的驱动方式运用其中数组的运算控件对点阵进行修改,得到符合要求的字符串。程序框图,如图3所示。图中的字模1为用于上位机显示的字符串形式,字模2为用于串口通信的字符串形式。
LabVIEW中用于串行通讯的节点实际上是VISA节点,为了方便用户使用,LabVIEW将这些节点单独组成1个子模板,共包含6个节点。字模2通过
LabVIEW的控件VISA与单片机的串口进行传输。IabVIEW本身也具有写入电子表格文件功能,可以将生成的字模储存为任意格式的文件,相当于一个字模提取软件,用于普通LED显示屏设计。最终的字模提取操作界面即前面板如图4所示。
2 单片机控制电路设计
LED显示屏的设计采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路74HC15 4、16×16 LED点阵等部分组成,电路图如图5所示。
本设计所使用的16×16 LED矩阵是由4块8×8LED共阳极矩阵拼接组成。
把行列总线接在单片机I/O口,然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了。但是若将LED点阵的行列端口全部直接接入AT89C51单片机,则需要使用32条I/O口,这样会造成I/O资源的耗尽,系统也再无扩充的余地。因此,在实际应用中只将LED点阵的16条行线直接接在P0口和P2口,至于列选扫描信号则是由4~16线译码器74HC154来选择控制,这样列选控制只使用了单片机的4个I/O口,节约了I/O资源,为单片机系统扩充使用功能提供了条件。由于P0口做通用数据I/O端口驱动负载时,必须外接上拉电阻,因此使用4.7 kΩ排电阻作为P0口的上拉电阻。
单片机上电后由于没有事先存储字模而处于黑屏等待状态,当接收到串口传来的字模数据后,单片机按照设定的程序在P0和P2接口输出汉字对应的代码电平送至LED点阵的行选线,同时在P1.1,P1.2,P1.3,P1.4接口输出列选扫描信号,从而选中相应的LED发光,并利用人眼的视觉暂留特性合成整个汉字的显示。
3 控制系统的软件设计
软件程序主要由初始化、主程序、中断程序等构成,采用汇编语言编写。主程序用于LED显示,程序流程如图6所示。中断程序主要用于接收上位机传送的字模信息,由于LabVIEW和下位机传递的数据是ASCII形式的,需要转换为16进制数,具体程序流程如图7所示。采用中断的方式接收数据可以提高数据传输的时效性。
4 结束语
设计研究的基于LabVIEW和单片机结合控制的LED电子屏幕。采用LabVIEW编程方法产生字模,通过串口传递给单片机,简化了编程、节省了单片机程序运行的时间,且可实现动态输入,也可根据需要随时修改所需显示的内容,具有较高的实用价值。
虽然本设计只使用了一块16×16 LED点阵,电路简单,但是包涵了LED显示屏的电路基本原理和基本编程思想,如要进行扩展,只需扩展单片机的I/O接口,增加一些LED点阵和相关芯片,就能设计出更大面积、更多花样的LED显示屏。