基于STM32LED书写点阵屏设计与实现
2012-08-20任全会黄根岭
任全会,黄根岭
(郑州铁路职业技术学院,河南 郑州 450002)
近年来,随着信息产业的高速发展,点阵LED显示屏已广泛应用于金融行业、邮电行业、体育馆、广告业等各种广告发布和信息显示系统,成为信息传送的重要手段。本文介绍的LED书写点阵屏,不但可以像普通显示屏一样作为信息输出设备,而且可以通过光笔直接在LED显示屏上进行信息输入,普通的显示屏也具有“手写”的功能了。
1 硬件系统设计
本系统总体框图如图1所示,由键盘与显示模块、光笔模块、LED点阵屏模块、STM32控制模块、电源模块五部分组成。
图1 总体方案方框图
1.1 核心控制模块
本系统以STM32F103VCT6为控制核心。STM32是32位微处理器,具有低功耗,中断延迟小,高性能等特点。STM32处理器采用了指令预测和流水线技术,它的取指、译码和执行是同时进行的,分支预测给流水线提供连续的指令流,流水线可以不断地执行有效指令,因此STM32的速度比8051快得多;STM32处理器内部集成锁相环可实现最大72MHZ的工作频率,为实现高速的系统响应(高速的扫描)提供了基础;其内置的两个看门狗定时器(独立看门狗和窗口看门狗)使系统更加稳定[1]。STM32F103VCT6有1个12位的us级的A/D转换器,9个定时器,2个I2C接口,5个UART接口,3个SPI接口,为以后的扩展提供了条件。
1.2 光笔电路设计
人眼能分辨刷屏次数为24次,根据经验本系统点阵屏的刷屏速度采用每秒70次的经验刷屏次数,即70Hz,故要求光笔的反应速度大于70Hz。扫描方式是每一时刻只有一个点点亮,并且这个亮点朝一个方向移动,这时主控扫描的速度是1M。使用的点阵屏为32×32。当每秒刷屏次数超过24次时才看不出点阵屏闪烁,在本系统中每秒刷屏68次,所以光电器件所要达到的频率最小为68Hz,光电三极管(3DU33)灵敏度高,响应时间短,光敏三极管输出的脉冲经过74HC14整形输出。光笔电路图如图2所示:
图2 光笔原理示意图
1.3 LED点阵屏模块
32×32 LED点阵屏电路原理框图如图3所示。STM32主控器I/0口作为点阵屏模块的输入控制信号,其中OE为使能端,CLK为时钟线,LT为锁存信号,DA 为数据线,A、B、C、D 为行选通地址线[2]。电路中74HC245起总线缓冲作用,2片74HC138构成4-16译码器,实现16路的行选通,选通信号经由4953MOS管激励为行驱动,行驱动为H1~H16,每一行驱动负责32×32点阵两行的选通(如H1控制第1行和第17行,H2控制第2行和第18行)。串行数据由74HC245缓冲后,送入级联的74HC595串并转换和驱动,电路中共设计有8片74HC595,其中4片用于第1行~第16行的列数据转换,另外4片用于第17行~第32行的列数据转换。
图3 LED点阵屏电路原理框图
2 软件系统设计
STM32系列微控制器采用C语言进行程序设计,开发调试环境为Keil MDK。主程序流程图如图4所示。
当系统上电后,LCD与LED点阵屏分别显示各自的开机界面。与此同时,STM32对键盘进行扫描。任何状态,按下“背光”键就可打开或关闭液晶的背光灯,此功能使得该点阵屏在夜间也可以随意使用,白天可以将背光手动关闭,减小功耗,节约能源[3]。
图4 主程序流程图
当“设定”键按下后,进入功能选择显示界面。此时按上下键可进行功能选择。依次进入点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移、设定休眠时间、调节亮度等功能。指示图标在哪种功能前闪动,代表该功能被选中,点阵屏即可在系统控制下执行相应功能。在任何一种功能下,按下“确定”键即可显示光笔位置的坐标。此功能在各项功能下均可跟随光笔坐标,以便快速确定光笔所在位置。
在连写多字功能中,每写好一个字后,按下自定义的“1”键将写好的字存储至相应的数据缓冲区,四个字写完后,用光笔靠近点阵屏给STM32一个信号即可将已存储的四个字逐个轮流显出。为方便书写,加快书写速度,字体存储后,当光笔靠近点阵屏时,给予自动清屏。在对象拖移功能中,先圈定对象,用光笔在对象上选定坐标参考点进行拖动,判断光笔当前坐标与参考点坐标的关系,对圈定对象对应的RAM区数据进行相应的操作[4],之后更新参考点坐标值,重复上述指令,直至对象拖移结束。
在调节亮度功能下,点阵屏可根据环境自动改变亮度。操作人员也可根据需要手动调节,并保持该亮度[4]。
3 测试方案与测量结果
3.1 测量设备
主要的测量设备有直流稳压源YB1730、数字式万用表(FLUKE 15B)、万用表SJ47100MHz和双通道示波器(TeKtronix TDS2012B)。测量单位是秒表,精度 0.01s。
3.2 实际测量结果
3.2.1 点亮、擦除
“点亮”模式如表1所示。
表1 “点亮”模式
结果显示:点亮点准确,坐标显示准确。“擦除”模式如表2所示。
表2 “擦除”模式
3.2.2 屏亮调节
屏亮调节测试如表3所示。
表3 屏亮调节测试
4 结束语
本系统以STM32F103VCT6作为控制核心,用74HC245、74HC595、74HC138、74HC04 与 4953 驱动32×32LED点阵屏,用光笔来检测LED点阵屏的扫描从而确定相应点的坐标,用触摸屏切换各个功能并显示当前的坐标和功能模式。经过功能测试表明本系统的硬件稳定,功能完善,采用C语言编程实现了点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移、显示屏亮度的自动调节以及超时自动关屏等基本功能和发挥功能,还实现了“画圆”和“填充”创新功能。本系统以低廉的成本和逻辑性极强的程序实现LED显示屏的“手写”功能,其功能还有很强的可扩展性,具有广泛的应用前景。
[1]龚成莹,赵又新.基于FPGA的LED点阵书写显示屏的设计[J].自动化与仪器仪表,2010,(3):29-31.
[2]马晓阳.LED显示屏校正的研究与实现[J].电光与控制,2010,17(6):104 -106.
[3]C.X.Yu,M.Gilmore,W.Peebles,T.Rhodes.Structure function analysis of long-range correlations in plasma turbulence,Phys.Plasmas,2010,10(7)221 -223
[4]张晓光.基于单片机的中网扫描灯设计[J].电子技术,2010,37(12):67 -68.