1616点阵LED电子显示屏的设计说明.docx
《1616点阵LED电子显示屏的设计说明.docx》由会员分享,可在线阅读,更多相关《1616点阵LED电子显示屏的设计说明.docx(21页珍藏版)》请在冰豆网上搜索。
1616点阵LED电子显示屏的设计说明
机器人创新设计
课程设计报告书
题目:
16×16点阵LED电子显示屏的设计
:
津
学号:
1613010320
专业:
国际经济与贸易
指导老师:
于大泳
设计时间:
2017年3月
管理学院
1.引言...............................................3
1.1设计意义................................................3
1.2系统功能要求............................................3
2.方案设计...........................................4
3.硬件设计...........................................5
4.软件设计...........................................8
5.系统调试...........................................9
6.设计总结..........................................11
7.附录A.:
源程序...................................11
8.附录B.:
作品实物照片.............................16
9.参考文献..........................................17
16×16点阵LED电子显示屏的设计
1.引言
1.1设计意义
目前广告牌具有显示容丰富、信息量大、信息更换速度快等特点。
因此传统的LED显示屏控制系统已经越来越不能满足现代广告宣传业的需要。
而利用PC机通信技术控制LED显示屏,则具有显示容丰富,信息更换灵活等优点。
1.2系统功能要求
本设计是一16×16点阵LED电子显示屏的设计。
整机以40脚单片机AT89C51为核心,通过该芯片控制列驱动器74HC595来驱动显示屏显示。
该电子显示屏可以显示各种文字或单色图像,全屏能显示1个汉字。
显示可以采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。
开关控制显示“矿大电气五班”、“电子综合设计”的字幕。
同时还要实现的功能:
5V的电压输入,时钟电路的设置,复位电路的设置,单片机给74HC154芯片同时给E1和E2低电平,74LS154才能正常的工作。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
应用时限流电阻可以放在X轴或Y,16*16LED点阵如图1.2.1所示。
图1.2.1
2.方案设计
16X16点阵LED工作原理说明:
16X16点阵共需要256个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:
一根竖柱:
对应的列置1,而行则采用扫描的方法来实现。
一根横柱:
对应的行置0,而列则采用扫描的方法来实现。
需要实现的功能如下图流程图图2.2所示
图2.2
本电路使用AT89C51实现行驱动,对显示模块从上至下的扫描,用74HC154和三极管实现列驱动,对显示模块从左至右的扫描,然后显示字符。
在中规模集成电路中译码器有几种型号,使用最广的通常是74HC154译码器,74HC154是一款高速CMOS器件,74HC154引脚兼容低功耗肖特基TTL(LSTTL)系列。
2.硬件设计
3.1单片机系统及外围电路
3.1.1单片机的选择
本设计选用了AT89C51单片机作控制3.1.2AT89C51芯片介绍
概述:
AT89C51为40脚双列直插封装的8位通用微处理器,采用工业标准的C51核,在部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
主要管脚有:
XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。
RST(9脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。
P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
AT89C51的引脚图如下图3.1所示:
图3.1
3.1.3单片机系统外围电路
单片机外围电路一般有两块:
时钟电路(如图3.1.3)和复位电路(3.1.4)
时钟电路由一个晶振和两个小电容组成,用来产生时钟频率。
复位电路由一个电阻、按键和一个电容组成,用来产生复位信号,使单片机上电的时候复位。
图3.1.3
AT89C52单片机芯片部有一个反向放大器构成的振荡器,XTAL1和XTAL2分别为振荡器电路的输入端和输出端,时钟可由部和外部生成,在XTAL1和XTAL2引脚上外接定时元件,部振荡电路就会产生自激振荡。
系统采用的定时元件为石英晶体和电容组成的并联谐振回路。
晶振频率选择12MHz,C1、成的电容值取22PF,电容的大小频率起微调的作用
图3.1.4
单片机有多种复位电路,本系统采用电平式开关复位与上电复位方式,当上电时,C1相当于短路,使单片机复位,在正常工作时,按下复位时单片机复位。
在有时碰到干扰时会造成错误复位,但是大多数条件下,不会出现单片机错误复位,而可能会引起部某些寄存器错误复位,在复位端加一个去耦电容,则会得
到很好的效果。
3.2驱动电路
3.2.174HC154芯片简介
74HC154译码器可接受4位高有效二进制地址输入,并提供16个互斥的低有效输出。
74HC154的两个输入使能门电路可用于译码器选通,以消除输出端上的通常译码“假信号”,也可用于译码器扩展。
该使能门电路包含两个“逻辑与”输入,必须置为低以便使能输出端。
任选一个使能输入端作为数据输入,74HC154可充当一个1-16的多路分配器。
当其余的使能输入端置低时,地址输出将会跟随应用的状态。
3.2.2驱动电路的构成
本设计的驱动电路由三极管的集电极输出给点阵显示屏,使其足够亮。
其驱动电压为5V。
行驱动由P0口列驱动电路如图3.3.2所示:
图3.2.2
3.316*16LED显示屏电路和原理
16*16LED显示屏电路在proteus仿真中由四个8*8LED点阵组成的,其中二极管的正极控制器也就是AT89C51,负极接译码器也就是74HC154。
显示屏可以显示字符、汉字、动画等任何图形。
该电路充分利用了单片机的I/O口资源.使整机硬件达到最简。
16*16点阵的原理:
点阵LED扫描法介绍点阵LED一般采用扫描式显示,实际运用分为三种方式:
(1)点扫描;
(2)行扫描;(3)列扫描。
若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms即可。
电路如图3.3所示:
图3.3
3.4电源电路
本设计采用电源线直接从家用电路中接入电源,经变压为5V,为电路供电。
3.软件设计
本软件要现如下要求:
汉字要稳定、明亮并且文字要以一定速度上升滚动显示。
显示屏软件模块:
初始化程序、主程序、多字滚动、显示程序、扫描程序。
显示程序的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。
软件设计中,显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。
显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。
显示驱动器程序由定时器T0中断程序实现。
系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。
4.1显示驱动程序
显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下:
刷频率(帧频)=1/16×T0溢=1/16×f/12(65536-t)
其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。
然后显示驱动程序查询当前燃亮的行号,从显示缓存区读取下一行的显示数据,并通过串口发送给移位寄存器。
为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。
图六为显示驱动程序(显示屏扫描函数)流程图
图4.1.1
4.2系统主程序
本设计的系统软件能使系统LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示图形,停留约几秒;接着向上滚动显示“--------”这几个汉字及一个图形,然后以“卷帘入”效果隐去图形。
由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。
单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示容。
如果想改变些事容,先用字模产生字代码,将用这段代码覆盖原来的代码,即可显示你想要的容。
图4.2.1是系统主程序流程图。
5.系统调试
◆调试主要分为硬件调试和软件调试:
硬件调试:
在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。
在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。
当然,在设计的过程中也存在着失误和不足,在调试中进行修改了。
焊接完成后,检验点阵、及线路的好坏:
烧进检验程序,点阵将自第一排向下(上)点亮。
检验无异常,下载主程序
◆软件调试:
软件为老师所提供提供,其原理在上一模块以作说明,在这里
再作说明,软件经调试无误,直接将其下再到单片机中,看是否达到所要的效果
软件部分是先参考书上的例子,然后自己根据硬件电路写程序,
由于以前所学是单片机汇编语言,所以这个系统在编写程序过程中都采用汇编语言编写。
刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。
但是,在实际写如S51中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行
6.设计总结
本文设计的点阵LED图文显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示的图形和文字较稳定、清晰。
在本次设计过程中,我们得到以下体会:
通过两个星期和大家的一起的努力,我收获了很多,本设计是用四个8x8的点阵显示模块组成的16x16的点阵LED图文显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。
总结本文的研究工作,主要做了下面几点工作:
一、通过查阅大量的相关资料,详细了解了LED的发光原理和LED显示屏的原理,了解了LED的现状,清楚地了解了LED显示屏与其它显示屏相比较有那些优点,明确了研究目标。
并且通过对单片机资料的查阅和应用,更进一步增加了对单片机知识的理解和运用能力。
并证实了自己的思路:
“查资料→思考总结→运用→找出差错,再查资料和向别人询问→再次运用”的正确性。
二,本文设计的LED显示屏能够实现在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
三,本文列出了系统具体的硬件设计方案,硬件结构电路图,软件流程图和具体C语言程序设计与调试等方面。
四,通过这次课程设计,重新复习并进一步增强了动手的能力,学以致用,把只是运用到实际生活中才是根本目的
总体来说这次的课程设计不算成功,没达到预想的目的:
但学到了知识,提高了能力,完成了任务。
有点缺憾是时间有限,实物没能做成功,不能进一步深入和扩散学习和研究。
希望有时间可以对程序和电路图作更进一步的改进.
7.附录A:
源程序
***************************************
;**
;*单个16x16的点阵电子屏字符显示器*
;*ATA89C5212MHz晶振*
;*2004.2.11LRM*
;***************************************
;显示字用查表法,不占用存,字符用16x16共阳LED点阵,
;效果:
向上滚动显示5个字,再重复循环。
;R1:
查表偏址寄存器,B:
查表首址,R2:
扫描地址(从00~0FH)。
;R3:
滚动显示时控制移动速度,单字显示可控制静止显示的时间。
;*************;
;中断入口程序;
;*************;
;
ORG0000H
LJMPSTART
ORG0003H
RETI
ORG000BH
LJMPINTTO
ORG0013H
ERTI
ORG001BH
ERTI
ORG0023H
RETI
ORG002BH
RETI
;
;***********;
;初始化程序;
;***********;
;
;
;***********;
;主程序;
;***********;
;
START:
MOV20H,#00H;清零标志,00H为第16行开始扫描标志,01为1帧
;扫描结束标志
MOVA,#0FFH;端口初始化
MOVP1,A
MOVP1,A
MOVP3,A
MOVP0,A
CLRP1.6;串行寄存器输入打入输出控制位
MOVTMOD,#01H;使用T0做16位定时器,行扫描用。
MOVTH0,#0FCH;1ms初值(12MHz)
MOVTL0,#18H
MOVSCON,#00H;串口0方式传送显示字节
MOVIE,#82H;T0中断允许,总中断允许
MOVSP,#70H
MAIN:
LCALLDISI;显示准备,黑屏,1.5s
MOVDPTR,#TAB
LCALLMOVDISP;向上滚动显示一页(8个字)
INCDPH
LCALLMOVDISP;向上滚动显示一页(8个字)
INCDPH
LACLLMOVDISP;向上滚动显示一页(8个字)
AJMPMAIN
;
;
;***********************;
;多字滚动显示程序;
;***********************;
;每次8个字,入口时定义好DPTR值
;
MOVDISP:
MOVB,#00H;向上移动显示,查表偏值暂存(从00开始)
DISLOOP:
MOVR3,#07H;移动速度
DISMOV:
MOVR2,00H;第0行开始
MOVR1,B
SETBTR0;开扫描(每次一帧)
WAITMOV:
JBC01H,DISMOV1;标志为1扫描一帧结束(16ms为1帧,每行1ms)
AJMPWAITMOV
DISMOV1:
DJNZR3,DISMOV;1帧重复显示(控制移动速度)
INCB;显示字的下一行(每行2字节)
INCB
MOVA,R1;R1为0,8个字显示完
JZMOVOUT
AJMPDISLOOP
MOVOUT:
RET;移动先是结束
;
;
;****************;
;单字显示程序;
;****************;
;显示表中某个字;
;****************;
DIS1:
MOVR3,#5AH;静止显示时间控制(16ms*#=1.6s)
DIS11:
MOVR2,#00H;一帧扫描初始值(行地址从00~0FH)
MOVDPTR,#TAB;取表首址
MOVR1,#00H;查表偏址(显示第一个字)
SETBTR0;开扫描(每次一帧)
WAIT11:
JBC01H,DIS111;为1,扫描一帧结束
AJMPWAIT11
DIS111:
DJNZR3,DIS11
RET
;
;
;************;
;扫描程序;
;************;
;1ms刷新一次,每行显示1s
INTT0:
PUSHACC
MOVTH0,#0FCH;1ms初值重装
MOVTL0,#18H
JBC00H,GOEND;16行扫描标志为1,结束
INCR1;取行右边字节偏址
MOVA,R1
MOVCA,A+DPTR;查表
MOVSBUF,A;串口0方式发送
WAIT:
JBCTI,GO;等待发送完毕
AJMPWAIT1
GO:
DECR1;取行左边字节偏址
MOVA,R1
MOVCA,A+DPTR
MOVSBUF,A
WAIT1:
JBCT1,GO1
AJMPWAIT1
GO1:
SETBP1.7;关行显示,准备刷新
NOP;串口寄存器数据稳定
SETBP1.6;产生上升沿,行数据打入输出端
NOP
NOP
CLRP1.6;恢复低电平
MOVA,R2;修改显示行地址
ORLA,#0F0H;修改显示行地址
MOVR2,A;修改显示行地址
MOVA,P1;修改显示行地址
ORLA,#0FH;修改显示行地址
ANLA,R2;修改显示行地址
MOVP1,A;修改完成
CLRP1.7;开行显示
INCR2;下一行扫描地址值
INCR1
INCR1;下一行数据地址
MOVA,R2
ANLA,#0FH
JNZGO2
SETB00H;R2为01H,现为末行扫描,置标志
GO2:
POPACC
RETI
GOEND:
CLRTR0;一帧扫描完毕,关扫描
SETB01H;一帧扫描完毕,置结束标志
POPACC
RETI;退出
;
;
;***************;
;扫描文字表;
;***************;
;
TAB:
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,00FFH,0FFH,0FFH;黑屏
DB
0F9H,0BFH,0C7H,0AFH,0F7H,0B7H,0F7H,0B7H,0F7H,0BFH,000H,001H,0F7H,0BFH,0F7H,0B7H;我
DB
0F1H,0D7H,0C7H,0CFH,037H,0DFH,0F7H,0AFH,0F6H,06DH,0F7H,0F5H,0D7H,0F9H,0EFH,0FDH;
DB
0FFH,007H,0C0H,06FH,0EDH,0EFH,0F6H,0DFH,0C0H,001H,0DDH,0FDH,0BDH,0FFH,0C0H,003H;爱
DB
0FBH,0FFH,0F8H,00FH,0F3H,0DFH,0F4H,0BFH,0EFH,03FH,09CH,0CFH,073H,0F1H,0CFH,0FBH;
DB
0F7H,0DFH,0F9H,0CFH,0FBH,0BFH,0C0H,007H,0DEH,0F7H,0C0H,007H,0DEH,0F7H,0DEH,0F7H;单
DB
0C0H,007H,0DEH,0F7H,0FEH,0FFH,000H,001H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH
DB
0FFH,0BFH,0EFH,0BFH,0EFH,0BFH,0EFH,0BBH,0E0H,001H,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH;片
DB
0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0DFH,0EFH,0DFH,0EFH,0BFH,0EFH,07FH,0FFH
DB
0EFH,0FFH,0EFH,007H,0EFH,077H,001H,077H,0EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H;机
DB
0ABH,077H,0AFH,077H,06EH,0F7H,0EEH,0F5H,0EDH,0F5H,0EDH,0F5H,0EBH,0F9H,0EFH,0FFH;
DB
0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;黑屏
DB
0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;
END
8.附录B:
作品实物图片
9.参考文献
[1]欣铭,广斌.LED显示屏技术综述[J].电力,2003,25(4):
294-296.
[2]阳进.基于单片机的LED显示屏的汉字显示[J].中国科技信息,2005,(12):
112.
[3]MarkNelson著.潇湘工作室译.串行通信开发指南[M].中国水利水电,2002.
[4]王宜怀.单片机原理及其嵌入式应用教程[M].希望电子,2002.
[5]润萍,小萍.点阵LED显示屏控制系统[J].微计算机信息,2003,19(10):
50-51.