完整版基于单片机的Led点阵广告牌设计1毕业论文.docx
《完整版基于单片机的Led点阵广告牌设计1毕业论文.docx》由会员分享,可在线阅读,更多相关《完整版基于单片机的Led点阵广告牌设计1毕业论文.docx(26页珍藏版)》请在冰点文库上搜索。
![完整版基于单片机的Led点阵广告牌设计1毕业论文.docx](https://file1.bingdoc.com/fileroot1/2023-7/3/c9641066-7f70-4011-a67e-d865176db0e2/c9641066-7f70-4011-a67e-d865176db0e21.gif)
完整版基于单片机的Led点阵广告牌设计1毕业论文
基于单片机的Led点阵广告牌设计
初始条件
本设计既可以使用集成集成译码器、计数器、定时器、脉冲发生器和必要的门电路等。
也可以使用单片机系统构建。
要求完成的主要任务:
1、课程设计工作量:
2周
2、技术要求:
(1)采用单片机作为整个控制系统的控制电路的核心部分,配以各种显示、驱动模块,实现对点阵模块的显示和测量。
(2)确定设计方案,按功能模块的划分选择元、器件和集成电路,设计分电路,阐述基本原理。
(3)绘制总体电路原理图。
3、查阅至少5篇参考文献。
按《武汉理工大学课程设计工作规范》要求撰写设计报告书。
全文用A4纸打印,图纸应符合绘图规范。
摘要1
AbstractII
1LED概述1
1.1LED电子显示屏概述1
1.2LED电子显示屏的分类1
2显示原理及控制方式分析3
2.1LED点阵模块结构3
2.2LED动态显示原理4
2.3LED常见的控制方式5
3硬件电路设计6
3.1系统硬件概述6
3.216×16LED点阵显示制作8
3.2.116×16LED点阵的内部结构及工作原理8
3.2.2用8×8LED点阵构成16×16LED点阵9
3.3主控单片机的接口说明10
3.4LED显示驱动电路11
4字模生成12
4.1字模简介12
4.1.1LED显示屏领域字模实现技术12
4.1.2软件控制系统字模提取的分析与设计12
4.2字模存储技术13
4.3字库生成14
5软件设计16
5.1程序设计总体思路和结构16
5.1.1程序设计总体思路16
5.1.2程序流程图16
5.2各模块程序设计17
5.2.1系统初始化17
5.2.2LED动态显示17
5.2.3汉字显示的原理18
6系统功能测试19
6.1单元模块电路测试19
6.2系统整体功能测试19
总结20
参考文献21
附录22
摘要
本设计使用AT89C51系列高速单片机作为主控制模块,利用简单的外围电路来驱动64×16的点阵LED显示屏。
利用AT89C51系列高速单片机本身强大的功能,可以很方便的实现单片机与PC机间的数据传输及存储,并能利用软件方便的进行显示内容的多样变化,另一方面点阵显示屏广泛的应用于医院、机场、银行等公共场所,所以本设计具有很强的现实应用性。
本LED显示屏能够以动态扫描的方式同时显示4个16×16点阵汉字,并能通过上位机软件修改显示内容和显示效果等等。
把字符内码存储在空闲的单片机程序存储器空间,使本LED显示系统能掉电存储1024个字符。
设计中采用了SPI接口的GB2312标准字库,支持所有的国标字符和ASC
标准字符的显示。
因为采用串行传输方式,使本系统的可扩展性得到提升,便于多个显示单元的级联。
本文从LED的显示原理入手,详细阐述了LED动态显示的过程,以及硬件电路的设计、计算和软件的算法。
关键词:
动态显示;单片机;点阵字库
Abstract
ThisdesignusesSTC12CseriesMCUasamaincontroller,anddependsonasimpleexternalcircuittodrive96×16thelatticeLEDdisplay.ByusingitsownpowerfulfunctionsandcapacityofinternalE2PROM,itiseasytoaccomplishtheMCUandPCandE2PROMforinternalstorage,datatransmissionequipment,anditalsocanbeusedconvenientlytoshowavarietyofcontentchanges.Theotherdotmatrixdisplayiswidelyusedin.
TheLEDDisplaydynamicscancanshowthewayatthesametimesix16×16dotmatrixChinesecharacters,andPCsoftwarecanmodifythecontentandeffectshows,andsoon.IAPusedintheapplicationofprogrammabletechnology,thecharacterswithinthecodestoredintheSCMfreeprogrammemoryspace,sothattheLEDdisplaysystemcanstore1,024brown-outcharacters.SPIusedinthedesignoftheinterfacestandardGB2312character,tosupportalltheGB2312standardASCIIcharactersandcharactersoftheshow.Becauseserialtransmissionused,sothatthesystemcanbeenhancedscalability,foranumberofdisplayunitsofthecascade.
ThisarticlefromthestartLEDdisplayprinciple,elaboratedontheLEDdisplaydynamicprocess,aswellas,computingandsoftwarealgorithms.
KeyWords:
MCU;SerialDataTransfer;LlatticeLlibrary
1LED概述
1.1LED电子显示屏概述
LED电子显示屏(LightEmittingDiodePanel)是由几百--几十万个半导体发光二极管构成的像素点,按矩阵均匀排列组成。
利用不同的半导体材料可以制造不同色彩的LED像素点。
目前应用最广的是红色、绿色、黄色。
而蓝色和纯绿色LED的开发已经达到了实用阶段。
LED显示屏是一种通过控制半导体发光二极管的亮度的方式,来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。
LED显示屏分为图文显示屏和条幅显示屏,均由LED矩阵块组成。
图文显示屏可与计算机同步显示汉字、英文文本和图形;而条幅显示屏则适用于小容量的字符信息显示。
LED显示屏因为其像素单元是主动发光的,具有亮度高,视角广、工作电压低、功耗小、寿命长、耐冲击和性能稳定等优点。
因而被广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。
LED显示屏的发展前景极为广阔,目前正朝着更高亮度、更高气候耐受性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。
1.2LED电子显示屏的分类
按颜色分类:
单基色显示屏:
单一颜色(红色或绿色)。
双基色显示屏:
红和绿双基色,256级灰度、可以显示65536种颜色。
全彩色显示屏:
红、绿、蓝三基色,256级灰度的全彩色显示屏可以显示一千六百多万种颜色。
按显示器件分类:
LED数码显示屏:
显示器件为7段码数码管,适于制作时钟屏、利率屏等,显示数字的电子显示屏。
LED点阵图文显示屏:
显示器件是由许多均匀排列的发光二极管组成的点阵显示模块,适于播放文字、图像信息。
按使用场合分类:
室内显示屏:
发光点较小,一般Φ3mm--Φ8mm,显示面积一般零点几至十几平方米。
室外显示屏:
面积一般几十平方米至几百平方米,亮度高,可在阳光下工作,具有防风、防雨、防水功能。
按发光点直径分类:
室内屏:
Φ3mm、Φ3.75mm、Φ5mm、
室外屏:
Φ10mm、Φ12mm、Φ16mm、Φ19mm、Φ21mm、Φ26mm
室外屏发光的基本单元为发光筒,发光筒的原理是将一组红、绿、蓝发光二极管封在一个塑料筒内共同发光增强亮度。
2显示原理及控制方式分析
2.1LED点阵模块结构
八十年代以来出现了组合型LED点阵显示器模块,以发光二极管为像素,它用高亮度发光二极管芯阵列组合后,环氧树脂和塑模封装而成。
这种一体化封装的点阵LED模块,具有高亮度、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。
LED点阵规模常见的有4×4、4×8、5×7、5×8、8×8、16×16等等。
根据像素颜色的数目可分为单色、双基色、三基色等。
像素颜色不同,所显示的文字、图象等内容的颜色也不同。
单色点阵只能显示固定色彩如红、绿、黄等单色,双基色和三基色点阵显示内容的颜色由像素内不同颜色发光二极管点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极管的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。
图2.1示出最常见的8×8单色LED点阵显示器的内部电路结构和外型规格,其它型号点阵的结构与引脚可试验获得。
图2.18×8单色LED模块内部电路
LED点阵显示器单块使用时,既可代替数码管显示数字,也可显示各种中西文字及符号.如5x7点阵显示器用于显示西文字母.5×8点阵显示器用于显示中西文,8x8点阵可以用于显示简单的中文文字,也可用于简单图形显示。
用多块点阵显示器组合则可构成大屏幕显示器,但这类实用装置常通过PC机或单片机控制驱动。
2.2LED动态显示原理
LED点阵显示系统中各模块的显示方式:
有静态和动态显示两种。
静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。
点阵式LED汉字广告屏绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性。
将连续的几帧画面高速的循环显示,只要帧速率高于24帧秒,人眼看起来就是一个完整的,相对静止的画面。
在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。
以8×8点阵模块为例,说明一下其使用方法及控制过程。
图2.1中,红色水平线Y0、Y1……Y7叫做行线,接内部发光二极管的阳极,每一行8个LED的阳极都接在本行的行线上。
相邻两行线间绝缘。
同样,蓝色竖直线X0、X1……X7叫做列线,接内部每列8个LED的阴极,相邻两列线间绝缘。
在这种形式的LED点阵模块中,若在某行线上施加高电平(用“1”表示),在某列线上施加低电平(用“0”表示)。
则行线和列线的交叉点处的LED就会有电流流过而发光。
比如,Y7为1,X0为0,则右下角的LED点亮。
再如Y0为1,X0到X7均为0,则最上面一行8个LED全点亮。
现描述一下用动态扫描显示的方式,显示字符“B”的过程。
其过程如图2.2
图2.2用动态扫描显示字符“B”的过程
2.3LED常见的控制方式
目前常见的是并行传输方式(见附录1.1),通过8位锁存器将8位总线上的列数据进行锁存显示,各8位锁存器的片选信号由译码器提供。
此种方式的优点是传输速度快,对微控制器(MCU)的通信速度要求较低。
但是这种方案最大的缺点是不便于随意扩展显示单元的数目。
每增加一个16×16点阵的全角汉字显示单元,就需要在之前的电路上多增加两根地址线,这就要求在PCB布线的时候要留有充足的地址线冗余量。
再一个缺点是,每个单元的PCB随着安放位置的不同,布线结构也不相同,不利于厂家批量生产。
并行传输需要的芯片较多,因此市场上已经出现用FPGA,CPLD等高密度可编程逻辑器件(PLD)来取代传统锁存器IC的方案。
成本有所下降,但可扩展性仍旧较差。
因此,并行传输方式适用于显示单元数目确定的条屏。
一.以传统8051单片机为控制器的LED显示屏。
因受到单片机运算速度及通信速率的限制,LED动态显示的刷新率不可能做得太高。
对显示效果和移动算法的处理也比较吃力,在实际显示效果上有比较明显的闪烁感。
除此之外,传统8051单片机的内部资源贫乏,仅128字节的数据存储器,几K字节的程序存储器,无E2PROM,SPI。
这就需要对单片机扩展外设,无疑增加了硬件成本。
因此,8051控制的条屏只能用于显示内容及其简单,不需要经常更改显示内容的场合。
二.以PIC单片机为控制器的LED显示屏。
因PIC单片机是RISC架构的工业专用单片机,处理指令的速度有所增加,抗干扰能力优秀,型号种类繁多。
作为条屏的控制器,可以明显的改善显示效果,同时PIC单片机内部的资源较丰富,可节省外部电路设计难度,同时降低了硬件成本。
因此,以PIC单片机为控制器的条屏目前仍是单色条屏市场的主流。
三.以FPGA(复杂可编程逻辑门阵列)为控制器的LED显示屏。
FPGA以高速、并行著称。
是近年来新兴的可编程逻辑器件。
用他作为LED显示屏的控制器,能够高速的处理色阶PWM信号、高速的完成动态扫描逻辑、高速的完成字符移动算法。
因此被运用于双基色、三基色的显示系统。
但是其成本较高,开发难度较大。
3硬件电路设计
3.1系统硬件概述
整个电路由单片机89C51,8个74LS373,1个74HC154,1个74LS138,4个16×16的LED。
该电路所设计的电子屏可显示多个汉字,需要4个16×16LED点阵模块,可组成16×64的条形点阵。
AT89C51是一种带4KB可编程可擦除只读存储器的低电压,高性能微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51引脚即外观如图3.1所示。
图3.1AT89C51的管脚图
译码器是组合逻辑电路的一个重要的器件,74LS138的输出是低电平有效,故实现逻辑功能时,输出端不可接或门及或非门,74LS138与前面不同,其有使能端,故使能端必须加以处理,否则无法实现需要的逻辑功能。
发光二极管点亮只须使其正向导通即可,根据LED的公共极是阳极还是阴极分为两类译码器,即针对共阳极的低电平有效的译码器;针对共阴极LED的高电平输出有效的译码器。
74LS373是低功耗肖特基TTL8D锁存器,内有8个相同的D型(三态同相)锁存器,由两个控制端(11脚G或EN;1脚OUT、CONT、OE)控制。
当OE接地时,若G为高电平,74LS373接收由PPU输出的地址信号;如果G为低电平,则将地址信号锁存。
工作原理:
74LS373的输出端O0—O7可直接与总线相连。
当三态允许控制端OE为低电平时,O0—O7为正常逻辑状态,可用来驱动负载或总线。
当OE为高电平时,O0—O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,O随数据D而变。
当LE为低电平时,O被锁存在已建立的数据电平。
74LS373引脚即外观如图3.2所示
图3.274LS373引脚图
74HC154为4线-12线译码器,当选通端(G1、G2)均为低电平时,可将地址端(ABCD)的二进制编码在一个对应的输出端,以低电平译出。
若将G1和G2中的一个作为数据输入端,由ABCD对输出寻址,还可作1线-16线数据分配器。
工作环境温度为0~70℃,对社会的要求非常适合。
所以LED的抗震性能好该电路的显示采用逐行扫描方式。
工作时,由单片机取出第一行需要显示的内容经延时一段时间后再进行下一行点阵数据的显示。
需要注意的是,每次只能选通一行数据,即要通过不断的逐行扫描来实现汉字或字符的显示。
3.216×16LED点阵显示制作
3.2.116×16LED点阵的内部结构及工作原理
以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。
即国家标准汉字库中的每一个字均由256点阵来表示。
我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。
事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。
这里我们以”高”字说明,如图3.3所示。
图3.316*16LED汉字显示
用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。
一般把它拆分为上部和下部,上部由8×16点阵组成,下部也由8×16点阵组成。
在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的p00—p07口。
方向为p00到p07,显示汉字”高”时,p02点亮,由上往下排列,为p0.0灭,p0.1灭,p0.2亮,p0.3灭,p0.4灭,p0.5灭,p0.6灭,p0.7灭。
即二进制,转换为16进制为04h。
上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p27向p20方向扫描,从上图可以看到,这一列全部为不亮,即为,16进制则为00h。
然后单片机转向上半部第二列,仍为p01点亮,为,即16进制04h.这一列完成后继续进行下半部分的扫描,p20点亮,为二进制,即16进制02h.依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“高”的扫描代码为:
02h,00h,01h,04h,0FFh,0FEh,00h,00h,1Fh,0F0h,10h,10h,10h,10h,1Fh,0F0h,00h,04h,7Fh,0FEh,40h,04h,4Fh,0E4h,48h,24h,48h,24h,4Fh,0E4h,40h,0Ch。
由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。
不过现在有很多现成的汉字字模生成软件,就不必自己去画表格算代码了。
3.2.2用8×8LED点阵构成16×16LED点阵
Proteus中只有5×7和8×8等LED点阵,并没有16×16LED点阵,而在实际应用中,要良好地显示一个汉字,则至少需要16×16点阵。
下面我们就首先介绍使用8×8点阵构建16×16点阵的方法,并构建一块16×16LED点阵。
首先,从Proteus7.1的元件库中找到“MATRIX-8X8-RED”元器件,并将四块该元器件放入Proteus文档区编辑窗口中。
右边8个引脚是其列线(当然,如果你是将右转,则右边8个引脚是行线)。
然后将四个元器件对应的行线和列线分别进行连接,引脚接一行16个LED,列线也相同。
并注意要将行线和列线引出一定长度的引脚,以便下面我们使用。
连接好的16×16点阵如图3.4所示。
如上图的16×16点阵只是第一步,这样分开的数块并不能达到好的显示效果,下面我们要将其进一步组合。
组合实际上很简单,首先选中如上图中右侧的两块8×8点阵,然后拖动并使其与左侧的两块相并拢,如图3.5所示。
图3.5与左侧的两块相并拢
可以看到原来的连线已经自动隐藏了,至于线上的交点,我们不要去动。
然后,我们再来最后一步,选中下侧的两块点阵,并拖动使其与上侧的两块并拢,最后的效果如图3.6所示。
看到,原来杂乱的连线现在已经几乎全部隐藏了,一块16×16的LED点阵做成了。
需要注意,做成的LED点阵的行线为左侧的16个引脚,下侧的16个引脚为其列线,而且其行线为高电平有效,列线为低电平有效。
然后,我们将其保存,以便以后使用。
图3.6最后的效果图
3.3主控单片机的接口说明
P0口:
P0口是一组8位漏极开路型双向IO口,也即地址数据总线复制用口,作为输入口时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写入“1可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期激活内部上拉电阻。
在Flash编程时,PO口接收指令节,而在程序校检时,输出指令字节,校检时,要求外接上拉电阻。
P1口:
P1口是一个带内部上拉电阻的8位双向IO口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。
Flash编程和程序校检期间,P1接收低8位地址。
P2口:
P2口是一个带内部上拉电阻的8位双向IO口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。
在访问外部数据存储器或16位地址的外部数据存储(例如执行指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。
Flash编程和校检时,P2亦接收高位地址和其他控制信号。
P3口:
P3口是一个带内部上拉电阻的8位双向IO口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作输入端口,作输入端时,被外部拉低的P3口将用上拉电阻,输出电流I。
P3口还接收一些用于Flash闪速存储器编程和程序校检的控制信号。
RST:
复位输入,当震荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALEPROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于所存地址的低8位字节。
即使不访问外部存储器,ALE乃以时钟振动频率的16输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
3.4LED显示驱动电路
LED显示驱动电路如图3.7所示。
图3.7显示驱动电路图
4字模生成
4.1字模简介
文字的字模是一组数字,但它的意义却与数字的意义有着根本的变化,它是用数字的各位信息来记载英文或汉字的形状[1]。
在电脑硬件中,根本没有汉字这个概念,也没有英文的概念,其认识的概念只有——内码(将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。
而剩下的低128位则留给英文字符使用,即英文的内码)。
如果你用启动盘启动系统后用DIR命令可能得到一串串莫名其妙的字符,但那确确实实是汉字,如果你启动UCDOS或其他的汉字系统后,就会看到那是一个个熟悉的汉字。
在硬件系统内,英文的字模信息一般固化在ROM里,即使在没有进入系统的CMOS里,也可以让你看到英文字符。
而在DOS下,中文的字模信息一般记录在汉字库文件里(将制作好的字模放到一个个标准的库中,这就是点阵字库文件)。
4.1.1LED显示屏领域字模实现技术
在通过软件实现的技术中,目前有许多字模生成软件,软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到我们的程序中即可。
在通过硬件实现字模提取的技术中,有在单片机系统中增加硬汉字库的方法,主控器发送的汉字是