1 / 20
文档名称:

基于单片机的led显示屏的课程设计报告书.pdf

格式:pdf   大小:2,311KB   页数:20页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于单片机的led显示屏的课程设计报告书.pdf

上传人:1781111**** 2024/4/29 文件大小:2.26 MB

下载得到文件列表

基于单片机的led显示屏的课程设计报告书.pdf

相关文档

文档介绍

文档介绍:该【基于单片机的led显示屏的课程设计报告书 】是由【1781111****】上传分享,文档一共【20】页,该文档可以免费在线阅读,需要了解更多关于【基于单片机的led显示屏的课程设计报告书 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..摘要LED点阵显示屏作为一种新兴的显示器件,,通常用来显示时间、速度、系统状态等。本设计是8×8点阵LED电子显示屏的设计。整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。该电子显示屏可以显示各种文字或单***像,全屏能显示1个汉字,采用1块8×8点阵LED显示模块来组成1个8×8点阵显示模式。显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能与原理、相应软件的程序设计,以与使用说明等。关键词:AT89C51;LED;点阵显示;动态显示:..、:..8×8点阵屏的图文显示,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字稳定、清晰无串扰。图形或文字显示有静止和移入移出等显示方式。本文还重点介绍了单片机对LED点阵屏的控制电路,驱动电路的设计方法,并根据LED点阵屏的硬件特点,对其软件实现的算法给出了具体的分析。从而实现了显示的字体能够进行自下向上移动。此次课设中显示的是“乐里仁”。(1)设计一个能显示8×8点阵图文LED显示屏;(2)要求能显示图形或文字;(1)首先设计单片机系统与外围电路、列驱动电路和行驱动电路;(2)画出主模块的流程图;(3)编写代码;(4)程序分析与调试。(1)WINDOWS7系统(2)wave6000编译环境(3),不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。具体就8×8的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,/20:..然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其燃亮一样的时间,然后熄灭;……第八行之后又重新燃亮第一行,这样反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,我们就能看到显示屏上稳定的图形了。采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并行传输的方案是不可取的。采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都已传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两个部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下,留给行显示的时间就太少了,以至影响到LED的亮度。解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一行的列数据。为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。经过上述分析,可以归纳出列驱动器电路应具备的主要功能。对于列数据准备来说,它应能实现串入并出的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。。列驱动器/20片电源:..、。若电源为家用电源,则需经过降压,整流滤波,稳压等步骤得到一个稳定的5V电压,此电压可作为主电路的电压源。,一种是部时钟方式,一种是外部时钟方式。本实验采用部时钟方式,将XTAL1与XTAL2之间跨接一个石英晶振和电容,从而构成一个稳定的自激震荡器。电容值取30pF左右,其大小将影响震荡频率的高低、振荡器的稳定性和起振的快速性。为减少线间的寄生电容,晶振和电容应尽能安装得与单片机靠近,保证晶振稳定可靠的工作。另一部分是复位部分。上电自动复位电路是最简单的复位电路,只需要一个1K左右电阻、一个22pF左右的电容与12MHZ的晶振。有时还需要按键手动复位,此时只要在电容上并联一个按键即可。/20:../20:..。在采用扫描方式显示时,由于每行要带动十六个二极管,每行电流较大。若每个二极管安5mA计算,十六个二极管就得80mA电流,超出单片机管脚的承受围,因此每行都加有一个驱动器,本设计的行驱动用的是十六个pnp型三极管。三极管的发射极接5V电压,集电极接点阵的行线,而其基级本应接单片机,但该接线方式占用为了16个单片机管脚,为了节省单片机管脚,用了一片74LS159译码器,这样就只需要4个管脚了。各行的同名列共用一个列驱动,数据通常存储在单片机的存储器中,按8位一个字节的形式存放。由于列线过多,故多采用串行传输。由于每次要传输16位,而且数据要逐位输给驱动器,只有当一行中各列数据都已传输到位后,这一行的各列才能进行并行显示,耗时较长。为了满足以上要求,驱动选择74HC373锁存器。74HC373是硅结构的CMOS器件,74HC373是有8位移位锁存器和一个存储器,三态输出功能。373的输出端O0~O7可直接与总线相连。当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器部的逻辑操作不受影响。当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O被锁存在已建立的数据电平。当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。标准中等规模集成电路。74159说明:/20:..4个输入信号进行译码,得到16个输出状态。E1,E2低电平有效,G1高电平有效。A,B,C,D为译码信号输出端,0~15为译码输出端,低电平有效,。:Q0—Q7:八位并行输出端。D0—D7:八位并行输入端。OE为输出允许端:当OE=“0”时,三态门打开;当OE=“1”是,三态门关闭,输出呈高阻状态。锁存器LE由高变低时,输出端8位信息被锁存,直到LE端再次有效。当三态门使能信号OE为低电平时,三态门导通,允许00~07输出,OE为高电平时,此时锁存器LE为高电平是,输出00~07状态与输入端D0~07一样;当LE发生负的跳变时,输入端D0~D7数据锁入00~07。51单片机的ALE信号可以直接与74HC373的LE连接,。/20:..,硬件部分采用了8×8的点阵显示屏来构成LED显示屏。/20:..“单片机系统”~“点阵模块”区域中的“L1-L8”端口上;“单片机系统”~“点阵模块”区域中的“S1-S8”端口上。×8点阵LED外观与引脚图,其等效电路如图(2)所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴。第四章软件设计本软件要现如下要求:汉字要稳定、明亮并且文字要以一定速度上升滚动显示。/20:..序。显示程序的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。软件设计中,显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动器程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下:刷频率(帧频)=1/8×T0溢=1/8×f/12(65536-t)其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。然后显示驱动程序查询当前燃亮的行号,从显示缓存区读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。/20:..、充足,可显示图形和文字。图形或文字显示有静止、移入移出等显示方式。系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示图形,停留约几秒;接着向上滚动显示“乐里仁”这几个汉字,然后以“卷帘入”效果隐去图形。由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示容。如果想改变些事容,先用字模产生字代码,将用这段代码覆盖原来的代码,即可显示你想要的容。/20:..,管脚焊接正确,一般无需调试即可正常工作。软件部分需要调试的主要有显示屏刷新频率与显示效果两部分。显示屏刷新率由定时器T0的溢出率和单片机的晶振频率决定,。从理论上来说,24Hz以上的刷新率就能看到连续稳定的显示,刷新率越高,显示越稳定,同时刷新率越高,显示驱动程序占用的CPU时间也越多。实验证明,在目测条件下刷新率40Hz以下的画面看起来闪烁较严重,刷新率50Hz以上的已基本觉察不出画面闪烁,刷新率达到85Hz以上时再增加画面闪烁将没有明显改善。显示效果处理程序的容与方法非常广泛,其调试过程在此不作具体讨论,读者可对照源程序自行分析。这个方案设计的4个8×8点阵LED图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;显示屏各点亮度均匀、充足;显示图形或文字稳定、清晰无串扰;可用静止、移入移出等多种显示方式显示图形或文字。仿真结果:在PROTUES环境中,画好电路图。然后编好程序,进行编译,正确后,保存到一个文件里面。然后在PROTUES中加载程序:在电路图上单击右键,出现菜单,单击目录上的EditProperties,ponent,然后选择前面保存程序的文件,单击OK,就把源程序加载到电路里面了。单击时,运行程序,会出现如下现象:/20:..里仁”五个字会由下向上移动。::..,验证得到的功能与预期的功能一样,可以实现汉字显示,也可以实现汉字的移动显示,各个功能都能实现。总结这次课程设计花了很长的时间,从一开始选择可课题到准备工作大概花了一周左右。为了把这次课程设计做的比较好,已经将以上的设计容改了好几次了。其实有很多不懂的地方,自己有些异想天开的想法,有些可以做出来,但有一些根本就不能用单片机来实现的。面对这种种的困难除了网上搜集了很多相关的资料外,也参考了许多相似的课程设计。从中学到了许多在书上找不到的知识,收获不少。还让我根深的了解坚持自己的想法的重要性,别人做的再好那也是别人的,只有自己努力去学****了,有了自己的想法,才能将这些东西变成自己的。在这次课程设计中也充分体现了同学之间的团队/20:..我们在不断的讨论中逐渐发现问题的本质,慢慢有了该怎么样做好设计的思路,有了大家的帮助信心才更加的坚定,虽然遇到的问题比解决了的问题要多得多,但是在解决问题的过程中让我们体会到了学****的乐趣,和解决问题后,那种收获的喜悦。总的来说这次课程设计是比较难的,碰壁也有很多,但同时也是我感觉收获最多的一次课程设计。不仅仅是运用了课本上的知识,同时还结合了在课本之外的知识才把设计做出来的,使我有了灵活运用知识的新思路。对以后人生的发展目标也产生了重大的作用,因此我认为这次课程设计对我个人而言是受益良多的。参考文献[1]江世明,[M].:中国铁道,2010[2][M].:电子科技大学,2008[3][M].:航空航天,2005[4][M].:航空航天大学出版,2003[5]克农,数字电子技术基础[M].:高等教育,2003.[6]泉溪,单片机原理与应用实例仿真[M].:航空航天大学,#include<>unsignedcharcodetaba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//行选unsignedcharcodetabb[]={0x0e,0x10,0x28,0x28,0x3e,0x1c,0x2a,0x4a};//选列乐/20:..unsignedcharcode里unsignedcharcode仁unsignedchari,j;voiddelay(void)//延时5ms{unsignedchari,j;for(i=10;i>0;i--)for(j=248;j>0;j--);}voiddelay1(void)//延时10ms{unsignedchari,j,k;for(k=10;k>0;k--)for(i=20;i>0;i--)for(j=248;j>0;j--);}voidmain(void){while(1){/20:..上to下3time{for(i=0;i<8;i++){P0=taba[i];P2=tabb[i];//P1=0xff;delay();}}//for(j=0;j<2;j++)//from下to上3time//{for(i=0;i<8;i++){P0=taba[i];//P2=tabb[i];P2=0xff;delay1();}//}for(j=0;j<10;j++)//from上to下3time{for(i=0;i<8;i++){P0=taba[i];P2=tabc[i];//P1=0xff;delay();}/20:..for(i=0;i<8;i++){delay1();}for(j=0;j<10;j++)//from上to下3time{for(i=0;i<8;i++){P0=taba[i];//P1=0xff;delay();}}for(i=0;i<8;i++){P0=taba[7-i];//P2=tabb[i];P2=0xff;delay1();}for(i=0;i<8;i++){delay1();}for(j=0;j<10;j++)//from上to下3time{for(i=0;i<8;i++)/20:..P0=taba[i];P2=tabe[i];//P1=0xff;delay();}}for(i=0;i<8;i++){delay1();}/*for(i=0;i<8;i++){P0=taba[7-i];//P2=tabb[i];P1=0xff;delay1();}*/}}/20