采用单片机控制的点阵显示.docx
《采用单片机控制的点阵显示.docx》由会员分享,可在线阅读,更多相关《采用单片机控制的点阵显示.docx(39页珍藏版)》请在冰豆网上搜索。
![采用单片机控制的点阵显示.docx](https://file1.bdocx.com/fileroot1/2023-2/7/18716e0d-5023-4461-9962-fdf9bc820b0c/18716e0d-5023-4461-9962-fdf9bc820b0c1.gif)
采用单片机控制的点阵显示
毕业设计说明书
采用单片机控制的
点阵显示屏设计
专业
电气工程及其自动化
学生姓名
班级
学号
指导教师
完成日期
2013年6月6日
毕业设计说明书(毕业论文)
独创性声明
本人声明所呈交的毕业设计说明书(毕业论文)是本人在导师指导下进行的研究、设计工作后独立完成的。
除了文中特别加以标注和致谢的地方外,说明书中不包含其他人己经发表或撰写过的研究成果。
对本文的研究所做贡献集体和个人,均己在说明书中作了明确的说明并表示谢意。
本人完全意识到本声明的法律后果由本人承担。
毕业设计说明书(毕业论文)作者签名(手写):
日期:
年月日
指导教师签名(手写):
日期:
年月日
采用单片机控制的点阵显示屏设计
摘要:
对以STC89C52RC单片机为控制核心的4个16*16点阵显示屏进行了设计。
该显示器可以实现的功能是清晰显示文字、数字、字母或者单色图片,在目测条件下LED显示屏各点亮度均匀、充足、稳定、清晰无串扰,并可以使图形或文字有静止、左移或右移等动作。
根据该点阵显示屏的主要功能,提出了设计方案并进行了论证。
设计包括硬件设计和软件设计两大部分。
硬件部分包括单片机主控系统、总线启动电路及行驱动电路、列驱动电路和点阵显示电路5个部分。
单片机选用宏晶STC公司的STC89C52RC,用74LS245作为单片机的总线驱动,解决单片机输出电流不足的问题,用74HC595作为行驱动电路的核心,用74HC154驱动点阵显示器的列,通过4个8*8的点阵显示器组成1个16*16点阵显示屏,然后再构成4个16*16显示器。
软件采用了模块化的设计方法,主要分为主程序、字模程序、延时程序、点阵显示程序四部分。
首先在面包板上制作了1块8*8显示器电路,对硬件和软件部分分别进行了调试,再进行了软硬件联调,初步了解点阵显示屏显示的特点,调试成功后,开始制作4个16*16点阵显示屏,焊好之后再次进行整体的调试运行,最后得到调试成功的单片机控制点阵显示屏,完美的完成毕业设计任务。
关键词:
单片机;控制;点阵显示屏
Thedotmatrixdisplayusingmicro-controllerdesign
Abstract:
RighttoSTC89C52RCmicrocontrollercoreof416*16dotmatrixdisplayhasbeendesigned.Thedisplaycanachievethefunctionisclearlydisplaytext,numbers,lettersormonochromeimages,thevisualLEDdisplayunderthepointsbrightnessuniformity,adequate,stable,clearandnocrosstalk,andcanmakeastaticgraphicortext,leftorrightotheractivities.
Accordingtothedotmatrixdisplaymainfunctionisproposeddesignandconductademonstration.Designincludeshardwaredesignandsoftwaredesigntwoparts.Hardware,includingthesmallestsingle-chipsystembusstart-upcircuitandthelinedrivercircuit,drivecircuitandthecolumndotmatrixdisplaycircuit5parts.SCM'sSTCSTCselectedSTC89C52RC,withthebusdriver74LS245asamicrocontroller,themicrocontrolleroutputcurrentisinsufficienttosolvetheproblem,using74HC595drivercircuitasthecoreoftheline,withthe74HC154columndotmatrixdisplaydrivenbyfour8*8dotmatrixdisplaycomposedofa16*16dotmatrixdisplay,andthenform416*16monitors.Softwareusesamodulardesignapproach,mainlydividedintothemainprogram,fontprogram,delayprocedures,dotmatrixdisplayprogramfourparts.
Firstproducedabreadboard8*8displaycircuitry,thehardwareandsoftwarecomponentswerecarriedoutcommissioning,thentheFBIhardwareandsoftware,apreliminaryunderstandingofthecharacteristicsofdot-matrixdisplay,debuggingsuccess,beganmakingfour16*16dotmatrixdisplay,weldwholeagainaftercommissioning,andfinallygetamoreperfectmicroprocessorcontrolleddotmatrixdisplay,perfecttocompletegraduationdesigntask.
Keywords:
MCU;control;dotmatrixdisplay
采用单片机控制的点阵显示屏设计
1概述
1.1课题研究背景与意义
应广告传媒领域的需要,功耗低、亮度高、寿命长,性能稳定的LED点阵显示屏从其他显示方式中脱颖而出,并且得到迅速发展。
LED显示屏的控制方式成为了研究热点,利用单片机控制是一种重要的方式。
点阵显示屏的显示通过单片机来控制,一方面通过硬件电路的设计使LED点阵显示屏的显示达到高亮度、高性能稳定性,另一方面通过软件程序的编写,使LED点阵显示屏能完成更多的显示内容、显示方式的变换。
使用这种软硬件结合的控制方式大大提高了系统的性能,相比以前单一利用数模电硬件控制有着卓越的先进性,数模电控制显示单一,无法修改,而单片机可以通过程序的调整就可以更改显示内容,十分方便。
1.2课题设计内容
以STC89C52RC单片机为控制核心,设计并且制作点阵显示屏控制系统。
该系统控制器可以使显示屏显示汉字或者单色图形,并且可以完成有左移、右移、静止等显示动作。
具体要求为:
a)通过4个16*16点阵显示屏显示文字或者单色图形;
b)要求点阵显示屏能够稳定的显示,并且在肉眼管擦的条件下LED点阵显示屏各点的亮度达到均匀、明亮、没有窜扰现象;
c)通过对软件程序的编写,完成显示出想要的文字或者图形符号,并完成移动静止的动作要求。
设计完成点阵显示屏控制系统的硬件电路与软件程序,作出硬件系统的电路原理图和PCB图,分别对硬件电路和软件程序进行调试检查,得到调试成功的采用单片机控制的点阵显示屏。
2设计方案论证
2.1总体设计方案
点阵显示屏设计的总体框图如图2-1所示。
图2-1点阵显示屏总体框图
点阵显示屏的控制系统是由主控系统、总线驱动模块、行驱动模块、列驱动模块和点阵显示模块5个部分组成。
其中点阵显示电路模块又是由4个16*16LED点阵显示屏构成,而每个16*16LED点阵显示屏又由4个8*8LED点阵显示组合而成。
主控系统选择STC89C52RC单片机,它是使用比较普遍的一种单片机,具有低功耗、低价格、小体积的优点,性能好。
STC89C52RC单片机拥有8K字节的程序储存空间和512字节的数据储存空间,还有2K字节的EEPROM,能为本设计提供个足够的存储空间,还拥有32位I/O口线、3个16位定时器/计数器,能为本设计提供很好的外部硬件接口,所以选用STC89C52RC单片机作为本设计的控制核心。
总线驱动模块是为了解决单片机输出行驱动和列驱动模块然后输出到点阵显示模块时电流不足导致点阵显示亮度不够的问题。
本设计采用74LS245芯片作为总线驱动器,单片机的输出口总线负载到达或者超过最大负载能力的时候74LS245就可以解决这个问题。
行驱动模块的作用是接收单片机发出的信息,然后输出给点阵显示屏的行端。
本设计采用一个74LS154来驱动一共有16行的16*64LED点阵显示屏。
74LS154是一个4/16线译码器,通过4口输入控制16口输出,使用更少的单片机输出口控制点阵显示屏的行。
列驱动模块的作用是接收单片机发出的信息,然后输出给点阵显示屏的列端。
本设计的点阵显示屏有64列,所以这里选择8个74HC595芯片作为列驱动器。
它的八位串入并出位移寄存器与八位锁存器结构使本设计使用更少的单片机输出口来实现点阵的列驱动。
如果需要让整个LED点阵显示屏的发光器件全部发光,按照每个发光器件需要电流5mA,一个8*8点阵显示屏就有64个发光器件,则电流达到320mA方能满足要求,所以本设计选用了S9012PNP三极管加在行驱动电路后面作为驱动管,如此则能到达要求。
2.2点阵显示屏显示方案
点阵显示屏显示文字或者图形的理论原理是:
控制所要显示的文字或者图形各点所在位置对应的LED发光器件使其发光,形成所要的文字或者图形得到显示结果。
点阵显示屏的显示方式有:
静态显示方式和动态显示方式2种。
静态显示方式,它主要是同时控制LED点阵的各个发光点的亮和灭。
1个16*16LED点阵一共有256个放光二极管器件组成,而单片机不可能有那么多的端口供设计使用,所以只能采用一种被叫做动态扫描的显示方法。
动态扫描方式,轮流地点亮每一行的LED点阵上的每个发光器件,如此就可以实现不同行的同一列共同使用一个列驱动器。
以16*16LED点阵做为例子,利用共阳极的接法把控制点阵每一行的管脚连一起(阳极),再把每一列的管脚连一起(阴极),先送出控制第1行发光二极管亮暗的数据并且锁存,然后选通每一列在第1行上需要亮起的发光二极管使其在一定时间内被点亮,然后暗灭;再送控制第2行发光二极管亮暗的数据并且锁存,然后选通每一列在第2行上需要点亮的发光二极管使其在一定时间内被点亮,然后暗灭……在第16行执行完同上步骤后重新执行第一行,如此重复循环。
当每个循环的速度都非常快(24次/s以上)的时候,人的肉眼会出现视觉暂留现象,这样就可以看到稳定显示在显示屏上的图形或者文字了。
本设计需要列数据显示具备锁存功能,这样就能在显示一行上的每一列数据的同时传输下一行的每一列数据。
这样处理之后,在此行已经准备好的数据在传入并行锁存器显示的时候,由串并移位寄存器准备次行的列数据,不影响此行的显示时间,也解决了因为使用串行传输方法而导致的数据准备的时间太长使得LED点阵显示亮度变暗的问题。
3系统硬件电路设计
根据第2节总体设计方案,进行了采用单片机控制的点阵显示屏的硬件电路设计,总电路原理图如附录1所示。
3.1主控系统
本设计选用的主控芯片为单片机STC89C52RC。
主控系统由单片机最小系统构成。
单片机最小系统由晶体振荡电路和复位电路组成。
另外,可以利用一个发光二极管串联一个R=470Ω的电阻,阳极接入电源,阴极接入P1.0脚,单片机烧录最小系统检测程序后用于检测最小系统是否能正常运行。
由STC89C52RC单片机最小系统构成的主控系统如图3-1所示。
图3-1STC89C52RC单片机最小系统
晶体振荡电路:
STC89C52RC单片机的第19脚XTAL1是单片机片内高增益的反相放大器输入端引脚,第18脚XTAL2是它的输出端引脚,这2个引脚外接石英晶体振荡器和两个并联的电容,形成一个稳定的自激振荡器。
机器周期信号的获得需要让系统时钟信号经过二次分频之后形成一个脉冲,这个脉冲在二次分频的基础之上再进行三词分频后产生一个ALE信号,这个信号就是机器周期信号了。
石英晶体的振荡频率决定了振荡频率,频率的范围在1.2MHz-12MHz。
2个并联的电容起着微调和稳定频率的作用,电容值5~30pF。
随着晶体自身振荡的频率增高,系统时钟的频率也会变高,这样单片机的运行速度也会更加的迅速。
随着运行速度的增加对存储器的速度要求也会增加,对硬件电路的性能与工艺要求也更高。
本次设计中,选取晶振频率为12MHz,2个电容的值均为22pF。
时钟电路如图3-2所示。
图3-2时钟电路图
复位电路:
当第9脚RST端由低电平上升到高低平并持续两个周期(周期具体数值由RC电路计算得出)时,系统将完成一次复位操作,具体步骤是在该复位电路中,改变一下复位开关原先的状态,此时电容电荷量就开始增加,为系统提供一定的延时,这个时候在RST端就相应的产生一段时间的高电平,进行复位操作。
本设计就是利用外接电阻与电容的方式来进行上电复位。
电阻值和电容值为10KΩ和22uF。
复位电路分为按键复位和上电复位。
a)按键复位:
通过按键来实现主控系统的复位工作,具体步骤为将一个按钮开关与复位电容并联,按下按钮开关,电容就会被放电,RST端则会出现高电平,从而使单片机复位。
b)上电复位:
在给系统上电的时候,复位电路利用电容的特性给RST端施加一个极短时间的高电平信号,这个高电平使单片机复位。
按键复位电路如图3-3所示。
图3-3复位电路图
3.2总线驱动模块
74LS245电源接口电路如图3-4所示。
图3-4为总线驱动电路,74LS245在第19脚输入低电平时有效,当第1脚输入DIR=“1”时,信号的传输方向是由A至B传送(接收状态);当DIR=“0”时,则信号传输方向相反(发送状态)。
图3-474LS245电源接口电路
74LS245的第1脚DIR接电源,第19脚接地,如此A端8脚(2-9脚)就成为输入端,B端8脚(17-11脚)就成为输出端。
A端与单片机的I/O口连接,作为I/O口总线负载达到或者超过它的最大负载能力时的总线驱动器。
3.3行驱动模块
因为4个16*16点阵显示屏一共有16行,为保证单片机的接口得到合理利用,本设计采用74LS154作为点阵显示屏的行驱动器。
74LS154是一个4/16的线译码器,在第20、21、22、23脚输入一个16进制码,第1-11、13-17脚则解码输出低电平的扫描信号。
74LS154结构图如图3-5所示。
功能表如表3-1所示。
图3-574LS154结构图
74LS154引脚功能如下:
第1-11脚、第13-17脚0-15输出端(低电平有效)
第18、19脚G1、G2选通端(低电平有效)
第20-23脚D、C、B、A译码地址输入端(低电平有效)
第12脚GND地
第24脚VCC电源
表3-174LS154功能表
输入
输出
G1
G2
D
C
B
A
低电平输出端*
L
L
L
L
L
L
0
L
L
L
L
L
H
1
L
L
L
L
H
L
2
L
L
L
L
H
H
3
L
L
L
H
L
L
4
L
L
L
H
L
H
5
L
L
L
H
H
L
6
L
L
L
H
H
H
7
L
L
H
L
L
L
8
L
L
H
L
L
H
9
L
L
H
L
H
L
10
L
L
H
L
H
H
11
L
L
H
H
L
L
12
L
L
H
H
L
H
13
L
L
H
H
H
L
14
L
L
H
H
H
H
15
L
H
×
×
×
×
——
H
L
×
×
×
×
——
H
H
×
×
×
×
——
注:
H=高电平状态L=低电平状态×=任意*—其他输出端为高电平
由表3-1可知G1、G2即第18、19脚为低电平有效,因此与GND即第12脚一起接地。
第24脚VCC接电源,然后以A、B、C、D即第20、21、22、23脚为输入端,与单片机的P1口相连,当单片机输出信号时,就会形成16种不同的输出状态,输出给4个16*16点阵显示屏的16行。
行驱动电路如图3-6所示。
图3-6行驱动电路图
3.4列驱动电路模块
本设计采用集成电路74HC595作为列驱动电路。
74HC595它的八位串入并出位移寄存器和八位输出锁存器的控制都是各自独立的,可以实现显示本列数据和传输下一行的列数据同时进行,也就是它具有重叠处理的特点。
74HC595结构图如图3-7所示。
功能表如表3-2所示。
图3-774HC595结构图
74HC595引脚功能如下:
第1-7脚Q0…Q78位并行数据输出,其中Q0为第15脚
第8脚GND地
第9脚Q7’串行数据输出
第10脚MR主复位(低电平)
第11脚SH_CP移位寄存器时钟输入
第12脚ST_CP存储寄存器时钟输入
第13脚OE输出有效(低电平)
第14脚DS串行数据输入
第16脚VCC电源
表3-274HC595功能表
输入
输出
功能
SH_CP
ST_CP
OE
WR
DS
Q7’
Qn
×
×
L
↓
×
L
NC
MR为低电平时仅仅影响移位寄存器
×
↑
L
L
×
L
L
空移位寄存器到输出寄存器
×
×
H
L
×
L
Z
清空移位寄存器,并行输出为高阻状态
↑
×
L
H
H
Q6
NC
逻辑高电平移入移位寄存器状态0,包含所有的移位寄存器状态移入
×
↑
L
H
×
NC
Qn’
移位寄存器的内容到达保持寄存器并从并口输出
↑
↑
L
H
×
Q6’
Qn’
移位寄存器内容移入,先前的移位寄存器的内容到达保持寄存器并出
注:
H=高电平状态L=低电平状态↑=上升沿↓=下降沿Z=高阻NC=无变化×=无效
当MR为高电平,OE为低电平时,数据在SHCP上升沿进入移位寄存器,在STCP上升沿输出到并行端口。
74HC595是一个8位的移位寄存器和存储器,三态输出。
拥有不同时钟的移位寄存器和存储器。
当第11脚SH_CP遇到上升沿时,数据输入到移位寄存器中,当第12脚ST_CP遇到上升沿时,数据则输入到存储寄存器中。
如果2个时钟相连,移位寄存器总是早于所述存储寄存器的脉冲。
74HC595的位移寄存器通过第14脚DS进行串行移位输入、通过第9脚Q7’进行串行输出、通过第10脚MR进行异步的低电平复位,存储寄存器则通过第15脚和第1-7脚进行并行的8位三态总线输出。
当第13脚OE处于低电平时,数据存储器的数据则会输出到总线。
驱动电路如图3-8所示。
图3-8列驱动电路
将8片74HC595进行级连,可共用一个移位时钟SH_CP及数据锁存信号ST_CP。
经过
个SH_CP时钟后第1行所需要显示的全部数据就会输入到74HC595中,与此同时还产生一个数据锁存信号ST_CP将数据锁存在74HC595中,并能在使能信号G的作用之下执行并行输出串入数据的动作,从而使各个输出位输出LED点阵显示屏的显示列信号;在行驱动电路控制下产生信号使第一行导通,即相当于让LED点阵显示屏的第一行端接高电平使其导通,如此,LED点阵的第一行所有发光器件的亮暗都是由74HC595中的锁存信号决定;另外,在LED点阵显示屏显示第一行的显示数据的同时,将第二行的显示信号输入到74HC595中,然后将其锁存,同时由行驱动电路控制将第一行置低电平关闭并将第二行置高电平导通,使LED点阵显示屏的第二行相应的发光器件点亮,以此类推,当第十六行扫描过之后后回到第一行,在足够快的扫描速度下,肉眼看去就可形成完整的文字或者图形。
3.5点阵显示电路模块
1个16*16LED点阵是通过4个8*8点阵组合而成的,每个8*8点阵显示屏都有8个控制行的管脚和8个控制列的管脚。
由图3-9可见,8*8点阵显示屏的第9、14、8、12、1、7、2、5脚为高电平有效,第13、3、4、10、6、11、15、16脚为低电平有效,例如第9脚输入高电平,第13脚输入低电平,则第一行第一列的LED发光二极管点亮。
因此,我们要得到想要的图形或者文字就点亮相应的发光二极管,选择相应的管脚输入相应的信号。
8*8点阵显示屏管脚图如图3-9所示。
图3-98*8点阵显示屏管脚图
16*16点阵的构成:
16*16点阵是由4块8*8点阵构成的,行控制口和列控制口连接如图3-10所示。
级联方法:
如图3-10四个点阵。
把00,01相同的行线相连接。
把10,11相同的行线相连接。
把00,10相同的列线相连接。
把01,11相同的列线相连接。
最后,00,01的列就作为16*16点阵的列控线。
00,10的行就作为16*16点阵的行控线。
同理:
4个16*16的点阵通过同样的方法连接,把同一行的所有行控制口连相连,把同一列的所有列控制口相连!
4块8*8点阵行控线列控线连接图如图3-10所示。
图3-104块8*8点阵行控线列控线连接图
行驱动电路连入4个16*16点阵显示屏时,如果一行64个发光二极管需要全部点亮,则通过74LS154的电流将达640mA,但是,74LS154译码器无法提供那么高的的吸收电流来同时驱动64个LED发光二极管同时点亮,因此,应在74LS154每一路输出端与16x64点阵显示器对应的每一行之间用一个三极管来将电流信号放大,本设计选用的是三极管S9012。
这样,74LS154某一输出脚为低电平时,就会驱动三极管的基极B使三极管的发射极E与集电极C导通,在发射极E端提供一个高电平,高电平就会传输到点阵显示屏行端,驱动点阵显示屏,解决了驱动64个LED发光二极管同时点亮时电流不足的问题。
电路图如图3-11所示。
图3-11行驱动电路驱动16*64点阵显示屏电路图
列驱动器连接16*64点阵显示屏时,每一列都需要连接一个列信号输出口,这样在行驱动器依次给出高电平选通行的时候每一列才能给出不同的信号进行点亮发光二极管。
8个74HC595前一个的第9脚连接到下一个的第14脚,用于信号传输。
电路图如图3-12所示。
图3-12列驱动电路驱动16*64点阵显示屏电路图
4系统软件设计
本设计要求显示屏软件的主要功能是向点阵显示屏提供显示的数据,并发送各种控制信号,让点阵显示屏按照设计的要求进行显示。
根据本设计课题要求,把系统软件设计部分分成主程序模块、延时程序模块、