摘要: 针对LED 显示屏应用中存在的问题,给出了一种低成本、内容更新便捷的点阵LED 文字显示屏的方案。系统采用C8051F410作为MCU,利用蓝牙模块接收手机蓝牙传输的数据,并将数据通过单片机控制字库芯片进行字符集的转换、点阵代码的提取,进而由单片机控制点阵屏更新显示数据。经实际使用,控制稳定、方便。
0 引言
本文设计一种内容更新便捷、可扩展、低价格的点阵LED 文字显示屏。降低成本的途径是①用几乎人人都有的手机的蓝牙数据传输功能进行LED 显示内容的更新,免去专业上位机软件和控制卡的成本,操作也更简单;②单次显示内容在5 ~ 30 个汉字或英文字母,因为显示内容较少,就可实现扩展电路的简单化。
1 系统设计方案
1. 1 系统组成
系统由带蓝牙功能的智能手机和LED 显示屏组成。其中,LED 显示屏由单片机、LED 点阵模块、字库芯片、蓝牙接收模块、5V 开关电源和3.3V 稳压电路组成,如图1 所示。系统工作过程是: 用户通过智能手机的记事本编辑"数据",并经无线蓝牙发送到显示屏上的蓝牙接收模块。主控单片机读取蓝牙接收模块接收的"数据"并进行处理。"数据"由"控制命令"和"显示内容"构成,两部分数据用自定义特征符分隔开。"控制命令"用于对显示屏的亮度、显示内容移动速度和移动方向进行设置; 而单片机根据收到的"显示内容"的字符代码在字库芯片中找到相应的32 字节显示代码送点阵屏显示。
图1 系统组成
1. 2 LED 点阵屏工作原理
LED 点阵显示屏可按显示需要由若干块每块LED 单元板拼接而成。通用LED 单元板由2 位16 × 16 点阵LED 构成,尺寸为160* 320mm2.单元板的工作原理如下。
每板有16 行32 列,数据的显示采用传统的行列式扫描方式。通常为了减小闪烁,提高扫描速度,采用1 /4 扫描,即把16 行分为4 个4 行,每次同时选通4 个4 行中的同序对应行,这样扫描4 次即可完成16 行的扫描显示。其中列控制由74HC595承担,每块单元板上有16 片,每片分别控制4 行8 列的点阵小单元。行控制是由1 片译码器74LS138 承担,每次使单元板的4 个4 行的同序对应行选通。为了保证正常的电流驱动( 亮度) ,74LS138 的输出经AMP4593 驱动放大。每块单元板有4 片,每片分别驱动4 行。16 片74HC595 接成级联方式,由于每4 行32 列需4 片74HC595, 16 行32 列就是16 片。设第一个4 行的4 片74HC595 序号为1、2、3、4,第二个4 行的4 片74HC595 序号为5、6、7、8,依次类推。每一片的数据输出端接到下一片的输入端,数据从第1 片的输入端串行输入,在移位脉冲的作用下一位一位依序移入,经过8 × 16 个脉冲,最先移入的数据位移到了第16 片的最低位( 也是该片的输出端) ,所有数据都移入后,就可显示一板完整的内容,按此规律即可进行显示的软件设计。如果显示的字数多,拼接的LED 单元板就多,显示一屏完整内容所需的移位脉冲就多。这种显示方式要求主控单片机有较高的指令执行速度,否则就会有闪烁感。点阵单元板原理图如图2 所示。
图2 点阵单元板原理图
2 系统主要模块的选择和电路设计
2. 1 主控芯片
2. 1. 1 芯片选择
为了满足LED 显示屏的显示及多板的扩展,要求系统主控单片机有较快的运行速度; 较大的存储空间用于存储显示数据,因此选用美国silicon 公司的C8051F410.该芯片是一款高性能产品,FTQP - 32 封装( 9mm* 9mm) 大大减小了体积; 由于采用了精简指令结构,使得每个机器周期仅需一个时钟周期,运算速度快大大加快,如果使用片内24. 5MHz 的内部时钟,其运行速度大约是普通8051 单片机工作在12MHz 时钟时的24 倍; 芯片内部资源丰富,自带看门狗,通过JTAG 接口连接调试器,可方便硬件在线调试; 芯片内含UART、SPI、I2C 等通信接口,方便与外围芯片连接; 4 个定时器/计数器使编程更方便; 自带的16K/32KFLASH,可存储大约1K 个汉字。
2. 1. 2 最小系统电路设计
系统对单片机时钟的精度和温度稳定度都没有特别要求,可以直接使用C8051F410 单片机内部自带的时钟振荡器,而无需外接振荡器。使用时要注意的是,是芯片工作电源是从Vregin 引脚引入( + 3. 3V) ,VDD 是内部基准电压输出引脚,VIO 是I /O 口作为数字引脚时的电源输入引脚。电路设计时必需在紧靠这3 个引脚的位置布上滤波和退耦电容( 4. 7μ 和104p) .P1. 0~ P1. 3 是显示屏的控制线CLK、SCLK、R 和OE; P1. 7、P0. 0 ~ P0. 2是字库芯片控制线,采用SPI 接口; P2. 0 和P2. 1 是显示屏的行扫控制线A 和B; P0. 4 和P0. 5 是串口通信线,与蓝牙模块连接。这12 根引脚都需配置为数字引脚。最小系统电路如图3 所示。
图3 C8051F410 单片机最小系统
2. 2 蓝牙模块
2. 2. 1 模块选择
选用蓝牙模块的要求是: 价格便宜、体积小,使用方便。符合条件的蓝牙模块产品很多。设计选用的是南京国春电气生产的GC - 02 蓝牙模块,这是款高质量的CLASS2 蓝牙模块。此蓝牙模块内部带有对象交换协议( OPP) 文件接收功能,只要上电后,就可被手机蓝牙识别,并可成功配对建立连接,接收手机蓝牙传输的文件。
GC - 02 蓝牙模块共有29 个引脚,可通过SPI 接口或UART接口与单片机通信。本系统单片机选择UART 方式与GC - 02进行通信。蓝牙模块处于待机模式时,已配对过的手机向蓝牙模块发送文件,未配对的手机需先进行配对,输入正确的PIN 码( 即配对密码) 即可配对。此蓝牙模块的出场厂PIN 码是"1234",其PIN 码可通过向蓝牙模块发送指令进行修改。
2. 2. 2 电路设计
单片机通过引脚P0.4 和P0. 5 与蓝牙模块GC- 2 的串口( 12 脚和13脚) 进行通信,蓝牙模块的其他功能未用。单片机与蓝牙模块的连接如图4所示。
图4 单片机与蓝牙模块的连接图。
2. 3 字库芯片
2. 3. 1 芯片选择
由于使用中显示的内容需要经常更换,采用文字"取模"获得显示数据的方法显然行不通,在显示电路中存储字库或采用字库芯片是个可行的办法。设计采用字库芯片,选择GT21L16S2W 标准汉字字库芯片。
GT21L16S2W 是一款内含11 × 12 点阵和15 × 16 点阵的汉字库芯片,支持GB2312 国标简体汉字( 含有国家信标委合法授权) 、ASCII 字符及GB2312 与Unicode 编码互转表。排列格式为横置横排。根据字符点阵在芯片中的地址,就可从该地址连续读出字符点阵信息。
以15X16点阵汉字为例,汉字信息需要32 个字节( BYTE 0- BYTE31 ) 来表示,点阵的数据是横置横排的,其具体排列结构如图5.每个汉字在芯片中是以汉字点阵字模的形式存储的,每个点用一个二进制位表示,存1 的点,当显示时可以在屏幕上显示亮点,存0 的点,则在屏幕上不显示。点阵排列格式为横置横排: 即一个字节的高位表示左面的点,低位表示右面的点,排满一行的点后再排下一行。这样把点阵信息用来直接在显示器上按上述规则显示,则将出现对应的汉字。15X16 点阵汉字存储在00000H ~3B7BFH 的芯片地址范围中,只要知道汉字的内码,就可计算出汉字显示数据的首地址。
图5 汉字点阵排列格式
2. 3. 2 接口电路
字库芯片GT21L16S2W 的各引脚功能如下: 1、2、5、6 脚是SPI接口,其中: 1( CS#) 为片选输入,2 ( SO) 为串行数据输出,5( SI) 为串行数据输入,6( SCLK) 为串行时钟。
7 脚( HOLD #) 为总线挂起,该信号可用于在片选信号有效期间暂停数据传输。单片机通过引脚P0. 0 ~ P0.2 以及P1.7 与字库芯片进行通信,读取显示数据。HOLD#引脚悬空,Vcc 工作电源为3. 3 V.单片机与字库芯片的连接如图6 所示。
图6 单片机与字库芯片的连接图。
2. 4 LED 点阵屏与单片机的连接
点阵屏选择的是市场上应用最为广泛的P10 单红户外单元板。该模块具有高稳定性,高亮度,颜色均匀等特点,进行的扫描方式是1 /4 扫,控制方法简便,有利于优化软件设计,采用点阵单元可以根据需要进行拼凑,灵活性强。LED 点阵屏与单片机的连接如图7 所示。其中,OE( P1. 3) 为使能信号,连接74HC138,用于亮度控制,也可用于显示屏消隐。只要调整它的占空比就可以控制亮度的变化。ABCD 为行扫描信号,A 是最低位,如果ABCD信号全用上,控制扫描的最大范围是16 行,1 /4 扫描中只要AB( P2. 0 和P2. 1) 信号就可以了。当行控制信号出现异常时,将会出现显示错位、高亮或图像重叠等现象。
CLK( P1. 0) 为移位脉冲,每一个脉冲将数据移入或移出一位。当时钟信号有异常时,会使整板显示杂乱无章。STB( P1. 1) 是锁存信号,将移位寄存器内的数据锁存并将其数据内容通过驱动电路点亮LED显示出来。RI( P1. 2) 是显示数据的输入端。
2. 5 电源模块
电源模块由5 V 大功率电源和+ 3. 3 V 小功率稳压电路组成。前者是给LED 屏提供电源,后者是把5V 电压稳压成3. 3 V后提供给单片机、蓝牙模块和字库模块工作,这里选用ASM1117- 3. 3 芯片。市售通用的LED 板输入额定功率约为190 W/ m2 ,每块单元板面积是160* 320 mm2 ,最大工作电流约为2 A( 5 V 工作电压时功耗是10 W) ,可根据所要求的LED 显示屏的面积选择开关电源的功率。常用的开关电源,配合双MOS 管输出以及加强型散热器和滤波电容线圈,可保障纯净充足的电流输出。
2. 6 系统总体电路
本系统以单片机C8051F410 作为MCU,外围电路包括蓝牙模块、字库芯片、LED 点阵屏和电源模块,系统电路原理如图8 所示。
图8 系统原理图。
3 系统软件设计
单片机的初始化包括: ①时钟初始化,选择片内24.5MHz 内部时钟。②引脚配置: 配置P0. 0 ~ P0. 2 为SPI 接口(3 线) ,与字库芯片通信; 配置P0. 4 和P0. 5 为串口,与蓝牙模块实现通讯; 配置P1. 0 ~ P1. 3、P2. 0 和P2. 1 为数字I /O,实现对显示屏的控制。
③中断、定时器/计数器和FLASH 相关寄存器初始化。系统软件流程如图9 所示。
图9 系统软件流程
初始化后系统将主动读取FLASH 指定地址范围内的数据,并将数据( Unicode 字符集) 转换得到与Unicode 数据对应的GB2312字符集代码在字库芯片的地址码,然后将该地址码送给字库芯片提取该地址所对应的GB2312 字符集,再将GB2312 字符集代码通过字库芯片转化提取相对应的16* 16 点阵代码,通过SPI 口将代码送给单片机,进而单片机将点阵代码送给点阵屏并控制点阵屏将数据显示出来。
正常工作状态下,当手机蓝牙与系统蓝牙模块发生配对时,手机只有输入正确的PIN 码后,才可成功配对,配对成功后,若手机采用记事本软件通过蓝牙发送数据,蓝牙模块将接收数据并通过串口发送出去,这时单片机接收数据,如果识别到有效数据的开始位为标志位"#",那么系统将认为该命令是控制命令,即控制LED 显示的亮度、速度、移动方向。控制命令的格式自主定义。例如"#35 左",意思为:"#"为控制标志位,"3"控制亮度( 控制范围为0 - 9,数值越大亮度越高) ,"5"控制速度( 控制范围0 - 9,数字越大速度越慢) ,"左"为方向控制位( 左为移动方向向左移,右代表向右移,上表示向上移,下为向下移) .如果有效数据的开始位不为"#",那么将默认此次数据为LED 要显示的新内容,系统将把数据按顺序存入指定的FLASH 地址范围内,待复位后新数据将显示于屏幕上。特别要指出的是,为了保证显示屏工作的可靠性,要在显示循环程序中得合适位置设置好"喂狗"参数。
4 结束语
系统实现了通过手机更新显示屏显示内容的目的,方便又快捷。经过一批用户的使用,显示性能和控制性能均较为稳定。但是,在实际使用过程中也遇到了尚未解决的问题: ①有部分手机不支持Unicode 字符集格式。②本设计仅限于智能机通过记事本编辑显示数据的传送,而不同手机采用的记事本编辑软件不尽兼容,本设计是基于Nokia 手机软件设计的。