基于STC89C58单片机LED点阵书写显示屏的解决方案
扫描二维码
随时随地手机看文章
0 引言
近年来,点阵LED显示屏利用发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕,以可靠性高、使用寿命长、环境适应能力强、性能价格比高、使用成本低等特点,已成为众多显示媒体以及户外作业显示的电子工具,广泛地应用于车站、宾馆、金融、证券、邮电、体育等广告发布或交通运输等行业。目前LED显示屏的设计已经有多种方法可以实现,本设计是基于STC89C58单片机利用自制的光笔中红外光电三极管检测光笔触及位置处红色LED灯的点亮,计算出光笔位置的行列坐标,并根据按键设置的不同工作模式控制LED显示,从而实现点亮、划亮、反显、清屏、笔画拖动、轮流显示等功能。
1 系统设计方案
用双色LED点阵(红色和绿色)模块组合成32×32的LED点阵屏。其中红色LED作微亮扫描检测用,绿色LED作显示用,用红外光电三极管自制光笔。在检测时依次点亮红色LED,当点亮到某个LED时,如果此时光笔放在该LED时,这时红外光电三极管的阻值会发生变化,通过相应的检测电路可以得出一个高低电平的变化,单片机检测到信号变化时就可以判断光笔的当前位置。
该方案简单易行,对光笔位置判断的灵敏度较高,抗外界干扰能力强。采用双色点阵和红外光电三极管能够有效地减少环境可见光和显示LED(绿色)所发的光线对光笔中光电三极管的干扰。
2 系统结构及单元模块设计
2.1 系统总体框图
系统主要由微处理器STC89C58,32×32双色LED点阵显示、光笔及检测电路、外界光照强度检测电路、按键输入电路、液晶显示模块等几个部分组成。系统硬件结构框图如图1所示。
单片机STC89C58片内有1 KB的片外RAM,能够满足保存四屏显示信息要求,该单片机性价比很高。系统原理图如图2所示。
2.2 光笔及检测电路
用红外光电三极管自制光笔,光笔检测电路如图3所示。图中Q2是用红外光电三极管,用来完成对32×32点阵红色LED灯点亮或熄灭的检测;R6,RP1用于对Q2进行限流,另外还可以调节RP1来提高或减小输出的电压值;R7,R8是用于给U3A(比较器)的同相端提供基准电压值,通过它跟采集信息输出来的电压值进行比较(U2>U3,U1=Umin),R12是U3A的输出上拉电阻。工作原理如下:当红光照到红外光电三极管上时,红外光电三极管的电阻变小,其射极电压升高,此时2脚电压比3脚电压高,比较器1端输出为低电平。当电容C11充电一段时间之后,比较器2脚电压比3脚电压低,比较器1端输出为高电平。由此,当检测到光信号时,该电路将产生一个脉冲信号。由于在电路中加了耦合电容,可有效地防止环境对光笔的影响。
在本系统中,光笔是一个非常重要的一个环节,为了更好的稳定工作,必须添加适当的抗干扰措施。在信号传输方面采用屏蔽软同轴铜线,在红外光电三极管外围套加黑色热缩管,红外光电三极管比单个LED灯的直径小,以确保少受外界红外线的干扰。
2.3 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点阵输出、液晶模块输出、可见光亮度检测、低功耗判断等功能。在定时器中断子程序中进行按键扫描,完成显示模式的识别,相应的显示模式信息和光标坐标在液晶模块上显示。
4 系统测试
本设计的测试要求与结果见表1。
通过测试结果表明,系统能够实现该设计要求的点亮、划亮、反显、清屏、笔画拖动、轮流显示、显示亮度调节、休眠模式等主要功能。
5 结论
系统主要由微处理器STC89C58、32×32双色LED点阵显示、光笔及检测电路、外界光照强度检测电路、按键输入电路、液晶显示模块等几个部分组成。系统能够实现要求的点亮、划亮、反显、清屏、笔画拖动、轮流显示、显示亮度调节、休眠模式等主要功能。在系统的设计过程中,利用软件和硬件相结合,充分发挥软件编程的灵活性,并最大限度挖掘单片机的硬件资源。系统性价比高,运行稳定,能耗低,显示效果好。