1632点阵LED电子显示屏的设计.docx
《1632点阵LED电子显示屏的设计.docx》由会员分享,可在线阅读,更多相关《1632点阵LED电子显示屏的设计.docx(28页珍藏版)》请在冰豆网上搜索。
![1632点阵LED电子显示屏的设计.docx](https://file1.bdocx.com/fileroot1/2022-11/28/1ca583d3-b858-4f26-8044-fd3164f9c81a/1ca583d3-b858-4f26-8044-fd3164f9c81a1.gif)
1632点阵LED电子显示屏的设计
摘要
本设计是一16×32点阵LED电子显示屏的设计。
整机以美国ATMEL公司生产的40脚单片机AT89S52为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。
通过该芯片控制一个行驱动器74HC154和四个列驱动器74HC595来驱动显示屏显示。
该电子显示屏可以显示各种文字或单色图像,全屏能显示2个汉字,采用8块8×8点阵LED显示模块来组成16×32点阵显示模式。
显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。
文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。
单片机控制系统程序采用单片机汇编语言进行编辑,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。
所显示字符的点阵数据可以自行编写(即直接点阵画图),也可从标准字库中提取。
LED显示以其组构方式灵活、显示稳定、功耗低、寿命长、技术成熟、成本低廉等特点在车站、证券所、运动场馆、交通干道及各种室内/外显示场合的信息发布,公益宣传,环境参数实时,重大活动倒计时等等得到广泛的应用。
经实践证明,该系统显示误差小,性能稳定,结构合理,扩展能力强。
关键词:
AT89C51单片机;LED;点阵显示;动态显示;汇编语言。
第一章前言
单片机自20世纪70年代问世以来,以极其高的性能价格比受到人们的重视和关注,所以应用很广,发展很快。
单片机的特点是体积小、集成度高、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。
正因为单片机有如此多的优点,因此其应用领域之广,几乎到了无孔不入的地步。
在我国,单片机已被广泛地应用在工业自动化控制、自动检测、智能仪表、智能化家用电器、航空航天系统和和国防军事、尖端武器等各个方面。
我们可以开发利用单片机系统以获得很高的经济效益。
更重要的意义是单片机的应用改变了控制系统传统的设计思想和方法。
以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。
这种以软件结合硬件或取代硬件并能提高系统性能的控制技术称为微控制技术。
例如,本文所要论述的通过单片机来控制LED点阵显示。
LED是发光二极管英文LightEmittingDiode的简称,是六十年代末发展起来的一种半导体显示器件,七十年代,随着半导体材料合成技术、单晶制造技术和P-N结形成技术的研究进展,发光二极管在发光颜色、亮度等性能得以提高并迅速进入批量化和实用化。
进入八十年代后,LED在发光波长范围和性能方面大大提高,并开始形成平板显示产品即LED显示屏。
LED电子显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。
它是集微电子技术、光电子技术、计算机技术、信息处理技术于一体的显示系统,是目前国际上极为先进的显示媒体。
由于它具有发光效率高、使用寿命长、组态灵活、色彩丰富、工作性能稳定以及对室内室外环境适应能力强等优点而日渐成为显示媒体中的佼佼者。
在我国改革开放之后,特别是进入90年代国民经济高速增长,对公众场合发布信息的需求日益强烈,LED显示屏的出现正好适应了这一市场形势,因而在LED显示屏的设计制造技术与应用水平上都得到了迅速的提高,生产也得到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。
LED显示屏经历了从单色、双色图文显示屏,到图像显示屏的发展过程。
随着信息产业的高速发展,LED显示屏作为信息传播的一种重要手段成为现代信息化社会的一个闪亮标志。
近年LED显示屏已广泛应用于室内、外需要进行服务内容和服务宗旨宣传的公众场所如银行、营业部、车站、机场、港口、体育场馆等信息的发布,政府机关政策、政令,各类市场行情信息的发部和宣传等。
目前,对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,它可以用单片机控制实现显示字符、数字、汉字和简单图形,可以根据需要使用不同字号、字型。
汉字显示方式是先根据所需要的汉字提取汉字点阵(如16×16点阵),将点阵文件存入ROM,形成新的汉字编码。
而在使用时则需要先根据新的汉字编码组成语言,再由MCU根据新编码提取相应的点阵进行汉字显示。
具体显示技术和原理将会在正文中得到详细论述。
第二章设计任务
点阵点阵显示屏制作
2.1任务
设计并制作一台简易LED电子显示屏,16行*32列点阵显示,原理示意图如下:
PC机
LED电子显示屏原理框图
2.2要求
2.2.1基本要求:
设计并制作LED电子显示屏和控制器。
自制一台简易16行*32列点阵显示的LED电子显示屏;
自制显示屏控制器,扩展键盘和相应的接口实现多功能显示控制,显示屏显示数字和字母,亮度可用按键连续调整。
显示屏通过按键切换显示数字和字母,显示内容可以平滑的左右移动;
显示屏能显示4组特定数字或者英文字母组成的句子,通过按键切换显示内容;
能显示4组特定汉字组成的句子,通过按键切换显示内容,并具有掉保护功能。
2.2.2发挥部分:
自制一台简易16行*64列点阵显示的LED电子显示屏;
LED显示屏亮度可根据环境亮度自动调节。
实现信息的左右滚屏显示,预存信息的定时循环显示,滚屏方向和速度(5级)可以设定;
实现实时时间、日期、温度显示,显示屏数字显示:
时∶分∶秒;
可以用相关软件将PC中的汉字显示在LED屏上(软件打包成WINDOWS下可执行文件并刻成光盘,比赛结束时封入到作品箱中,测试时由组委会提供PC,PC机上只装有WINDOWSXP系统,测试时不得使用U盘。
)注:
一次性到少将20个汉字写入到控制器中。
2.2.3其它
完成一份3000字左右的设计报告,正文中应包括系统总体框图、核心电路原理图、主要流程图、主要的测试结果。
完整的电路原理图、重要的源程序、和完整的测试结果用附件给出。
设计报告用A4纸打印,第一页用一张空白纸做封面,在纸上写明参赛队号和参赛题目代号。
第三章方案论证
3.1显示部分
显示部分是本次设计最核心的部分,对于LED8*8点阵显示有以下两种方案:
方案一:
静态显示,将一帧图像中的每一个二极管的状态分别用0和1表示,若为0,则表示LED无电流,即暗状态;若为1则表示二极管被点亮。
若给每一个发光二极管一个驱动电路,一幅画面输入以后,所有LED的状态保持到下一幅画。
对于静态显示方式方式,所需的译码驱动装置很多,引线多而复杂,成本高,且可靠性也较低。
方案二:
动态显示,对一幅画面进行分割,对组成画面的各部分分别显示,是动态显示方式。
动态显示方式方式,可以避免静态显示的问题。
但设计上如果处理不当,易造成亮度低,闪烁问题。
因此合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。
动态显示采用多路复用技术的动态扫描显示方式,复用的程度不是无限增加的,因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素.我们通过实验发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz,发光二极管导通时间≥1ms时,显示亮度较好,无闪烁感.。
鉴于上述原因,我们采用方案二
3.2数据传输方案
采用扫描方式进行显示时,显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输方式的问题。
从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。
显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。
当列数很多时,并行传输的方案是不可取的。
采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但是,串行传输过程较长,数据要经过并行到串行和串行到并行两次变换。
首先,单片机从存储器中读出的8位并行数据要通过并串变换,按顺序一位一位地输出给列驱动器。
与此同时,列驱动器中每一列都把当前数据传向后一列,并从前一列接收新数据,一直到全部列数据都传输完为止。
只有当一行的各列数据都已传输到位之后,这一行的各列才能并行地进行显示。
这样,对于一行的显示过程就可以分解列数据准备(传输)和列数据显示两个部分。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下,留给行显示的时间就太少了,以至影响到LED的亮度。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。
即在显示本行各列数据的同时,准备下一行的列数据。
为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。
经过上述分析,可以归纳出列驱动器电路应具备的主要功能。
对于列数据准备来说,它应能实现串入并出的移位功能;对于列数据显示来说,应具有并行锁存的功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
图2-1为显示屏电路实现的结构框图。
第四章系统硬件部分设计
由于图文屏的控制电路采用单片机方案,控制功能的实现应在硬件和软件两方面进行折中。
单片机及相应软件,主要负责存储(或生成)显示数据、安排控制信号的定时与顺序等。
但是单片机的接口数量少,驱动能力不强,必须扩展一定的硬件电路,才能满足显示屏的需要。
系统硬件部分电路大致上可以分成稳压电源、单片机系统及外围电路、列驱动器电路、行驱动器电路和LED显示屏电路五部分。
4.1电源设计
稳压电源的功能是把来自电网的220V交流电压转变为所需的、稳定的直流电压。
它由电源变压器、整流电路、滤波电路和稳压电路四个部分组成,如图3-1所示:
+电源+整流+滤波+稳压+
u1u2u3uIU0
_变压器_电路_电路_电路_
(a)稳压电源的组成框图
u1u2u3uIU0
0t0t0t0t0t
(b)整流与稳压过程
图3-1稳压电源的组成框图及整流与稳压过程
根据要求所确定的稳压电源的电路形式如图3-2所示。
图中变压器T将来自电网的220V交流电压变换为整流电路所需要的7.5V交流电压,再经整流电桥(4个二极管)D1将交流电压变换成脉动的直流电压,随后电解电容器C1将脉动直流电压中的大部分纹波加以滤除,以得到较为平滑的直流电压。
为了得到改善的纹波电压,再将直流电压通过电容C2,然后经集成稳压器IC1稳压,在输出端得到稳定的5V直流电压。
这时,在输出端接上电容C3,用以滤除输出端的高频信号,改善负载的瞬态响应,最后即可得到所需的、稳定的直流电压。
电路最后接入的发光二极管用做电源指示灯。
图3-2电源电路图
4.2单片机系统及外围电路
4.2.1单片机的选择
单片机采用89S52或其兼容系列的芯片进行控制,它负责控制整个电路以及相应的程序的运行、以及给屏体电路部分发送命令。
这里我们选择了内含4K字节Flash的AT89S52,因为我们只需要显示特定的图形和文字,无需庞大的字库,因此4KFlash已经可以满足字库储存的需求,不需要扩展外存储器。
4.2.2AT89S52芯片介绍
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
AT89S52单片机一般采用双列直插DIP封装,共40个引脚,图3-3为其引脚排列图。
40个引脚大致可分为4类:
电源、时钟、控制各I/O引脚。
一.电源
Vcc——芯片电源,接+5V;GND——接地端。
二.时钟
XTAL1、XTAL2——晶体振荡电路反相输入端和输出端。
2
图3-3AT89S52引脚图
三.控制线
控制线共有4根,其中3根是复用线。
所谓复用线是指具有两种功能,正常使用时是一种功能,在某种条件下是另一种功能。
1.ALE/
——地址锁存允许/片内EPROM编程脉冲。
(1)ALE功能:
用来锁存P0口送出的低八位地址。
AT89C51在并行扩展外存储器时,P0口用于分时传送低8位地址和数据信号,且均为二进制数。
当ALE信号有效时,P0口传送的是低8位地址信号;ALE信号无效时,P0口传送的是低8位地址信号。
在ALE信号的下降沿,锁定P0口传送的内容,即低8位地址信号。
需要指出的是,当CPU不执行访问外RAM指令,ALE以时钟振荡频率1/6的固定频率输出,因此ALE信号也可作为外部芯片CLK时钟或其他需要。
但是,当CPU执行MOVX指令时,ALE将跳过一个ALE脉冲。
(2)
功能:
片内EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
2.
——外ROM读选通信号。
89S52读外ROM时,每个机器周期内
两次有效输出。
可作为外ROM芯片输出允许
的选通信号。
在读内ROM或读外RAM时,
无效。
3.RST/VPD——复位/备用电源。
(1)正常工作时,RST端为复位信号输入端,只要在该引脚上连续保持两个机器周期以上高电平,AT89C51芯片即实现复位操作,复位后一切从头开始,CPU从0000H开始执行指令。
(2)VPD功能:
在VCC掉电情况下,该引脚可接上备用电源,由VPD向片内RAM供电,以保持片内RAM中的数据不丢失。
4.
/VPP——内外ROM选择/片内EPROM编程电源。
(1)
功能:
正常工作时,
为内外ROM选择端。
AT89S52单片机ROM寻址范围为64KB,其中4KB在片内,60KB在片外。
当
保持高电平时,先访问内ROM,但当PC值超过4KB时,将自动转向执行外ROM中的程序。
当
保持低电平时,则只访问外ROM,不管芯片内有否内ROM。
(2)VPP功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚用于施加编程电源。
四.I/O引脚
AT89S52有P0、P1、P2、P34个8位并行I/O端口,共32个引脚。
P0口是一组8位漏级开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能以吸收电流的方式驱动8个TTL逻辑门电路,对端口写1时,又可作高阻抗输入端用。
在访问外部程序和数据存储器时,它是分时多路转换的地址(低8位)/数据总线,在访问期间激活了内部的上拉电阻。
在Flash编程时,P0端口接收指令字节;而在验证程序时,则输出指令字节。
验证时,要求外接上拉电阻。
P1口是带内部上拉电阻的双向I/O口,向P1口写入1时P1口被内部上拉为高电平,可用作输入口。
当作为输入脚时被外部信号拉低的P1口会因为内部上拉而输出一个电流。
Flash编程和程序校验期间,P1接收低8位地址。
P2口是带内部上拉电阻的双向I/O口,向P2口写入1时P2口被内部上拉为高电平可用作输入口,当作为输入脚时被外部拉低的P2口会因为内部上拉而输出电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据,当使用8位寻址方式(MOVX@RI)访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容,在整个访问期间不改变。
Flash编程和程序校验时,P2也接收高位地址和一些控制信号。
P3口是带内部上拉电阻的双向I/O口,向P3口写入1时P3口被内部上拉为高电平可用作输入口,当作为输入脚时被外部拉低的P3口会因为内部上拉而输出电流。
P3口除了作为一般的I/O口线外,更重要的是它的第二功能,如表3.1所
表3.1P3各端口第二功能
端口引脚
第二功能
P3.0——RXD
串行口输入端
P3.1——TXD
串行口输出端
P3.2——
外部中断0请求输入端
P3.3——
外部中断1请求输入端
P3.4——T0
定时/计数器0外部信号输入端
P3.5——T1
定时/计数器1外部信号输入端
P3.6——
外RAM写选通信号输出端
P3.7——
外RAM读选通信号输出端
4.2.3单片机系统外围电路
单片机系统外围电路形式如图3-4所示。
单片机振荡器反相放大器的输入端(XTAL1)和输出端(XTAL2)之间接上12MHz或更高频率的晶振,以获得较高的刷新频率,使显示更稳定。
电容C4、C5是晶振的负载电容,主要起频率微调和稳定的作用。
单片机的串行口工作在方式0下,作为同步移位寄存器使用,端口RXD(P3.0)作为数据移位的输入/输出端,而由TXD(P3.1)端输出移位时钟脉冲。
移位数据的发送和接收均以8位为一帧,不设起始位和停止位,无论输入/输出,均低位在前高位在后。
AT89S52的通用I/O口P1作为显示数据和二进制行号的公用输出口。
两种数据的输出在时间上是错开的。
P1口的低4位与行驱动器相连,送出二进制的行选信号;P1.5~P1.7口则用来发送控制信号。
P0和P2口空着,在有必要的时候可以扩展系统的ROM和RAM。
图3-4单片机系统外围电路图
4.3列驱动电路
列驱动电路由集成电路74HC595构成,它具有一个8位串行输入/输出或者并行输出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的。
74HC595的管脚及内部结构形式如图3-5所示。
它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。
引脚SER是串行数据的输入端。
引脚SRCLK输入移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SER的下一个数据打入最低位。
移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。
RCLK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入到输出锁存器。
引脚
是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高阻态。
信号是移位寄存器的清零输入端,当其为低时移位寄存器的输出全部为0,由于SRCLK和RCLK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。
芯片的输出端为QA~QH,最高位QH可作为多片74HC595级连应用时,向上一级的级连输出。
但因QH受输出锁存器打入控制,所以还从输出锁存器前引出了QH′,作为与移位寄存器完全同步的级连输出。
移位寄存和输出锁存的时序波形如图3-6所示:
图3-574HC595的管脚及内部结构逻辑图
图3-6移位寄存和输出锁存的时序波形图
由74HC595组成的列驱动器示于图3-7中。
该图由两片74HC595组成16列的驱动,由16个行驱动器驱动16行。
第一片列驱动器的SER端连接单片机输出的串行列显示数据,其QH′端连接第二片的SER端,采用这样的方法组成两片的级连。
两片相应的SRCLK、
、RCLK端分别并联,作为统一的串行数据移位信号、串行数据清除信号和输出锁存器打入信号。
这样的结构,使得各片串行移位能把16列的显示数据依次输入到相应的移位寄存器输出端。
移位过程结束之后,控制器输出RCLK打入信号,16列显示数据一起打入相应的输出锁存器。
然后选通相应的行,该行的各列就按照显示数据的要求进行显示。
图3-7显示驱动电路
4.4行驱动电路
4.4.1行驱动芯片74HC154介绍
译码器是一个多输入、多输出的组合逻辑电路。
其功能是将给定的输入码组进行“翻译”,变换成对应的输入信号,对每一种可能的输入组合,使输出通道中相应的一路有信号输出,一个且仅一个输出信号为有效电位。
74HC154为变量译码器,也称二进制译码器,它是一种四线—十六线译码器,译码的输入端有4个,输出端有24=16个,并有两个选通端(使能端),它的管脚形式如图3-8所示,当选通端
1、
2均为低电平时,译码器处于工作状态,可将地址输入端(A0~A3)的二进制编码在一个对应的输出端以低电平译出。
否则,译码器被禁止,所有的输出端被封锁在高电平。
~
为译码输出端,输出是低电平有效,即在选通时,每输入一个二进制代码将使对应的一个输出端为低电平,而其它输出端均为高电平的无效信号,也可以说对应的输出端被“译中”。
74HC154译码器的真值表如表3.2所示:
图3-874HC154管脚图
表3.274HC154译码器的真值表
说明:
H—高电平;L—低电平;X—任意.
从真值表可知,每组4个变量输入,在16个输出中只有一个引脚为“0”(且正好与输入代码是一一对应),其余15个全为“1”,这种译码输出称为低电平有效;四线—十六线译码器逻辑形式为:
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
。
4.4.2行驱动电路
行驱动电路相对简单。
行选通信号来源于单片机按照时序要求所给出的二进制信号,每次更新行号(开始扫描新的一行)时,由单片机输出4位二进制行号,行号经4/16线译码器译码后,生成16条行选通信号线,再经过驱动器驱动对应的行线。
采用译码器的方案,还可以保证同一时刻只选通一条行线,从而达到显示的稳定性。
行驱动电路原理如图3-9所示:
图3-9行驱动电路原理图
行选通信号从74HC154的
~
端输出,某一端输出低电平即为有效,而其它端输出均为高电平的信号无效。
如
端输出低电平,此信号传至相应的PNP型三极管Q1,此时,三极管的基极为低电平,因此,发射结正向偏置,集电结反向偏置,三极管导通,其集电极再将高电平加于LED阵列的对应的行上,即将此行选通;而同时74HC154的其它端输出高电平而致使该行对应的三极管截止,从而所对应LED行线不被选通。
行选通按顺序从
~
,全部各行都选通一遍之后又重新开始,这就是行驱动电路的逐行扫描过程。
行信号A、B、C、D的顺序变化范围从0000、0001、0010、至l111,来一个选通信号,行信号顺序就变化一次,其频率由扫描电路决定。
由于行驱动电路一条行线上要带动32列的LED进行显示,按每一LED器件20mA电流计算,32个LED同时发光时,就需要32×20=640mA的驱动电流,选用三极管8550作为驱动管可以在逻辑功能和驱动能力上符合LED的驱动要求。
4.5LED显示屏电路
LED显示屏是将发光二极管按行按列布置的,驱动时也就按行按列驱动。
在扫描驱动方式下可以按行扫描按列控制,当然也可以按列扫描按行控制。
LED显示屏现多采用多块8×8点阵显示单元拼接而成。
本文就是使用4块SBM1388型号的实验模块组成16×32点阵,以满足汉字显示的要求。
8×8LED点阵是最基本的点阵显示模块