LED点阵书写显示屏的设计

2019-11-03 13:11吴强杨文丽黄光华
电脑知识与技术 2019年24期
关键词:全屏三极管数码管

吴强 杨文丽 黄光华

摘要:随着电子技术的快速发展,用LED点阵书写显示屏的节能运用越来越多。本文主要涉及的领域在LED书写显示,介绍如何设计的一个32*32LED点阵书写显示屏,其功能既可以进行屏幕循环显示、全屏擦除和屏幕反显等视觉显示功能,又可以用光电三极管进行笔画擦除和笔画点亮等手动书写功能。实验表明,该设计可靠性强、成本低,安全性高等特点。

关键词:32*32LED点阵;光电三极管 ;书写显示屏

中图分类号:TP393        文献标识码:A

文章编号:1009-3044(2019)24-0260-03

开放科学(资源服务)标识码(OSID):

随着电子技术的发展,LED点阵书写屏既可多次显示文字与图形等不同图案,又能在短时间内展示多个不同信息,具有反复播放的特点,其节能运用越来越广泛。本文设计一个32*32LED点阵书写显示屏,采用STC12C5A60S2单片机为主控制器,再用74HC154为辅进行单片机串口拓展控制点阵行列,使用光电三极管进行对点阵的控制书写,坐标信息由74HC595芯片连接数码管并显示在数码管。该系统结构简单,可靠性强、安全性高,节能效果明显。

1 系统的总体设计

本论文设计一个32*32LED点阵书写显示屏,主要功能如下所示:

(1)可以实现“全屏点亮”“全屏擦除”的功能;

(2)屏幕上可轮流显示8个大小写的英文字母和“电子设计”4个汉字;

(3)光笔点亮触及点阵上的灯,并用数码管显示此点的行列坐标值,另外可测量并显示“点亮”过程的时间,单位为毫秒;

(4)光笔能够划亮多个点阵灯,而且在2秒内划过并点亮的灯越多越好,也可以测得显示“划亮”过程的时间,单位为毫秒;

(5)可以实现“反显”功能;

(6)可以用光笔擦除所显汉字的笔画。

系统设计主要由以下几个模块组成:光电三极管检测模块、中断独立按键模块、数码管显示模块和书写显示模块,总体设计结构如图1所示。

2 系统硬件电路的实现

2.1光电三极管检测电路设计

本设计中的光电检测模块主要是用光敏三极管进行对点阵的光感应来检测电路,电路模块如图2所示:当没有光时,光敏三极管Q3DUSC电阻高达20K,使得比较器LM3933脚(正相)输入电压约为1/20VCC,将R178滑动变阻器调至4:1左右的位置,使得比较器2脚(负相)输入电压约为2/5VCC,此时负相电压2/5VCC大于正相电压1/20VCC,则LM393比较器输出端输出低电平。当光敏三极管感应到光时,光敏三极管电阻约为1K,比较器正相电压约为1/2VCC,即正相电压比较器负相电压大,比较器输出为高电位;P1.5I/O口检测到比较器LM393输出由低到高的电平变化,变化的电平信号传送给主控芯片,从而实现光电三极管对LED点阵的光检测。

2.2 LED点阵电路设计

本设计使用74HC154译码芯片控制点阵的行与列从而控制LED点阵,其中74HC154是一块4线—16线译码器/解调器芯片,可用来进行对STC12C5A60S2单片机芯片的IO口拓展。4个输入就可产生16个输出,大大节省了单片机的IO口。本次设计中在点阵扫描控制行列时分别用两片74HC154控制了点阵32脚的行与列。利用这4片74HC154对32*32点阵LED定义坐标,进行动态扫描使得人眼观察点阵LED散发微弱的光芒,进入等待光电三极管检验的过程。由于74HC154芯片输出为低电平,故用PNP三极管衔接,而32*32点阵有1024个LED,一个LED点亮大概需要5至20ma,为了确保在扫描时LED散发微亮的光芒,三极管接上限流电阻进行限流。这时感受到点阵在光电三极管检测时展现全亮的变化,人眼看去就像屏幕被书写点亮。点阵电路行驱动部分电路如图3所,点阵电路行驱动部分电路如图4所。

2.3行列坐标值显示电路设计

数码管显示模块是使用74HC595芯片驱动数码管,74HC595芯片最重要的优点就是它有数据存储寄存器,输出寄存器可直接清除,在移位的时候能保持输出端数据保持不变,使得数码管不会出现闪烁的情况。比如串行输入8位数转变成并行输出8位数,则控制的对应的一个8位数码管将不会闪烁,便于数码管的稳定显示。本次设计中单片机的芯片的P1.0至P1.3控制芯片的驱动。

3 系统软件设计

3.1 部分功能设计

3.1.1 唤醒部分

当显示时间在20s的延时内没有下一个中断执行时清空储存器数据使其暗下来,将端口全部置高或置0,待按下唤醒中断按键后CPU才开始进行行列扫描等待其他指令。

3.1.2 標志显示

题目要求能够循环显示8个含大小写的英文字母与“电子设计”4个中文汉字 ,在文档上写自己需要显示的内容,比如我的是“asdfgHJKL电子设计”,裁取图片的格式“.jpg”转化为“.bmp”,使用字模提取软件,生成C51的代码,设置数组放入。

if(P2==0xfd)   //标志循环显示

{XunHuan=0;

GNXZ=1;

if(DJ==0)

{ZB[0]=10;

ZB[1]=10;

ZB[2]=0;

ZB[3]=1;

SMGXS();}}

3.1.3 清屏擦除行为

本设计中擦除主要由光电三极管检测,当光电三极管检测到点阵为1,信息反映到CPU则进行对感应到的“1”的位置赋“0”。当清屏中断开启则将点阵的列强行执高电平,显示全部置0,实现全屏清除。

if(P2==0xef) //清屏功能

{uchar x,y;

if(GNXZ==2||GNXZ==3)

{for(x=0;x<32;x++)

{for(y=0;y<4;++)

{XSKJ[x][y]=0x00;}}}}

if(P2==0xdf)      //擦除功能

{GNXZ=3;

if(DJ==0)

{DJ=0;

ZB[0]=10;

ZB[1]=10;

ZB[2]=0;

ZB[3]=3;

SMGXS();}}

3.1.4 反显中断

反显中断开启时将定的数据进行按位取反,得到的新地址储存到ARM中再由地址循环扫描输出。

if(P2==0xbf)

{uchar x,y;

if(GNXZ==2||GNXZ==3)

{for(x=0;x<32;x++)

{for(y=0;y<4;++)

{XSKJ[x][y]=XSKJ[x][y];

}}}}

3.1.5 点亮模式

点亮也是在进行行列扫描时,靠点阵屏全部微亮时,通过光电三极管来把对应的点点亮,就是微亮是用两个154芯片控制三极管然后有限流电阻,当点阵用光电三极管检测到对应的点再用上面的两片154芯片控制对应的三极管,微亮有加限流电阻三极管亮度小于全亮没有限流电阻三极管亮度。

if(P2==0x7f)     //点亮功能

{GNXZ=2;

if(DJ==0)

{DJ=0;

ZB[0]=10;

ZB[1]=10;

ZB[2]=0;

ZB[3]=2;

SMGXS();}}

4 结束语

本系统设计簡单实用,软硬件容易实现,成本较低。能够以进行屏幕循环显示、全屏擦除和屏幕反显等视觉显示功能。基本实现了设计要求。

参考文献:

[1]陈爱萍,张青.基于单片机的LED点阵书写显示屏的设计[J].湖南工程学院学报(自然科学版),2011,21(4):10-12.

[2] 黄小容.基于单片机的LED点阵书写显示屏设计路径研究[J].现代计算机(专业版),2016(9):80-82.

[3] 黄有全,李桂平.基于单片机的点阵式中西文显示器的设计[J].湖南科技学院学报,2005(5):56-59.

[4] 刘成惠.基于STC12C5A60S2单片机的LED点阵屏设计[J].科技经济市场,2016(10):35-37.

[5] 李剑辉,张锐,高辉.点阵式LCD与AT89C51单片机的接口技术[J].信息技术,2003(8):22-24.

[6] 刘硕.基于单片机的16*16LED点阵屏显示设计[J].才智,2012(35):42.

【通联编辑:唐一东】

猜你喜欢
全屏三极管数码管
Arduino编程
MC9S08FL16单片机数码管静态显示分析
基于晶体三极管的放大电路分析
单片机控制的四位数码管动态显示编程
基于Qt的数码管数字编码系统的设计与实现
三极管引脚折弯机双凸轮机构的分析与仿真
三极管放大电路的研究
三极管单管放大电路的失真分析