基于AT89S52单片机LED电子显示屏设计概要Word格式.docx
《基于AT89S52单片机LED电子显示屏设计概要Word格式.docx》由会员分享,可在线阅读,更多相关《基于AT89S52单片机LED电子显示屏设计概要Word格式.docx(37页珍藏版)》请在冰豆网上搜索。
串并转换器;
驱动电路
Abstract
ThepaperintroducesamicroprocessorSTC89C52astheLEDdotmatrixdisplayscreendesignidea.Inordertomakethewordsmoreclearlyshownonthedisplay,thedesignadoptsthetheoryoffour8*8dotmatrixmoduletoforma16*16LEDdotmatrixdisplayscreen,canbeusedtoimplementtheChinesecharactersanddigitaldisplayanddynamicdisplayeffect.STC89C52singlechipmicrocomputerasthecorecontroldevice,stringandconverterandlatchasdecodingcircuitofthedevice,thetransistorandrelayasdrivingcircuitdevices,levelthroughevenawaytoexpandthesizeofthedisplayscreentodisplaythecontentoftheincrease.STC89C52singlechipcontrolcommandanddisplaycode,willdisplaythecontentsoftheserialoutputandcontrolthroughtheI/Oportdecodingcircuitcompletionstringandconvertparalleloutput,finallythroughthedisplaydrivecircuitmoduledriveLEDdotmatrixdisplayscreenscandisplay.IngeneralthedesignselectionSTC89C52devicesasthemicroprocessor,the74HC595areneededand74hc154decodingcircuit,atransistor9012rowsandcolumns.
Keywords:
STC89C52;
LEDlatticedisplay;
Stringandconverter;
Drivercircuit.
第1章绪论
1.1课题的研究背景
在现如今科技飞速发展的时代,信息传播速度极快。
LED点阵显示屏已然占据了有利市场,因为LED显示屏具备工作电压低、亮度高且均匀、体积小、功率低、稳定性强[1]。
正因为其广阔的发展前景,所以研究它更有显示意义,世界各国都大力研发。
正向着更加强大的功能靠近,以便占据市场。
由于材料技术和工艺技术的提高,LED显示屏的材料正朝着从金属材质向有机物材质的方向发展,OLED显示屏势必会取代LED显示屏,虽然OLED制作价格昂贵,但是不用多久就能解决这一问题,走进万千百姓家。
目前LED显示屏常用于商场宣传广告,广场大屏幕显示,港口、车站、地铁站旅客引导指示动态信息,指挥中心显示信息[2]。
1.1.1LED电子显示屏概述
LED(发光二极管)电子显示屏幕面板是数以百计的,甚至成千上万的像素构成的半导体发光二极管(LED),根据均匀排列的矩阵方法。
使用不同的半导体材料可以产生不同颜色的LED像素[3]。
LED显示屏分类多样化。
有单色、双色、三色显示屏;
按不同的像素密度和像素直径划分的显示屏;
户外显示屏一半都比室内的像素密度和直径更高;
还有分为LED数码显示屏、LED点阵图文显示屏、LED视频显示屏;
常规性LED显示屏和租赁型LED显示屏;
广告媒体类显示屏和工业指示类显示屏。
LED数码显示屏七段数码管的显示设备,适合时钟屏幕,让图形显示是由许多均匀排列的LED点阵显示模块,可以用来显示文字和图像。
LED显示屏的发展很好,是向更高的亮度和适应气候性强,更多的光密度,发光均匀,可靠稳定,三色的方向发展和进步。
选题意义:
这个话题可以使我们理解和掌握的基本显示LED显示屏产业的原理和设计方法有一个初步的认识和理解。
并且能够学习一些理论在大学必须实践,学会做一个进一步的理解和对理论知识的理解。
并通过设计任务进一步掌握51单片机的使用硬件和软件开发工具。
1.1.2LED电子显示屏的分类
按使用环境分为户内、户外、和半户外。
户内屏的面积一平半在1米到10几平米之间,屏幕亮度适中、重量较小,密度高,适合近距离观看。
户外屏面积在几十平米深圳大到几百平米,发光亮度高,密度较低,具有非常高的抗雷击能力。
按颜色可分为单色、双颜色,三种颜色,黑白是指发光材料只显示一种颜色,双色LED显示屏是由红色和绿色LED全彩LED显示屏是由红色、绿色和蓝色发光二极管。
按照像素密度或者像素直径划分为各种型号大小的显示屏。
按照控制方式分为同步和异步显示屏。
按性能分为视频显示,文本显示,图文显示,行情显示。
按照显示器件分LED数码显示管,LED点阵显示屏,LED视屏显示屏。
按照发展的方向可以分为广告传媒和工业指示类[4]。
1.1.4设计任务
本设计的任务要求是完成一个16*16的点阵设计,并能滚动显示“2016届电子毕业设计”内容。
任务要求:
(1)能同时流动显示汉字,
(2)能实现显示汉字无闪烁,
(3)能实屏幕亮度较高,
(4)显示文字稳定、清晰无串扰。
1.2MCS-51系统单片机简介
应用:
(1)在智能仪器表面上的应用,
(2)在工业控制中的应用,
(3)在家电电器中的应用,
(4)在计算机网络和通信领域中的应用,
(5)在医用设备领域中的应用,
(6)在各种大型电器中的模块化应用,
(7)在汽车设备领域中的应用[5]。
1.3论文主要内容
根据本论文设计的的要求特点,我将对论文的内容和结构将做如下安排:
(1)初步方案的论证和选择
查找该论题的相关资料,并参考眼下通用的设计思路和设计方法选取几套设计方案然后进行比较分析。
最终选取了以单片机为核心微处理器,再加上译码电路和驱动电路的设计方案来完成设计。
(2)方案实现
实现要求功能时要根据器件特性来进行选择和论证。
经过对比选择选定以STC89C52单片机控制整个电路,7HC595控制行,74HC154和三极管9012控制列。
(3)软件编写
根据硬件特点和设计要求,选用C语言编写软件程序。
程序按功能分为多个模块,模块之间相对独立。
然后按照所划分的模块逐个编写和调试,最后将独立的模块整合起来。
(4)结论
硬件测试和软件测试都要进行,确保无任何错误后再进行焊接电路板的工作。
进行总结在设计做完之后对设计中遇到的问题、经验和想法,遇到问题时要查找书籍,力争做到最好。
第2章总体设计
2.1系统概述
一个完整有效的系统必须要全面考虑到多种问题和功能的实现,点阵的设计也应该如此,下面我详细说明地我的设计过程。
2.1.1显示单元的选择
首先要在显示上显示一个简体的汉字,为将采用16*16点阵来描述显示。
为了能够在距离较远的地方看的更清晰,本设计选区来4个8*8的点阵,像素直径为5mm的红色LED模块拼成16*16点阵的LED点阵阵列模块。
这样使每个16*16点阵的汉字能够得得12*12的显示尺寸,因此在距离较远的地方仍然能看得清晰。
本论文设计要求整个屏幕能显示“2016届电子毕业设计”一串数字和汉字,则应该需要使用16*16红色点阵来回循环滚动显示。
2.1.2滚屏方式选择
字符串的位置在屏幕上实现不断地移动,即为“滚屏”可以设置不同的滚动方向,本轮文设计以从右到左的方向为例。
要实现该功能,可以用硬件来进行操作,但是增加了额外的硬件成本以及设计的难度。
所以本论文设计选取软件的方法来实现从右向左滚屏显示的常见的滚屏方式。
之所以选择软件来完成滚屏显示,其最大的优点就是成本低廉,而且可维护、可扩展性强。
2.1.3单片机控制器的考虑
因为本文设计为使用软件实现滚动显示,和传输方式是连续的。
所以微处理器的处理速度单位需求较高,ARM7和高速8位微控制器的选择。
ARM的处理速度非常快,但应用程序的屏幕,里面的ARM严重浪费资源,成本很高。
所以选择高速8位单片机作为处理器。
AVR系列单片机,51系列单片机,STC单片机等这几个单片机处理速度可以达到1MIPS/MHz(在时钟频率是1MHz的处理能力是每秒100万条指令),但AVR系列单片机的时钟频率的限制16兆赫,只可以使用AT89C51单片机或STC89C52单片机系列,最大40MHz时钟,并拥有丰富的接口和内存资源,价格相对便宜,大大降低了产品的成本。
2.1.4关于点阵数据的存储方式
目前使用最广的技术之一是通过单片机软件将转换为相应的字符串显示位图字体数据,然后将这些字体数据后按照一定的顺序存储在E2PROM芯片[6]。
因为设计需要显示内容,所以直接存储在STC89C52就够了,所以没有使用外部设备。
第3章硬件电路设计
3.1整体设计框图
通过对该论文设计的分析,为了能够很好的实现论文要求,利用单片机STC89C52作为该系统的主控模块。
数据通过单片机模块处理后传输给LED电子显示屏模块,并且实现滚动显示。
整体设计框图如图1所示:
图1硬件整体设计
3.2主控电路
该方案通过STC89C52微处理器来控制完成LED电子点阵显示屏的字符串的滚动显示。
3.2.1STC89C52单片机简介
STC89C52抗干扰,加密性强,可任意编程,运行速度快,功耗低的CMOS8位单片机。
具有8kb系统可编程的Flash存储器和512b的随机数据存储器(RAM),32位I/O口线[7]。
器件选用MCS-51作为内核,与MCS-51指令集合输出管脚相兼容,其中片内具用8位中央处理器和Flash存储单元,STC89C52单片机适用于很多比较复杂的控制场所,其功能非常强大。
1)STC89C52外部结构及特性
其外部封装有两种形式:
双列直插式40脚封装(DIP)和方形44脚封装(PLCC),直插式40脚封装(DIP)和外部总线结构如图2和图3所示:
图2STC89C52引脚排列图3外部总线
STC89C52的功能及引脚说明:
Vcc:
电源电压
GND:
地
P0口:
P0口是8位双向I/O端口。
地址/数据总线复用。
当用作输出,每个吸收电流驱动TTL逻辑电平。
P0口读“1”时高阻状态。
[8]
P1:
P1口是一个内部上拉电阻8位双向I/O端口,P1输出缓冲区可以驱动四个TTL逻辑门[9。
P2:
P2口是一个内部上拉电阻与8位双向I/O端口,P2可以驱动4TTL逻辑电路输出缓冲阶段。
P2端口写“1”,内部上拉电阻置于高电平,可用于输入端口。
作为输入,因为内部上拉电阻,确定由外部信号输入电流。
P3:
P3口与内部上拉电阻8位双向I/O端口,P2可以驱动4TTL逻辑电路输出缓冲阶段。
P3写“1”,内部上拉电阻置于高电平,这个时候可以作为一个输入端口。
使用左边的输入使用时,由于内部阻力,确定由外部信号输入电流。
P3口也被用作一个特定的使用,如下所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外部中断0输入口)
P3.3INT1(外部中断1输入口)
P3.4TO(定时器0外部输入)
P3.5TI(定时器1外部输入)
P3.6WR(外部数据存储器写选通信号)
P3.7(外部数据存储器读选通信号)
2)功耗特性
(1)掉电模式:
典型功耗<
0.1uA,通过外部中断来唤醒,中断返回后,继续执行原来的程序
(2)空闲模式:
典型功耗2mA
(3)正常工作模式:
典型功耗4mA-7mA
(4)掉电模式可由外部中断唤醒,适用于水表,气表等电池供电系统及便携设备
(3)STC单片机的命名规则:
STC89xxxxxx—40x-xxxx
(4)STC89C52的内部组成
STC89C52单片机内包含的具体部分如下:
一个8位CPU。
一个片内振荡器及时钟电路。
8KBFlash程序存储器。
256BRAM数据存储器。
三个16位定时器/计数器。
64KB的外部程序存储器空间和外部数据存储器的电路。
32条可编程的I/O线。
一个可编程全双工串口通信。
8个中断源、两个优先级嵌套中断结构。
STC89C52单片机的框图如下图所示,其间的功能部件通过内部总线接在一起。
图4STC89C52单片机框图
3.3LED点阵显示电路
本论文设计采用的是4块8*8单色点阵屏设计构成16*16点阵屏,采用单色显示,进行显示所要显示的字符串,通过74HC154译码器来控制点阵的列方向的显示,而列方向的16条线则由74HC595的八位并行输出端控制[10]。
3.3.174HC154的总体特点和内部结构
(1)总体特点
74HC154是一款高速CMOS器件,是4线-16线译码器,可接受4位高有效二进制地址输入,其DIP封装引脚图如图5所示:
图574HC154引脚图
地址输入对应输出表1:
表174HC154输出表
引脚说明:
1-11,13-17:
输出端;
12:
GND;
18-19:
使能输入端,低电平有效;
20-23:
地址输入端;
24:
VCC电源。
(2)内部结构
①参数列表如表2:
表274HC154参数
74LS154
基本参数
电压
2.0~6.0V
驱动电流
+/-5.2mA
传输延迟
11ns@5V
逻辑电平
CMOS
功耗考量
低功耗或电池供电应用
封装与引脚
SO24,SSOP24,DIP24,TSSOP24
②逻辑图:
74LS154的内部逻辑由与门和非门电路组成。
其逻辑图如图6所示:
图674HC154逻辑图
3.3.274HC595的总体特点和程序说明
(1)总体特点:
74HC95是具有8位移位寄存器,具有相互独立的时钟,三态输出功能[11]。
8位串行输入/输出或者并行输出移位寄存器,具有高阻状态,三态。
其DIP封装引脚图如图7所示:
图774HC595引脚图
各引脚及其功能如表3所示:
表374HC595引脚图
符号
引脚
描述
Q0-Q7
第15脚,第1-7脚
8位并行数据输出
GND
第8脚
Q7’
第9脚
串行数据输出
MR
第10脚
主复位(低电平)
SHCP
第11脚
数据输入时钟线
STCP
第12脚
输出存储器锁存时钟线
OE
第13脚
输出有效(低电平)
DS
第14脚
串行数据输入
VCC
第16脚
电源
(2)程序说明:
每当上升沿到来时,DS引脚当前电平值在移位寄存器中左移一位,在下一个上升沿到来时移位寄存器中的所有位都会向左移一位,同时Q7’也会串行输出移位寄存器中高位的值,这样连续进行8次,就可以把数组中每一个数(8位的数)送到移位寄存器;
然后当STcp上升沿到来时,将会被锁存到锁存器里,并从Q1~7引脚输出[12]。
3.4整体电路图如图
图8整体电路图
图9为单片机系统部分,其中包含晶振电路和复位电路。
图9单片机部分
图10和图11分别是74HC154和74LS595芯片,负责本设计的译码电路部分。
图1074HC154图1174LS595
3.5实物图
图12和图13分别是我制作的16*16点阵实物图的。
图1216*16正面点阵图图1316*16背面点阵图
图14和图15分别是焊接电路版实物进行检测时的图片。
图14实物图图15实物图
测试方法:
本设计采用的是直接接入电源的方法进行测试。
当电源端口接入5V电源后,按下电路板上的开关键,就会直接显示“2016届电子毕业设计”字样,并且从左往右进行滚动显示,因为本设计中没有加入暂停程序,所以一经开启电源,无法暂停屏幕显示的字符,只能直接关闭,再开启电源时,又重新从左往右显示字符。
第4章软件实现
4.1概述
整个设计的功能是由硬件电路配合软件来实现的,当硬件已经基本定型后,软件的功能也就基本定下来了。
包括主程序和子程序。
子程序是用来实现各种实质性的功能。
每一个执行软件也即是一个小的功能模块。
将多个模块独立实现构成一个整体模块。
根据实质性功能的要求,合理地调用主程序和各子程序执行模块[13]。
4.2系统程序方案设计
系统程序主要包括了:
主程序、点阵显示驱动程序。
主程序:
主要控制整个显示部分的初始化,使系统在LED显示屏上显示出各点亮度均匀、充足,可以显示稳定、无显影的数字和文字,文字显示可以移入移出。
本设计的显示内容为“2016届电子毕业设计”实现从左向右移动显示。
下面是主程序部分:
程序中首先对各个变量进行初始化,并对74HC595进行初始化,当初始化过程结束后,开始显示处理。
//主函数
voidmain()
{
uchari=1,j=0;
ucharX=0;
//595c初始化
Init595();
//循环演示
//字符的处理
while
(1)
{
for(j=0;
j<
10;
j++)//循环显示10次
{
//送入16个位数据
for(i=1;
i<
17;
i++)
{
WriteS(0xff,0xff);
//消影
Wei_154(i);
WriteS(HanZi[i*2-2+2*X],HanZi[i*2-1+2*X]);
//显示内容
delay(7);
//显示
G2=0;
//关闭
}
}
X++;
if(X==17*16)
X=0;
}
}
在主函数中完成函数的调用和字符串的移动处理,所以能够看见可以移动字体显示。
点阵显示驱动程序:
主要实现对74HC595和74HC154的驱动编写,已实现画面的动态刷新。
//74HC595初始化
voidInit595()
SI=1;
SCK=0;
RCK=0;
//向595中写一个字节
voidWrite_byte595(uchartemp)
uchari,data_=temp;
G2=1;
for(i=0;
8;
i++)//传值8位
if(data_&
0x01==0x01)//低位为1
SI=1;
else//低位为0
SI=0;
//产生一个上升沿
SCK=0;
SCK=1;
data_>
>
=1;
//显示数据
RCK=1;
//595写入一行的字节
voidWriteS(uchardata1,uchardata2)
Write_byte595(data2);
Write_byte595(data1);
4.2.1主程序设计
通过主程序对74hc595的初始化和对子程序的调用来实现单片屏幕的动态刷新完成到点阵显示屏的动态显示。
4.2.2子程序设计
把每个功能程序以子程序的形式编写好,当写主程序的时候,只需要调用子程序,然后在寄存器的分配上作一下调整,消除寄存器冲突和I/O冲突就可以。
程序应该尽可能多使用调用指令替代跳转指令。
因为跳转指令容易使程序难以看懂各程序段之间的结构关系。
[14]而调用指令则不同,调用指令能够使程序结构清晰,在修改或者是维护时都比较方便。
将功能程序写成子程序的形式,除了方便调用之外,还有一个好处就是以后写程序的时候如果要用到,就可以直接调用这个单元功能模块。
4.2.3汉字显示:
在取模软件中编写一个要输入端汉字,如编写一个“电”字,如下所示:
00000000000000000x000x00
00000001000000000x000x80
00000001000000000x000x80
00011111111100000x0f0xf8
00010001000100000x080x88
00011111111100000x0f0xf8