版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Ⅰ、毕业设计(论文)题目基于MS51单片机的4个16x16点阵LED电子显示屏的设计Ⅱ、毕业设计(论文)工作内容设计一个四位的16X16的点阵电子显示屏。利用单片机串口扩展为并口,实现数据的列扫描,利用单片机的P1口译码来实现行扫描。加深对单片机和数字电路的理解,熟悉单片机串口的工作方式以及串口的扩展。学会独立的查找资料,并给出完整的设计方案。为以后独立开展与专业相关的工作打下了基础。熟练使用protel,keil,C软件。学会论文的撰写及排版工作。本方案设计一个电子显示屏,具体要求满足以下条件:(1)要求采用51单片机作为微控制器;(2)通过四个16x16的点阵LED进行文字显示;(3)在目测条件下LED显示屏各点亮度均匀、充足、稳定、清晰无串扰。(4)文字显示具有每排字有滚动和逐排等显示方式。Ⅲ、进度安排:第1-2周收集资料并整理设计思想第3-4周开始硬件部分设计,学习AT89S52单片机的应用第5周列驱动电路设计第6周行驱动电路设计第7周绘制PROTELL原理图第8周软件设计第9周软件设计—显示驱动程序第10周软件设计—系统主程序第11周调试并进行性能分析第12-14周整理文档
Ⅳ、主要参考资料:[1]诸昌钤
编著:《LED显示屏系统原理及工程技术》.成都:电子科技大学出版社,2000
[2]张志良
主编:《单片机原理及控制技术》(第2版).北京:机械工业出版社,2005[3]李光飞
编著:《单片机课程设计实例指导》(第2版).北京:北京航空航天出版社,[4]吴金戍,沈庆阳,郭庭吉编著.8051单片机实践与应用.北京:清华大学出版社.[5]吉
雷
主编:《Protel99从入门到精通》.
西安:西安电子科技大学出版社,2004.[6]侯丽玲:基于AT89S52单片机的LEDD点阵显示屏控制系统的设计[J],漳州职业技术学院学报。系负责人审核意见(从选题是否符合专业培养目标、是否结合科研或工程实际、综合训练程度、内容难度及工作量等方面加以审核):PAGE32
摘要LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成.LED点阵显示屏可以显示数字或符号,通常用来显示时间、速度、系统状态等。本设计是4个16×16点阵LED电子显示屏的设计。整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。通过该芯片控制一个行驱动器74LS154和八个列驱动器74HC595来驱动显示屏显示。该电子显示屏可以显示各种文字或单色图像,全屏能显示4个汉字,采用16块8x8点阵LED显示模块来组成4个16x16点阵显示模式。显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。关键词:AT89C51单片机LED点阵显示动态显示
AbstractAsapopulardisplaydevicecomponent,LEDdot-matrixdisplayboardconsistsofseveralindependentLED(LightEmittingDiode).TheLEDdot-matrixdisplayboardcandisplaythenumberorsign,anditisusuallyusedtoshowtime,speed,thestateofsystemetc.Thisdesignis416×16latticeLEDelectrondisplaymonitordesign.Thewholeequipmentiswiththe40-pinAT89C51MCU(MicroControllerUnit)producedbytheAmericanATMELcompanyatthecore,introducedtakeitasthecontrolsystemLEDlatticeelectrondisplaymonitordynamicdesignandthedevelopmentprocess.Controlsgooddriver74LS154andeightrowdriver74HC595throughthischipactuatesthedisplaymonitordemonstration.Theelectronicscreencanshowallkindsofwrittenormonochromeimages,onefullscreendisplayChinesecharacters,sixteenpiecesof8x8dot-matrixLEDdisplaymodulestoformthe16x16dotmatrixdisplaymode.Showdynamicshowthatmakesstaticgraphicortextcanbeachieved,shiftedoutofvariousformats.ThispaperdescribesthehardwaredesignoftheLEDdotmatrixdisplay,andtheprinciplefunctionofthevariouspartsofthecircuit,thecorrespondingsoftwareprogramdesignandtheuseofsomesuch.Keywords:AT89C51MicroControllerUnit;LED;LatticeDisplay;DynamicDisplay
目录TOC\o"1-3"\h\u摘要 2Abstract 3第一章绪论 51.1问题提出 51.2课题背景 6第二章功能要求及方案论证 82.1功能要求 82.2显示模块方案论证 82.3数据传输方案论证 9第三章系统硬件电路的设计 113.1单片机系统及外围电路 113.2列驱动电路 133.3行驱动器 153.4元件清单 18第四章系统程序的设计 204.1显示驱动程序 204.2系统主程序 22第五章调试及性能分析 275.1开发环境介绍 275.2理论性能分析 275.3系统调试 28第六章总结 296.1工作过程介绍 296.2系统功能的拓展方向 29致谢 32
第一章绪论1.1问题提出LED显示屏分为数码显示屏、图文显示屏和视频显示屏,均由LED矩阵块组成。LED数码显示屏的显示器件为7段码数码管,适于制作时钟屏、利率屏等,显示数字的电子显示屏。图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。这些优点概括起来是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。近年来,单片机已经成为科技领域的有力工具,人类社会生活的得力助手。它的广泛应用,不仅仅体现在工业控制、机电应用、智能仪表、实时控制、航空航天、尖端武器等行业和领域的智能化、高精度化,而且在人类日常生活中也随处可见它的身影。单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。目前,单片机正朝着高性能和多种方向发展,其趋势将进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展,其功能也将越来越丰富,速度也越来越快,甚至有些方面并不逊于ARM或DSP。随着LED显示屏在广告传媒领域逐渐崭露头角,其控制系统也如雨后春笋,层出不穷。由于它的控制系统均是基于嵌入式微处理器开发,所以单片机在其中也占有一席之地。但是,由于LED显示屏控制较复杂,特别是对于显示特殊效果,如循环移动、覆盖霓虹灯效果,要求处理器运算速度快、执行效率高,所以很多控制卡生产厂家采用高端嵌入式系统进行设计。这样做虽然能在一定程度上提高数据处理速度,但是并不能完全满足所有显示效果要求,而且开发和产品成本也会随之成倍增加,甚至由于其设计不当可能在显示时出现抖动、闪烁、重影等现象。归根结底,LED显示屏控制卡的设计中硬件是一方面因素,同时还要考虑到显示数据组织方式,通过软硬件结合的方法才能设计出一款性价比较高的控制卡。本论文提出基于普通51系列单片机实现LED显示屏控制的原理及方法。1.2课题背景LED显示屏的发展可分为以下几个阶段:第一阶段为1990年到1995年,主要是单色和16级双色图文屏。用于显示文字和简单图片,主要用在车站、金融证券、银行、邮局等公共场所,作为公共信息显示工具。第二阶段是1995年到1999年,出现了64级、256级灰度的双基色视频屏。视频控制技术、图像处理技术、光纤通信技术等的应用将LED显示屏提升到了一个新的台阶。LED显示屏控制专用大规模集成电路芯片也在此时由国内企业开发出来并得以应用。第三阶段从1999年开始,红、纯绿、纯蓝LED管大量涌入中国,同时国内企业进行了深入的研发工作,使用红、绿、蓝三原色LED生产的全彩色显示屏被广泛应用,大量进入体育场馆、会展中心、广场等公共场所,从而将国内的大屏幕带入全彩时代。随着LED原材料市场的迅猛发展,表面贴装器件从2001年面世,主要用在室内全彩屏,并且以其亮度高、色彩鲜艳、温度低的特性,可随意调整的点间距,被不同价位需求者所接受,在短短两年多时间内,产品销售额已超过3亿元,表面贴装全彩色LED显示屏应用市场进入新世纪。为了适应2008年奥运会的“瘦身”计划,利亚德开发了表面贴装双基色显示屏,大量用于训练馆和比赛计时计分系统。在奥运场馆全彩屏方面,为紧缩投资,全彩屏大部分采用可拆卸方式,奥运期间可作为实况转播工具,赛事结束后可用于租赁,作为演出、国家政策发布等公共场合应用工具,通过这种方式可尽快收回成本。单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。SCM即单片微型计算机(SingleChipMicrocomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。MCU即微控制器(MicroControllerUnit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。单片机可以从以下几个方面分类:1.按应用领域可分为:家电类、工控类、通信类和个人信息终端类等。2.按通用性可分为:通用型和专用型。3.按总线结构可分为总线型和非总线型。4.按指令运行的振荡周期可分为标准型和改进型。第二章功能要求及方案论证2.1功能要求本方案设计一个电子显示屏,具体要求满足以下条件:1.要求采用51单片机作为微控制器;2.通过四个16x16的点阵LED进行文字显示;3.在目测条件下LED显示屏各点亮度均匀、充足、稳定、清晰无串扰。4.文字显示具有每排字有滚动和逐排等显示方式。2.2显示模块方案论证四个8×8的点阵构成一个16×16的点阵。行和列的交叉处有一个LED,共由256个LED构成,如果LED的阳极与行相连,而阴极与列相连,那么只要给该LED对应的行以高电平,列以低电平,那么对应的LED就发光。图2-1画出了室内直插式8×8点阵双基色LED模块实物图。这种模块由64个发光LED芯片以8×8的形式构成一个正方形模块,然后用2列8针引脚将内部电路接口引出,供驱动电路使用。图2-1LED点阵显示原理图
行对应的给LED的阳极,先给第一行以高电平,如果送给16列的代码为EFFF,则第一行的第4个LED被点亮,再给第二行以高电平,如果送给16列的代码为EF07,则第二行的第4、9、10、11、12、13个被点亮,接着给第三行以高电平,同时给列以驱动代码,这样不断地进行行行的扫描,只要速度够快,由于人的视觉暂留作用,就不会感觉到明显的闪烁感。点阵上会看到一个清晰的“机”字。LED数码管结构简单,价格便宜。本文所述的是LED的数据显示方式,这种方式通常使用8段LED或者16段LED。在实际应用中,点亮LED数码管的方式有静态和动态2种方法。本文以8段LED作为示例来论证方案1.静态显示方式静态显示方式,即8段LED数码管在显示某一个数码时,加在数码管上的段码保持不变,直至换显其他数码为止。这样数码管的每一段均应由一条输出线来控制,每显示以为数码需要8根输出线,当N位显示则需N×8根输出控制线。占用较多I/O资源。2.动态显示方式为解决静态显示占用较多I/O资源的问题,在多位显示时通常采用动态显示方式,动态显示是将所有数码管的段码线对应并联在一起,由一个8位的输出口控制,每位数码管的公共端分别出一位I/O线控制。显示不同数码时,由位线控制各位轮流显示。位线控制某位选通时,该位应显示数码的段码同时加在段码线上,即每一时刻仅仅有一位数码管是被点亮的,当轮流显示的速度较快(每秒24次以上),由于人眼的视觉暂留现象,看起来就像所有位同时显示一样,这时,我们就能看到稳定的图像了由于单片机的特性,我们将采用方案2:动态显示方式,采用动态显示方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。2.3数据传输方案论证显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并列传输的方案是不可取的。采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一列数据。为了达到重叠处理的目的,列数据的显示就需要具有所存功能。经过上述分析,就可以归纳出列驱动器电路应具有的功能。对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。图2-2为显示屏电路实现的结构框图。图2-2.显示屏电路框图
第三章系统硬件电路的设计硬件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路三部分。16×16点阵显示屏的硬件原理图如图3-6。3.1单片机系统及外围电路单片机采用MSC-51或其兼容系列芯片,采用24MHZ或更高频率晶振,以获得较高的刷新频率,时期显示更稳定。单片机的串口与列驱动器相连,用来显示数据。P1口低4位与行驱动器相连,送出行选信号;P1.5~P1.7口则用来发送控制信号。P0口和P2口空着,在有必要的时候可以扩展系统的ROM和RAM。图3-1MSC51单片机最小系统MSC51单片机管脚说明如下:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2列驱动电路列驱动电路由集成电路74HC595构成。它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行列数据的同时,传送下一行的列数据,既达到重叠处理的目的。图3-274HC595结构图表74HC595的外形及内部结构如图3-2所示。它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。引脚SI是串行数据的输入端。引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。74HC595引脚说明见表3-1。列驱动电路见图3-3。表3-174HC595引脚说明符号引脚描述Oo~O71~7并行数据输出GND8地Q7’9串行数据输出SRCLR10主复位(低电平)SRCLK11移位寄存时钟输入RCLK12存储寄存时钟输入CE13输出有效(低电平)SER14串行数据输入VCC16电源移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入输出锁存器。引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高组态。SCLR信号是移位寄存器清零输入端,当其为低时移位寄存器的输出全部为零。由于SCK和RCK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。芯片的输出端为QA~QH,最高位QH可作为多片74HC595级联应用时,向上一级的级联输出。但因为QH受输出锁存器的打入控制,所以还从输出锁存器前引出QH,作为与移位寄存器完全同步的级联输出。图3-3列驱动电路将8片74HC595进行级连,可共用一个移位时钟SCK及数据锁存信号RCK。这样,当第一行需要显示的数据经过8x8=64个SCK时钟后便可将其全部移入74HC595中,此时还将产生一个数据锁存信号RCK将数据锁存在74HC595中,并在使能信号G的作用下,使串入数据并行输出,从而使与各输出位对应的场驱动管处于放大或截止状态;同时由行扫描控制电路产生信号使第一行扫描管导通,相当于第一行LED的正端都接高,显然,第一行LED管的亮灭就取决于74HC595中的锁存信号;此外,在第一行LED管点亮的同时,再在74HC595中移入第二行需要显示的数据,随后将其锁存,同时由行扫描控制电路将第一行扫描管关闭而接通第二行,使第二行LED管点亮,以此类推,当第十六行扫描过后再回到第一行,这样,只要扫描速度足够高,就可形成一幅完整的文字或图像。3.3行驱动器由于4点阵显示器有16行,为充分利用单片机的接口,本电路中加入了一个4-16线译码器74LS154,其输入是一个16进制码,解码输出为低态扫描信号,它的结构如图3-4所示。图3-474LS154结构图74LS154引脚说明如表3-2表3-2符号引脚描述~,~1~11,13~17输出端GND12GND电源地~18~19使能输出端A、B、C、D20~23地址输出端Vcc24VCC电源正图3-5行驱动电路如图3-5所示的行驱动电路中,把74LS154的G1和G2引脚接地,然后以A、B、C、D四脚为输入端。就会形成16种不同的输入状态,分别为0000~1111,然后使每种状态只控制一路输出,即会有16路输出。如果一行64点全部点亮,则通过74LS154的电流将达640mA,而实际上,74LS154译码器提供不了足够的吸收电流来同时驱动64个LED同时点亮,因此,应在74LS154每一路输出端与16x64点阵显示器对应的每一行之间用一个三极管来将电流信号放大,本文选用的是三极管8550。这样,74LS154某一输出脚为低电平时,对应的三极管发射极为高电平从而使点阵显示器的对应行也为高电平。
3.4元件清单在本次设计中,用到的元件清单如下表3-3表3-3元件名称数量(个)8×8LED显示屏16MSC51单片机174LS154线译码器174LS595集成电路874HC245驱动芯片174HC00与非门1
图3-64个16×16点阵显示屏硬件原理图图3-6为4个点阵显示屏硬件原理图,因为市场上买不到16×16的点阵显示屏,所以在现实中,硬件部分采用了4块8×8的点阵显示屏来构成1块16×16LED显示屏.第四章系统程序的设计显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。根据软件分层次设计的原理,可以把显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动器程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。从有利于实现较复杂的算法(显示效果处理)和有利于程序结构化考虑,显示屏程序适宜采用C语言编写。4.1显示驱动程序显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下:刷频率(帧频)=×溢出率=×(4-1)其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。图4-1为显示驱动程序(显示屏扫描函数)流程图。
图4-1.显示驱动程序流程图显示驱动程序:多个16*16LED显示演示程序MCUAT89C51XAL24MHz//以下程序能实现多个16*16LED屏的多个字符显示,显示方式有整行上移、帘入帘出、左移、右移//#include"reg52.h"#defineBLKN8//列锁存器数(=LED显示字数*2)#defineTOTAL20//待显示字个数,本例共20个#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单元///**********显示屏扫描(定时器T0中断)函数**********/voidleddisplay(void)interrupt1using1{registerunsignedcharm,n=BLKN;TH0=0xFc;//设定显示屏刷新率每秒62.5帧(16毫秒每帧)TL0=0x18;m=CONIO;//读取当前显示的行号m=++m&0x0f;//行号加1,屏蔽高4位do{n--;SBUF=dispram[m*2+(n/2)*30+n];//送显示数据while(!TI);TI=0;}while(n);//完成一行数据的发送G=1;//消隐(关闭显示)CONIO&=0xf0;//行号端口清○CLK=1;//显示数据打入输出锁存器CONIO|=m;//写入行号CLK=0;//锁存显示数据G=0;//打开显示}//4.2系统主程序本文设计的系统软件能使系统在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示图形,停留约3s;接着向上滚动显示“我爱单片机”这5个汉字及一个图形,然后以“卷帘入”效果隐去图形。由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。图5是系统主程序流程图。图5.系统主程序流程图系统主程序:/*****************主函数*********************/voidmain(void){registerunsignedchari,j,k,l,q,w;//初始化SCON=0x00;//串口工作模式0:移位寄存器方式TMOD=0x01;//定时器T0工作方式1:16位方式TR0=1;//启动定时器T0CONIO=0x3f;//CONIO端口初值IE=0x82;//允许定时器T0中断//while(1){delay(2000);//2秒//第一种显示效果:卷帘出显示笑脸图案for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=Bmp1[5][i];}if(i%2)delay(120);}delay(1000);//卷帘出显示文字,每次字数为BLKN/2,共显示TOTAL*2/BLKN次for(w=0;w<TOTAL*2/BLKN;w++){for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=Bmp[q+w*BLKN/2][i];}if(i%2)delay(120);}delay(3000);}//第一种显示效果:卷帘出显示笑脸图案for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=Bmp1[5][i];}if(i%2)delay(120);}delay(1000);//第二种显示效果:向上滚屏,每次BLKN/2个字for(i=0;i<TOTAL*2/BLKN;i++){for(j=0;j<16;j++){for(k=0;k<15;k++){for(q=0;q<BLKN/2;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<BLKN/2;q++){dispram[30+q*32]=Bmp[q+i*BLKN/2][j*2];dispram[31+q*32]=Bmp[q+i*BLKN/2][j*2+1];}delay(100);}delay(3000);//滚动暂停}//第一种显示效果:卷帘出黑屏for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=0xff;}if(i%2)delay(120);}delay(1000);//第三种显示效果:左移出显示for(i=0;i<TOTAL;i++){for(j=0;j<2;j++)for(k=0;k<8;k++){for(l=0;l<16;l++){for(q=0;q<BLKN/2;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[l*2+1+q*32]=dispram[l*2+1+q*32]<<1|Bmp[i][l*2+j]>>(7-k);elsedispram[l*2+1+q*32]=dispram[l*2+1+q*32]<<1|dispram[l*2+(q+1)*32]>>7; }}delay(100);}}delay(3000);//第一种显示效果:卷帘出黑屏for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=0xff;}if(i%2)delay(120);}delay(1000);//第三种显示效果:右移出显示for(i=0;i<TOTAL;i++){for(j=2;j>0;j--)for(k=0;k<8;k++){for(l=0;l<16;l++){for(q=0;q<BLKN/2;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|Bmp[i][l*2+j-1]<<(7-k);elsedispram[l*2+q*32]=dispram[l*2+q*32]>>1|dispram[l*2+1+(q-1)*32]<<7; }}delay(100);}}delay(3000);//第四种显示效果:卷帘入for(i=0;i<32;i++){for(q=0;q<BLKN/2;q++){dispram[i+q*32]=0x00;}if(i%2)delay(100);}}}
第五章调试及性能分析5.1开发环境介绍程序编写采用Keil51环境下调试,KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。5.2理论性能分析LED显示屏硬件电路只要硬件质量可靠,引脚焊接正确,一般无需调试即可正常工作。软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。显示屏刷新率由定时器T0的溢出率和单片机的晶振频率决定,表5-1给出了实验调试时采用的频率及其对应的定时器T0初值。表5-1显示平刷新率与T0初值关系表(24MHz晶振)刷新率255062.57585100120T0初值0xec780xf63c0xf8300xf97e0xfa420xfb1e0xfbee从理论上来说,24Hz以上的刷新频率就能看到稳定的连续的显示,刷新率越高,显示越稳定,同时刷新频率越高,显示驱动程序占用的CPU时间越多。试验证明,在目测条件下刷新频率40Hz一下的画面看起来闪烁较严重,刷新频率50Hz以上的已基本察觉不出画面的闪烁,刷新频率达到85Hz以上时再增加画面闪烁没有明显的改善。这个方案设计的16x16的点阵LED图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;显示屏各点亮度均匀、充足;显示图形或文字稳定、清晰无串扰;可用静止、移入移出等多种显示方式显示图形或文字。5.3系统调试调试主要分为硬件调试和软件调试:
硬件调试:在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。当然,在设计的过程中也存在着失误和不足。
软件调试:软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是C语言,所以这个系统在编写程序过程中都采用C语言编写。刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。但是,在实际写如S51中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行。
第六章总结6.1工作过程介绍本文设计的一个室内用16x16的点阵LED图文显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。总结本文的研究工作,主要做了下面几点较突出的工作:一、通过查阅大量的相关资料,详细了解了LED的发光原理和LED显示屏的原理,了解了LED的现状,清楚地了解了LED显示屏与其它显示屏相比较有那些优点,明确了研究目标。二,本文设计的LED显示屏能够实现在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。三,文章给出了系统具体的硬件设计方案,硬件结构电路图,软件流程图和具体汇编语言程序设计与调试等方面。四,在这次毕业设计的过程中学会了Protel99se的基本使用,感到Protel99se对自动化专业的同学来说是一门很有用的课程。五,通过这次毕业设计,重新复习并进一步学习了MCS-51;熟练掌握了WORD软件的使用。6.2系统功能的拓展方向本设计作品不但可以运用到车站、医院等行业,而且可以通过拓展,发展出更多的用途.本作品单片机部分P0和P2空闲,必要时,可以扩展系统的ROM和RAM。可以做为下位机辅助调试模块,实现例如照明,温度测量,时钟报警、计时,霓虹灯等功能。利用发光二极管的控制电压很低和控制方法简单的优点,将它装在室内天棚中或做成大型灯饰,通过电脑输出信号直接驱动三极管后控制它的开关状态。由于使用了电脑,再多的的LED数量也能方便自如地控制,得到时暗可变颜色可变绚丽多彩的照明效果,并且已有成功的案例。例如在美国“雨林咖啡厅”上做了一个色彩变幻的彩色天棚,在Hollyword赌场做了一盏色彩斑烂的大型艺术吊灯。
当然,将许多个发光二极管拼在一起做成一盏盏灯后做成标志牌,标志线也是目前常见的应用手法。英国千禧宫高达100米的支撑柱顶部的每只红色航空障碍灯就有1万多颗红色发光二极管组成。到目前为止,对LED的技术开发都是以普通照明用途为最终目标的。而且从当今的发展速度看,其成为新一代普通照明光源已成定势。与此同时,LED在照明以外的用途也开始受到关注。比如使用LED产品替代农药进行杀菌、杀虫;冰箱内用LED促进蔬菜光合成产生维生素;利用LED可控制波长的特点进行的特殊应用等等。在机动车、铁路、轮船等交通工具领域,LED以低能耗、体积小的特点正在迅速普及。总之,LED的优势不仅是在照明领域,其在诸多领域中亦潜力巨大,期待今后的进一步开发。
参考文献[1]郭建江.单片机技术与应用.东南大学出版社.[2]诸昌钤编著:《LED显示屏系统原理及工程技术》.成都:电子科技大学出版社[3]张志良主编:《单片机原理及控制技术》.北京:机械工业出版社,2005[4]李光飞编著:《单片机课程设计实例指导》.北京:北京航空航天出版社,[5]吴金戍,沈庆阳,郭庭吉编著.8051单片机实践与应用.北京:清华大学出版社.[6]吉雷主编:《Protel99从入门到精通》.西安:西安电子科技大学出版 社,2004.[7]侯丽玲:基于AT89S52单片机的LEDD点阵显示屏控制系统的设计[J],漳州 职业技术学院学报,2008年第3期[8]PaulF.Lister:Single-chipmicrocomputers.Austin,Tex.:Motorola SemiconductorProducts,c1984
基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论