1664LED广告屏设计课程设计报告.docx
《1664LED广告屏设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《1664LED广告屏设计课程设计报告.docx(31页珍藏版)》请在冰豆网上搜索。
1664LED广告屏设计课程设计报告
吉林工程技术师范学院
信息工程学院
《单片机应用设计》
课程设计报告
题目:
16*64LED广告屏设计
专业:
电子信息
时间:
2013年6月10日——6月28日
摘要
单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。
单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。
在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字,汉字显示屏也广泛应用到汽车报站器,广告屏等。
所以研究LED显示有实用的意义。
LED显示屏分为图文显示屏和视频显示屏,均由LED矩阵块组成。
LED显示屏可以显示变化的数字、文字、图形图像;不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点。
LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。
这些优点概括起来是:
亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。
LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。
现代LED的发展很快,很多研究领域非常已经深刻,所以想利用自己学的单片机知识简单的研究一下用单片机驱动的LED显示汉字,以达到学以致用和实践相结合的目的,同时巩固加深自己的单片机知识。
用点阵方式构成图形或文字,是非常灵活的,可以根据需要任意组合和变化,只要设计好合适的数据文件,就可以得到满意的显示效果。
因而采用点阵式图文显示屏显示经常需要变化的信息,是非常有效的。
点阵大小可以有16×16、24×24、32×32、48×48等不同规格,也有单色、双色、和多色几种,最常用的是单色图文屏。
单色屏多使用红色或橘红色或橙色LED点阵单元。
双色图文屏和多色图文屏,在LED点阵的每一个“点”上布置有两个或多个不同颜色的LED发光器件。
换句话说,对应于每种颜色都有自己的显示矩阵。
显示的时候,各颜色的显示点阵是分开控制的。
事先设计好各种颜色的显示数据,显示时分别送到各自的显示点阵,即可实现预期效果。
每一种颜色的控制方法和单色的完全相同,因此掌握了单色图文显示屏的原理,双色屏和多色屏就不难理解了。
关键词:
LED,单片机,点阵,驱动,矩阵
第一章绪论
在大型商场、车站、码头、地铁站以及各类办事窗口等越来越多的场所需要用LED点阵显示图形和汉字。
LED行业已成为一个快速发展的新兴产业,市场空间巨大,前景广阔。
随着信息产业的高速发展,LED显示作为信息传播的一种重要手段,已广泛应用于室内外需要进行服务内容和服务宗旨宣传的公众场所,例如户内外公共场所广告宣传、机场车站旅客引导信息、公交车辆报站系统、证券与银行信息显示、餐馆报价信息豆示、高速公路可变情报板、体育场馆比赛转播、楼宇灯饰、交通信号灯、景观照明等。
显然,LED显示已成为城市亮化、现代化和信息化社会的一个重要标志。
LED点阵设计主要应用于显示屏,它是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。
由于它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内室外环境适应能力强等优点,自20世纪80年代后期开始,随着LED制造技术的不断完善,在国外得到了广泛的应用。
在我国改革开放之后,特别是进入90年代国民经济高速增长,对公众场合发布信息的需求日益强烈,LED显示屏的出现正好适应了这一市场形势,因而在LED显示屏的设计制造技术与应用水平上都得到了迅速的提高。
LED显示屏经历了从单色、双色图文显示屏,到图像显示屏的发展过程。
第二章设计方案的论证
LED显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。
图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。
LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。
它的优点:
亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定。
2.1系统功能要求
设计一个能显示16X64点阵图文LED显示屏,要求能显示图文或文字,显示图文或文字应稳定、清晰,图文或文字显示,以卷帘形式向上滚动显示。
2.2方案设计
2.2.1总体设计
图2-1点阵的总体框图
2.2.2设计论证
图文显示一般有静态和动态显示两种方案,静态方案虽然设计简单,但其使用的管脚太多,如本设计中16x64的点阵共有1024个发光二极管,显然单片机没有这么多的端口,如果我采用锁存器来扩展端口,按8位的锁存器来计算,16x64的点阵需要1024/8=128个锁存器。
这个数字很庞大,因为我们仅仅是16x64的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。
具体就16x64的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。
采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。
显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。
当列数很多时,并列传输的方案是不可取的。
采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。
这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一列数据。
为了达到重叠处理的目的,列数据的显示就需要具有所存功能。
经过上述分析,就可以归纳出列驱动器电路应具有的功能。
对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
第3章硬件设计
3.1芯片介绍
LED点阵总体框图,点阵电路大体上可以分成微机本身的硬件、显示驱动电路、控制信号电路三部分。
控制电路部分包括一个51CUP和一些外围电路。
在整个电路当中此控制电路部分相当于一个上位机,它负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给屏体电路部分发送命令。
点阵显示屏体以及它的行和列的各个驱动电路。
由于两部分的电路在制板时可以放在一起,所以可以将其字库放到控制电路部分使用串行通讯方式来与屏体电路部分进行数据和命令的传送。
此显示电路采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。
由行译码器给出的行选通信号,从第一行开始,按顺序依次对各行扫描(把该行与电源的一端接通)。
另一方面,根据各列锁存的数据,确定相应的列驱动器是否将该列与电源的另一端接通。
接通的列就在该行该列点燃相应的LEDl未接通的列所对应的LED熄灭。
可通过扫描输出口的控制实现颜色的转换。
3.1.151系列单片机简介
单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。
8051单片机的基本结构如图3-1。
图3-18051单片机的基本结构
8051系列的内部结构可以划分为CPU、存储器、并行口、串行口、定时器/计数器、中断逻辑几部分。
(1)中央处理器
8051的中央处理器由运算器和控制器构成,其中包括若干特殊功能寄存器(SFR)。
算术逻辑单元ALU能对数据进行加、减、乘、除等算术运算;“与”、“或”、“异或”等逻辑运算以及位操作运算。
ALU只能进行运算,运算的操作数可以事先存放到累加器ACC或寄存器TMP中,运算结果可以送回ACC或通用寄存器或存储单元中,累加器ACC也可以写成A。
B寄存器在乘法指令中可以用来存放一个乘数,在除法指令中用来存放除数,运算后B中为部分运算结果。
ALU主要用于完成二进制数据的算术和逻辑运算,并通过对运算结果的判断影响程序状态字寄存器PSW中有关位的状态。
程序状态字PSW是个8位寄存器,用来寄存本次运算的特征信息,用到其中七位。
PSW的格式如下所示,其各位的含义如表图3-2。
图3-2表1程序状态字PSW
CY:
进位标志。
在进行加法或减法运算时,若运算结果的最高位有进位或借位,CY=1,否则CY=0,在执行位操作指令时,CY作为位累加器。
AC:
辅助进位标志。
在进行加法或减法运算时,若低半字节向高半字节有进位或借位,AC=1,否则AC=0,AC还作为BCD码运算调整时的判别位。
F0:
用户可设定的标志位,可置位/复位,也可供测试。
RS1和RS0:
工作寄存器组选择,如表图3-3所示。
RS1
RS0
工作寄存器组
片内RAM地址
0
0
第0组
00H~07H
0
1
第1组
08H~0FH
1
0
第2组
10H~17H
1
1
第3组
18H~1FH
图3-3表2RS1和RS0工作寄存器组选择
OV:
溢出标志。
当两个带符号的单字节数进行运算,结果超出-128~+127的范围时,OV=1,表示有溢出,否则OV=0表示无溢出。
P:
奇偶校验标志。
每条指令指行完毕后,都按照累加器A中“1”的个数来决定P值,当“1”的个数为奇数时,P=1,否则P=0。
PSW中的D1位为保留位,对于8051来说没有意义,对于8052来说为用户标志,与F0相同。
控制器包括程序计数器PC、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。
控制电路完成指挥控制工作,协调单片机各部分正常工作。
程序计数器PC:
当一条指令按PC所指向的地址从程序存储器中取出之后,PC的值会自动增量,即指向下一条指令。
堆栈指针SP:
用来指示堆栈的起始地址。
80C51单片机的堆栈位于片内RAM中,而且属于“上长型”堆栈,复位后SP被初始化为07H,使得堆栈实际上由08H单元开始。
指令译码器:
当指令送入指令译码器后,由译码器对该指令进行译码,CPU根据译码器输出的电平信号使定时控制电路产生执行该指令所需要的各种控制信号。
数据指针寄存器DRTR:
它是一个16位寄存器,由高位字节DPH和低位字节DPL组成,用来存放16位数据存储器的地址,以便对片外64kB的数据RAM区进行读写操作。
片内RAM有256个字节,其中00H~7FH地址空间是直接寻址区,该区域内从00H~1FH地址为工作寄存器区,安排了4组工作寄存器,每组都为R0~R7,在某一时刻,CPU只能使用其中任意一组工作寄存器,由程序状态字PSW中RS0和RS1的状态决定。
(2)存储器组织
8051单片机在物理上有三个存储空间:
片内数据存储器RAM、片外数据存储器RAM、程序存储器ROM。
程序存储器ROM地址空间为64kB,片外数据存储器RAM也有64kB的寻址区,在地址上是与ROM重迭的。
8051单片机通过不同信号来选通ROM或RAM。
当从外部ROM中取指令时,采用选通信号PSEN,而从外部RAM中读写数据时则采用读RD和写WR信号或来选通,因此不会因地址重迭而发生混乱。
片内RAM的20H~2FH地址单元为位寻址区,其中每个字节的每一位都规定了位地址。
每个地址单元除了可进行字节操作之外,还可进行位操作。
片内RAM的80H~FFH地址空间是特殊功能寄存器SFR区,对于51子系列在该区域内安排了21个特殊功能寄存器,对于52子系列则在该区域内安排了26个特殊功能寄器,同时扩展了128个字节的间接寻址片内RAM,地址也为80~FFH,与SFR区地址重迭。
8051的存储器组成结构如图3-4所示。
图3-48051的存储器组成结构
(3)管脚说明
VCC:
供电电压。
GND:
接地。
P0口(P0.0~P0.7):
该端口为漏极开路的8位准双向口,它为外部低8位地址线和8位数据线复用端口驱动能力为8个LSTTL负载。
P1口(P1.0~P1.7):
它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。
P2口(P2.0~P2.7):
它为一个内部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。
在访问外部程序存储器时,作为高8位地址线。
P3口(P3.0~P3.7):
为内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,每个引脚都具有第二功能。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(计时器0外部输入)
P3.5T1(计时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
时钟电路引脚XTAL1和XTAL2:
XTAL1:
接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。
XTAL2:
接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。
地址锁存允许ALE:
系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。
外部程序存储器读选通信号PSEN:
PSEN是外部程序存储器的读选通信号,低电平有效。
程序存储器地址允许输入端EA/VPP:
当EA为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。
当EA为低电平时,CPU只执行片外程序存储器指令。
复位信号RST:
该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。
3.1.274LS154芯片介绍
1、74LS154功能简介
54/74154为4线-16线译码器,当选通端(G1、G2)均为低电平时,可将地址端(ABCD)的二进制编码在一个对应的输出端,以低电平译出。
如果将G1和G2中的一个作为数据输入端,由ABCD对输出寻址,74LS154还可作1线-16线数据分配器。
图3-5是芯片74LS154管脚。
图3-5芯片74LS154管脚图
2、引脚功能介绍
A、B、C、D译码地址输入端(低电平有效);
G1、G2选通端(低电平有效);
0-15输出端(低电平有效)。
3、真值表如图3-6
图3-6表374LS154真值表
3.1.274LS373芯片介绍
373为三态输出的八D透明锁存器,共有54/74S373和54/74LS373两种线路结构型式。
373为三态输出的8D透明锁存器,373的输出端O0-O7可直接与总线相连。
当三态允许控制端OE为低电平时,O0-O7为正常逻辑状态,可用来驱动负载和总线。
当OE为高电平时,O0-O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,O随数据D而变。
当LE为低电平时,O被锁存在已建立的数据电平中。
当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。
其管脚图如图3-7。
图3-774LS373管脚图
1、373引出端符号
D0~D7——数据输入端OE——三态允许控制端(低电平有效)
LE——锁存允许端O0~O7——输出端
2、74LS373真值表如图3-8
图3-8表4373真值表
3.2硬件设计
复位信号RST高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。
复位的实现通常用2种方式:
开机上电复位和外部手动复位,本设计用的是外部手动复位。
电路图3-9如下:
图3-9单片机复位图
图3-10单片机最小应用系统原理图
注:
该最小系统由按键复位RESET电路、晶体振荡电路以及I/O接口电路组成如图3-10。
AT89C51工作电压VCC=5V,其EA引脚需接高电平,5V电源电路如图3-11所示。
图3-11单片机电源原理图
注:
该电源电路主要模块为IC7805,它能输出稳定的5V电压,图中整流桥是将市电转变为直流电,电容起到滤波作用,由7805的OUT引脚输出5V电压。
最后,单片机硬件设计总电路图就并联多个8*8的LED组成16*16的点阵,则一个扫描信号同时要驱动两行的LED。
如下图3-12所示。
这时候就需要靠锁存器(74LS373)将这两组显示信号锁住,此处的锁存器是以低态输出的。
当74LS373得G脚为高态时,数据可以从输入端传输到锁存器中;G脚为低态时,数据被锁住,不会随输入端而变。
另外OC脚为输出控制引脚,当OC脚为高态时,输出呈现高阻抗;OC脚为低态时,数据会由锁存器输出。
在这个电路中驱动的扫描信号总共有16条,如果直接由8051输出,将占用2个PORT口,浪费资源不太理想,在此使用的是一个4对16位译码器(74LS154),这个译码器是将输入的16进位码输出低态的扫描信号。
输出的低态扫描信号可直接接到PNP晶体管的基极,如果太大的话也可以先经过限流电阻在接到PNP晶体管的基极,信号最后经过晶体管的放大后即可推动16个LED点阵了。
图3-12
3.316×64点阵显示屏设计
是一种8×8的LED点阵单色行共阴模块的内部结构图,其单点工作电压为1.8V,正向电流露为8~10mA。
当某一行线为低电平而某一列线为高电平时,其行列交叉的点就被点亮;而当其某一列线为低电平时,其行列交叉的点为暗;当某一行线为高电平时。
无论列线如何。
对应这一行的点全部为暗。
用四个8x8点阵显示可构成16×16点阵显示器,把4个16×16点阵显示器相连从而构成16×64的点阵显示器如图3-13。
如图3-13
第四章软件设计
4.1单片机延时子程序
延时子程序在单片机编程中使用非常广泛,也很重要。
程序设计是单片机开发最重要的工作,而程序在执行过程中常常需要完成延时功能。
在本设计中,行向的扫描要控制每行的扫描时间,还有所有的字移动有一定的时间间隔,而在所有的字移动一遍结束的一瞬间到下一遍移动开始的一瞬间要有延时,这时的延时可以和移动的时间相同以保持移动的连贯性,也可以不同作为每次开始的停顿。
1、机器周期和指令周期
(1)机器周期是指单片机完成一个基本操作所花费的时间,一般要用微秒来计量单片机的运行速度,51单片机的一个机器周期包括12个时钟振荡周期,也就是说51单片机采用12MHZ晶振,那么执行一个机器周期就只需要1微秒;如果采用的是6MHZ的晶振,那么执行一个机器周期就只需要2微秒。
(2)指令周期是指单片机执行一条指令所需要的时间,一般利用单片机的机器周期来计量指令周期。
在51单片机里有单周期指令(执行这条指令只需一个机器周期),双周期指令(执行这条指令只需要两个机器周期),四周期指令(执行这条指令需要四个机器周期)。
除了乘、除两条指令是四周期指令,其余均为单周期或双周期指令。
也就是说,如果51单片机采用的是12MHZ晶振,那么它执行一条指令一般只需1~2微秒的时间;如果采用的是6MHZ晶振,那么它执行一条指令一般只需2~4微秒的时间。
振荡周期、时钟周期、机器周期、指令周期的关系是:
振荡周期:
为单片机提供时钟信号的振荡源的周期。
时钟周期:
振荡源信号经二分频后形成的时钟脉冲信号,为振荡周期的2倍。
机器周期:
完成一个基本操作所需的时间,通常为12个振荡周期。
指令周期:
指CPU执行一条指令所需要的时间,一个指令周期通常含有1~4个机器周期。
2、延时指令
在单片机编程里面并没有真正的延时指令,从上面的概念中我们知道单片机每执行一条指令都需要一定的时间,所以要达到延时的效果,只须让单片机不断地执行没有具体实际意义的指令,从而达到了延时的效果。
(1)数据传送指令MOV
数据传送指令功能是将数据从一个地方复制、拷贝到另一个地方。
如:
MOVR7,80H:
将数据80H送到寄存器R7,就单这条指令而言并没有任何实际意义,而执行该指令则需要一个机器周期。
(2)空操作指令NOP
空操作指令功能只是让单片机执行没有意义的操作,消耗一个机器周期。
(3)循环转移指令DJNZ
循环转移指令功能是将第一个数进行减1并判断是否为0,不为0则转移到指定地点;为0则往下执行。
除了可以给定地址标号让其跳转外,还可以将地址符号改成为$,这样程序就跳回本指令执行。
4.2程序流程图
图4-1程序流程图
4.3显示效果
最终做出来的成果如图4-2,
图4-2
第5章课设总结与体会
通过此次课程设计,使我更加扎实的掌握了有关点阵屏方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
过而能改,善莫大焉。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。
最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!
课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。
同时,设计让我感