本科毕业设计LED点阵广告牌的设计Word格式.docx

上传人:b****2 文档编号:878723 上传时间:2023-04-29 格式:DOCX 页数:34 大小:381.65KB
下载 相关 举报
本科毕业设计LED点阵广告牌的设计Word格式.docx_第1页
第1页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第2页
第2页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第3页
第3页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第4页
第4页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第5页
第5页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第6页
第6页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第7页
第7页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第8页
第8页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第9页
第9页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第10页
第10页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第11页
第11页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第12页
第12页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第13页
第13页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第14页
第14页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第15页
第15页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第16页
第16页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第17页
第17页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第18页
第18页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第19页
第19页 / 共34页
本科毕业设计LED点阵广告牌的设计Word格式.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

本科毕业设计LED点阵广告牌的设计Word格式.docx

《本科毕业设计LED点阵广告牌的设计Word格式.docx》由会员分享,可在线阅读,更多相关《本科毕业设计LED点阵广告牌的设计Word格式.docx(34页珍藏版)》请在冰点文库上搜索。

本科毕业设计LED点阵广告牌的设计Word格式.docx

因此,研究这一课题为我们未来的就业或对LED显示屏技术的发展有很大的帮助。

1.3论文主要内容

本课题设计主要是利用单片机来控制一个16×

16点阵显示屏,并且LED显示屏各点能够高亮度且均匀显示,要求文字在显示过程中平稳、清晰不拖隐,文字的显示样式有循环的左移、上移。

根据任务要求,具体的内容如下:

1.查阅点阵的相关文献资料,学习最简单点阵的使用方法;

2.将单一的8*8点阵扩展成16×

16点阵,利用Proteus软件对硬件系统电路进行仿真;

3.利用keil软件编写单片机程序,编译链接生成.hex文件,然后下载到Proteus软件中进行硬件仿真;

4.硬件电路仿真调试成功后制作实物,并且要使实物能够完成本设计所要实现的要求。

2系统硬件电路设计

2.1系统结构的设计

系统的整体设计是将单片机最小系统、行驱动电路、列驱动电路、LED点阵显示电路,运用单片机的智能化,将每个驱动模块系统的组合在一起,总体设计框图如图2.1所示。

图2.1系统结构设计总图

2.2行驱动电路设计

行驱动电路的设计采用芯片74HC164,并利用三极管8550放大驱动电流,加大扫描强度,提高点阵屏的亮度。

由于单片机的输出端口有限,如果要控制16*16的LED点阵显示则需要32个端口,这样就占用了单片机很多的I/O口,并且对单片机的扩展也带来很大的麻烦,影响I/O口的其他扩展功能。

而行驱动电路仅用7~9端口可以实现控制显示,因此,使用行驱动电路大大减少占用I/O口扩展其他功能,为单片机节约了大量的空间。

74HC164是属于8位边沿触发移位寄存器的高速硅门CMOS器件,数据采用串入并出,并且数据经过两个输入端(A或B)串行输入;

两个端口都可作为数据输入端,可以相互交替来控制另外一个端口。

两个输入端都可接高电平并且可以连接在一起,但是一定不能悬空处理。

主复位(CLR)如果是低电平,则其它输入端均无效,此时也清除了寄存器,致使所有的输出为低电平。

其引脚排列图如下图2.2所示。

图2.274HC164引脚排列

2.3列驱动电路设计

列驱动电路是采用集成芯片74HC595组成,具有一个8位串入并出的移位寄存器还有一个8位输出锁存器的特殊结构,移位寄存器和输出锁存器是相互独立控制的,这样的目的是先移好位,再存储数据,并且在移位时,输出的数据能够保持。

74HC595的输入端拥有8个串行移位寄存器,8个移位寄存器的输出都和一个锁存器相连接。

其引脚排列如图2.2所示。

图2.274HC595引脚排列

引脚SER是串行数据的输入端,SRCLR为直接清零端,它的优先级别最高。

RCK是移位时钟脉冲,当脉冲到达上升沿时开始移位,同时把SER的下一个数据输入到最低位。

移位寄存器时钟(SRCLK)和数据存储寄存器时钟(RCLK)两个都属于上升沿触发有效。

假如两个时钟相连在一起工作,那么移位寄存器会始终超前于存储寄存器一个时钟脉冲。

2.4单片机最小系统电路

单片机最小系统是由晶振电路和复位电路两部分组成,其总体电路图如下图2.4所示。

图2.4单片机最小系统图

(1)时钟电路

系统的时钟电路设计采用内部方式,即利用芯片内部的振荡电路。

STC单片机内部有一个用于构成振荡器的高增益反相放大器。

引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。

这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。

外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。

对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。

因此,此系统电路的晶体振荡器的值为12MHz,电容值约为30pF。

(2)复位电路

复位是对单片机进行初始化操作,即把特殊功能寄存器的数据刷新为默认数据,单片机在运算过程中如果遇到外界干扰,寄存器中的数据就会发生混乱,以至于程序不能正常运行,这样就需要单片机复位,以使程序重新开始。

复位方式一般分两种:

上电自动复位和按键手动复位,本设计中的复位电路既可实现上电自动复位也可实现手动复位,其电路的组成是在RST复位输入引脚上接一个电容至VCC端,还有按键,下接一个电阻到地即可。

2.5单片机芯片选择

单片机是把微型计算机主要部分集成在一块芯片上的单芯片微型计算机。

单片机STC89C52由CPU、存储器(包括RAM和ROM)、I/O接口、定时器/计数器、中断控制功能等均集成在一块芯片上,片内各功能通过内部总线相互连接起来。

 

(1)主要特性:

●8位CPU

●内置4K字节可重复编程Flash

●寿命:

1000写/擦循环

●全静态工作:

0Hz-24Hz

●三级程序存储器锁定

●128*8位内部RAM

●32根可编程I/O线

●两个16位定时器/计数器

●5个中断源,2个中断优先级

●可编程串行通道

●低功耗的闲置和掉电模式

●片内振荡器和时钟电路

(2)单片机的管脚如图2.5所示。

图2.5STC89C52的引脚图

VCC:

供电电压

GND:

接地

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。

当P1口的管脚第一次写“1”时,被定义为高阻输入。

P0能够用于外部程序数据存储器,他可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FLISH进行校验时,P0输出源码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。

P1口管脚写入“1”后,被内部上拉位高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLISH进行校验时,P1口作为第8地址接受。

P2口:

P2口位一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

串口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高8位。

在给地址“1”时,他利用内部上拉优势,当对外部8位地址数据存储器进行读写时,P2口输出器特殊功能寄存器的内容。

P2口在FLISH编程和校验时接受高8位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接受输出4个TTL门电流。

当P3口写入“1”后,他们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。

P3口也作为STC89C51的一些特殊功能口,如下所示:

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口同时为闪烁编程和编程校验接收一些控制信号;

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址所存允许的输出电平用于锁存地址的低位字节。

在FLISH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定是目的。

然而要注意的是:

每当用作外部数据存储器是,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高,如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:

外部程序存储器的的选通信号。

在有外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部存储器时,这两次有效的/PSEN信号讲不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部存储器(0000H-FFFFH),不管内部是否有程序存储器。

注意加密方式1时,/EA将内部锁存为RESET;

当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反响放大振荡器的输入及内部时钟工作电路的输入

XTAL2:

来自反响振荡器的输出。

2.6LED点阵显示器

1LED点阵显示器的介绍

LED点阵显示器是使用发光二极管点阵模块组成的平面式显示屏幕。

它具有很多优点:

效率高、使用寿命长、显示清晰亮眼、色彩丰富鲜明。

自二十一世纪初,随着LED技术的不断提高与创新,在国外得到了广泛的利用。

LED点阵显示器的种类有多种:

根据阵列分为5×

7,5×

8,6×

8,8×

8,根据发光颜色可分为单色,双色,三色,根据极性的排列方式可分为共阳极和阴极。

LED(8*8)点阵显示的基本原理:

8*8的点阵是由64个发光二极管组成,每个二极管都是分布在行线与列线的交点上,当某一列的电平为1,某一行为0时,则对的二极管就会点亮;

如图2.6所示。

图2.68*8点阵LED

根据驱动方式的不同,LED点阵屏分为计算机驱动型和单片机驱动型两种工作方式:

计算机驱动型的特点:

LED点阵显示屏由计算机驱动的,不仅可以显示字符,图形,还可以显示多媒体彩色视频内容,但其成本高。

单片机驱动型的特点:

体积小,重量轻,成本低,无线电爱好者有一定基础,经过一个简单的学习后,只需要购买一些元器件,就可以使用LED点阵屏了。

2用8*8LED点阵构成16*16LED点阵

在现实应用中,用一个16×

16的点阵就可以完整的显示一个汉字。

下面就以4块8*8点阵构成的16×

16点阵来实现本课题设计的显示任务。

构建16*16点阵时首先在Proteus软件的元件库中找到一块“Matrix-8x8-red”元器件,然后复制四块该元件并移到编辑窗口中。

在放置元件时,要注意把元件左转90°

,使其水平放置,这样它的行线和列线分别为左面8个引脚和右边8个引脚。

然后开始对四个元器件对应的行线和列线分别进行标号,每一条行线和列线的引脚都接一行16个LED。

但要注意将行线和列线的引脚都要设计长一点,为方便我们连线使用。

可以看到原来的连接线已被自动隐藏,而交叉留下的点可以不去管它。

然后我们选中下面的两块点阵,拖动它们与上侧的两块合拢。

这样做成的LED点阵的列线为左边的16个位选数据线,右边的16个引脚是用来输入字体代码。

最终连接的效果如图2.7所示。

图2.716*16LED点阵

2.7取字模软件介绍

在设计中由于用到的是一个16*16的LED点阵,需要显示27个汉字,如果单是手工对字体取模,将会花费很多时间,为了方便操作,我们利用字模软件PCtoLCD2002,该软件简单方便易操作,省了很多工作量。

软件主界面如图2.8所示。

图2.8取字模软件界面

1.文字输入区输入所需要显示的文字,文字数目不限。

2.文字输入完毕后,点击生成字模按键,然后将字模保存。

3.取模原则:

以字节为单位,每取8个点作为一个字节,如果最后不足8个点就补满8位。

4.取模方式:

可根据字体显示移动的方向自行选择是横向取模还是纵向取模。

5.提供图象保存,数据保存为文本文件的功能。

6.如果想要输入汉字和字母,那就要先输入汉字,程序会将您第一个输入的文字作为取模宽度。

在软件文字输入区输入某个字,按下Enter在点阵生成区就会有相对应字的点阵生成,软件中还可以自行设置字模的取模方式,修改图像,参数设置等。

3系统软件部分设计

在单片机系统中,硬件部分是系统的基础,软件则是在硬件的基础上对电路元件的调配和使用,最终实现系统所要达到的目标。

因此,系统在总体设计上首先要确定程序结构,合理分配内置的RAM资源,划分功能模块,其次进行主程序和各模块程序的设计,最后连接成一个完整的应用程序。

系统软件选用C语言程序编写,根据模块化的设计思路进行设计。

软件的主要作用就是向点阵显示屏提供显示数据,并产生各种控制信号来控制显示屏上显示的汉字的移动。

根据软件分层次设计的原理,将软件系统分成两大块:

一块是显示驱动程序,另一块是系统的应用程序。

显示驱动程序主要负责向显示屏传输显示数据,并负责产生行、列扫描信号和其它的控制信号,共同实现点阵显示屏的扫描显示工作。

系统应用程序主要掌管系统整体环境的设置和显示效果处理等工作,由主程序来完成。

3.1主程序设计

系统运行主程序后,首先是初始化系统环境,然后点阵进入开机状态,进入正常显示,显示屏每次显示一个汉字且连续实现汉字向左滚动和向上滚动。

由于单片机没有停机指令,所以可以设置系统程序不断地循环执行上述显示效果。

系统主程序结构如图3.1所示。

图3.1主程序的总体结构

3.2显示驱动程序设计

显示驱动程序首先进入中断模块,给定时器赋初值,然后开始查询当前点亮的行号,并且把下一行的显示数据从显示缓存区内读取出来,经过串口输出发送到移位寄存器内。

为了避免在切换显示数据时发生拖尾现象,因此,我们要提前关闭显示屏,即消隐。

等到显示数据被输出锁存器锁存后,再重新输出新的行数据,并同时打开显示。

显示驱动程序流程图如图3.2所示。

图3.2显示驱动程序流程图

3.3显示屏刷新率的计算

显示驱动程序在中端程序中首先应该对定时器T0重新赋初值,以保证显示屏刷新率的稳定,16行扫描格式的显示屏刷新率计算公式如下:

刷新率(帧频)=

×

(溢出率)=

(3.1)

式(3.1)中:

fosc—晶振频率;

t0—定时器T0初值(工作在16位定时器模式)。

4系统调试及性能分析

4.1系统调试

系统调试主要分为硬件调试和软件调试两部分。

硬件调试方面主要是在焊接时应该先焊接小元器件,然后分模块逐个进行焊接测试,避免元器件的虚焊。

对硬件进行调试时要在软件正确无误的条件下进行,这样即使某个模块出现焊接错误,我们也可以逐个调试排查。

当然,在调试的时候也会出现一些避免不了的误差。

软件调试方面主要是依据事先设计好的硬件电路原理图来编写程序。

在大二期间所学的是C语言,因此,本设计在编写软件程序时都是采用C语言编写的。

首先是编写不同模块的功能程序,等全部编写完成后将他们组合在一起。

起初在编写时总会出现一些意想不到的问题,但是经过仔细分析、多次调试还是将问题逐个击破,将程序编译成功。

4.2hex文件的生成

要生成.hex文件,首先要进行系统软件调试,软件调试主要是将每个功能模块的程序在Keil软件中进行编译以验证其功能的可实现性。

在软件编译成功后生成.hex文件方可进行功能测试。

1.打开Keil编程软件,单击菜单栏中的“项目”选项,在下拉菜单中选择“新建项目”,然后弹出“创建工程项目”对话框,输入新建工程名称,单击“确定”按钮后,在弹出的“选择设备”的对话框中选择合适的单片机型号。

2.单击菜单栏中的“文件”,在下拉菜单栏中选择“新建”,打开一个空的文本编辑窗口后保存,创建新的源程序文件“16_16MOVE.c”。

3.在左侧的“工程”窗口的“文件”页中单击文件组,单击鼠标右键,在弹出的窗口中选中添加文件到“源组1”选项,将“16_16MOVE.c”程序导入到“源组1”中。

如图4.1所示。

图4.1Project界面

4.在“工程”下拉菜单中,选择“Options 

for 

Target”设置对话框,将会弹出“Options 

Target”窗口,在此对话框中选中“Output”选项卡中的“Create 

HEX 

File”选项。

如图4.2所示。

图4.2Options 

Target界面

5.在“Project”下拉菜单中,选择“Rebuild 

all 

Target 

Files”项。

如图4.3所示。

图4.3Rebuild 

Files界面

若程序编译成功,将生成“16_16MOVE.hex”文件。

如图4.4所示。

图4.4生成的.hex文件

4.3仿真调试

在最新版本的Proteus软件中,没有现成的16*16点阵模块,因此,在设计过程中采用现有的4块8*8点阵模块组合成一个16*16点阵模块。

仿真时,先在Proteus中找到STC89C52芯片,单击鼠标左键然后对其进行参数设置,将单片机的时钟频率设置为12MHz后开始加载.hex文件。

等加载完成后连接好电路点击仿真按键即可对系统进行仿真。

在仿真过程当中如果遇见硬件问题可在Proteus中直接更换修改,如果遇到软件参数问题可在keil中直接调试更换,这样,通过用keil软件和Proteus软件的共同作用就可以实现本设计的最终目标。

4.4调试中出现的问题

在调试过程中,系统在调用延时子程序时,若遇到延时时间过短问题,即使能提高点阵显示屏的亮度,也无法看到字体完整的显示,每行的汉字尚未等显示完整就进入了下一行的扫描,甚至锁存器的输出还没到达显示屏,就进入到下一个扫描周期;

如果延时时间过长,就会造成显示屏的亮度降低,并且扫描出来的字体断断续续,人眼看到的并不是一个完整的汉字,因此,以上两种情况都是不符合设计要求,若想要达到最佳的显示效果,就必须依靠锁存器的锁存时间来准确算出扫描一行的最短时间,以获得最佳的时间延时,显示屏才能显示稳定的汉字。

5结论与展望

5.1结论

本设计采取由浅入深,循序渐进的模式。

首先简单的介绍了半导体的相关知识,继而讲到在半导体基础上产生的发光二极管,接着自然联想到由LED矩阵组成的显示屏,这样就谈到了本次设计的核心。

在设计上分为三大步。

第一步是程序的设计。

程序设计采用C语言编写,在大二上学期,学习了单片机的知识,在学习期间也得到了很多同学的热心指导,从而为编程以及素材上积累了广泛的知识和经验,所以本次设计思路很清晰。

主要由主显示程序的设计和附加电路程序的设计。

第二步是电路的仿真,通常使用Proteus仿真软件,根据设计要求,选择必要的器件,并将他们有机的连接起来。

完成之后,将已经生成的hex文件下载到仿真电路中的单片机上,就可以运行仿真了。

第三步是实物的设计,也是本设计的又一重点。

实体的设计会遇到很多实际问题,比如器件的选购,元器件的排列,以及电路的焊接。

不过还好经过老师的指导,同学的帮助,以及自己的一点努力,虽然几经波折,最终还是完成了实物的设计。

最后将程序通过下载器下载到单片机上,整个系统就可以正常工作了。

5.2展望

本设计为简单的单色显示屏,在工业上,单色LED屏,双基色LED屏,以及全彩LED屏技术方兴未艾,在生活中已经得到了广泛应用并将继续发挥它们的作用。

将来全彩LED显示屏必将大放异彩。

所以我不会满足当前所取得的微小成绩,还将继续努力,不断充实和提高自己,为社会主义现代化贡献自己的力量。

参考文献

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2