基于STC89C58单片机LED点阵书写显示屏的解决方案
在本系统中,光笔是一个非常重要的一个环节,为了更好的稳定工作,必须添加适当的抗干扰措施。在信号传输方面采用屏蔽软同轴铜线,在红外光电三极管外围套加黑色热缩管,红外光电三极管比单个LED灯的直径小,以确保少受外界红外线的干扰。
LED双色(红、绿)点阵的型号有很多,其中最为常用的有4×4,8×8,16×16式模块,本设计需要一个32×32的双色显示,其显示亮度、体积由设计者自行定义。考虑到采购的因素,选择由16块8×8双色点阵模块组成32×32点阵显示屏,利用由74HC154和74HC595芯片来驱动显示,由串行口工作在模式0(速度快)将显示信息快速送入74HC595。
LED是一个非线性元器件,当它两端的电压达到一定的值后,通过它本身的电流会急剧上升。考虑32×32点阵式由1 024个发光二极管组成,当它们同时点亮时的电流很大,必须考虑电源供电能力。一般LED的电流值为5~20 mA,取最大值20 mA,同时点亮两行,有:I=20×64= 1 280mA。
2.4 外界光照检测电路
外界光照检测电路如图4所示。电路采用光敏电阻RP串联一个固定电阻R9,将光照变化转换为电压变化,此电压信号通过芯片AD833进行模数转换(A/D)后,由5脚送入单片机处理,以控制亮度的调节。

根据分压原理,有:

可见选择不同的R9的阻值可改变Vin的大小,使输入信号在合适的范围之内。光敏电阻RP随光照变化的阻值变化为3~4 kΩ,由上式可计算出R9为3~4 kΩ,取R9=4 kΩ。
2.5 超时低功耗设计
超时低功耗设计通过软件实现,利用按键设定时间常数,当在设定时间内光笔未接触显示屏或按键未按下时关闭所有显示,使系统进入休眠状态,减少电能消耗,当有按键按下时系统恢复运行。
3 系统软件设计
系统的软件采用C语言编程,软件在KeilμV3编程环境中编写和调试。为了编写和调试的方便,程序使用模块化设计,根据按键、光笔扫描、LED点阵显示、LCD液晶显示、亮度调节等功能分别设计程序,大大简化了程序的设计和调试工作,节省设计周期。

系统主程序流程图如图5所示。主程序开始对内部功能寄存器、端口、液晶显示模块等初始化,然后在主循环中进行光笔位置扫描、LED显示缓冲区数据更新、LED点阵输出、液晶模块输出、可见光亮度检测、低功耗判断等功能。在定时器中断子程序中进行按键扫描,完成显示模式的识别,相应的显示模式信息和光标坐标在液晶模块上显示。
评论