LED显示.docx
- 文档编号:30170851
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:27
- 大小:666.56KB
LED显示.docx
《LED显示.docx》由会员分享,可在线阅读,更多相关《LED显示.docx(27页珍藏版)》请在冰豆网上搜索。
LED显示
吉林工程技术师范学院
信息工程学院
《单片机应用技术》
课程设计报告
题目:
16x64LED广告屏设计
专业:
电子信息工程
班级:
D1043
姓名:
*****
学号:
34号
指导教师:
许艳惠范珩
时间:
2013年6月10日-6月28日
摘要
从随着计算机的网路技术的发展,LED显示屏在网路环境下的使用情况越来越多,在多媒体、多种显示设备组成的信息显示系统中,采用智能化网路控制,联网控制多屏技术也在实际中得到应用。
现存显示屏的控制系统包括了输入接口电路、信号的控制、转换和数字化处理线路、输出接口电路等,涉及的具体技术很多,其中为关注并研究开发和应用关键技术包括:
串行传输与并行传输、动态扫描与静态锁存、输入接口技术、自动检测、远程控制技术等。
文本以4个16*64点阵显示器为例,单片机AT89C52作为控制器,探讨简单的汉字、数字显示技术。
介绍了基于单片机的16x64LED点阵显示屏的设计过程。
给出了其硬件原理图和软件流程图。
该系统利用PC机将汉字字符转换为点阵显示数据,并通过串行口送给单片机,再由单片机独立完成显示和控制。
该系统具有设计简单、字符清晰、可靠性高等特点。
关键词:
单片机点阵LED显示屏
目录
第一章课程设计的目的及意义1
1.1课程设计的目的1
1.2课程设计的意义1
第二章设计方案的论证2
2.1设计背景2
2.2设计原理2
2.3技术路线2
第三章硬件设计4
3.116x64点阵显示器的设计4
3.2LED点阵显示器的扫描驱动5
第四章软件设计8
4.1系统软件的设计8
4.3系统主程序9
4.4驱动显示子程序设计10
第五章系统测试及创新11
5.1开发环境介绍11
5.2理论性能分析11
5.3系统测试11
第六章结论13
致谢14
参考文献15
附录I:
总设计图I
附录III:
单片机最小系统II
附录Ⅳ:
程序清单III
第一章课程设计的目的及意义
1.1课程设计的目的
随着信息产业的高速发展,LED显示屏作为信息传播我一种重要手段成为现在信息化社会的一个闪亮标志。
LED显示屏的设计制造技术与应用水平上都得到了迅速的提高,生产业得到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。
目前,对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大,小屏幕LED点阵显示器是比较经济适用的。
它可以用单片机控制实现显示字符、数字、汉字、和简单图形,可以根据需要使用不同字号和字型。
培养学生电子系统设计与分析能力,提高汇编语言和C语言程序开发能力。
1.2课程设计的意义
(1).通过查阅相关资料,设计电路及完成电路仿真,掌握如何利用单片机进行设计,同时了解与单片机有关的软件模拟器的使用及取字模块软件的使用方法。
(2).通过本课程设计巩固并扩展单片机课程的基本概念、基本理论、分析方法和实现方法。
结合Proteus和Keil软件等,学习单片机产品的设计方法,有效地将理论和实际紧密结合,培养创新思维和设计能力,增强软件编程实现能力和解决实际问题的能力。
(3).学习Proteus软件,掌握Proteus中各种芯片的功能以及模拟。
由于Proteus提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养实践精神、创造精神的平台。
第二章设计方案的论证
2.1设计背景
随着电子技术,特别是随大规模集成电路的产生而出现的微型计算机技术的飞速发展,人类生活发生了根本性的改变。
如果说微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫不夸张地说,单片机技术的出现则是给现代工业测控领域带来了一次新的技术革命。
目前,单片机以其体积小、重量轻、抗干扰能力强、对环境要求不高、高可靠性、高性能价格比、开发较为容易,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走人家庭,从洗衣机、微波炉到音响、汽车,到处都可见到单片机的踪影。
因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。
2.2设计原理
点阵内部结构及外形如下,16*64点阵共由1024个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,电平13脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第9脚要接高电平,而(13、3、4、10、6、11、15、16)这些引脚接低电平,那么第一行就会点亮;如要将第一列点亮,则第13脚接低电平,而(9、14、8、12、1、7、2、5)接高电平,那么第一列就会点亮。
一般我们使用点阵显示汉字是用的16*16的点阵宋体字库,所谓16*16,是每一个汉字在纵、横各16点的区域内显示的。
也就是说得用四个8*8点阵组合成一个16*16电平有效,所以要显示“你”字的话,它的位代码信息要取反,即所有列(13~16脚)送(111101*********1,0xF7,0x7F),而第一行(9脚)送1信号,然后第一行送0。
再送第二行要显示的数据(13~16脚)送(111101*********1,0xF7,0x7F),而第二行(14脚)送1信号。
依此类推,只要每行数据显示时间间隔够短,利用人眼的视觉暂停作用,这样送16次数据扫描完16行后就会看到一个“你”字;第二种送数据的方法是字模信号送到行线上再扫描列线也是同样的道理。
同样以“你”字来说明,16行(9、14、8、12、1、7、2、5)上送(0000000000000000,0x00,0x00)而第一列(13脚)送、“0”。
同理扫描第二列。
当行线上送了16次数据而列线扫描了16次后一个“你”字也就显示出来了。
2.3技术路线
显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。
当列数很多时,并列传输的方案是不可取的。
采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。
这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一列数据。
为了达到重叠处理的目的,列数据的显示就需要具有所存功能。
经过上述分析,就可以归纳出列驱动器电路应具有的功能。
对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
图2.2.1为显示屏电路实现的结构框图。
图2.3示屏电路结构框图
系统框图如图所示,系统主要由三大模块组成即LED驱动模块、数据存储模块、PC机通信模块。
第三章硬件设计
3.116x64点阵显示器的设计
8x8的LED点阵单色行共阳模块的内部结构图,其单点工作电压Uf为1.8V,正向电流IF为8~10mA。
当某一行线为高电平而某一列线为低时,其行列交叉的点就被点亮;而当其某一列线为高时,其行列交叉的点为暗;当某一行线为低电平时,无论列线如何,对应这一行的点全部为暗。
用四个8x8点阵显示可构成16x16点阵显示器,其连接方法如图所示。
图中,将(A)和(B)的8列、(C)和(D)的8列分别对应相连,同时将(A)和(C)的8行、(B)和(D)的8行分别对应相连。
即可形成一个16行(每一行有16个LED)、16列(每一列也有16个LED)的16x16点阵显示器,可将这256个点称为一页,这样,显示字符时。
只要对一页中对应的亮灭进行控制即可。
把4个16x16点阵显示器相连从而构成16x64的点阵显示器。
图3-1-1点阵及其驱动
图3-1-2LED点阵单色行共阳模块的内部结构图
3.2LED点阵显示器的扫描驱动
LED显示屏驱动电路的设计应与所用控制系统相配合。
驱动通常分为动态扫描型及静态锁存型驱动二大类。
本文以动态扫描型驱动电路的设计为例来进行分析。
动态扫描型驱动方式是指显示屏上的16行发光二极管共用一组列驱动寄存器,然后通过行驱动管的分时工作.来使每行LED的点亮时间占总时间的1/16。
只要每行的刷新速率大于50Hz,利用人眼的视觉暂留效应。
人们就可以看到一幅完整的文字或画面。
AT89S52单片机有四个I/O口(P0、P1、P2、P3)。
每个I/O口有8位,如果都采用并行输出,显然不能满足要求。
因此,本设计中的行扫描驱动采用并口输出。
而场扫描驱动采用串口输出。
3.3行驱动电路
由于16x64点阵显示器有16行,为充分利用单片机的接口。
本电路中加入了一个4—16线译码器74LSl54,其输入是一个16进制码,解码输出为低态扫描信号.它们的管脚示意图如图所示。
把74LSl54的E1和E2引脚接地。
然后以A、B、C、D四脚为输入端。
就会形成16种不同的输入状态,分别为0000~1111,然后使每种状态只控制一路输出。
即会有16路输出。
如果一行64点全部点亮。
则通过74LSl54的电流将达640mA,而实际上,74LSl54译码器提供不了足够的吸收电流来同时驱动64个LED同时点亮,因此,应在74LSl54每一路输出端与16x64点阵显示器对应的每一行之间用一个三极管来将电流信号放大。
本文选用的是NPN型三极管2N3392。
这样,74LSl54某一输出脚为低电平时.对应的三极管发射极可以提高电流幅值。
从而使点阵显示器的对应行能较清晰的显示。
图3-3-1At89C51引脚图
图3-3-274HC595引脚图
3.4列驱动电路
本系统列扫描驱动电路的设计可用串人并出的通用集成电路74HC595来作为数据锁存。
74HC595是一个八位串行输入三态并行输出的移位寄存器,其中DS是串行数据的输入端,STCP是存储寄存器的输入时钟,SHCP是
移位寄存器的输入时钟。
Q7’是串行数据的输出,是对输入数据的输出使能控制,Q0~Q7为串入数据的并行输出。
从DS口输入的数据可在移位寄存器的SHCP脚上升沿的作用下输入到74HC595,中。
并在STCP脚的上升沿作用下将输入的数据锁存在74HC595中,这样,当
为低电平时,数据便可并行输出。
为了避免与PC机串口输入的数据相互干扰,也可使用模拟串口P1.4~P1.7来分别输出串行数据、移位时钟SHCP、存储信号STCP和并行输出的使能信号。
8×8=64个SHCP时钟后便可将其全部移入74HC595中,此74HC595中,并在使能信号
的作用下,使串入数据并行输出,从而使与各输出位对应的场驱动管处于放大或截止状态;同时由行扫描控制电路产生信号使第一行扫描管导通,相当于第一行LED的正端都接高,显然,第一行LED管的亮灭就取决于74HC595中的锁存信号;此外,在第一行LED管点亮的同时,再在74HC595中移入第二行需要显示的数据,随后将其锁存,同时由行扫描控制电路将第一行扫描管关闭而接通第二行,使第二行LED管点亮,以此类推,当第十六行扫描过后再。
图3-4行列驱动总电路
第四章软件设计
4.1系统软件的设计
显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。
根据软件分层次设计的原理,可以把显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。
显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。
显示驱动器程序由定时器T0中断程序实现。
系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实
从有利于实现较复杂的算法(显示效果处理)和有利于程序结构化考虑,显示屏程序适宜采用C语言编写
4.2示驱动程序
显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。
然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。
为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。
图4-2显示驱动程序流程图
4.3系统主程序
本文设计的系统软件能使系统在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示图形,停留约3s;接着向上滚动显示“我爱单片机”这5个汉字及一个图形,然后以“卷帘入”效果隐去图形。
由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。
单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。
是系统主程序流程图。
图4-3统主程序流程图
4.4驱动显示子程序设计
驱动显示程序主要是通过用指向字模的指针p每次从外部数据存储器按顺序提取出字模中的两个字模信息,延时一段时间后重复上述工作,实现了汉字的往复循环显示。
图4-4系统主程序流程图
第五章系统测试及创新
5.1开发环境介绍
程序编写采用Keil51环境下调试,KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
5.2理论性能分析
LED显示屏硬件电路只要硬件质量可靠,引脚焊接正确,一般无需调试即可正常工作。
软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。
显示屏刷新率由定时器T0的溢出率和单片机的晶振频率决定,表给出了实验调试时采用的频率及其对应的定时器T0初值。
表5-2显示平刷新率与T0初值关系表(24MHz晶振)
刷新率
25
50
62.5
75
85
100
120
T0初值
0xec78
0xf63c
0xf830
0xf97e
0xfa42
0xfb1e
0xfbee
从理论上来说,24Hz以上的刷新频率就能看到稳定的连续的显示,刷新率越高,显示越稳定,同时刷新频率越高,显示驱动程序占用的CPU时间越多。
试验证明,在目测条件下刷新频率40Hz一下的画面看起来闪烁较严重,刷新频率50Hz以上的已基本察觉不出画面的闪烁,刷新频率达到85Hz以上时再增加画面闪烁没有明显的改善。
这个方案设计的16x16的点阵LED图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;显示屏各点亮度均匀、充足;显示图形或文字稳定、清晰无串扰;可用静止、移入移出等多种显示方式显示图形或文字。
5.3系统测试
测试主要分为硬件调试和软件调试:
硬件测试:
在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。
在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。
当然,在设计的过程中也存在着失误和不足。
软件测试:
软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是C语言,所以这个系统在编写程序过程中都采用C语言编写。
刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。
第六章结论
针对传统汉字显示系统显示方式单一,字模更换难度大的问题,设计了本系统,系统是以AT89C52单片机为核心,采用并行ISP下载,串行数据传输、动态扫描技术,利用人眼视觉暂留现象实现汉字移动显示并可与PC机进行通信的16*64LED汉字显示屏。
系统总体电路由通信电路,驱动电路和外部存储电路构成。
通信电路由MAX232进行电平转换实现单片机与上位机的通信,完成将字模向外部字模数组的传递过程。
74LS154和74HC595共同作用完成对显示屏的驱动,实现字模信息于LED点阵上小灯亮灭的转变过程。
74LS373和EEPROM2864完成外部数据存储功能。
通过软硬件的仿真调试,实现了本次设计的基本功能:
汉字的左移显示,并可与上位机进行通信,实现显示汉字的更新。
但在实际应用中,功能不仅仅于此,通过对程序的稍做修改,可以实现汉字的静态显示,左移,右移的显示,以及根据要求来控制移动速度和每次移动的距离,并且都可以和上位机进行通信实现汉字的更新。
致谢
大学所学的知识在这次的毕业设计及毕业论文里得到了充分体现,在完成这个毕业设计的过程中,也遇到了不少的问题,但在老师和同学的帮助下,问题很快就得到了解决。
在此过程中,我也学到了不少的新的知识,自己的动手能力得到了大大的提高,分析问题和总结问题也积累了不少的经验,在此我衷心地感谢我的指导老师。
感谢她我完成这个课题的支持与帮助,在设计过程中给了我宝贵的建仪和意见,同时也感谢我周边的同学,他们为我提供了很多的资料和帮助。
在此也感谢其他同学对我学业的支持与关心。
参考文献
[1]张毅刚.《单片机原理及应用》.高等教育出版社,2004
[2]徐君毅.《单片机微型计算机原理及应用》.上海科学出版社,1988.
[3]余永权.《89系列FLASH单片机原理及应用》.电子工业出版社,2000
[4]李东生.《PROTEL99SE电路设计技术入门与应用》.电子工业出版社,2002
[5]诸昌钤.《LED显示屏系统原理及工程技术》.电子科技大学出版社,2000
[6]余永权,汪明慧等.《单片机在控制系统中的应用》.电子工业出版社,2004
[7]李群芳,黄建.《单片微型计算机与接口技术》.电子工业出版社,2001
附录
:
总设计图
附录
:
单片机最小系统
附录Ⅳ:
程序清单
#include
#include"zimuo.h"
#defineucharunsignedchar
#defineuintunsignedint
sbitSH_CP=P2^7;
sbitST_CP=P2^6;
sbitR=P1^4;
sbitG=P1^0;
sbitOE=P2^0;
/*-------------------------------
**硬件接口
sbitR;//数据线R1
sbitSH_CP//时钟信号CLK
sbitST_CP//锁存信号STB
sbitOE//输出运行OE
A-D接P2.4~P2.1//行地址线ABCD
--------------------------------*/
//设置显示缓冲区(存储5个字,只显示前4个字,第5字为左移时备用)
unsignedcharSBUFF[16][10];
/*74HC595写数据*/
voidHC595_write(uchardat)
{
uchari;
for(i=0;i<8;i++)
{
if(dat&0x80)
R=0;
else
R=1;
SH_CP=0;
SH_CP=1;
dat=dat<<1;
}
}
voiddelay(uintz)
{
while(z--);
}
voiddisplay()
{
uchari,j,temp;
OE=0;
for(i=0;i<16;i++)
{
ST_CP=1;
for(j=0;j<8;j++)
{
HC595_write(SBUFF[i][j]);
}
temp=P2;
P2=(temp&0xE1)|(i<<1);////ABCD接的是P2.0-P2.3
ST_CP=0;
ST_CP=1;
delay(50);
}
}
///*
//左移
voidmove_left(uchara[16][10])
{
ucharH,column;
for(H=0;H<16;H++)
{
for(column=0;column<9;column++)
a[H][column]=(a[H][column]<<1)|(a[H][column+1]>>7);
a[H][9]<<=1;
}
}
//*/
/*
//右移
voidmove_right(uchara[16][10])
{
ucharH,column;
for(H=0;H<16;H++)
{
for(column=0;column<9;column++)
a[H][column]=(a[H][8-column]>>1)|(a[H][7-column]<<7);
a[H][0]>>=1;
}
}
*/
voidmain(void)
{
uchari,j,count,cnt;
for(i=0;i<16;i++)
for(j=0;j<2;j++)
SBUFF[i][j+0]=zimo1[i][j];
for(i=0;i<16;i++)
for(j=0;j<2;j++)
SBUFF[i][j+2]=zimo2[i][j];
for(i=0;i<16;i++)
for(j=0;j<2;j++)
SBUFF[i][j+4]=zimo3[i][j];
for(i=0;i<16;i++)
for(j=0;j<2;j++)
SBUFF[i][j+6]=zimo4[i][j];
for(i=0;i<16;i++)
for(j=0;j<2;j++)
SBUFF[i][j+8]=zimo5[i][j];
for(i=0;i<16;i++)
for(j=0;j<2;j++)
SBUFF[i][j+8]=blank[i][j];
OE=0;
for(count=0;count<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LED 显示