一、引言
目前LED显示屏都是采用字模软件生成好的字节序列然后进行显示,而LED点阵书写屏是一种无需通过字模软件编码即可给LED显示屏提供显示信息的一种新的交互方案,通过光敏二极管或光敏三极管在屏幕上捕获LED点阵的驱动信号,从而反馈至控制器点位的坐标,进行相应显示功能。这里介绍一下我在很多年前读大一参加比赛时候做的一个比较完整的点阵书写屏设计方案。有需要请留言。
二、系统整体架构
书写屏采用STC单片机为控制器,采用LED扫描和显示屏二分法,设计了一个32×32 单色LED点阵模块的点阵书写屏,
图1 系统整体结构图
主要包括:
- STC12C5A60S2(STC89C52RC)为主控,1T单片机
- 光笔检测模块,利用光敏二极管的光电特性,实现微亮检测功能
- 点阵模块,由16块8X8 单色共阳LED点阵级联
- 行驱动模块,由两片74HC154构成5-32译码器实现对行信号的选择,选中的行用4953均流驱动LED,控制LED的亮度均匀
- 列驱动模块,采用4片74HC595串行移位控制器实现对列信号的选择,三线控制可以很方便的实现扩展同时节省IO口资源
- 单片机最小系统,人机交互部分采用四个独立按键和液晶LCD1602实现对程序功能的选择
程序运行时, LCD1602菜单显示并配合按键实现各个功能的切换和相互调用,光笔通过显示屏微亮扫描寻找光笔的位置,可依据功能可实现“点亮(单点)、划亮(多点)、反显、整屏擦除、笔画擦除”等基本书写显示功能, “坐标显示、连写多字、显示内容移动、对象拖移、画空框、画实框、区域填充、掉电唤醒” 等其他特殊功能。
书写屏驱动方式合理、控制方式灵活、光笔灵敏度高、抗自然光干扰能力强、显示内容丰富、程序资源丰富、二次开发简单,可作为控制类课程设计、电子类毕设、单片机学习的优秀硬件平台。
三、电路原理
3.1 行驱动
行驱动模块由两片75HC154(4转16,高速)和一片反相器(与非门、斯密特反相器均可)级联构成32行信号输出,实现对行信号的选择,选中的行采用专用的LED驱动芯片4953,每一片可驱动两行驱动LED,实现动态控制过程中LED的亮度均匀。
3.2 列驱动
列驱动模块用四片74HC595级联实现列的控制。74HC595具有十分明显的优点:1,8位串行输入/8位串行或并行输出,存储状态寄存器,具有三种状态;2,并行输出时具备总线驱动;3,只需使用3个IO口即可实现多位数据的输出。
3.3 光笔检测
光笔检测模块主要为光敏二极管,采用的光敏二极管开关时间小于1us,有光时电阻1k左右,无光时电阻100K左右,串接一个500K的电位器到地,同时用一个反相器(与非门、斯密特反相器都可)对光敏二极管的检测信号进行整形,调节电位器的值使得一旦检测到光强超过自然光光笔检测模块输出低即可,单片机检测的接口为P3.2。同时预留了一个外接光笔检测模块,单片机检测的接口为P3.3。
3.4 控制和显示
控制和显示部分包括单片机的最小系统,LCD1602显示电路和4个独立按键,四个按键功能分别为:确定Enter、功能上翻Up、功能下翻Down、返回退出Return。
四、程序结构
控制系统的软件编写采用c语言,在KEIL V4集成环境中编写和调试。为了编写和调试的方便,采用结构模块化设计,根据按键检测、扫描、LED屏的显示,LCD1602液晶显示菜单等各个模块的功能分别设计程序,构建头文件,使程序在调试开发的时候,十分方便,极大缩减了开发周期。本系统使用LCD1602液晶和4个按键来作为人机交互界面,从而方便的实现各个功能的切换,LCD1602的操作比较的简单,作为显示信息,两排显示通过按键切换已经足够。
五、实物照片和视频记录
曾经将这个测试视频上传到了土豆,应该还能看:http://www.tudou.com/programs/view/kVOucCTUMlI/