基于FPGA的LED点阵书写显示屏的实现
2011-03-15
(甘肃畜牧工程职业技术学院,甘肃 武威 733006)
一、系统方案设计与论证
1.方案比较与论证
在“点亮”功能下,当光笔接触屏上某点LED时,能即时点亮该点LED,并在控制器上同步显示该点LED的行列坐标值(左上角定为行列坐标原点)。在“划亮”功能下,当光笔在屏上快速划过时,能同时点亮划过的各点LED,其速度要求2S内能划过并点亮40点LED。在“反显”功能下,能对屏上显示的信息实现反向显示。在“整屏擦除”功能下,能实现对屏上所显示信息的整屏擦除。根据题目要求我们提出以下方案:方案一,用EDA软件编程,先对每个LED所在点进行编址,然后通过计数器逐次加1,光笔指向点所对应的地址感受到光时,可由显示器输出,但是,若进行划亮功能时,由于地址逐次加1,所以必须按顺序划写,完成斜线划亮,点亮等功能较难。方案二,对LED进行逐行,逐列扫描,控制模块内部根据行列计数器此时的计数数据记录LED地址,当检测到输入信号时,就停止扫描并将拾取信号的控制脉冲送出而点亮该灯,同时向显示模块输入地址,此方案便于寻找到LED地址且且易控制点亮时间而实现划亮等功能。
用单片机实现LED点阵书写显示屏:可按顺序调整序号,可以使图文上下平移,而顺序调整列显示数据的位置可以达到左右平移的目的。同时调整行列顺序,就能得到对角线平移的效果。其他模式的数据处理可用相应的计算方法,不过算法太复杂,太浪费时间,并且刷新的时间,要考虑图形文字显示效果,刷新的周期不好控制。综合分析,选择方案二。
2.总体设计
(1)总体思路
采取了VHDL语言程序控制的动态扫描方式,实现对LED点阵进行逐行逐列的扫描。扫描时LED微亮,用光笔检测扫描时,如在某点拾到LED光信号,即某坐标LED被弱扫描到,这时检测信号给与行、列锁存器一个脉冲信号使得行、列坐标被锁存下来,并通过显示器显示出该点的坐标,同时检光电路输出一个高电平送入CD4066模拟开关控制端,输出高电压以增大该点在LED上的电压,LED由微亮变为强亮。同时采用光敏器件检测环境亮度,能自动连续调节显示器亮度。
系统结构图如图1。
(2)点亮划亮功能的设计思路
在光笔检测到某点被扫描到的信号后,根据功能用状态机控制点亮时间,在本电路中设计点亮时间为3秒钟,3秒过后又开始动态扫描直到出现第二个检光信号,再锁存该点行列地址并显示,以后循环以上状态。如果要实现划亮功能,可以减少点亮时间,使得点亮时间在0.01秒左右这时人的眼睛看到的是光笔移动过的LED连续点亮,实现了点亮功能。
(3)反显及连写功能的设计思路
反显可以在强光快速扫描时,人眼看到的是这个点整点亮,此时如果用光笔检测某个灯闪过的信号,便进入划亮的模式,只不过检光电路向外界输出的是高电平,使得模拟开关CD4066关闭,输出低电压使得LED的亮度减弱。连写模式下加入RAM存储器,并快速扫描,每检测到一个信号便将这个信号的地址存入RAM,并在扫描15秒后按刚才锁存的地址逐个实现点亮功能并加快扫描脉冲,便看到刚才光笔划过的字型,其后有进入15秒的扫描书写,这样可实现连写功能。
二、系统硬件电路的设计与实现
1.电源部分的实现
原理介绍:
在电源的实现中应用三端可调式集成稳压器(CW317),该电路为输出电压1.2~37V连续可调,最大输出电流为1.5A,它的最小输出电流它的最小输出电流由于集成块电路的参数限制,不得小于5mA。CW317的输出端与调整端之间电压Uref固定在1.2V,调整端(ADJ)的电流很小且十分稳定(50uA),因此输出的电压U0=1.2(1+R2/R1)
2.光电电路的实现
图1 整体设计框
(1)电路图(如图2)
图2 光电电路原理
(2)原理说明
光电电路工作原理:光敏电阻是利用半导体的光电效应制成的一种阻值随入射光的强弱的变化而变化的电阻,入射光强,电阻小,入射光弱,电阻增大,在其两端产生一定电压,在通过C4066,提高了灵敏度,很快产生一系列高低电平,在通过100K电位器的滤波整形之后便产生一规则的脉冲信号,在经过运算放大电路放大整形并利用反相器整形以后的脉冲信号做为已经检测到信号的标志信号确定行列地址。
(3)点阵显示屏的驱动原理
用计数器记录行和列扫过的时间,将扫描数据通过锁存器传递到点阵数据接口,再经过五位译码器将其地址译码成32行数据和32列数据,FPGA中的扫描信号输出到译码器,译码器的输出控制三极管的开关来驱动某行和列上的某点LED灯点亮。
三、系统软件的设计
编程主体是编制模块电路并生成元件,最终将模块按整体框图连接起来,用原理图的形式直观的显示出来,进行了软件调试后下载到控制器,再连硬件电路进行调试。
1.整体软件设计框(见图3)
图3 软件设计框
2.显示模块说明(见图4)
图4 显示模块原理
当FPGA送出5位行地址和5位列地址后通过解码转换为2位的8421BCD码,再采用显示译码器,输出到数码管。
四、结果分析并仿真
1.显示屏亮度自动调节分析
在一个放大电路中加入光敏电阻,使其处于临界饱和状态,由于光照的变化可以自动调节该电路的静态工作点,能够产生一个随外界环境变化的信号来控制LED的亮度。
2.点阵显示屏驱动分析
这里使用的是康芯公司的竞赛板,其是六脚能产生一个20GHZ的脉冲信号,由于信号频率过高,必须分频,分频后信号接近于50KHZ左右,该信号就是整个电路的时基频率FC,因而扫描整屏的频率是FC/1024HZ,即使50HZ左右,对于人眼来说看到的还是这个LED点阵点亮。要使2秒内显示40个字,在频率至少是20HZ,而我们的扫频频率是50HZ左右,完全可以满足的。
3.显示电路仿真(见图5)
图5 显示电路仿真
[1]潘松.EDA技术实用教程[CP].科学出版社.
[2]谭会生.EDA技术及应用(第二版)[CP].西安电子科技大学出版社.
[3]雷伏容.EDA技术与VHDL程序开发基础教程[CP].清华大学出版社.
[4]杭州康芯电子有限公司的KX_DVP3D型电子设计竞赛应用板资料.