点阵 led 多功能系统设计与制作单片机设计本科论文.docx
- 文档编号:1714030
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:30
- 大小:268.45KB
点阵 led 多功能系统设计与制作单片机设计本科论文.docx
《点阵 led 多功能系统设计与制作单片机设计本科论文.docx》由会员分享,可在线阅读,更多相关《点阵 led 多功能系统设计与制作单片机设计本科论文.docx(30页珍藏版)》请在冰点文库上搜索。
点阵led多功能系统设计与制作单片机设计本科论文
西安航空职业技术学院
毕业设计(论文)
论文题目:
点阵LED多功能系统设计与制作
所属系部:
电子工程系
指导老师:
洪云飞职称:
讲师
学生姓名:
刘欣灵班级、学号:
10201234
专业:
应用电子技术
西安航空职业技术学院制
2012年12月2日
重庆XX学院
毕业设计(论文)任务书
题目:
点阵LED多功能系统设计与制作
任务与要求:
采用51单片机作为微控制器.通过1个16x16的点阵LED进行文字显示学号和姓名.在目测条件下LED显示屏各点亮度均匀、充足、稳定、清晰无串扰.文字显示具有每排字有滚动和逐排等显示方式.
时间:
年月日至年月日共周
所属系部:
机电工程系
学生姓名:
XXX学号:
XXXXXXXX
专业:
机电一体化
指导单位或教研室:
指导教师:
XXXX职称:
教师
重庆XX学院制
年月日
毕业设计(论文)进度计划表
日期
工作内容
执行情况
指导教师
签字
教师对进度计划实施情况总评
签名
年月日
本表作评定学生平时成绩的依据之一
点阵LED多功能系统设计与制作
【摘要】
本论文阐述了基于单片机STC89C51的16
16点阵LED电子显示屏的设计。
分别阐述了显示屏显示的基本原理,硬件设计、控制方法及其程序的实现。
经过调试和分析,设计的结果能够实现对汉字的静态和动态显示,动态显示的内容有多种方式,同时又可通过上位机更新显示的内容。
本文给出了一种基于AT89C52单片机的16*16点阵的设计方案,包括系统具体的硬件设计方案,软件流程图和部分汇编语言程序等方面。
在负载范围内,只需通过简单的级联就可以对显示屏进行扩展,是一种成本低廉的图文显示方案。
可广泛应用于各种公共场合,如车站、码头、银行、学校、火车、公共汽车显示等。
关键字:
STC89C51;16
16点阵;LED;显示屏
Abstract:
ThispaperbasedonsinglechipSTC89C5116andlatticeLEDelectronicdisplaydesign.Aredescribedrespectively,andthescreenshowsthebasicprinciple,hardwaredesign,controlmethodsandtherealizationoftheprogram.Throughtestingandanalysis,theresultsofthedesigncanrealizethestaticanddynamiccharacters,accordingtothecontentofthedynamicdisplayavarietyofways,andatthesametime,butalsothroughtheuppermachineupdatedisplaycontent.ThispaperpresentsamethodbasedonthemicrocontrollerofAT89C5216*16latticedesignscheme,includingthesystemofconcretehardwaredesign,softwareflowchartandpartofassemblylanguageprogram,etc.Intheloadrange,onlythroughthesimplecascadecanbeextendedtoscreen,isakindofcheapgraphicdisplayscheme.Canbewidelyusedinallkindsofpublicplaces,suchasrailwaystations,docks,Banks,schools,train,busdisplay,etc.
Keywords:
STC89C51;16*16lattice;screen
目录
1功能要求和论证的方案-1-
1.1方案论证...........................................................-1-
1.1.1动态扫描简介-1-
1.1.2串行传输的方式.................................................-2-
1.3显示模块论证........................................................-3-
1.4数据传输论证........................................................-3-
2显示原理及显示方式-4-
2.1静态显示方式.......................................................-4-
2.2动态显示方式.......................................................-4-
2.3点阵显示原理.......................................................-4-
3系统硬件部分设计-5-
3.1单片机系统及外围电路-5-
3.2列驱动电路-5-
3.3行驱动电路-7-
3.4单片机最小系统电路................................................-9-
3.5电源电路-10-
4系统软件部分设计-10-
4.1系统主程序设计....................................................-10-
4.2显示驱动程序......................................................-11-
5系统调试及性能、程序分析-12-
5.1调试及性能分析....................................................-12-
5.2程序介绍及流程....................................................-12-
5.2.1定义端口.....................................................-12-
5.2.2汉字子模.....................................................-13-
5.3开中断............................................................-15-
5.3.1延时程序......................................................-16-
5.3.2主程序........................................................-17-
5.3.3控制点亮程序..................................................-19-
6制作成果和调试结果-21-
6.1制作成果........................................................-21-
6.2调试结果........................................................-22-
结束语-23-
参考文献-24-
1功能要求和论证的方案
要求采用51单片机作为微控制器.通过1个16x16的点阵LED进行文字显示学号和姓名.在目测条件下LED显示屏各点亮度均匀、充足、稳定、清晰无串扰.文字显示具有每排字有滚动和逐排等显示方式.
1.1方案论证
从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
16×16的点阵共有256个发光二极管,显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。
这个数字很庞大,因为我们仅仅是16×16的点阵,在实际应用中的显示屏往往要大的多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。
1.1.1动态扫描简介
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。
具体就16×16的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其燃亮一定的时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其燃亮相同的时间,然后熄灭;……第十六行之后又重新燃亮第一行,这样反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,我们就能看到显示屏上稳定的图形了。
采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。
显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。
当列数很多时,并行传输的方案是不可取的。
1.1.2串行传输的方式
采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都已传输到位之后,这一行的各列才能并行地进行显示。
这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两个部分。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下,留给行显示的时间就太少了,以至影响到LED的亮度。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一行的列数据。
为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。
经过上述分析,可以归纳出列驱动器电路应具备的主要功能。
对于列数据准备来说,它应能实现串入并出的移位功能;对于列数据显示来说,应具有并行锁存的功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
图1-1为显示屏电路实现的结构框图。
图1-1
1.3显示模块论证
(1)点亮LED数码管的方式有静态和动态2种方法。
本文以8段LED作为示例来论证方案
(2)这种模块由64个发光LED芯片以8×8的形式构成一个正方形模块,然后用2列8针引脚将内部电路接口引出,供驱动电路使用。
(3)行对应的给LED的阳极,先给第一行以高电平,如果送给16列的代码为EFFF,则第一行的第4个LED被点亮,再给第二行以高电平,如果送给16列的代码为EF07,则第二行的第4、9、10、11、12、13个被点亮,接着给第三行以高电平,同时给列以驱动代码,这样不断地进行行行的扫描,只要速度够快,由于人的视觉暂留作用,就不会感觉到明显的闪烁感。
1.4数据传输论证
采用动态显示方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。
显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。
当列数很多时,并列传输的方案是不可取的。
采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。
这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一列数据。
为了达到重叠处理的目的,列数据的显示就需要具有所存功能。
经过上述分析,就可以归纳出列驱动器电路应具有的功能。
对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
2显示原理及显示方式
下面重点介绍点阵LED数码灯的原理和方式
2.1静态显示方式
静态显示方式,即8段LED数码管在显示某一个数码时,加在数码管上的段码保持不变,直至换显其他数码为止。
这样数码管的每一段均应由一条输出线来控制,每显示以为数码需要8根输出线,当N位显示则需N×8根输出控制线。
占用较多I/O资源。
2.2动态显示方式
为解决静态显示占用较多I/O资源的问题,在多位显示时通常采用动态显示方式,动态显示是将所有数码管的段码线对应并联在一起,由一个8位的输出口控制,每位数码管的公共端分别出一位I/O线控制。
显示不同数码时,由位线控制各位轮流显示。
位线控制某位选通时,该位应显示数码的段码同时加在段码线上,即每一时刻仅仅有一位数码管是被点亮的,当轮流显示的速度较快(每秒24次以上),由于人眼的视觉暂留现象,看起来就像所有位同时显示一样,这时,我们就能看到稳定的图像了
2.3点阵显示原理
点阵显示器实际上就是LED显示器,构成显示器的所有LED都依矩阵形式排列。
从内部结构看,点亮LED的方法就是要让该LED所对应的Y线、X线加上高、低电平,使LED处于正向偏置状态。
使用多行扫描的方式,可以实现很多动态效果,点阵显示器常采用扫描法,扫描方式包括:
行扫描和列扫描。
行扫描就是控制点阵显示器的行线依次输出有效驱动电平,当每行行线状态有效时,分别输出对应的行扫描码之列线驱动该行LED点亮。
列扫描控制列线依次输出有效驱动电平,当第n列有效时,输出列扫描至行线,驱动该列LED点亮。
行扫描和列扫描都要求点阵显示器依次驱动一行或一列(8个LED)。
具体就8x8的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第8行之后,又重新燃亮第1行,反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。
3系统硬件部分设计
硬件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路三部分。
3.1单片机系统及外围电路
单片机采用89C51或其兼容系列的芯片,采用24M或更高频率的晶振,以获得较高的刷新频率,使显示更稳定。
单片机的串口与列驱动器相连,用来送显示数据。
P1口低4位与行驱动器相连,送出行选信号;P1.5~P1.7口则用来发送控制信号。
P0和P2口空着,在有必要时可以扩展系统的ROM和RAM。
3.2列驱动电路
列驱动电路由集成电路74HC595构成,它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的。
74HC595的外形及内部结构如图2所示。
它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。
引脚SI是串行数据的输入端。
引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。
移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。
RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入到输出锁存器。
引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高阻态。
SCLR信号是移位寄存器的清零输入端,当其为低时移位寄存器的输出全部为零。
由于SCK和RCK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。
芯片的输出端为QA~QH,最高位QH可作为多片74HC595级联应用时,向上一级的级联输出。
但因QH受输出锁存器打入控制,所以还从输出锁存器前引出了QH’,作为与移位寄存器完全同步的级联输出。
图3-1列驱动及控制
3.3行驱动电路
单片机P1口低4位输出的行号经4/16线译码器74LS154译码后生成16条行选通信号线,再经过驱动器驱动对应的行线。
一条行线上要带动16列的LED进行显示,按每一LED器件20mA电流计算,16个LED同时发光时,需要320mA电流,选用三极管8550作为驱动管可满足要求。
图3-2行控制及驱动
3.4单片机最小系统电路
复位是单片机的初始化操作。
其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。
RST引脚是复位信号的输入端。
复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。
若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。
图3-3复位信号的电路逻辑图
整个复位电路包括芯片内、外两部分。
外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。
复位操作有上电自动复位相按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图4(a)所示。
这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。
按键手动复位有电平方式和脉冲方式两种。
其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图4(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如图4(c)所示:
(a)上电复位(b)按键电平复位(c)按键脉冲复位
图3-4复位电路
上述电路图中的电阻、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。
3.5电源电路
图3-5电源电路
4系统软件部分设计
这部分重点介绍主程序和显示驱动程序的设计和要求。
4.1系统主程序设计
系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;接着自左到右以“滚动”效果显示班级姓名,停留约0.5s;,由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。
LED显示屏硬件电路只要硬件质量可靠,引脚焊接正确,一般无需调试即可正常工作。
软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。
显示屏刷新率由定时器T0的溢出率和单片机的晶振频率决定,。
从理论上来说,24Hz以上的刷新频率就能看到稳定的连续的显示,刷新率越高,显示越稳定,同时刷新频率越高,显示驱动程序占用的CPU时间越多。
试验证明,在目测条件下刷新频率40Hz一下的画面看起来闪烁较严重,刷新频率50Hz以上的已基本察觉不出画面的闪烁,刷新频率达到85Hz以上时再增加画面闪烁没有明显的改善
显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。
根据软件分层次设计的原理,我们可把显示屏的软件系统分成两大层:
第一层是底层的显示驱动程序,第二层是上层的系统应用程序。
显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其它控制信号,配合完成LED显示屏的扫描显示工作。
显示驱动程序由定时器T0中断程序实现。
系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。
从有利于实现较复杂的算法(显示效果处理)和有利于程序结构化考虑,显示屏程序适宜采用C语言编写。
4.2显示驱动程序
显示驱动程序在进入中断后首先要对定时器T0重新赋初值以保证显示屏刷新率的稳定,1/16扫描的显示屏的刷新率(帧频)的计算公式如下:
其中fosc为晶振频率,t0为定时器T0初值(工作在16位定时器模式)。
然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。
为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。
5系统调试及性能、程序分析
最后程序是否能正常的工作,LED灯是否能正常的显示出来,都要看调试是否得当,下面就主要介绍系统的调试及性能,程序的分析。
5.1调试及性能分析
LED显示屏硬件电路只要器件质量可靠,管脚焊接正确,一般无需调试即可正常工作。
软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。
显示屏刷新率由定时器T0的溢出率和单片机的晶振频率决定,下表给出了实验调试时采用的频率及其对应的定时器T0初值。
显示屏刷新率(帧频)与T0初值关系表(24M晶振)
刷新率(Hz)
25
50
62.5
75
85
100
120
T0初值
0xec78
0xf63c
0xf830
0xf97e
0xfa42
0xfb1e
0xfbee
5.2程序介绍及流程
/
*头文件*/
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
#defineNOP()_nop_()
5.2.1定义端口
sbitEN_port=P1^3;
sbitDA_in_port=P1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 点阵 led 多功能系统设计与制作单片机设计本科论文 多功能 系统 设计 制作 单片机 本科 论文