LED点阵书写显示屏的系统设计
2010-03-14孙新凤王新娜
孙新凤 ,张 健 ,王新娜
(1.保定电力职业技术学院 电气工程系,河北 保定 071051;2.保定三川电气有限责任公司,河北 保定 071051)
1 引言
LED点阵书写显示屏是基于LED点阵显示及光笔检测输入的一种人机交互器件,它被广泛应用于各类会议、教学、远程教育、电视直播、设计分析、实时指挥等领域,实现了高效、直观、无障碍沟通,从而大大节省了时间,提高了工作效率,降低了交流成本。
笔者所设计的是一个基于32×32 LED点阵模块的书写显示屏。在ATmega16微控制器的管理下,LED点阵模块显示屏工作在人眼不易觉察的扫描微亮和人眼可见的显示点亮模式下。当光笔触及LED点阵模块表面时,获取其行列坐标,再依据功能需求决定该坐标处的LED是否点亮至人眼可见的显示状态,从而在屏上实现点亮、划亮、反显、整屏擦除、笔画擦除及连写多字等书写显示功能。
2 硬件电路
LED点阵书写屏主要由控制器、LED点阵显示屏和光笔3部分组成。其系统框图如图1所示。
图1 系统原理框图
2.1 控制器
采用的控制器是美国Atmel公司生产的AVR系列单片机的一种高档产品ATmega16单片机,是基于增强AVR RISC结构的低功耗8位CMOS微控制器[1]。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达16 MI/s(兆指令每秒)@16 MHz,从而可以缓减系统在功耗和处理速度间的矛盾,也能满足本系统对处理速度的要求。ATmega16单片机有32位双向I/O端口,输出缓冲器具有对称的驱动特性,可以输出和吸收大电流,不需I/O扩展就能满足本系统对I/O的要求。16 kbyte的系统内可编程Flash,能存储一定程序,且具有同时读写的能力,给程序的编写和修改带来很大方便。512 kbyte的E2PROM和1 kbyte的SRAM满足数据存储的一般要求,对于本系统来说需要充分合理利用SRAM的容量。用于边界扫描的JTAG接口,支持片内调试与编程。具有3个比较模式的灵活的定时器/计数器(T/C),片内/外中断,可充分满足系统定时及中断的要求。可编程串行USART,有起始条件检测器的通用串行接口,具有片内振荡器的可编程看门狗定时器,1个SPI串行端口,以及6个可通过软件进行选择的省电模式。AT-mega16单片机丰富的芯片资源,不需扩展就可实现系统控制要求。
2.2 LED点阵显示屏
LED点阵显示屏由两部分组成。一部分是LED点阵显示模块,由16个8×8的LED点阵分为4行4列,组成32×32的LED点阵屏。8×8的LED点阵[2]为单色共阳模块,单点的工作电压为1.8 V,正向电流5~10 mA,其结构图与正面图如图2所示。每个LED都是放置在行线和列线的交叉点上,当对应的某一行置高电平,某一列置低电平时,交叉点上的LED就亮起来了,否则LED不亮。通过对行和列送不同的电平可实现对LED点阵屏各点的控制。另一部分是点阵行列驱动模块,由8片数据移位锁存器74HC595[3]构成。8片数据移位锁存器74HC595分为两组,每4片级联构成一个32位移位锁存器,分别驱动LED点阵模块的32行与32列,级联方式如图3所示。每组74HC595的串行输入端和时钟控制端分别并联在一起,由单片机的3个I/O引脚控制,实现数据串行传输。这样只需单片机的6个I/O引脚就能实现对32×32的LED点阵屏的控制,不仅节省了I/O端口资源,而且编程简单,外围器件连接简单,降低了硬件故障率和硬件成本。
图2 8×8 LED点阵结构与正面图
图3 LED点阵驱动电路
2.3 光笔
光笔由光电三极管ST-1CL3H、限流电阻和74LS04构成[4],如图4所示。光笔笔头不在点阵屏上时该电路输出信号一定,当光笔接触到处于工作状态的点阵屏时,光电三极管输出信号发生明显跳变,从而可以确定点阵屏坐标。ST-1CL3H为高速光电三极管,其响应时间约为3 ns,能达到很高的检测精度。
图4 光笔电路图
3 软件程序
软件程序是整个系统的核心部分,采用C语言[5]编写。
要实现整个系统的功能,首先要明确如何实现LED点阵书写显示屏的两种工作模式,即人眼不易觉察的扫描微亮和人眼可见的显示点亮。两种模式的区别在于人眼可见与不可见,由人眼的暂留效应和发光二极管发光时间的长短决定,点亮时间短于人眼感知时间,LED灯为扫描微亮模式;点亮时间达到人眼感知时间,则LED灯为显示点亮模式。
然后利用LED动态扫描显示原理确定坐标位置。ATmega16单片机对两组移位锁存器74HC595送数据,某行送一个高电平,其余行为低电平;某列送一个低电平,其余列为高电平,一个时间只扫描一个LED点。AT mega16的数据吞吐率高达,全速扫描32×32个点,每一个LED点亮的时间就短到人眼不易觉察的程度,而高速光电三极管ST-1CL3H的响应时间约为3 ns,完全可以检测到。当光笔所在位置LED被扫描时,光电三极管返回一个信号,从而可以确定光笔所在位置点的坐标。
最后是点亮、划亮、反显、整屏擦除、笔画擦除及连写多字等书写显示功能的实现。每一种功能为一个独立的模块,可由一个开关控制,软件功能框图如图5所示。
对于“点亮”功能,只要光笔位置确定了,将该坐标点LED点亮时间延长就可实现人眼可察觉的点亮功能。“划亮”功能是将每次点亮的LED点坐标在一个32×4的数组相应位做标记,每扫描一个LED点检测一次该数组相应位置及光笔位置,从而点亮所有光笔点过的LED灯。“连写多字”功能是给定一个数组用于存储LED坐标点亮情况,显示时调用即可。其他功能可在这几个功能实现思路的基础上完成。
图5 软件功能框图
4 系统测试
系统上电后书写显示屏工作在人眼不易觉察的扫描微亮模式。进入“点亮”功能,光笔任意点在点阵屏上,被选中的点立刻被点亮,与此同时被点亮的LED的坐标显示在液晶屏上,经多次测试准确无误。进入“划亮”功能,2 s内光笔在屏上迅速划过,划亮LED点的个数如表1所示。先在屏上划亮多个点后,进入“反显”功能模式后,原划亮处微亮,其余点高亮。在“划亮”功能下,在屏上任意划线,然后进入“整屏擦除”功能,屏上显示的LED高亮点立即被擦除。选择“笔画擦除”功能,能用光笔擦除屏上已被划亮的LED高亮点。选择“连写多字”功能,30 s内在屏上以“划亮”方式逐个写出4个汉字,且存入机内,写完后再将所存4个字在屏上逐个轮流显示。
整个系统测试效果良好,只是划亮过程中如果划亮点数过多,会出现一定闪烁现象,可通过缩小LED点阵个数,或采用更高处理速度的处理器来解决这个问题。如果需要更大显示屏,可通过多片单片机联机实现。
表1 划亮功能测试表
[1]Atmel.8-bitmicrocontroller with 16K Bytes in-system programmable flash[EB/OL].[2009-12-10].http://www.datasheetcatalog.org/datasheet/atmel/2466S.pdf.
[2]中国LED显示屏网.8×8点阵LED原理及应用[EB/OL].[2009-12-15].http://www.led8.com/news/tech_design/2006/1229/06122912827 CF26H5AC47K233H2G3GE.html.
[3]翟震,张春玲.用74HC595芯片驱动LED的电路设计[J].机床与液压,2004(12):151-152.
[4]王汉桥.电子技术基础[M].北京:中国电力出版社,2006.
[5]彭同明,徐学勤.单片机原理及应用[M].北京:中国电力出版社,2005.