基于单片机的LED显示屏的动态显示_第1页
基于单片机的LED显示屏的动态显示_第2页
基于单片机的LED显示屏的动态显示_第3页
基于单片机的LED显示屏的动态显示_第4页
基于单片机的LED显示屏的动态显示_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1绪论21.1LED显示屏的开展背景及国内外研究现状21.2设计目标及采取的方案21.2.1本设计的目标21.2.2本设计采取的方案31.3文章的结构安排32系统总体分析52.1显示局部52.2驱动电路的选择62.3电源模块选择62.4工作原理62.5总体设计73系统硬件设计83.1AT89C51芯片的介绍93.2时钟电路133.3复位电路133.4驱动电路设计143.4.12N5551与2N5401三极管的主要参数143.4.28255芯片的介绍153.5键盘模块设计173.6点阵式汉字LED显示屏设计183.6.1LED的特点以及常用的参数183.6.2LED电子显示屏203.6.3LED电子显示屏显示字符原理213.6.4汉字显示的原理233.7整体电路284系统软件设计304.1主程序设计304.2子程序设计355结论396致谢40参考文献411绪论1.1LED显示屏的开展背景及国内外研究现状在大型商场、车站、码头、地铁站以及各类办事窗口等越来越多的场所需要用LED点阵显示图形和汉字。LED行业已成为一个快速开展的新兴产业,市场空间巨大,前景广阔。随着信息产业的高速开展,LED显示作为信息传播的一种重要手段,已广泛应用于室内外需要进行效劳内容和效劳宗旨宣传的公众场所,例如户内外公共场所广告宣传、机场车站旅客引导信息、公交车辆报站系统、证券与银行信息显示、餐馆报价信息豆示、高速公路可变情报板、体育场馆比赛转播、楼宇灯饰、交通信号灯、景观照明等。显然,LED显示已成为城市亮化、现代化和信息化社会的一个重要标志。LED点阵设计主要应用于显示屏,它是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。由于它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内室外环境适应能力强等优点,自20世纪80年代后期开始,随着LED制造技术的不断完善,在国外得到了广泛的应用。在我国改革开放之后,特别是进入90年代国民经济高速增长,对公众场合发布信息的需求日益强烈,LED显示屏的出现正好适应了这一市场形势,因而在LED显示屏的设计制造技术与应用水平上都得到了迅速的提高。LED显示屏经历了从单色、双色图文显示屏,到图像显示屏的开展过程。1.2设计目标及采取的方案1.2.1本设计的目标毕业设计是学生完本钱专业教学方案到达培养目标的重要的教学环节,是教学方案中综合性最强的实践性教学环节,它对于培养学生正确的思想和工作作风,提高学生综合运用专业知识分析和解决实际问题的能力,到达工程技术人员所必须具备的根本素质等方面具有重要的意义。本设计的理论根底是单片机技术根底,微机原理,模拟和数子电路。比方AT89C51芯片的一些工作原理是在MCS—51的根底上通过改良完成的。8255芯片的工作方式是在微机原理介绍的。三极管和74LS154的工作原理也分别在模拟和数子电路里介绍过。通过本设计不仅把以前学过的知识重新温习,而且在查阅课外资料时还有好多芯片都是以学过的芯片为根底,并且在其根底上改良和完善的。通过这次毕业设计使我在学校学习的理论知识和实际应用有机地结合起来,同时也能培养我独立思考、勇于创新的科学态度和钻研精神,为我将要踏上工作岗位做一次提前的锻炼。本设计采取的方案1〕利用单片机控制技术控制LED的显示,再结合单片机的程序作线路布置,即硬件设计。2〕行列电路设计,分析电路图确定整个系统大概的规模。3〕进行系统分析,通过系统分析,确定该系统该具有那些功能,有那些模块,各个模块之间是怎样联系的,以及怎样组合的。4〕确定所需的元器件,然后通过电路图进行连接。5〕集合程序调试,调试整个的系统模块的功能,看各个功能是否能正常运行,并找出程序中的错误,改正这些错误。6〕最终能在LED电路板上显示所要的图形或汉字。1.3文章的结构安排本设计在绪论里主要介绍LED显示的开展背景,设计的目标及采取的方案,本设计的章节结构安排及使用的技术。把系统总体设计作为第二局部,在这局部里介绍了各种元器件以及芯片的选择;第三局部是硬件电路的设计;主要对AT89C51芯片的具体介绍,时钟电路,复位电路,驱动电路,8255芯片,点阵式汉字LED显示屏电路设计等一些硬件进行分析。这一局部是本设计的重点。第四局部是系统软件设计,主要是用汇编语言对图形汉字编程设计;第五局部是对全文的总结。第六局部是致谢,第七局部是参考文献。2系统总体分析本节是该设计的方案与比拟局部,对设计中所采用的芯片从多方面综合的进行比拟,最后经过仔细的研究后决定所选的器件。2.1显示局部显示局部是本次设计最核心的局部,我先对LED8*8点阵显示进行选择然后再其改根底上扩展成LED16*16。对于LED8*8点阵显示有以下两种方案:静态显示,将一帧图像中的每一个二极管的状态分别用0和1表示,假设为0,那么表示LED无电流,即暗状态;假设为1那么表示二极管被点亮。假设给每一个发光二极管一个驱动电路,一幅画面输入以后,所有LED的状态保持到下一幅画。对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,本钱高,且可靠性也较低。动态显示,对一幅画面进行分割,对组成画面的各局部分别显示,是动态显示方式。动态显示方式,可以防止静态显示的问题。但设计上如果处理不当,易造成亮度低,闪烁问题。因此合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。动态显示采用多路复用技术的动态扫描显示方式,复用的程度不是无限增加的,因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素。通过实验发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz,发光二极管导通时间≥1ms时,显示亮度较好,无闪烁感。由于静态显示方式,所需的译码驱动装置很多,引线多而复杂,本钱高,且可靠性也较低。而动态显示可以防止静态显示的问题,只是在设计时应注意合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。且动态显示易于制作和理解,又能稳固所学知识,到达毕业设计的目标。我采用动态显示。2.2驱动电路的选择驱动电路的选择采取并口输入,占用大量I/O口资源。选取串口输入,I/O口资源使用较少。所以我选用串口输入。电路中行方向由AT89C51的p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个4.7k*8的排阻上拉。为提供负载能力,接16个2N5551的NPN三极管驱动。列方向那么由4—16译码器74LS154完成扫描,它由89C51的P1.0P1.3控制。同样,驱动局部那么是16个2N5401的三极管完成的。2.3电源模块选择采用干电池作为LED点阵系统的电源,由于点阵系统耗电量较大,使用干电池需经常换电池,不符合节约型社会的要求。点阵系统要悬挂在墙上,电池总量大,使用会有较大平安隐患。采用一片LM7805三端稳压器,耗电电流为100Ma左右的电源作为系统电源,不仅功率上可以满足系统需要,不需要更换电源,并且比拟轻便,使用更加平安可靠。基于以上分析,我决定采用采用LM7805三端稳压器电源作为系统电源。2.4工作原理利用单片机进行LED汉字显示平设计与制作是利用单片机控制技术,编写程序,通过程序控制LED的显示,显示所要显示的内容。技术线路为通过程序控制AT89C51芯片输出上下电平,上下电平控制分别控制LED的亮和灭,最终到达所要显示的内容。在显示电路中,主要靠按键来实现各种显示要求的选择与切换。本设计介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,没有使用8*8的点阵发光管模块,而是直接使用了256个高量度发光管,组成了16行16列的发光点阵。同时为了降低制作难度,仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。我们把行列总线接在单片机的IO口,然后把扫描代码送入总线,就可以得到显示的汉字了。但是假设将LED点阵的行列端口全部直接接入89C51单片机,那么需要使用32条IO口,这样会造成IO资源的耗尽,系统也再无扩充的余地。因此,我们在实际应用中只是将LED点阵的16条行线直接接在P0口和P2口,至于列选扫描信号那么是由4-16线译码器74LS154来选择控制,这样一来列选控制只使用了单片机的4个IO口,节约了很多IO资源,为单片机系统扩充使用功能提供了条件。考虑到P0口必需设置上拉电阻,我们采用4.7kΩ排电阻作为上拉电阻。2.5总体设计有上述工作原理,我画出来该系统的框图。设计总体框图如图:4*4键盘系统框图8255AT89C51时钟/复位电路LED大屏幕显示图2-1系统框图3系统硬件设计LED点阵设计主要应用于显示屏,它是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。由于它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内室外环境适应能力强等优点,自20世纪80年代后期开始,随着LED制造技术的不断完善,在国外得到了广泛的应用。在我国改革开放之后,特别是进入90年代国民经济高速增长,对公众场合发布信息的需求日益强烈,LED显示屏的出现正好适应了这一市场形势,因而在LED显示屏的设计制造技术与应用水平上都得到了迅速的提高。LED显示屏经历了从单色、双色图文显示屏,到图像显示屏的开展过程。本设计采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74LS154)、16×16LED点阵5局部组成,如下图。图3-1硬件电路图3.1AT89C51芯片的介绍AT89C51是一种带4kB闪烁可编程可擦除只读存储器(FalshProgrammableandErasableReadOnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。该器件采用ATMEL公司高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1000次写/擦循环,数据保存时间为10年。他是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化电子设计与制作过程中经常用到AT89C51芯片。其主要参数及引脚图及其功能如下:主要性能参数:1〕与MCS-51产品指令系统完全兼容2〕4k字节可重擦写Flash闪速存储器3〕1000次擦写周期4〕全静态操作:0Hz—24MHz5〕三级加密程序存储器6〕128*8字节内部RAM7〕32个可编程I/O口线8〕低功耗空闲和掉电模式9〕6个中断源图3-2AT89C51引脚图AT89C51是一个低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器〔EPROM〕和128bytes的随机存取数据存储器〔RAM〕,器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储器单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出〔I/O〕端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本钱。管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏极开路双向1/0口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在Flash编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高.P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接出4TTTL门电流.P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故.在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口管脚被外部拉底,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD〔串行输入口〕P3.1TXD〔串行输出口〕P3.2/INT0(外部中断0)P3.3/INT1〔外部中断1〕P3.4T0〔记时器0外部输入〕P3.5T1〔记时器1外部输入〕P3.6/WR〔外部数据存储器写选通〕P3.7/RD〔外部数据存储器读选通〕P3口同时为闪烁编程和编程校验接收一些控制信号。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时钟电路由AT89C51的18,19脚的时钟端(XTALl及XTAL2)以及12MHz晶振X1、电容C2,C3组成,采用片内振荡方式。图3-3时钟电路3.3复位电路复位电路的根本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。采用简易的上电复位电路,主要由电阻R1,R2,电容C1,开关K1组成,分别接至AT89C51的RST复位输入端。图3-4复位电路图图3-5复位电路输入-输出特性3.4驱动电路设计2N5551与2N5401三极管的主要参数行驱动局部那么是16个2N5551小功率硅三极管,其主要的参数如下:2N5551小功率硅三极管参数:1〕类型:NPN2〕直流电流增益hFE最小值(dB):803〕直流电流增益hFE最大值(dB):2504〕集电极-发射集最小雪崩电压Vceo(V):1605〕集电极最大电流Ic(max)(mA):0.6006〕最小电流增益带宽乘积Ft(MHz):100列驱动局部那么是16个2N5401小功率硅三极管,其主要的参数如下:2N5401的技术参数:1〕集电极-发射集最小雪崩电压Vceo(V):1502〕集电极最大电流Ic(max)(mA):0.5003〕直流电流增益hFE最小值(dB):604〕直流电流增益hFE最大值(dB):2405〕最小电流增益带宽乘积Ft(MHz):1006〕封装/温度(℃):TO92/-55~1503.4.28255芯片的介绍8255是微机并行接口芯片。8255是可编程I/O口扩展芯片。对8255输入不同的指令可改变I/O口的工作方式。8255与单片机系统连接方式简单,工作方式由程序设定,图3-6为8255的引脚图。图3-68255的引脚图图3-78255的内部结构图8255内部有4个存放器:分别为存放器A、B、C和控制存放器。A、B、C存放器的数据就是引脚PA7~PA0、PB7~PB0、PC7~PC0上输入或输出的数据。而控制存放器的数据那么说明PA、PB、PC的工作方式。通过CS、A0、A1、RD和WR对4个存放器进行操作。1〕CS为低电平时选通8255;2〕A1、A0为地址选通;3〕RD和WR为读、写信号:RD为低、WR为高时为读方式,RD为高、WR为低时为写方式。4〕D0~D7为数据口。向控制存放器写入不同的数据可以使8255工作在三种不同的方式下。这里只介绍应用最多的方式0。方式0下8255的PA、PB及PC口上半局部〔PC7~PC4〕和下半局部〔PC3~PC0〕中任何一个端口都可以设定为输入或输出,PC口还可以进行位操作。3.5键盘模块设计键盘、状态显示模块:为了使软件编程简单,本设计利用可编程芯片8255。PA口接按键,PC口那么用于控制状态显示所用LED点阵。每个按键都通过一个10K的上拉电阻接电源+Vcc,按键的另一端接地。当有键按下时,与该键相连的PA口的相应位变为低电平,单片机检测到该变化后即转到相应的键处理程序,同时在程序中点亮LED点阵。图3-8键盘电路3.6点阵式汉字LED显示屏设计LED的特点以及常用的参数LED是一种固体光源,当它两端加上正向电压,半导体中的少数载流子和多数载流子发生复合,放出的过剩能量将引起光子发射。采用不同的材料,可制成不同颜色的发光二极管。作为一种新的光源,近年来各大公司和研究机构对LED的研究方兴未艾,使其光效得以大大提高,飞利浦与Agilent的合资公司目前已研发并生产出光效到达171M/W的白色LED,已到达白炽灯的水平。和白炽灯的相比拟,LED在性能上具有很多优点,见下表:表1白炽灯与白色LED的性能比拟项目LED白炽灯色温〔K〕3000—1000025003000光效〔1K/W〕1515反响速度〔µs〕0.5100000冲击电流010倍额定电流耐压击性很强易断裂寿命〔h〕>2000<1000随着对LED研究的进一步深入,其光效将进一步得到提高,而其本钱将一步下降,在不久的将来LED取代白炽灯甚至荧光灯而开展成21世纪的一种主要的照明光源将成为一种趋势。新的光源呼唤新的电子镇流器,飞利浦照明电子在致力研发新的LED的同时,已于近年在全球各大开发中心开始了LED驱动电路的研究,在此研发领域已占据了世界领先的地位。LED的电压和电流的匹配。I(mA)U(V)图3-9LED的电压和电流LED的正向伏安特性所以,LED伏安特性的数字模型可用下式表示VF=Vturn–on+RsIF+(ΔVF/ΔT)(T-25℃其中,Vturn-on是LED的启动电压Rs表示伏安曲线的斜率T环境温度ΔVF/ΔT是LED正向电压的温度系数,对于多数LED而言典型值为-2V/℃。从LED的伏安曲线及数字模型看,LED在正向导通后其正向电压的细小变动将引起LED电流的很大变化,并且,环境温度,LED老化时间等因素也将改变影响LED的电气性能。而LED的光输出直接与LED电流相关,所以LED驱动电路在输入电压和环境温度等因素发生变动的情况下最好能控制LED电流的大小。否那么,LED的光输出将随输入电压和温度等因素变化而变化,并且,假设LED电流失控,LED长期工作在大电流下将影响LED的可靠性和寿命,并有可能失效。〔LED:LightEmittingDiode〕已日趋在固体显示中占主导地位。LED之所以受到广泛重视而得到迅速开展,是与它本身所具有的优点分不开的。这些优点概括起来是:高亮度、工作电压低、功耗小、小型化而与集成电路匹配,目前应用最广的是红色、绿色、黄色LED。而蓝色和纯绿色LED的开发已经到达了实用阶段。从显示方面讲,LED可以显示文字、数字〔数码管〕,也可以显示图形图象〔LED矩阵模块〕,从应用方面,LED显示即可以用于室内环境,也可以用于室外环境。LED电子显示屏随着科学技术的高速开展,各种新型信息媒体,信息相关设备及手段不断涌现。LED电子显示屏由于具有所显内容信息量大,外形美观大方,操作方便灵活,是近年来得到广泛应用的重要信息设备,大致有以下几类:〔1〕、条形显示屏该系列可用于显示文字、表格、符号和简单图形等,控制系统体积较小,嵌入在显示屏替内部,一般采用红色高亮度点阵模块,外表可外履深红色遮光薄膜,适用于多种场合发布通知、广告等信息。〔2〕、图文显示屏该产品主要用计算机控制,具有处理速度快、存储容量大等特点,适合显示面积较大的图文信息,可适时显示系统当前日历、时间、文件等,被广泛运用在商场、街道、广场、车站等人群或流动量大的场合。〔3〕、256级灰度视频显示屏该系列具有256级灰度控制功能,使没种基色可达256种颜色,图象显示细腻、柔和、颜色丰富、层次感强等特点。该系列显示屏可显示真彩色图象、电脑动画和电视机、录象机、影碟机等视频节目信息,图象清晰稳定,无噪点和闪烁感。本设计用的显示屏为256级灰度视频显示屏。汉字显示屏广泛应用与汽车报站器,广告屏等。本文介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,没有使用8*8的点阵发光管模块,而是直接使用了256个高量度发光管,组成了16行16列的发光点阵。同时为了降低制作难度,仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。LED电子显示屏显示字符原理下列图所示为单基色8*8的点阵屏内部结构图图3-10单基色8*8的点阵屏内部结构图图3-11LED显示屏内部电路从结构上可知,它的每一列共用一根列线,每一行共用一根行线。当相应的行接高电平,列接低电平时,对应的发光二极管被点亮。通常情况下,一块8*8像素的LED显示屏是不能用来显示一个汉字的,因此,按照其原理结构进行扩展为16*16,就足以显示一个完整的汉字。在显示过程中,多采用扫描方式,利用人的视觉暂停效应,只要刷新速率不小于25帧/秒,就不会有闪烁的感觉。LED点阵显示屏采用16×16共256个象素的点阵,通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布,如图3-12所示。116带方框的为列-带圈的为行+15141312910321117654114131211109155431762816图3-12LED点阵显示屏底视图我们把行列总线接在单片机的IO口,然后把上面分析到的扫描代码送人总线,就可以得到显示的汉字了。但是假设将LED点阵的行列端口全部直接接入89C51单片机,那么需要使用32条IO口,这样会造成IO资源的耗尽,系统也再无扩充的余地。因此,我们在实际应用中只是将LED点阵的16条行线直接接在P0口和P2口,至于列选扫描信号那么是由4-16线译码器74HC154来选择控制,这样一来列选控制只使用了单片机的4个IO口,节约了很多IO资源,为单片机系统扩充使用功能提供了条件。考虑到P0口必需设置上拉电阻,我们采用4.7kΩ排电阻作为上拉电阻。汉字显示的原理我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。图3-1316行16列的点阵组成显示图用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个局部。一般我们把它拆分为上部和下部,上部由8*16点阵组成,下部也由8*16点阵组成。在本例中单片机首先显示的是左上角的第一列的上半局部,即第0列的p00p07口。方向为p00到p07,显示汉字“大〞时,p05点亮,由上往下排列,为p0.0灭,p0.1灭,p0.2灭p0.3灭,p0.4灭,p0.5亮,p0.6灭,p0.7灭。即二进制00000100,转换为16进制为04h.。上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p27向p20方向扫描,从上图可以看到,这一列全部为不亮,即为00000000,16进制那么为00h。然后单片机转向上半部第二列,仍为p05点亮,为00000100,即16进制04h.这一列完成后继续进行下半局部的扫描,p21点亮,为二进制00000010,即16进制02h.依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“大〞的扫描代码为:04H,00H,04H,02H,04H,02H,04H,04H04H,08H,04H,30H,05H,0C0H,0FEH,00H05H,80H,04H,60H,04H,10H,04H,08H04H,04H,0CH,06H,04H,04H,00H,00H由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。不过现在有很多现成的汉字字模生成软件,我们就不必自己去画表格算代码了。软件翻开后输入汉字,点“检取〞,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到我们的程序中即可。图3-14汉字字模生成界面我们把行列总线接在单片机的i0口,然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了。在这个例子里,由于一共用到16行,16列,如果将其全部接入89C51单片机,一共使用32条io口,这样造成了io资源的耗尽,系统也再无扩充的余地。实际应用中我们使用4-16线译码器74LS电路中行方向由p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个4.7k*8的排阻上拉。如没有排阻,也可用8个普通的4.7k1/8w电阻。为提供负载能力,接16个2n5551的NPN三极管驱动。列方向那么由4—16译码器74LS154完成扫描,它由89C51的P1.0P1.3控制。同样,驱动局部那么是16个2N5401的三极管完成的。电路的供电为一片LM7805三端稳压器,耗电电流为100Ma左右。采用一块12*20cm的万能电路板,应中选用质量好些的发光管,〔否那么有坏点现象,更换起来较麻烦〕首先将256个发光管插入电路板,注意插入方向,同时使高度一致,行方向直接焊接起来,列方向那么搭桥架空焊接,完成后用万用表测试一下如有不亮的更换掉。然后找一个电脑硬盘的数据线,截取所需的长度,分别将行,列线引出至电路的相关管脚即可。原理图为了简洁,故只画出了示意图,行列方向只画出了2个三极管,屏幕只画出4个发光管,实际上发光管为256只,三极管行列方向各16只,一共32只。焊接过程认真仔细一天时间即可完成全部制作。将程序编译后烧写入89C51,插入40pinIc座,即可看到屏幕显示:“当然,你可将程序的汉字代码局部更换为您所需要的代码即可显示你所需要的汉字例如:输入“宝〞宝(16x16,V)0x88,0x00,0x70,0x03,0x24,0x02,0x34,0x46,0x2C,0x4A,0x24,0x52,0xA6,0x62,0x67,0xFE,0x24,0xC2,0x25,0x62,0x26,0x7E,0x24,0x5A,0x2C,0x4A,0x30,0x06,0x20,0x02,0x40,0x01,宝(16x16,H)0x82,0x00,0x41,0x01,0x7F,0xFE,0x50,0x04,0x88,0x08,0x3F,0xF8,0x03,0x20,0x01,0x40,0x01,0x80,0x1F,0xF8,0x03,0x60,0x05,0x30,0x09,0x38,0x11,0x24,0x7F,0xFE,0x40,0x01,元件清单:表2名称数量规格4.7k1/8w32电阻4.7k*8排阻1

2n555116小功率NPN三极管led2563mm白发红高亮度22P2瓷片电容10uf/50v1电解电容100uf/25v2电解电容AT89C511或AT89S5140pinIc座1插89c51用12M1晶体74LS1541或74HC154LM78051稳压IC电源插座1稳压电源13.7整体电路图3-15整体电路图我们把行列总线接在单片机的i0口,然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了。在这个例子里,由于一共用到16行,16列,如果将其全部接入89C51单片机,一共使用32条I/O口,这样造成了I/O资源的耗尽,系统也再无扩充的余地。实际应用中我们使用4-16线译码器74LS电路中行方向由p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个4.7k*8的排阻上拉。如没有排阻,也可用8个普通的4.7k1/8w电阻。为提供负载能力,接16个2n5551的NPN三极管驱动。列方向那么由4—16译码器74LS154完成扫描,它由89C51的P1.0P1.3控制。同样,驱动局部那么是16个2N5401的三极管完成的。电路的供电为一片LM7805三端稳压器,耗电电流为100Ma左右。4系统软件设计软件程序主要由开始、初始化、主程序、字库组成。其中主程序和子程序的流程图如下图。主程序中,同一帧的反复扫描次数的设定,决定了显示移动的速度延时程序至关重要,这就涉及到前文所说的刷新速率问题,如设置不当,就会有闪烁感。4.1主程序设计初始化初始化调用显示程序调整数据指针开始是否显示完YN图4-1主程序流程图LED点阵主程序,该程序能够用来实现“万方科技学院〞等汉字的显示。ORG00HLOOP:MOVA,#0FFH;开机初始化,去除画面MOVP0,A;去除P0口ANLP2,#00;去除P2口MOVR2,#200D100MS:MOVR3,#250;延时100毫秒DJNZR3,$DJNZR2,D100MSMOV20H,#00H;取码指针的初值l100:MOVR1,#100;每个字的停留时间L16:MOVR6,#16;每个字16个码MOVR4,#00H;扫描指针清零MOVR0,20H;取码指针存入R0L3:MOVA,R4;扫描指针存入AMOVP1,A;扫描输出INCR4;扫描指针加1,扫描下一个MOVA,R0;取码指针存入AMOVDPTR,#TABLE;取数据表的上半局部的代码MOVCA,@A+DPTRMOVP0,A;输出到P0INCR0;取码指针加1,取下一个码。MOVA,R0MOVDPTR,#TABLE;取数据表下半部份的代码MOVCA,@A+DPTRMOVP2,A;输出到P2口INCR0MOVR3,#02;扫描1毫秒DELAY2:MOVR5,#248;DJNZR5,$DJNZR3,DELAY2MOVA,#00H;去除屏幕MOVP0,AANLP2,#00HDJNZR6,L3;一个字16个码是否完成?DJNZR1,L16;每个字的停留时间是否到了?MOV20H,R0;取码指针存入20HCJNER0,#0FFH,L100;8个字256个码是否完成?JMPLOOP;反复循环TABLE:汉字“万〞的代码(16x16,V)0x80,0x00,0x40,0x03,0x60,0x06,0x50,0x0C,0x48,0x38,0x45,0xD0,0x7E,0x20,0x45,0x40,0x44,0x84,0x45,0x46,0x46,0x24,0x4F,0xF8,0x4C,0x08,0x50,0x04,0x60,0x02,0x40,0x01,(16x16,H)0x80,0x00,0x7F,0xFF,0x22,0x02,0x12,0x04,0x0A,0x18,0x07,0xF8,0x02,0x30,0x05,0x50,0x04,0x90,0x05,0x50,0x0A,0x30,0x0C,0x10,0x18,0x18,0x30,0xE4,0x60,0x42,0x40,0x01,汉字“方〞的代码方(16x16,V)0x90,0x02,0x50,0x03,0x30,0x06,0x10,0x0C,0x18,0x38,0x14,0xD0,0x9F,0x20,0x53,0x40,0x32,0x84,0x13,0x42,0x12,0x22,0x17,0xFC,0x18,0x08,0x10,0x04,0x30,0x02,0x40,0x01,(16x16,H)0x82,0x00,0x41,0x01,0x20,0x82,0xFF,0xFE,0x0A,0x08,0x06,0x10,0x03,0xF0,0x03,0x50,0x04,0x90,0x05,0x50,0x0A,0x30,0x0C,0x10,0x18,0x18,0x30,0x94,0xE0,0x62,0x40,0x01,汉字“科〞的代码(16x16,V)0x88,0x20,0x48,0x41,0x69,0x82,0x5E,0x04,0x7F,0xFF,0x8E,0x10,0x8B,0x20,0x01,0x60,0x44,0xA0,0x33,0x40,0x02,0x60,0x04,0x50,0xFF,0xFF,0x10,0x84,0x20,0x82,0x40,0x01,(16x16,H)0x86,0x08,0x78,0x89,0x28,0x4A,0x18,0x4C,0xFE,0x08,0x1C,0x98,0x1E,0x68,0x2B,0x48,0x28,0x8E,0x49,0x78,0x8B,0xA8,0x0C,0x18,0x08,0x08,0x18,0x0C,0x28,0x0A,0x48,0x09,汉字“技〞的代码(16x16,V)0x90,0x80,0x50,0x83,0x31,0x03,0xFF,0xFE,0x1A,0x08,0x14,0x12,0x02,0x22,0x13,0x44,0x12,0xC8,0x13,0x70,0xFE,0x30,0x16,0x58,0x1B,0x8C,0x12,0x06,0x30,0x06,0x40,0x01,(16x16,H)0x90,0x20,0x50,0x21,0x30,0x22,0xFD,0xFE,0x18,0x28,0x14,0x30,0x1B,0xFC,0x31,0x48,0xD0,0x88,0x11,0xD0,0x12,0x60,0x14,0x70,0x18,0x98,0x11,0x0E,0x76,0x06,0x60,0x01汉字“学〞的代码(16x16,V)0x82,0x00,0x4C,0x41,0x28,0x42,0x58,0x44,0x3A,0x48,0x2E,0x50,0x0A,0x62,0x8B,0x41,0x7A,0xFE,0x2B,0x40,0x0A,0x60,0x1C,0x50,0xEA,0x48,0x5C,0x44,0x28,0x42,0x40,0x01,(16x16,H)0x81,0x08,0x50,0x8D,0x2C,0xCA,0x18,0x94,0x7F,0xFE,0x44,0x14,0x8F,0xE8,0x01,0x40,0x00,0x80,0x7F,0xFE,0x02,0xA0,0x04,0x90,0x08,0x88,0x10,0x84,0x22,0x82,0x41,0x01,汉字“院〞的代码(16x16,V)0xFF,0xFF,0x40,0x01,0x6C,0x42,0x52,0x24,0x69,0xC9,0x34,0x92,0x26,0xAC,0x25,0xF0,0xA4,0x80,0x65,0xC0,0x26,0xFE,0x24,0x91,0x2C,0x89,0x30,0x85,0x20,0x8F,0x40,0x01,(16x16,H)0x80,0x80,0xF8,0x41,0xAF,0xFE,0x94,0x04,0xA8,0x08,0xA7,0xF8,0x92,0x20,0x89,0x40,0x8F,0xFE,0xA9,0x60,0x93,0x20,0x85,0x30,0x8A,0x2A,0x92,0x26,0xA4,0x22,0xC8,0x1F,4.2子程序设计开始开始设1帧显示时间设片选及数据指针查汉字上部数据及显示查汉字下部数据及显示延时1ms关显示并调整时针1帧时间是否到是否显示完汉字结束YYNN图4-2子程序流程图延时子程序,协调字符显示速度:DELAY:MOVR7,#1H

DL1:MOVR6,#00H

DL2:DJNZR6,DL2

DJNZR7,DL1

RETLED点阵显示子程序:CSLEDEQU8000H

CSR1EQUCSLED;行1273

CSR2EQUCSLED+1H;行2273

CSC1EQUCSLED+2H;列1374

CSC2EQUCSLED+3H;列2374ORG0000H

MOVSP,#60H

INIT:MOVA,#0H;关闭行

MOVDPTR,#CSR1

MOVX@DPTR,A

MOVDPTR,#CSR2

MOVX@DPTR,A

MOVA,#0FFH;关闭列

MOVDPTR,#CSC1

MOVX@DPTR,A

MOVDPTR,#CSC2

MOVX@DPTR,A

D:MOVR5,#00H

MOVR4,#01H;每次为单行扫描

DISP:

MOVA,R5

MOVDPTR,#ASCE;此处设定所要显示的字符

MOVCA,@A+DPTR

CPLACC;代码取反,决定显示的阴阳

MOVDPTR,#CSC2

MOVX@DPTR,A

MOVDPTR,#CSR1

MOVA,R4

MOVX@DPTR,A

RLACC

MOVR4,ACC

INCR5

LCALLDELAY

CJNER5,#8H,DISP

MOVA,#0H

MOVX@DPTR,A

MOVR5,#08H

MOVR4,#01H

DISP2:

MOVA,R5

MOVDPTR,#ASCE

MOVCA,@A+DPTR

CPLACC

MOVDPTR,#CSC2

MOVX@DPTR,A

MOVDPTR,#CSR2

MOVA,R4

MOVX@DPTR,A

RLACC

MOVR4,ACC

INCR5

LCALLDELAY

CJNER5,#10H,DISP2

MOVA,#0H

MOVX@DPTR,ASJMPDEND在完成编写程序的编译之后,准备一台可以烧写AT89C51的编程器并与电脑主机硬件连接后即可对AT89C51芯片进行程序烧录下载,然后,将烧录好程序的AT89C51单片机装入到40脚的IC座上,通电即可调试和运行。另外,延时程序至关重要,这就涉及到刷新速率问题,如设置不当,就会有闪烁感。5结论虽然本设计只使用了一块16×16LED点阵,电路简单,但是已经包涵了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论