单片机课设论文.doc

上传人:文库蛋蛋多 文档编号:3936662 上传时间:2023-03-28 格式:DOC 页数:29 大小:1.24MB
返回 下载 相关 举报
单片机课设论文.doc_第1页
第1页 / 共29页
单片机课设论文.doc_第2页
第2页 / 共29页
单片机课设论文.doc_第3页
第3页 / 共29页
单片机课设论文.doc_第4页
第4页 / 共29页
单片机课设论文.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《单片机课设论文.doc》由会员分享,可在线阅读,更多相关《单片机课设论文.doc(29页珍藏版)》请在三一办公上搜索。

1、第一章 系统设计总述从LED材料的不断更新,灰度控制技术的发展,真彩色图像的展现:到驱动电路的灵活、高效,控制系统技术的提高无不体现了LED 行业技术的飞跃发展。另外,随着计算机的网路技术的发展,LED显示屏在网路环境下的使用情况越来越多,在多媒体、多种显示设备组成的信息显示系统中,采用智能化网路控制,联网控制多屏技术也在实际中得到应用。现存显示屏的控制系统包括了输入接口电路、信号的控制、转换和数字化处理线路、输出接口电路等,涉及的具体技术很多,其中为关注并研究开发和应用关键技术包括:串行传输与并行传输、动态扫描与静态锁存、输入接口技术、自动检测、远程控制技术等。文本以4个16*64点阵显示器

2、为例,单片机AT89C52作为控制器,探讨简单的汉字、数字显示技术。 1.1 设计任务及要求: 具体要求:1.能实现字体左右2.通过红外线进行控制字体移动方式按照系统要求,可以将整个系统分为四个模块来设计:(1)红外接收芯片(2)行驱动模块(3)列驱动模块(4)LED显示模块。四个功能模块都由一块主控单片机来完成。1.2方案分析显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并列传输的方案是不可取的。 采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出

3、给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一列数据。为了达到重叠处理的目的,列数据的显示就需要具有所存功能。经过上述分析,就可以归纳出列驱动器电路应具有的功能。对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。这

4、样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。图为显示屏电路实现的结构框图。图1-1 显示屏电路框图第二章 16*64点 阵 屏 原 理点阵内部结构及外形如下,16*64点阵共由1024个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则9脚接高电平13脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第9脚要接高电平,而(13、3、4、10、6、11、15、16)这些引脚接低电平,那么第一行就会点亮;如要将第一列点亮,则第13脚接低电

5、平,而(9、14、8、12、1、7、2、5)接高电平,那么第一列就会点亮。 2.1 系统的主要结构 单片机控制器行扫描电路行驱动列扫描电路列驱动16*64点阵 图2-1 16*64 LED点阵系统设计系统框图第三章 系统硬件电路的设计 本系统采用STC12C5A60S2单片机作控制器。整个电路主要由单片机控制及其接口电路、驱动显示电路、电源电路等部分组成。为了简化显示屏电路,降低成本,本系统在单片机部分不加字库存储器,而在PC机上编辑汉字和字符显示信息,并将其转换为相应的点阵显示数据。然后通过串口(采用RS一232通信标准)送给单片机存储并进行显示处理。3.1单片机控制电路(1)MCU的选择:

6、由于软件对空间的需求和硬件的简化,本系统McU采用的是STC12C5A60S,它具有8KB的ROM,128字节的RAM,不需再外扩存储器了。图3-1STC12C5A60S2的电路设计 图3-2 STC12C5A60S2引脚图3.2、16*64点阵显示屏设计图3-3是一种8x8的LED点阵单色行共阳模块的内部结构图,其单点工作电压矾为18 V,正向电流露为810 mA。当某一行线为高电平而某一列线为低时,其行列交叉的点就被点亮;而当其某一列线为高时,其行列交叉的点为暗;当某一行线为低电平时。无论列线如何。对应这一行的点全部为暗。用四个8x8点阵显示可构成16x16点阵显示器,其连接方法如图3-4

7、所示。图中,将(A)和(B)的8列、(C)和(D)的8列分别对应相连,同时将(A)和(C)的8行、 (B)和(D)的8行分别对应相连。即可形成一个16行(每一行有16个LED)、16列(每一列也有16个LED)的16x16点阵显示器,可将这256个点称为一页,这样,显示字符时。只要对一页中对应的亮灭进行控制即可。把4个16x16点阵显示器相连从而构成16x64的点阵显示器如图3-5。图3-3行共阳8*8点阵显示屏内部原理图 图3-4 16*16点阵连接图图3-5 16*64点阵连接图3.3 LED点阵显示器的扫描驱动LED显示屏驱动电路的设计应与所用控制系统相配合。驱动通常分为动态扫描型及静态

8、锁存型驱动二大类。本文以动态扫描型驱动电路的设计为例来进行分析。动态扫描型驱动方式是指显示屏上的16行发光二极管共用一组列驱动寄存器,然后通过行驱动管的分时工作来使每行LED的点亮时间占总时间的116。只要每行的刷新速率大于50 Hz,利用人眼的视觉暂留效应。人们就可以看到一幅完整的文字或画面。 STC12C5A60S2单片机有四个IO口(P0、P1、P2、P3)。每个IOEl有8位,如果都采用并行输出,显然不能满足要求。因此,本设计中的行扫描驱动采用并口输出。而场扫描驱动采用串口输出。3.3.1、行驱动电路由于16x64点阵显示器有16行,为充分利用单片机的接口。本电路中加入了一个416线译

9、码器74LSl54,其输入是一个16进制码,解码输出为低态扫描信号它们的管脚示意图如图7所示。把74LSl54的G1和G2引脚接地。然后以A、B、C、D四脚为输入端。就会形成16种不同的输入状态,分别为00001111,然后使每种状态只控制一路输出。即会有16路输出。如果一行64点全部点亮。则通过74LSl54的电流将达640 mA,而实际上,74LSl54译码器提供不了足够的吸收电流来同时驱动64个LED同时点亮,因此,应在74LSl54每一路输出端与16x64点阵显示器对应的每一行之间用一个三极管来将电流信号放大。本文选用的是达林顿三极管TIPl27。这样,74LSl54某一输出脚为低电平

10、时对应的三极管发射极为高电平。从而使点阵显示器的对应行也为高电平。3.3.2、列驱动电路本系统列扫描驱动电路的设计可用串人并出的通用集成电路74HC595来作为数据锁存。74HC595是一个八位串行输入三态并行输出的移位寄存器,其管脚见图8所示,其中SI是串行数据的输入端,RCK是存储寄存器的输入时钟,SCK是移位寄存器的输入时钟。Q 7H是串入数据的输出,G是对输入数据的输出使能控制,QAQH为串人数据的并行输出。从SI口输入的数据可在移位寄存器的SCK脚上升沿的作用下输入到74HC595中并在RCK脚的上升沿作用下将输入的数据锁存在74HC595中,这样,当G为低电平时,数据便可并行输出。

11、为了避免与PC机串口输入的数据相互干扰,也可使用模拟串口P14P17来分别输出串行数据、移位时钟SCK、存储信号RCK和并行输出的使能信号G。为了消除电源电压的波动及行扫描管压降(第一行点亮的点数不同,将引起管压降的变化,从而影响通过LED管的电流1的变化对LED显示屏亮度的影响,设计时可采用列恒流驱动电路,可选用三极管8550和外围元件构成列恒流驱动电路,并通过调整100 kQ可调电阻使三极管处于放大状态。同时将集电极电流调整为10 mA从而使点亮对应点阵时通过LED的电流不变。图3-6 74HC595引脚图图3-7 行列驱动电路图第四章 系统软件的设计 显示屏软件的主要功能是向屏体提供显示

12、数据,并产生各种控制信号,使屏幕按设计的要求显示。根据软件分层次设计的原理,可以把显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动器程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。从有利于实现较复杂的算法(显示效果处理)和有利于程序结构化考虑,显示屏程序适宜采用C语言编写。4.1显示驱动程序显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷

13、新率(帧频)计算公式如下: 刷频率(帧频)=溢出率= (4-1)其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。图3-7为显示驱动程序(显示屏扫描函数)流程图。4.2系统主程序本文设计的系统软件能使系统在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。系统

14、主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示图形,停留约3s;接着向上滚动显示“我爱单片机”这5个汉字及一个图形,然后以“卷帘入”效果隐去图形。由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容.图4-1 系统主程序流程图图4-2显示驱动程序流程图函数声明、宏定义、全局变量开始初始化程序显示列表函数显

15、示程序主程序延时程序结束 图4-3 程序流程图第五章 调试及性能分析5.1开发环境介绍 程序编写采用Keil 51环境下调试,Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能

16、体现高级语言的优势。5.2 理论性能分析LED显示屏硬件电路只要硬件质量可靠,引脚焊接正确,一般无需调试即可 正常工作。软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。显示屏刷新率由定时器T0的溢出率和单片机的晶振频率决定,表5-1给出了实验调试时采用的频率及其对应的定时器T0初值。表5-1 显示平刷新率与T0初值关系表(24MHz晶振)刷新率255062.57585100120T0初值0xec780xf63c0xf8300xf97e0xfa420xfb1e0xfbee从理论上来说,24Hz以上的刷新频率就能看到稳定的连续的显示,刷新率越高,显示越稳定,同时刷新频率越高,显示驱动程序占

17、用的CPU时间越多。试验证明,在目测条件下刷新频率40Hz一下的画面看起来闪烁较严重,刷新频率50Hz以上的已基本察觉不出画面的闪烁,刷新频率达到85Hz以上时再增加画面闪烁没有明显的改善。这个方案设计的1616的点阵LED图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;显示屏各点亮度均匀、充足;显示图形或文字稳定、清晰无串扰;可用静止、移入移出等多种显示方式显示图形或文字。5.3 系统调试 调试主要分为硬件调试和软件调试: 硬件调试:在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错

18、误时,不知道到底是哪一方出错了。当然,在设计的过程中也存在着失误和不足。 软件调试:软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是C语言,所以这个系统在编写程序过程中都采用C语言编写。刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。但是,在实际写如S51中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行。六 总结通过这次实训,真正地做了一个点阵控制器,能显示汉字、图片、英文、数字,虽然之前有接触过LED点阵,但是一直是在门外看,没有真正深入进去实际操作,只是对显示原理有个大概的了解;本来计划将时钟、亮度、温度加入到整个系

19、统中来,这样就更加接近实际应用,但是由于时间的关系,只做了串口通讯部分进去,而且功能也较为简单。在调试串口通讯花的时候是最多的,主要是因为串口通讯芯片与单片机的连接错误,导致无法通讯。在整个实训过程中,真正能学到东西的是调试,但是理论与实际的还是有相当的不同,最关键的是发现问题,并解决问题,这样会对以后的学习中都有较大的帮助。除此之外,在实训的过程中与其它同学之间互相沟通与交流,通过学习其它的设计思路,发现其优点及缺点,然后一起讨论,这有利于提高我们的综合能力,为以后走上好的工作岗位打下坚实的基础。七 致谢 大学所学的知识在这次的毕业设计及毕业论文里得到了充分体现,在完成这个毕业设计的过程中,

20、也遇到了不少的问题,但在老师和同学的帮助下,问题很快就得到了解决。在此过程中,我也学到了不少的新的知识,自己的动手能力得到了大大的提高,分析问题和总结问题也积累了不少的经验,在此我衷心地感谢我的指导老师。感谢对我完成这个课题的支持与帮助,在设计过程中给了我宝贵的建仪和意见,同时也感谢我周边的同学,他们为我提供了很多的资料和帮助。在此也感谢其他同学对我学业的支持与关心。八 参考文献1 靳 达. 单片机应用系统开发实例导航. 北京:人民邮电出版社,20032 楼然苗,李光飞.51系列单片机设计实例.北京:北京航空航天大学出版社,20033 余永权.89系列FLASH单片机原理及应用.北京:电子工业

21、出版社,20004 李东生.PROTEL 99SE电路设计技术入门与应用.北京:电子工业出版社,20025 诸昌钤.LED显示屏系统原理及工程技术.成都:电子科技大学出版社,20006 余永权,汪明慧等. 单片机在控制系统中的应用. 北京:电子工业出版社,2004附录1:最小系统行列驱动原理图附录2:16*16点阵原理图附录3:实物图附录4:程序清单#include#includedz.hunsigned char h=0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe,;uchar d

22、is1610 ;void HC595_write(uchar dis) uint i ; uchar add; add=dis; for(i=0;i8;i+) if(addi)&0x80) R1=0;G1=0;else R1=1;G1=1; SHCP=0; SHCP=1; void display() uint i,j; for(i=0;i16;i+) for(j=0;j8;j+) HC595_write(disij); ADDR=(ADDR&0xe0)|hi); STCP=0; STCP=1; void moveleft(uchar a1610) uint l,m; for(l=0;l16;

23、l+) for(m=0;m=9;m+) alm=(alm7); void main() uint i,j,yd; for(i=0;i16;i+) for(j=0;j2;j+) disij=tongij; for(j=0;j2;j+) disij+2=xinij; for(j=0;j2;j+) disij+4=gongij; for(j=0;j2;j+) disij+6=chengij; OE=0; display(); while(1) for(i=0;i16;i+) for(j=0;j2;j+) disij+8=tongij; for(i=0;i16;i+) moveleft(dis); f

24、or(yd=0;yd10;yd+) display();/ for(i=0;i16;i+) for(j=0;j2;j+) disij+8=xinij; for(i=0;i16;i+) moveleft(dis); for(yd=0;yd10;yd+) display(); for(i=0;i16;i+) for(j=0;j2;j+) disij+8=gongij; for(i=0;i16;i+) moveleft(dis); for(yd=0;yd10;yd+) display(); for(i=0;i16;i+) for(j=0;j2;j+) disij+8=chengij; for(i=0

25、;i16;i+) moveleft(dis); for(yd=0;yd10;yd+) display(); /*- 文字: 我 -*/*- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x04,0x40,0x0E,0x50,0x78,0x48,0x08,0x48,0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x44,0x0A,0x44,0x0C,0x48,0x18,0x30,0x68,0x22,0x08,0x52,0x08,0x8A,0x2B,0x06,0x10,0x02,/*- 文字: 要 -*/*- 宋体12; 此字体下对应的点阵为:宽x高=16x

26、16 -*/0x00,0x00,0x7F,0xFC,0x04,0x40,0x04,0x40,0x3F,0xF8,0x24,0x48,0x24,0x48,0x3F,0xF8,0x02,0x00,0x7F,0xFC,0x04,0x20,0x08,0x40,0x1C,0x80,0x03,0x80,0x06,0x70,0x38,0x08,/*- 文字: 得 -*/*- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x08,0x00,0x0B,0xF8,0x12,0x08,0x23,0xF8,0x4A,0x08,0x0B,0xF8,0x10,0x00,0x33,0xFC,0x50,0x10,0x97,0xFE,0x10,0x10,0x12,0x10,0x11,0x10,0x10,0x10,0x10,0x50,0x10,0x20,/*- 文字: 优 -*/*- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x08,0x90,0x08,0x88,0x08,0x88,0x10,0x80,0x17,0xFE,0x30,0xA0,0x30,0xA0,0x50,0xA0,0x90,0xA0,0x10,0xA0,0x11,0x20,0x11,0x22,0x11,0x22,0x12,0x22,0x12,0x1E,0x14,0x00,

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号