16x16的点阵LED图文显示屏设计报告文档格式.docx
《16x16的点阵LED图文显示屏设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《16x16的点阵LED图文显示屏设计报告文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。
显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。
当列数很多时,并列传输的方案是不可取的。
采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。
这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一列数据。
为了达到重叠处理的目的,列数据的显示就需要具有所存功能。
经过上述分析,就可以归纳出列驱动器电路应具有的功能。
对于列数据准备来说,它应能实现串入并处的移位功能;
对于列数据显示来说,应具有并行锁存的功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示
3硬件设计
3.1电源、单片机系统及其管脚
◆电源部分
说明:
此部分为为电源部分。
若电源为家用电源,则需经过降压,整流滤波,稳压等步骤得到一个稳定的5V电压,此电压可作为主电路的电压源。
电路中二极管为电源指示灯。
◆单片机系统及其管脚
常用的时钟电路设计有两种方式,一种是内部时钟方式,一种是外部时钟方式。
本实验采用内部时钟方式,将XTAL1与XTAL2之间跨接一个石英晶振和微调电容,从而构成一个稳定的自激震荡器。
电容值取30pF左右,其大小将影响震荡频率的高低、振荡器的稳定性和起振的快速性。
为减少线间的寄生电容,晶振和电容应尽能安装得与单片机靠近,保证晶振稳定可靠的工作。
另一部分是复位部分。
上电自动复位电路是最简单的复位电路,只需要一个1K左右电阻、一个22pF左右的电容及12MHZ的晶振。
有时还需要按键手动复位,此时只要在电容上并联一个按键即可。
单片机信号输出采用串行输出,因此在下一模块的移位寄存器要与该部分的串行口P3.0(RXD)及P3.1(TXD)相连
其图形如下图
图二单片机管脚图
3.2点阵及其驱动部分
点阵显示用是动的态扫描来实现的。
在采用扫描方式显示时,由于每行要带动十六个二极管,每行电流较大。
若每个二极管安5mA计算,十六个二极管就得80mA电流,超出单片机管脚的承受范围,因此每行都加有一个驱动器,本设计的行驱动用的是十六个pnp型三极管。
三极管的发射极接5V电压,集电极接点阵的行线,而其基级本应接单片机,但该接线方式占用为了16个单片机管脚,为了节省单片机管脚,用了一片74LS154译码器,这样就只需要3个管脚了。
74LS154的管脚图及其说明如图三。
点阵及其驱动部分总体接线图如图五(未画完整)
各行的同名列共用一个列驱动,数据通常存储在单片机的存储器中,按8位一个字节的形式存放。
由于列线过多,故多采用串行传输。
由于每次要传输16位,而且数据要逐位输给驱动器,只有当一行中各列数据都已传输到位后,这一行的各列才能进行并行显示,耗时较长。
为了满足以上要求,驱动选择74LS595移位寄存器。
74HC595是硅结构的CMOS器件,。
74HC595是有8位移位寄存器和一个存储器,三态输出功能。
移位寄存器和存储器是分别的时钟。
数据在SCHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去。
如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。
移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。
其特点:
8位串行输入/8位串行或并行输出存储状态寄存器,三种状态;
输出寄存器可以直接清除100MHz的移位频率。
输出能力:
并行输出,总线驱动;
串行输出;
标准中等规模集成电路。
74LS595的管脚图及其说明如图四。
对3个输入信号进行译码。
得到8个输出状态。
G1,G2A,G2B,为数据允许输出端,G2A,G2B低电平有效。
G1高电平有效。
A,B,C为译码信号输出端,Y0~Y7为译码输出端,低电平有效
图三74LS154管脚图
管脚及其说明:
QA--QH:
八位并行输出端。
QH'
:
级联输出端。
SI:
串行数据输入端。
74595的控制端说明:
/SCLR(10脚):
低点平时将移位寄存器的数据清零。
SCK(11脚):
上升沿时数据寄存器的数据移位。
QA-->
QB-->
QC-->
...-->
QH;
下降沿移位寄存器数据不变。
(脉冲宽度:
5V时,大于几十纳秒就行了)
RCK(12脚):
上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。
(5V时,大于几十纳秒就行了),更新显示数据。
/G(13脚):
高电平时禁止输出(高阻态)。
如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。
比通过数据端移位控制要省时省力。
图四:
74LS595管脚图
图五点阵及其驱动
4软件设计
本软件要求实现如下要求:
汉字要稳定、明亮并且文字要以一定速度上升滚动显示。
显示屏软件模块:
初始化程序、主程序、多字滚动、显示程序、扫描程序。
显示程序的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。
软件设计中,显示屏的软件系统分为两层;
第一层是底层的显示驱动程序,第二层是上层的系统应用程序。
显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。
显示驱动器程序由定时器T0中断程序实现。
系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。
4.1显示驱动程序
显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下:
刷频率(帧频)=1/16×
T0溢=1/16×
f/12(65536-t)
其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。
然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。
为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。
图六为显示驱动程序(显示屏扫描函数)流程图
图六
4.2系统主程序
本设计的系统软件能使系统LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;
然后以“卷帘出”效果显示图形,停留约几秒;
接着向上滚动显示“--------”这几个汉字及一个图形,然后以“卷帘入”效果隐去图形。
由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。
单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。
如果想改变些事内容,先用字模产生字代码,将用这段代码覆盖原来的代码,即可显示你想要的内容。
图七是系统主程序流程图。
5系统调试
◆调试主要分为硬件调试和软件调试:
硬件调试:
在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。
在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。
当然,在设计的过程中也存在着失误和不足,在调试中进行修改了。
焊接完成后,检验点阵、及线路的好坏:
烧进检验程序,点阵将自第一排向下(上)点亮。
检验无异常,下载主程序
◆软件调试:
软件为老师所提供提供,其原理在上一模块以作说明,在这里
再作说明,软件经调试无误,直接将其下再到单片机中,看是否达到所要的效果
软件部分是先参考书上的例子,然后自己根据硬件电路写程序,
由于以前所学是单片机汇编语言,所以这个系统在编写程序过程中都采用汇编语言编写。
刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。
但是,在实际写如S51中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行
6设计总结
本文设计的6x16的点阵LED图文显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示的图形和文字较稳定、清晰。
图形或文字向上滚动显示。
本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。
在此次设计中,我们得到以下体会:
一、在这次点阵设计的过程让我进一步熟悉KEIL及Proteus的使用。
二、本次设计结果仍有缺陷,有一行总是全亮,干扰显示。
三、通过这次点阵设计,重新复习并进一步学习了MCS-52优点,明确了研究目标。
四、本文设计的LED显示屏能够实现在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字以移入移出方式显示。
五、在后的设计中,既要想到电路器件的联合使用,又要灵活变通,举一反三。
在焊接方面,我们了解到焊接某些器件时,要先消去电烙铁上的静电,防止静电对芯片特别是放大器件造成伤害,焊接二极管、三极管等芯片时要快,防止持续高温损坏芯片。
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
ORG0023H
ORG002BH
***********;
初始化程序;
主程序;
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
LACLLMOVDISP;
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
1ms初值重装
JBC00H,GOEND;
16行扫描标志为1,结束
INCR1;
取行右边字节偏址
MOVA,R1
MOVCA,@A+DPTR;
查表
MOVSBUF,A;
串口0方式发送
WAIT:
JBCTI,GO;
等待发送完毕
AJMPWAIT1
GO:
DECR1;
取行左边字节偏址
MOVCA,@A+DPTR
MOVSBUF,A
WAIT1:
JBCT1,GO1
GO1:
SETBP1.7;
关行显示,准备刷新
NOP;
串口寄存器数据稳定
SETBP1.6;
产生上升沿,行数据打入输出端
NOP
恢复低电平
MOVA,R2;
修改显示行地址
ORLA,#0F0H;
MOVR2,A;
MOVA,P1;
ORLA,#0FH;
ANLA,R2;
MOVP1,A;
修改完成
CLRP1.7;
开行显示
INCR2;
下一行扫描地址值
INCR1
下一行数据地址
MOVA,R2
ANLA,#0FH
JNZGO2
SETB00H;
R2为01H,现为末行扫描,置标志
GO2:
POPACC
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;
我
0F1H,0D7H,0C7H,0CFH,037H,0DFH,0F7H,0AFH,0F6H,06DH,0F7H,0F5H,0D7H,0F9H,0EFH,0FDH;
0FFH,007H,0C0H,06FH,0EDH,0EFH,0F6H,0DFH,0C0H,001H,0DDH,0FDH,0BDH,0FFH,0C0H,003H;
爱
0FBH,0FFH,0F8H,00FH,0F3H,0DFH,0F4H,0BFH,0EFH,03FH,09CH,0CFH,073H,0F1H,0CFH,0FBH;
0F7H,0DFH,0F9H,0CFH,0FBH,0BFH,0C0H,007H,0DEH,0F7H,0C0H,007H,0DEH,0F7H,0DEH,0F7H;
单
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;
片
0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0DFH,0EFH,0DFH,0EFH,0BFH,0EFH,07FH,0FFH
0EFH,0FFH,0EFH,007H,0EFH,077H,001H,077H,0EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H;
机
0ABH,077H,0AFH,077H,06EH,0F7H,0EEH,0F5H,0EDH,0F5H,0EDH,0F5H,0EBH,0F9H,0EFH,0FFH;
0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;
END
8.附录B;
作品实物图片
实物图如下图
下图为总体电路图
8.参考文献
[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.