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 所示。
图4 主程序流程图
当系统上电后,LCD 与LED点阵屏分别显示各自的开机界面。与此同时,STM32对键盘进行扫描。
任何状态,按下"背光"键就可打开或关闭液晶的背光灯,此功能使得该点阵屏在夜间也可以随意使用,白天可以将背光手动关闭,减小功耗,节约能源。
当"设定"键按下后,进入功能选择显示界面。
此时按上下键可进行功能选择。依次进入点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移、设定休眠时间、调节亮度等功能。指示图标在哪种功能前闪动,代表该功能被选中,点阵屏即可在系统控制下执行相应功能。在任何一种功能下,按下"确定"键即可显示光笔位置的坐标。此功能在各项功能下均可跟随光笔坐标,以便快速确定光笔所在位置。
在连写多字功能中,每写好一个字后,按下自定义的"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 显示屏的"手写"功能,其功能还有很强的可扩展性,具有广泛的应用前景。