版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE本科生毕业论文PAGEPAGE1摘要:本文介绍了一款以单片机AT89S51为控制器的LED点阵显示屏系统的设计。该系统可实现中英文字符的显示和动态特效显示。并且可以通过级连的方式来扩大显示屏幕的尺寸以达到增加显示内容的目的。系统采用PC机作为上位机,上位机向单片机发送控制命令和上位机所存储的显示代码,AT89S51单片机接收并处理PC机的控制命令以及显示代码,由显示驱动模块驱动一个16×16分辨率的LED点阵显示屏的扫描显示。PC机与单片机之间的通信采用RS—232C通信标准来实现。所选用的AT89S51单片机具有价格低廉程序写入方便的特点使得整个系统方便维护和检修。除此之外,该系统只占用了单片机少量的I/O口和内存,为系统留下了功能扩展的空间。关键字:AT89S51;LED点阵显示;串行通对设计题目的特点,作者对论文的内容和结构将做如下安排:(1)初步方案的论证和选择搜集题目的有关资料,并参照目前通用的设计思想和设计方法拟定几套设计方案进行分析比较。最终选定了以PC机为上位机,单片机为核心控制器件,外加译码电路和驱动电路的设计方案。(2)方案实现以设计方案为指导思想选择合适的器件来实现这一思想,选择器件时要从功能和电气特性两方面来选择和论证。经过对比选择选定AT89S51单片机为核心控制器件,由串并转换器74LS164和锁存器74LS373为译码电路器件,三极管8550和ULN2803为驱动电路器件。论文列出了详细的器件参数和在系统中的连接使用方法。(3)软件编写根据硬件特点和设计要求,软件选用C语言编写。程序按功能分为静态显示、动态显示、通信等几个功能上相对独立的模块。然后按照所划分的模块逐个编写和调试,最后将独立的模块整合起来。(4)验证与测试调试分为硬件调试、软件调试和系统联合调试几步来进行。在硬件调试中发现有单片机端口驱动能力不足、驱动电路工作不稳定等问题。在软件调试中出现程序整合工作不协调等问题。通过分析,查找找出了问题原因并设法将其解决。(5)结论设计完成后对设计中所遇到的问题、经验教训、以及自己的想法进行总结。第2章方案论证与选择2.1系统硬件方案大多数的LED显示屏都在户外,所以对硬件的质量要求非常的高。为方便检修和维护硬件电路设计时常常采用模块化的设计方法。硬件的设计采用模块化设计,既要满足模块本身功能又要能够和整个系统兼容。如图2-1所示,根据显示系统的功能特点确定系统硬件由显示屏部分,控制部分,通信系统及上位机四部分组成。上位机通过通信部分向控制部分发送控制指令和显示内容代码,控制部分执行显示指令并将显示代码处理后控制显示部分的显示内容和显示方式[3]。图2-1系统硬件组成框图2.1.1显示屏主控制器控制部分是整个系统的核心部分,其功能为与上位机通信接收上位机发送的数据和控制指令处理过后控制显示部分显示内容。其常用的电子设计方法有单片机、DSP、及EDA技术。几种设计方法比较各有其特点:(1)单片机单片机是集成了CPU,ROM,RAM和I/O口的微型计算机。它有很强的接口性能,非常适合于工业控制,因此又叫微控制器(MCU)。单片机品种齐全,型号多样CPU从8,16,32到64位,多采用RISC技术,片上I/O非常丰富,有的单片机集成有A/D,“看门狗”,PWM,显示驱动,函数发生器,键盘控制等。它们的价格也高低不等,这样极大地满足了开发者的选择自由。除此之外单片机还具有低电压和低功耗的特点。随着超大规模集成电路的发展,NMOS工艺单片机被CMOS代替,并开始向HMOS过渡。供电电压由5V降到3V,2V甚至到1V,工作电流由mA降至μA,这在便携式产品中大有用武之地[4]。个的发光二极管出现问题时只需更换一个二极管即可,检修的成本较低,缺点在于连接线路复杂;而点阵模块构成的方法却正好与之相反,模块构成省约了大量的连线,不过当一个LED出现问题时同在一个模块的所有LED都必须被更换。这就加大了维修的成本。两种方法相比较,决定采取模块构成的方法来制作一个LED点阵显示屏。为了避免模块的缺点,选择点阵数较小的模块来减小出现这一问题的风险。所以构建一个16×16的LED点阵屏选用四块8×8点阵模块。图2-2LED点阵图一个16×16的LED显示屏行和列各有16支引脚,不能单靠51单片机的端口驱动所以必须要对单片机的端口个数进行扩展。经常采用的端口扩展方法是用串并转换芯片进行译码。常用的串并转换芯片有74LS154(4线-16线译码器)、74LS164(8位串并转换器)、74HC595等。51系列单片机端口低电平时,吸入电流可达20mA,具有一定的驱动能力;而为高电平时,输出电流仅数十μA甚至更小(电流实际上是由脚的上拉电流形成的),基本上没有驱动能力,所以单片机不能直接驱动LED显示屏显示。在单片机和显示屏之间还需要增加以功能放大位目的的驱动电路[7]。2.1.4硬件设计方案最终方案如图2-3所示,以PC机作为上位机存储和处理显示内容用串行通信的方式将显示内容和控制指令传输到单片机系统,单片机根据上位机传输来的内容和指令通过端口译码扩展后驱动4块8×8LED点阵模块构成的16×16的LED点阵显示屏。题目将以此方案为指导思想展开具体的硬件电路设计。图2-3硬件设计方案2.2系统软件方案软件的设计除了满足设计功能外还必须要满足易读写,方便下载和编译。设计目标和硬件总体结构确定的情况下,软件可以分为主程序,显示子程序,各种特效显示子程序,通信程序三个主要部分组成。具体结构如图2-4所示。图2-4软件功能结构框图软件的编写需要借助软件编辑器和编译软件,编译完成后还需要下载到单片机中执行。编写软件之前得首先选择一种合适的语言以及配套的编辑器和编译软件。最后还要选择一款与所选单片机的下载器或下载软件来把编写的程序下载到单片机中执行。第3章系统硬件设计3.1硬件整体设计概述及功能分析显示系统具体设计主要由上位机,通信系统,单片机系统,译码电路,显示驱动电路和16×16的点阵屏六部分组成。具体工作流程为:上位PC机通过通信系统向单片机发送控制指令和显示代码内容,单片机接收后执行控制指令处理显示代码将显示内容通过I/O口串行输出并且控制译码电路完成串并转换并行输出,最后由显示驱动电路进行电压和电流的处理以达到LED显示屏的显示电流,电压要求进而使显示屏显示内容[11]。根据硬件的功能结构图选取合适器件,器件不但要求能实现所要求的功能还要能兼容至整个系统之中。通过查阅资料和对比最终的硬件原理图如图3-1所示。图3-1硬件原理图3.2.2控制系统设计控制电路设计中采用的是单片机系统,该系统必须要是工作在一个最小系统(指单片机的可以的最小配置系统)。AT89S51的最小系统包括了外界时钟电路和复位电路,选定一定数量的IO口作为控制口控制外部的各种器件和数据的输出。根据功能选择一定的单片机端口添加外围的器件,具体电路如图3-2所示。在该系统中,P1各口主要用作LED显示数据的控制输出。由于端口的驱动能力有限所以该端口外接了5K的上拉电阻来提高驱动能力。其中P1.5P1.6P1.7还复用为ISP下载功能口。具体接法为:P1.0,P1.1,P1.4,P1.5分别接四块74LS164的A端,向74LS164送入串行数据经过其转换后并行输出;P1.2和P1.6分别接列和行的74LS164的CLOCK端,产生移位脉冲是串行数据并行输出;P1.3和P1.7接列和行的CLEAR端,在一组数据完成串并转换后清除164芯片中的内容转换新的数据;其中P1.5P1.6P1.7还复用为ISP下载功能口。P2.0接164芯片的使能控制端,当为高电平使允许输出;P2.2和P2.3接锁存器74LS373的OE和LE端控制锁存器的工作状态。端口30,EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。因为没有扩展外部程序存储器所以将EA置为高电平。图3-2控制部分电路图由于P3口是特殊功能口,在该系统中基本是采用其第二功能。其第二功能和实际运用如表3-1所示:表3-1AT89S51P3口第二功能的应用端口第二功能实际作用P3.0RXD(串行输入口)与上位机通信的数据输入口P3.1TXD(串行输出口)与上位机通信的数据输出口P3.2外部中断0做按键中断,控制显示状态P3.3外部中断1做按键中断,控制运行模式AT89S51单片机的P1在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,P2口在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。所以P1和P2口留为外部数据存储器和程序存储器的扩展用,以备内部存储器和程序存储器不够用的情况时使用[12]。3.3译码电路设计译码电路的功能是为了解决单片机I/O端口不足。行译码所用器件为串并转换器74LS164和锁存器74LS373。具体电路如图3-3所示图3-3行译码电路图3.3.1串并转换器74LS164列译码采用的是芯片74LS164。如果不采用译码电路完全依靠单片机的端口输出来控制16×16的LED点阵屏显示,需要32个端口。而采用了译码电路后仅仅需要7~9个端口便可实现控制显示。大大减少了I/O口的占用数目,为单片机扩展其他功能预留下来了空间。74LS164为一个8位数据的串并转换器。当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。串行数据输入端(A,B)可控制数据。当A、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0为低电平。当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定Q0的状态。表3-174LS164工作参数参数最小值标准值最大值单位高电平输入电压2——V低电平输入电压——0.8V高电平输出电压2.43.2--V低电平输出电压—0.20.4V时钟频率0—25MHZ这就要求单片机的引脚输出的高低电平要在芯片的识别范围内,由于采用了列选通行传送显示代码的方法所以行译码电路上也加上了74L373锁存芯片。这就要求74LS164芯片的输出要满足锁存芯片的高低电平区分范围和频率要求。3.3.2锁存器74L373由于74LS164芯片不具有锁存功能,所以在74LS164进行八位数据的串并转换时,串行数据的第一位会从QA依次移位到QH,第二位数据会从QA依次移位到QG,依次类推在八位数据转换完成之前74LS164芯片的输出会出现一段时间的乱序输出,这一结果会通过驱动电路表现在显示屏上。结果就是显示屏无序导通闪烁,不能显示所需内容。因此在串并转换完成前就需要74LS164的输出口不与驱动电路导通。所以选择锁存器74LS373来完成这一功能。74LS373为八D锁存器(3S,锁存允许输入有回环特性)。373为三态输出的八D透明锁存器,共有54/74S373和54/74LS373两种线路结构形式当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O被锁存在已建立的数据电平。表3-274LS373工作参数表参数最小值额定值最大值单位电源电压4.7555.25V输入高电平电压2——V输入低电平电压——0.8V输出高电平电压——-2.6mA输出低电平电压——24mA由表与表比较可以看出,74LS164的输出条件与74LS373的输入条件相匹配,理论上可以实现锁存器对译码器的数据锁存。3.4驱动电路设计3.4.1行驱动电路设计发光二极管,LED(LightEmittingDiodes),即是在在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。行驱动采用PNP三极管8550接法如图3-4示:图3-4行驱动器件8550的接法8550为PNP型三极管,内部结构如图3-5示。发射极e接5V电源,基极接译码信号输出端,集电极接输出驱动LED点阵屏。当译码器端口输出为低电平时,发射极与基极电势差为5V-基极中带负电的电子越过PN结扩散到发射区。发射极产生和电子扩散方向相反的电流,由于基极电子大量扩散到发射极集电极电子扩散到基极中形成了电流。当译码器端口输出高电平时发射极与基极之间的电势差为5V--,由于发射极与基极之间电势差的减少基极电子向发射极扩散的电子数量减少故集电极电流也随之减少。故8550在驱动电路中起到提供驱动电流和选通开关的作用。图3-58550内部结构图3.4.2列驱动电路设计列驱动采用ULN2803。ULN2803是一种高电压大电流达林顿管阵列内部结构如图,该阵列中的八个NPN达林顿连接晶体管是低逻辑电平数字电路(如TTL,CMOS或PMOS)和大电流高电压的灯,继电器,打印机锤和其他类似负载间的接口的理想器件。广泛用于计算机,工业和消费类产品中。所有器件有集电极开路输出和用于瞬变抑制的续流箝位二极管。集电极输出功率可达50V×600mA[13]。ULN2803作为列驱动执行的是列选的工作,当选通的列输入高电平时其对应的输输出低电平。相对应的输出取反,并能提供较大的灌电流来吸收行驱动流出进过显示屏后的电流。具体电路如图3-7所示。图3-7列驱动原理图3.5通信系统硬件设计AT89S51单片机具有全双工串行UART通道,支持单片机进行数据的串行传输。除了单片机要与PC机制定通信协议,确定发送速率外还需要解决的问题就是信号电平问题。RS-232C标准规定了PC机发送数据总线TXD和接收数据总线RXD采用EIA电平,即传送数字“1”时传输线上的电平在-3~-15V之间;传送数字“0”时,传输线上的电平在+3~+15之间。但单片机串行口采用正逻辑TTL电平,即数字“1”时为+5V数字“0”时为-5V,所以单片机与计算机不能直接相连进行通信必须将RS-232C与TTL电平进行转换[14]。在通用的电平转换芯片中MAX232系列的芯片以集成度高,单+5V电源工作,只需外接5个小电容即可完成RS-232C与TTL电平之间的转换而成为单片机系统中的常用芯片。在该显示系统中,MAX232为通信系统中最重要的硬件组成部分[15]。电路如图3-8所示:图3-8串口通信系统电路图3.6电源设计在系统中MAX232、74LS164、74LS373、AT89S51都需要5V的供电电压,在系统开发过程中可以使用电脑USB供电。在实际的大屏幕LED显示屏设计中,用电脑USB供电明显不切实际。此时需要对民用的220V进行降压整流为5V直流电压为显示系统供电。电路图如图3-9所示。图3-9电源原理图如图所示,用220V转12V的变压器进行降压后再通过一个桥式整流电路将交流电整流为直流电。最后通过5V三端稳压模块LM7805得出稳定的5V输出。3.7级连大屏幕LED显示屏要实现LED的大屏幕显示主要采用内部译码器级连和多个单片机系统级连的方法。译码器级连如图3-10所示将第1个74LS164的Q7端接第2个74LS164的A端,将第2个74LS164的Q7端接第3个74LS164的A端,如此炮制当N块74LS164相级连时就变为一个串行输入7×N口输出的串并转换器。这种级连的优点在于一块单片机可以同时控制更多的LED点阵显示屏,且74LS164的价格低廉整体成本得到了降低。但是这种级连方法也存在一定的缺点,51系列的单片机的晶振频率不高74LS164级连过多会增加一次扫描的时间从而导致显示出现闪烁。从端口输出的显示数据的显示也要作出相应的改变。图3-1074LSL64级连构建大屏幕LED显示屏的另一种方法是将以较小的LED显示系统做为模块进行级连。如图3-11所示,由独立的LED显示系统组成一个大的LED显示系统。其中各子显示系统之间在功能和控制上都是相互独立的,将一幅大屏幕画面拆分为几块小画面再分别送入到各子系统中,各子系统同步显示便可以得到一幅大的画面。使用这种级连的办法可以避免51单片机晶振频率低的弱点,更容易实现大屏幕的显示。但这种方法仍然存在难点,一是各独立的子系统的通信和协调性要求更高了,如果要实现显示内容的实时性必须需要上位机不断更新显示内容则增加了上位机的通信数据量,逐个的单片机传送数据也会影响整个画面的更新速度;二是成本提高了。图3-11由子系统构建大屏幕LED显示屏在实际应用中通常采用内部扩展和外部级连联合使用的方法来构建大屏幕LED显示屏幕。即增加单个显示系统显示屏幕大小的同时又将单个的显示系统级连。详细硬件原理图见附录1。
第4章系统软件设计4.1程序设计系统软件采用C语言编写,按照模块化的设计思路设计。首先分析程序所要实现的功能,程序要实现串口通信,静态显示,动态显示三大功能。其功能结构如图2-4所示。通信程序接收上位机数据,交给主程序处理再通过控制程序选择不同的显示程序进行显示。主程序的工作流程如图4-1所示:系统初始化系统初始化从显示数组读取数据到显示寄存器读取显示控制命令选择显示方式调用相应显示程序RI=1?起始位?接收显示数据及控制命令将显示数据移入显示数组将控制命令赋值给控制字符NNYY开始中断开始中断返回图4-1主程序流程图程序开始时首先必须对单片机进行初始化,其中初始化的内容包括:中断优先级的设定,中断初始化,串行通信时通信方式的选择和波特率的设定,各IO口功能的设定等。初始化完成后程序进入待机状态等待中断的发生,该程序中主要用到了两个外部中断源和串行中断。外部中断源由按键的电平变化触发,外部中断主要功能是选择LED点阵显示屏的控制方式是由按键控制还是上位机控制和显示状态是静态显示还是动态显示。串行中断包括发送中断和接收中断都是由软件触发。中断产生后由预先初始化时设定跳转执行中断子程序。中断程序设定了LED点阵显示屏所要显示的内容和显示的方式,最后执行的是各种显示程序。按照设定的方式和内容显示出所需要的内容。4.2显示程序的设计4.2.1LED显示屏的显示方式LED点阵屏显示方式主要由静态显示和动态扫描显示两种。对静态显示来说,每一个发光二极管都需要一套驱动电路,一帧画面输入以后便可一劳永逸地显示,除非我们改变了显示内容,需要重新输出新的点阵数据.这种方式系统原理相对简单一些,但所需的译码驱动装量很多,引线多而繁杂,不便于大屏幕的制造,成本高,其可靠性也较低.另一种动态扫描显示是把整个LED屏幕分成若干部分,每一幅画面的显示是显示完一部分后,又显示第二部分……直到显示完最后一部分又重新开始显示第一部分,重复循环进行.在重复扫描速度足够快的情况下,我们看到的就是一幅稳定的画面.也就是说采用动态扫描显示需要不断进行画面的刷新.在这种方式下其显示驱动电路可重复利用,引线也大大减少,从而使硬件成本降低,且屏幕上的发光二极管轮流发光,使用时的耗电量大大降低.大屏幕的制造、维护要容易许多,可靠性也增加了.两种显示方式的比较再结合51单片机IO口数量有限的原因决定采用动态扫描的方式进行显示。动态扫描分为行扫描和列扫描两种方式区别在于选通端和数据输入端分别是行还是列。在该显示系统中扫描显示的工作原理如图4-2所示,先选通列然后再从行送入对应列的数据,这样从第1列到第16列循环往复,只要切换的速度足够的快利用人眼的延时特性就可以看见一幅稳定的画面。图4-2扫描显示程序原理图4.2.2点阵数据表达方式该显示系统的显示数据采取纵向取模方向正向的数据存储方式如图4-3,图4-3点阵数据原理图即数据是纵向的,一个像素对应一个位。8个像素对应一个字节,字节的位顺序是上高下低,比如从上到下8个点的状态是“**-”(*为黑点,-为白点),则转换的字模数据是0x82(B1000_0010)。如图(4-3)所示,一幅16×16的点阵画面点阵数据按照B1B2B3……B31B32存储。所以一幅画面的数据量为32字节。画面显示时选通的第i列对应的数组元素为第i和i+16个元素[16]。4.2.3显示程序的设计开始显示程序分为静态显示程序、左移显示、右移显示、上移显示、下移显示五种种显示方式。其中上下左右移动程序都调用了静态显示程序为子程序。静态显示程序流程图如图4-4所示:开始初始化初始化读取显示数据读取显示数据依次选通列,行74LS164的CLOCK端置低,锁存器禁止输出依次选通列,行74LS164的CLOCK端置低,锁存器禁止输出对应行数组元素与0X01相与,相与结果写入单片机端口输出对应行数组元素与0X01相与,相与结果写入单片机端口输出数组元素右移一位,对应74LS164CLOCK端置高数组元素右移一位,对应74LS164CLOCK端置高N右移次数是否为8?N右移次数是否为8?YY锁存器允许输出锁存器允许输出图4-4静态显示程序流程图显示采用的是列扫描的显示方式,选通一列后按照列与数据元素的对应关系第i列对应的行数据为数组中的第i和第i+16个元素。将对应元素的由低至高位依次从端口输出具体做法为将元素向右逻辑移位后再与0X01相与,所得结果通过单片机端口输出到串并转换器的A端,锁存在锁存器里完成一列数据移位后再将其输出。如此依次循环选通各列来显示所需画面[17]。图4-5左右移/上下移程序流程图动态显示程序流程如图4-5所示,根据显示数据的存储原理通过改变实际LED列与数据逻辑列的方法来实现程序的左右移动。显示数据与列的对应关系为:第i列对应的数据为数组中i和第2×i个数据。所以当ULN2803选通时,而送入后一列的数据则相当于画面左移移位,同理送入前一列数据相当于右移一位。如此循环则产生一幅稳定运动的画面。显示数组中,第1至16个元素的第8至第1位LED显示屏中的第1至第8行。同理第17至32个元素的第8至第1位LED显示屏中的第9至第16行。所以将元素数据进行逻辑位移便能产生上下移动的效果[18]。4.3通信程序的设计系统采用串行中断的方式进行通信。MCS-51单片机的五个中断源两种类型:一类是外部中断源;另一类是内部中断源,包括两个定时器/计数器(T0和T1)的溢出中断和串行口的接收和发送中断。MCS-51单片机设置了4个专用寄存器用于中断控制,分别为定时器控制寄存器(TCON),串行口中断控制器(SCON),中断允许控制寄存器(IE),中断优先级控制寄存器(IP)。编程时通过设置其状态来管理中断系统。在编辑中断程序时首先是将中断控制寄存器(IE)初始化。其控制位分布如表。EA为中断允许总控制位,EA=1时CPU开发中断;EA=1时。CPU屏蔽所有中断。ES、ET、EX1、ET0、EX0为对应的串行口中断、定时器/计数器1中断、外部中断1中断、定时器/计数器0中断、外部中断0中断的中断允许位。对应位为1时允许其中断,对应位为0时,禁止其中断。表4-1中断允许寄存器格式D7D6D5D4D3D2D1D0EA——ESET1EX1ET0EX0所以初始化时设定中断允许寄存器初值为0XFF,指令为IE=0XFF。程序设计时还要考虑到中断优先级的问题。因为不同的中断同时产生而CPU响应的顺序取决于内部查询顺序。设置串口工作方式1,波特率9600,计算可得计数器初值的十六进制表示为0XFD。通信协议如表4-2所示:表4-2串口通信数据结构数据结构第1个字节第2至第33个字节第34个字节内容起始标志位‘S’显示数据控制指令作用判断是否开始接收数据LED的显示内容控制LED显示方式具体串口中断程序流程图如图4-6所示,在主程序中先进行了串行中断的初始化,初始化内容包括了串行工作方式选择,波特率的设定,计数初值的设定。程序开始进入中断等待,当PC机向单片机发送数据时产生中断接收允许位RI置1,将SBUF(缓冲寄存器)中的值输入到暂存器中进行数据处理。首先判断数据是否设定的起始标志位‘S’如果是则开始接收起始位后的33个字节,不是则中断返回继续等待。接收到第34个字节后便将收到的数据发送回PC机进行验证比较。RI=1?接收串口数据RI=1?接收串口数据起始位‘S’接收起始位后33位数据接收到第34位?将第2位起的32位数据发回PC机NNNYYY中断开始中断返回图4-6通信程序流程图所有软件编写完成后都必须经过编译才能被单片机识别使用。为了减小软件的修改和优化难度,先把各子程序写为一个可单独执行的完整程序。各子程序编译没有错误后再输入单片机进行验证,这两项都通过后再将所有的程序整合到一起形成一个完整的程序再进行编译和验证。详细程序见附录2。
第5章系统调试硬件制作和软件编写过后,得出实物如图5-1所示。实物完成后必须对其进行调试,检查设计功能是否实现了。软件硬件完成后开始进行调试。调试可分为硬件调试,软件调试和系统联合调试。图5-1实物图5.1系统硬件部分调试方法硬件调试主要是调试各部分的焊接是否合格和各芯片的输出输入电压是否符合设计要求,最后测试各硬件部分能否完成设计功能。因此把硬件调试按照以下四部分分步来进行:(1)测试所有焊点是否有短路和虚焊的现象存在;(2)通电测试所有硬件芯片的输入输出电压是否在设计要求的范围内;(3)测试ISP下栽线的功能是否能够实现;(4)测试串口系统的通信功能是否能够实现。由于最重要的显示系统功能的测试需要软件配合所以在硬件调试部分只测试单片机复位电平,功能部分测试放在系统联合调试部分来完成。5.1.1短路与虚焊检测检测工具为万用表,使用万用表的短路报警功能,逐个测试相临的两个焊点检测是否短路。按照电路图检测需要连接的两点是否短路来检测是否已经连接上,以此来检测虚焊的情况。检测和修改完成后为下一步通电检测排除了短路的危险和由于虚焊引起检测结果不真实的麻烦。5.1.2上电测试由于系统测试时是采用USB电源为系统电源,所以电源输入都为5V。显示系统中单片机、译码器,锁存器,驱动电路的电源电压均要求为5V所以可同时直接接入。上电后首先观察电路是否有过热,异味,冒烟的现象出现。经过观察,没有这些现象出现。然后测试各器件的电源,接地及一些电平应该固定的端口的电压。测试的结果为:各器件电源端在4.3V~4.8V之间满足器件的电源电压要求,单片机端口在未接负载时端口电压为4.5V。5.1.3串口调试串口部分的作用为单片机与PC机之间通信,要检查硬件是否正常工作可以采用将MAX232芯片的单片机端输出口与输入口直接相连的办法来测试。具体电路图如图5-2所示,将MAX232的第10端和第9端直接短接。功能上表示将单片机的输出口与输入口直接相连,单片机收到数据的同时就将数据发送回PC机。如果发送的数据能够被接收则证明串口通信部分的硬件是正常的。【19】将串口与电脑COM1相接,通过串口调试助手发送不同位数的数据再在把发送的数据与接收数据相比较。图5-2串口硬件调试5.2系统软件调试方法由于已经进行了硬件调试,所以软件调试主要是软件编译和将各功能块程序分别写入以验证其功能的可实现性。在进行功能调试前必须用KEILC对所有程序进行编译,编译成功生产可执行的.hex后方可进行功能测试。其中测试串口程序的功能是否完善不但要连接单片机系统还要借助串口调试工具。串口调试工具选用的是串口调试助手,其功能是按照设定的串口、波特率向单片机发送数据和接收单片机向PC机发送的数据。并且能把发送和接收的数据内容显示在状态栏内。因此只要设定PC机向单片机发送的内容和单片机向PC机发送的内容就可以通过串口调试助手验证串口通信是否准确,是否满足功能要求。串口程序的设计为:设定波特率位9600,以0XAA为起始标志位,单片机接收自起始标志位后的32位十六进制数再发送会PC机。测试程序时设定波特率为9600,选择串口1,无校验,8位数据。PC机向单片机发送的内容为aa11223344556677889900aabbccddeeff11223344556677889900aabbccddeeff。PC机收到的数据为11223344556677889900AABBCCDDEEFF11223344556677889900AABBCCDDEEFF。测试表明串口程序和串口电路实现了设计目的。再进行数次不同数据的发送,接收到的数据也验证了设计要求的实现。图5-3串口调试图串口程序测试成功后为显示程序提供了准确的显示内容。余下得各种显示程序和中断程序都编译成功后只有联合硬件才能验证其功能的可行性。5.3系统联合调试及结果经过硬件调试和软件调试,排除了硬件的连接问题和验证了串口功能的可实现性。其余功能的软件便可以在此基础上调试验证其功能的正确性。联合调试的具体方法如下:(1)编写一个逐点扫描的显示程序,再结合硬件电路运行。这样做的目的在于检测各器件是否能够正常运行和显示屏的各个LED灯是否有损坏。结果显示显示屏中只有边角出有一个LED灯被烧坏,其他器件逻辑功能运行正常。(2)将静态显示子程序与各种动态显示程序结合硬件电路进行调试。系统运行时显示如图5-1所示,显示图像比较清晰,各动态显示效果也能够实现。但显示存在两个问题。一是发光点的下方会出现一个很微弱的亮点,影响了整体的显示效果。二是同一列的LED灯被点亮的数量与其亮度出反比,即如果同一列的灯都被点亮则亮度比只点亮几个时要暗一点。(3)将串口通信,显示,硬件联合调试。按照设定的通信协议,先由PC机向单片机发送起始控制字s,接着再发送32比特的显示数据,最后发送控制显示方式的显示控制字。再发送不同的显示数据和显示控制字,观察各种显示方式的运行情况和各种显示方式之间的切换情况。结果是显示屏执行显示控制指令,显示所发送的内容。5.4调试结果分析对调试中出现的问题进行了分析,得出以下原因和修改办法。(1)硬件的工作表现出不稳定,主要是表现在LED显示屏的驱动电路部分和单片机系统部分。具体表现为单片机接负载后电压被拉低值1.7V左右,无法满足译码电路的输入要求。显示时会有一些行驱动的输出不够设计指标,导致所驱动的那一行在显示屏上表现为选定的点不能够很好区分,图像出现模糊。分析造成这一现象的原因为,焊接时三极管8550遭到了高温损坏以致工作不稳定和焊接的电路不够牢靠,还有就是8550的e端所接电压过高。修改办法为将单片机输出端口外接5K的上拉电阻,替换损坏三极管。(2)虚点的产生与软件和三极管电压有关。修改办法是将软件中的延时时间调至恰当值,将8550的e端电压降至3V左右。经过调试和修改,系统实现了题目所要求的中英文显示,动态显示及上位机通信与控制的要求。
结论经过一段时间的工作,终于完成了基于51单片机的LED显示系统的设计,项目所要求的功能全部达到。通过这次设计收获颇多,不仅是所作题目涉及到的软硬件知识还有更为重要的实际经验和过程中所发现的问题。接手题目之后从互联网上对LED进行了详细的资料收集,从技术和产业的两方面对LED进行了了解。通过了解我认识到LED是一门当今应用非常广泛的技术,整个产业每年都会有巨大的产值而且技术还在不断发展和创新[20]。从设计之初就确定了参照大屏幕显示屏的实现方法和实际情况设计一款小屏幕的LED点阵显示屏。在查阅了大量的大屏幕显示屏资料后确定了题目的设计方案。整个设计采用AT89S51做核心控制器,74LS164和74LS373组成译码电路,三极管8550和ULN2803做行和列驱动。在实现这一设计的过程中所遇到的问题和困难给我留下了宝贵的经验和深刻教训。这些经验和教训是:(1)设计之前应该进行大量的资料收集和分析,确定一个清晰的设计思路;(2)器件选择时要详细阅读器件使用手册,不但要考虑器件的功能实现还要考虑器件在整个系统中的兼容性;(3)硬件的系统的建立必须合理和稳定,实物建立之前最好进行仿真这样才能为软件提供一个可靠的试验平台;(4)软件的编写不但要实现功能还要不断的优化、简练、易读。随着课题的进行,对LED的了解也越来越深入。认为LED技术也会进一步发展,LED应用将会更加广泛。可以设想利用LED的高稳定性和低能耗,再与无线通信技术相结合在沙漠深处或者人迹罕至的雪山之颠树立一块依靠太阳能充电,通过无线传输方式更改显示内容的信息板为登山者提供指示和天气信息,为沙漠迷路的人指引方向。设计结束了,但学习还在继续。我相信通过此次设计所得到的知识、心得、经验乃至感受都会让我在以后的日子里受益匪浅。
致谢这次能够圆满完成毕业设计我首先要感谢我的指导老师***老师、***老师、***老师,感谢他们在毕业设计期间对我的指导、勉励、和督导。同时我要感谢大学四年里教过我课程的老师们,感谢他们对我知识增长所付出的辛勤劳动。我还要感谢全班同学,感谢他们大学四年所做的所有令人感动的、幽默的、滑稽的、荒诞的事情。我所在的实验室的同学,我也要感谢你们。虽然大家来自不同专业相处时间也不长,但大家共同的爱好相同的目标使得大家互相扶持共同努力。最后我要感谢我所住宿舍的管理员阿姨们,感谢她们不论多晚回去都给我们开门让我们不至于露宿街头。还有学校的保安和厨师,你们是我安全完成毕业设计的保障。
参考文献[1]关积珍.\o"LED显示屏发展状况及趋势"LED.显示屏发展状况及趋势[J].世界电子元器件,2000,(02):277-301.[2]关积珍,陆家和.我国LED显示屏技术和产业发展及展望.现代显示,2004,(02):34-37.[3]JeyamkondanS,JayasDS,HollyRA.16x16dotmatrixLEDhas4mmprofile.ElectronicsWeekly,11/26/2003Issue2125,36-36,1/9p,1c;(AN11842012).[4]缪思恩.LED大屏幕显示电路设计[J].电子技术应用,1996,(08):56-77.[5]DaveJackson.关于DSP芯片的问与答.今日电子,1998,(12):1-7.[6]卢弥坚.主从分布式LED大屏幕显示系统[J].电脑与信息技术,1997,(04):6-13.[7]高胜东,梁采,张宏富.一种LED大屏幕显示系统[J].成都气象学院学报,1998,(03):108-120.[8]张全福.汇编语言程序设计实验教学改革与探索.教学研究,2005,(06):3-5.[9]文哲雄.用单片机控制LED显示屏[D].佛山:佛山科学技术学院,1995.[10]彭宁,只佩华.单片机对LED大屏幕显示的控制系统[J].河北大学学报(自然科学版),1993,13(3):86-89.[11]陈玉华,王铭霞.LED大屏幕显示电路的设计[J].大连海事大学学报,1997,(03):55-56.[12]郑刚,李宇成.LED大屏幕显示系统的设计[J].北方工业大学学报,2001,(03):43-47.[13]李元生.LED光柱专用驱动器[J].家庭电子,2005,(04):1-7.[14]王亭,李瑞涛,宋召清.在Windows下PC机和单片机的串行通信[J].微型机与应用,2000(1):25-27.[15]陈新忠.基于RS232总线的单片机多机通信软件设计[J].现代电子技术,2002,(03):56-78.[16]乔世杰.小波图像编码中的对称边界延拓法[J].中国图像图形学报,2000,5(9):725-729.[17]李桂平.LED屏幕显示器的设计[J].零陵师范学院学报,2002,(9):367-380.[18]DavidFRogers.Computergraphicsalgorithm[M].Beijing:ChinaMachinePress,2002:97-99.[19]Marston,R..Radio-Electronics,WorkingwithLEDdisplaydrivers[J].Mar1992,Vol.63Issue3,65,8p,3charts,23diagrams;(AN9206290756).[20]Regenold,Stephen.LEDsAreStillPopular(andImproving)afterAllTheseYears[Z].Sep2004,Vol.18Issue9,44-44,1/7p,1c;(AN14525210).
附录1:硬件原理图
附录2:设计程序//主程序主要为各功能子程序提供运行平台,子程序分为显示程序,特效显示程序,//按键输入中断子程序//#include<reg51.h>//#include<absacc.h>//#include<intrins.h>#include<AT89x52.h>//#include<regx52.h>#defineCOUNT34#defineW0X01unsignedcharbuffer[COUNT];unsignedcharpoint;sbitA1=P1^0;//定义第一列对应端口sbitA2=P1^1;//第二列sbitA3=P1^4;//第一行sbitA4=P1^5;//第二行sbitCLK_L=P1^2;//列移位时钟上升沿触发sbitCLEAR_L=P1^3;//列清除控制位低电平有效sbitCLK_H=P1^6;//行移位时钟sbitCLEAR_H=P1^7;//行清除控制位低电平有效sbitEN=P2^0;sbitP21=P2^1;sbitOE=P2^2;//三态允许控制端低电平有效sbitLE=P2^3;//锁存允许端unsignedcharcodeH1[16]={1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},H2[16]={0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0};//分别暂存行(H)列(L)所要显示的数据unsignedcharL1,L2,i,command,k,j;charz,l,m,n,x;unsignedchardataziku[32];unsignedcharidatasort[32];unsignedintdatatemp;unsignedcharcodeBmp019[]=//静态显示内容{/*源文件/文字:寿宽×高(像素):16×16字模格式/大小:单色点阵液晶字模,纵向取模,字节正序/32字节数据转换日期:2007-5-3116:26:59*/0x00,0x22,0x22,0x2A,0x2A,0x2A,0x2F,0xFA,0x2A,0x2A,0x2A,0x2B,0x2A,0x2A,0x22,0x00,0x04,0x04,0x08,0x10,0x20,0xC0,0x20,0x5C,0x48,0x42,0x41,0xFE,0x40,0x40,0x40,0x00};//*************************************************************//串口中断程序//功能:从PC机接收数据,当接收满34位后将接收到的数据发送回PC机//*************************************************************com_interrupt(void)interrupt4using3{unsignedcharRECEIVR_buffer;if(RI==1){RECEIVR_buffer=SBUF;RI=0;TI=0;if(point==0){if(RECEIVR_buffer=='s')point++;elsepoint=0;}if(point>0&&point<35)buffer[point++]=RECEIVR_buffer;elsepoint=0;}//TI=0;if(point==35&&RI==0){ command=buffer[34];point=0; x=0;for(k=2;k<34;k++){SBUF=buffer[k]; sort[k-2]=buffer[k]; while(TI==0);TI=0;} }}voiddelay(intk)//延时程序{while(k--);}//**********************************************************************//静态显示程序//功能:将显示数据处理后,控制串并转换器并行输出控制LED显示//**********************************************************************voiddisplay()//显示子程序{EN=1;P21=1;CLEAR_L=0; delay(5); CLEAR_L=1;for(i=0;i<16;i++){CLK_L=0;A1=H1[i];A2=H2[i];CLK_L=1; L1=ziku[i+z]; L2=ziku[i+16+z];if(i+z<0||i+z>15)continue; OE=1; LE=1; if(L1==0x00&&L2==0x00) continue; for(j=0;j<8;j++){CLK_H=0; if(L1&W==1)A3=0;elseA3=1;if(L2&W==1) A4=0;elseA4=1; CLK_H=1; L1>>=1; L2>>=1;}OE=0; LE=0; delay(110); CLEAR_H=0; delay(1); CLEAR_H=1;}}//右移显示//功能:使得LED产生画面右移得效果voidsdisplay_left(){if(m==0){ z++; m=30; } if(z==15) { l=0; z=0; }display(); m--;}//**********************************************************************//右移显示//功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度智慧社区工程质量保证合同3篇
- 2025年度物业服务合同:某小区物业管理公司提供物业服务协议3篇
- 二零二五年度废旧农业机械买卖及保养维修合同3篇
- 二零二五年度水利工程供水供电安全保障合同3篇
- 2025年度生猪销售与冷链仓储物流服务合同3篇
- 海南体育职业技术学院《组成原理与接口技术》2023-2024学年第一学期期末试卷
- 翻译专家课程设计
- 运营环境插画课程设计
- 2025年初中秋季开学典礼校长讲话稿样本(3篇)
- 二零二五年度搅拌车运输项目合作框架协议
- 供应商审核培训教程
- 整合营销策划-标准化模板
- 物业前期介入与承接查验要点精讲培训
- 四川省广元市2022-2023学年八年级上学期语文期末试卷(含答案)
- 抗震支吊架-检验批质量验收记录
- 【APP违规收集个人信息的法律问题分析9800字(论文)】
- 商品房预售合同签约证明和预告登记申请书
- 质量管理体系成熟度评估表
- 单体调试及试运方案
- 2023-2024学年浙江省杭州市城区数学四年级第一学期期末学业水平测试试题含答案
- 五星级酒店市场调研报告
评论
0/150
提交评论