微控1664led课程论文.docx
- 文档编号:4724426
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:27
- 大小:934.48KB
微控1664led课程论文.docx
《微控1664led课程论文.docx》由会员分享,可在线阅读,更多相关《微控1664led课程论文.docx(27页珍藏版)》请在冰豆网上搜索。
微控1664led课程论文
2013年6月1号—6月2号
目录
1系统设计总述………………………………………………………………
(2)
1.1设计任务及要求………………………………………………………………(3)
1.2方案比较与确定………………………………………………………………(4)
216*64点阵原理………………………………………………………(5)
2.1系统的主要结构………………………………………………………………(6)
3系统的硬件设计…………………………………………………………(7)
3.1单片机控制电路……………………………………………………………(7)
3.216*64点阵显示屏设计……………………………………………………………(9)
3.3LED点阵显示器的扫描驱动………………………………………………(10)
3.3.1、行驱动电路………………………………………………………(11)
3.3.2、列驱动电路…………………………………………………………………(12)
4系统的软件设计………………………………………………………………(14)
4.1显示驱动程序………………………………………………………………(14)
5.硬件调试及性能………………………………………………………………(18)
5.1开发环境介绍…………………………………………………………………(18)
5.2理论性能分析………………………………………………………………(18)
5.3系统调试……………………………………………………………………(19)
致谢………………………………………………………………………………(20)
参考文献…………………………………………………………………………(21)
附录1:
最小系统行列驱动电路原理图……………………………………(22)
附录2:
点阵电路原理图…………………………………………(23)
附录3:
程序清单………………………………………………………………(23)
1.系统设计总述
从LED材料的不断更新,灰度控制技术的发展,真彩色图像的展现:
到驱动电路的灵活、高效,控制系统技术的提高无不体现了LED行业技术的飞跃发展。
另外,随着计算机的网路技术的发展,LED显示屏在网路环境下的使用情况越来越多,在多媒体、多种显示设备组成的信息显示系统中,采用智能化网路控制,联网控制多屏技术也在实际中得到应用。
现存显示屏的控制系统包括了输入接口电路、信号的控制、转换和数字化处理线路、输出接口电路等,涉及的具体技术很多,其中为关注并研究开发和应用关键技术包括:
串行传输与并行传输、动态扫描与静态锁存、输入接口技术、自动检测、远程控制技术等。
文本以4个16*64点阵显示器为例,单片机AT89C52作为控制器,探讨简单的汉字、数字显示技术。
1.1设计任务分工及要求:
具体要求:
1.能实现字体左右、上下移动
2.通过红外线进行控制字体移动方式
按照系统要求,可以将整个系统分为四个模块来设计:
模块
(1)红外接收芯片
(2)行驱动模块(3)列驱动模块(4)LED显示模块。
四个功能模块都由一块主控单片机(AT89C52)来完成。
分工情况:
成员
分工情况
林军(组长)
负责编程和调试运行和论文的前期的编写和画图(ER图)
林冠(组员)
负责收集资料(有关组成proteus图的各个器件如89C52等)
郭小龙(组员)
负责ppt的制作和论文的前期编写
钟志斌(组员)
负责收集资料(有关16*64这一方面的)和加入画图
黄庆龙(组员)
负责画图(proteus和编程
1.2方案分析
显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。
当列数很多时,并列传输的方案是不可取的。
采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。
这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一列数据。
为了达到重叠处理的目的,列数据的显示就需要具有所存功能。
经过上述分析,就可以归纳出列驱动器电路应具有的功能。
对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
图为显示屏电路实现的结构框图。
显示屏电路框图
2、16*64点阵屏原理
点阵内部结构及外形如下,16*64点阵共由1024个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则9脚接高电平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.1系统的主要结构
图1、16*64LED点阵系统设计系统框图
3、系统硬件电路的设计
本系统采用AT89C52单片机作控制器。
整个电路主要由单片机控制及其接口电路、驱动显示电路、电源电路等部分组成。
为了简化显示屏电路,降低成本,本系统在单片机部分不加字库存储器,而在PC机上编辑汉字和字符显示信息,并将其转换为相应的点阵显示数据。
然后通过串口(采用RS一232通信标准)送给单片机存储并进行显示处理。
3.1单片机控制电路
(1)MCU的选择:
由于软件对空间的需求和硬件的简化,本系统McU采用的是AT89s52,它具有8KB的ROM,128字节的RAM,不需再外扩存储器了。
图2、AT89C52的电路设计
图3、AT89C52引脚图
3.2、16*64点阵显示屏设计
图4是一种8x8的LED点阵单色行共阳模块的内部结构图,其单点工作电压矾为1.8V,正向电流露为8~10mA。
当某一行线为高电平而某一列线为低时,其行列交叉的点就被点亮;而当其某一列线为高时,其行列交叉的点为暗;当某一行线为低电平时。
无论列线如何。
对应这一行的点全部为暗。
用四个8x8点阵显示可构成16x16点阵显示器,其连接方法如图5所示。
图中,将(A)和(B)的8列、(C)和(D)的8列分别对应相连,同时将(A)和(C)的8行、(B)和(D)的8行分别对应相连。
即可形成一个16行(每一行有16个LED)、16列(每一列也有16个LED)的16x16点阵显示器,可将这256个点称为一页,这样,显示字符时。
只要对一页中对应的亮灭进行控制即可。
把4个16x16点阵显示器相连从而构成16x64的点阵显示器如图6。
图4、行共阳8*8点阵显示屏内部原理图
图5、16*16点阵连接图
图6、16*64点阵连接图
3.3LED点阵显示器的扫描驱动
LED显示屏驱动电路的设计应与所用控制系统相配合。
驱动通常分为动态扫描型及静态锁存型驱动二大类。
本文以动态扫描型驱动电路的设计为例来进行分析。
动态扫描型驱动方式是指显示屏上的16行发光二极管共用一组列驱动寄存器,然后通过行驱动管的分时工作.来使每行LED的点亮时间占总时间的1/16。
只要每行的刷新速率大于50Hz,利用人眼的视觉暂留效应。
人们就可以看到一幅完整的文字或画面。
AT89S52单片机有四个I/O口(P0、P1、P2、P3)。
每个I/OEl有8位,如果都采用并行输出,显然不能满足要求。
因此,本设计中的行扫描驱动采用并口输出。
而场扫描驱动采用串口输出。
3.3.1、行驱动电路
由于16x64点阵显示器有16行,为充分利用单片机的接口。
本电路中加入了一个4—16线译码器74LSl54,其输入是一个16进制码,解码输出为低态扫描信号.它们的管脚示意图如图7所示。
把74LSl54的G1和G2引脚接地。
然后以A、B、C、D四脚为输入端。
就会形成16种不同的输入状态,分别为0000~1111,然后使每种状态只控制一路输出。
即会有16路输出。
如果一行64点全部点亮。
则通过74LSl54的电流将达640mA,而实际上,74LSl54译码器提供不了足够的吸收电流来同时驱动64个LED同时点亮,因此,应在74LSl54每一路输出端与16x64点阵显示器对应的每一行之间用一个三极管来将电流信号放大。
本文选用的是达林顿三极管TIPl27。
这样,74LSl54某一输出脚为低电平时.对应的三极管发射极为高电平。
从而使点阵显示器的对应行也为高电平。
图7、74HC154引脚图
3.3.2、列驱动电路
本系统列扫描驱动电路的设计可用串人并出的通用集成电路74HC595来作为数据锁存。
74HC595是一个八位串行输入三态并行输出的移位寄存器,其管脚见图8所示,其中SI是串行数据的输入端,RCK是存储寄存器的输入时钟,SCK是移位寄存器的输入时钟。
Q7H是串入数据的输出,G是对输入数据的输出使能控制,QA~QH为串人数据的并行输出。
从SI口输入的数据可在移位寄存器的SCK脚上升沿的作用下输入到74HC595中.并在RCK脚的上升沿作用下将输入的数据锁存在74HC595中,这样,当G为低电平时,数据便可并行输出。
为了避免与PC机串口输入的数据相互干扰,也可使用模拟串口P1.4~P1.7来分别输出串行数据、移位时钟SCK、存储信号RCK和并行输出的使能信号G。
为了消除电源电压的波动及行扫描管压降(第一行点亮的点数不同,将引起管压降的变化,从而影响通过LED管的电流1的变化对LED显示屏亮度的影响,设计时可采用列恒流驱动电路,可选用三极管8550和外围元件构成列恒流驱动电路,并通过调整100kQ可调电阻使三极管处于放大状态。
同时将集电极电流调整为10mA.从而使点亮对应点阵时通过LED的电流不变。
图8、74HC595引脚图
行列驱动电路如图所示
4、系统软件的设计
显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。
根据软件分层次设计的原理,可以把显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。
显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。
显示驱动器程序由定时器T0中断程序实现。
系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。
从有利于实现较复杂的算法(显示效果处理)和有利于程序结构化考虑,显示屏程序适宜采用C语言编写。
4.1显示驱动程序
显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下:
刷频率(帧频)=
×
溢出率=
×
(4-1)
其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。
然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。
为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。
图9为显示驱动程序(显示屏扫描函数)流程图。
4.2系统主程序
本文设计的系统软件能使系统在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示图形,停留约3s;接着向上滚动显示“我爱单片机”这5个汉字及一个图形,然后以“卷帘入”效果隐去图形。
由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。
单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。
图10是系统主程序流程图。
图11为程序流程图
图10.系统主程序流程图
图9.显示驱动程序流程图
图11、程序流程图
5、调试及性能分析
5.1开发环境介绍
程序编写采用Keil51环境下调试,KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
5.2理论性能分析
LED显示屏硬件电路只要硬件质量可靠,引脚焊接正确,一般无需调试即可正常工作。
软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。
显示屏刷新率由定时器T0的溢出率和单片机的晶振频率决定,表5-1给出了实验调试时采用的频率及其对应的定时器T0初值。
表5-1显示平刷新率与T0初值关系表(24MHz晶振)
刷新率
25
50
62.5
75
85
100
120
T0初值
0xec78
0xf63c
0xf830
0xf97e
0xfa42
0xfb1e
0xfbee
从理论上来说,24Hz以上的刷新频率就能看到稳定的连续的显示,刷新率越高,显示越稳定,同时刷新频率越高,显示驱动程序占用的CPU时间越多。
试验证明,在目测条件下刷新频率40Hz一下的画面看起来闪烁较严重,刷新频率50Hz以上的已基本察觉不出画面的闪烁,刷新频率达到85Hz以上时再增加画面闪烁没有明显的改善。
这个方案设计的16x64点阵LED图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;显示屏各点亮度均匀、充足;显示图形或文字稳定、清晰无串扰;可用静止、移入移出等多种显示方式显示图形或文字。
5.3系统调试
调试主要分为硬件调试和软件调试:
硬件调试:
在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。
在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。
当然,在设计的过程中也存在着失误和不足。
软件调试:
软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是C语言,所以这个系统在编写程序过程中都采用C语言编写。
刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。
但是,在实际写如S51中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行。
致谢
这次课题实验我们小组学到了很多,我们选择的是led灯课题实验,刚开始只是在书本上学到一些相关知识,并没有去了解太多,拿到课题时也是有点茫然,不过还好经过努力我们的团队也总算是突破了一次次的难关成功实现了led灯的模拟电路的运行,并且实验效果还是不错的,除了完成最基础的字符的显示,还完成了多字符显示,左移,右移,上移,下移等功能。
这离不开团队的辛勤努力,不过,团队的努力是一方面,另一个更为重要的便是老师们对我们团队的指导,在此我衷心地感谢我的指导老师—潘新民教授。
感谢他对我完成这个课题的支持与帮助,在设计过程中给了我宝贵的建仪和意见,同时也感谢我周边的同学,他们为我提供了很多的资料和帮助。
在此也感谢其他同学对我学业的支持与关心。
参考文献
[1]潘新明王燕芳,微型计算机控制技术第二版。
北京:
电子工业出版社,2001
[2]楼然苗,李光飞.51系列单片机设计实例.北京:
北京航空航天大学出版社,2003
[3]余永权.89系列FLASH单片机原理及应用.北京:
电子工业出版社,2000
[4]李东生.PROTEL99SE电路设计技术入门与应用.北京:
电子工业出版社,2002
[5]诸昌钤.LED显示屏系统原理及工程技术.成都:
电子科技大学出版社,2000
[6]余永权,汪明慧等.单片机在控制系统中的应用.北京:
电子工业出版社,2004
[7]李群芳,黄建.单片微型计算机与接口技术.北京:
电子工业出版社,2001
附录1:
最小系统行列驱动原理图
附录2:
16*16点阵原理图
附录3:
程序清单
#include
#include"reg52.h"
#include"chinese.h"
#defineBLKN8//列锁存器数=(显示字数*2)
#defineTOTAL12//待显示字个数,本例共8个
#defineCONIOP1//显示控制口
sbitG=CONIO^7;//CONIO.7为154译码器显示允许控制信号端口,0时输出,1时输出全为高阻态.
sbitCLK=CONIO^6;//CONIO.6为595输出锁存器时钟信号端,1时输出数据,从1到0时锁存输出数据.
sbitSCLR=CONIO^5;//CONIO.5为595移位寄存器清零口,平时为1,为0时,输出全为0.
unsignedcharidatadispram[(BLKN/2)*32]={0};//显示区缓存,四字共4*32单元
unsignedinttempAS=0;
/***********延时函数(约1毫秒)************/
voiddelay(unsignedintdt)
{
unsignedcharbt=0;
for(;dt;dt--)
for(bt=0;bt<200;bt++)
;
}
voidsystem_init(void)
{
SCON=0x00;//串口工作模式0:
移位寄存器方式
TMOD=0x01;//定时器T0工作方式1:
16位方式
TR0=1;//启动定时器T0
TH0=0xFc;//设定显示屏刷新率每秒62.5帧(16毫秒每帧)
TL0=0x18;
CONIO=0x3f;//CONIO端口初值
IE=0x82;//允许定时器T0中断
}
voiddisPlayBYSJ(void)//向下移动
{
unsignedchari=0,j=0,k=0,q=0;
for(i=0;i { for(j=0;j<16;j++) { for(k=0;k<15;k++) { for(q=0;q { dispram[k*2+q*32]=dispram[(k+1)*2+q*32]; dispram[k*2+1+q*32]=dispram[(k+1)*2+1+q*32]; } } for(q=0;q { dispram[30+q*32]=BYSJ[q+i*BLKN/2][j*2]; dispram[31+q*32]=BYSJ[q+i*BLKN/2][j*2+1]; } delay(100); } delay(500); } } voiddisPlayWDGG(void)//向左移动 { unsignedchari=0,j=0,k=0,l=0,q=0; for(i=0;i { for(j=2;j>0;j--) { for(k=0;k<8;k++) { for(l=0;l<16;l++) { for(q=0;q { dispram[l*2+1+q*32]=dispram[l*2+1+q*32]>>1|dispram[l*2+q*32]<<7; if(q==0) dispram[l*2+q*32]=dispram[l*2+q*32]>>1|BYSJ[i][l*2+j-1]<<(7-k); else dispram[l*2+q*32]=dispram[l*2+q*32]>>1|dispram[l*2+1+(q-1)*32]<<7; } } delay(100); } } } } voiddisPlayWDGD(void)//向右移动 { unsignedchari=0,j=0,k=0,l=0,q=0; for(i=0;i { for(j=0;j<2;j++) { for(k=0;k<8;k++) { for(l=0;l<16;l++) { for(q=0;q { dispram[l*2+q*32]=dispram[l*2+q*32]<<1|dispram[l*2+1+q*32]>>7; if(q==BLKN/2-1) dispram
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微控 1664 led 课程 论文