版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
刘凯:基于单片机的LED显示屏的动态显示PAGE26目录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.2.2本设计采取的方案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驱动电路设计3.4.12N5551与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显示屏设计3.6.1LED的特点以及常用的参数LED是一种固体光源,当它两端加上正向电压,半导体中的少数载流子和多数载流子发生复合,放出的过剩能量将引起光子发射。采用不同的材料,可制成不同颜色的发光二极管。作为一种新的光源,近年来各大公司和研究机构对LED的研究方兴未艾,使其光效得以大大提高,飞利浦与Agilent的合资公司目前已研发并生产出光效达到171M/W的白色LED,已达到白炽灯的水平。和白炽灯的相比较,LED在性能上具有很多优点,见下表:表1白炽灯与白色LED的性能比较项目LED白炽灯色温(K)3000—1000025003000光效(1K/W)1515反应速度(µs)0.5100000冲击电流010倍额定电流耐压击性很强易断裂寿命(h)>2021<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显示即可以用于室内环境,也可以用于室外环境。3.6.2LED电子显示屏随着科学技术的高速发展,各种新型信息媒体,信息相关设备及手段不断涌现。LED电子显示屏由于具有所显内容信息量大,外形美观大方,操作方便灵活,是近年来得到广泛应用的重要信息设备,大致有以下几类:(1)、条形显示屏该系列可用于显示文字、表格、符号和简单图形等,控制系统体积较小,嵌入在显示屏替内部,一般采用红色高亮度点阵模块,表面可外履深红色遮光薄膜,适用于多种场合发布通知、广告等信息。(2)、图文显示屏该产品主要用计算机控制,具有处理速度快、存储容量大等特点,适合显示面积较大的图文信息,可适时显示系统当前日历、时间、文件等,被广泛运用在商场、街道、广场、车站等人群或流动量大的场合。(3)、256级灰度视频显示屏该系列具有256级灰度控制功能,使没种基色可达256种颜色,图象显示细腻、柔和、颜色丰富、层次感强等特点。该系列显示屏可显示真彩色图象、电脑动画和电视机、录象机、影碟机等视频节目信息,图象清晰稳定,无噪点和闪烁感。本设计用的显示屏为256级灰度视频显示屏。汉字显示屏广泛应用与汽车报站器,广告屏等。本文介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,没有使用8*8的点阵发光管模块,而是直接使用了256个高量度发光管,组成了16行16列的发光点阵。同时为了降低制作难度,仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。3.6.3LED电子显示屏显示字符原理下图所示为单基色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Ω排电阻作为上拉电阻。3.6.4汉字显示的原理我们以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线译码器74LS154来完成列方向的显示。而行方向16条线则接在p0口和p2口。电路中行方向由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线译码器74LS154来完成列方向的显示。而行方向16条线则接在p0口和p2口。电路中行方向由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点阵主程序,该程序能够用来实现“万方科技学院”等汉字的显示。ORG
00HLOOP:MOVA,#0FFH;开机初始化,清除画面MOVP0,A
;清除P0口
ANLP2,#00
;清除P2口MOVR2,#200
D100MS:MOVR3,#250;延时100毫秒
DJNZR3,$
DJNZR2,D100MS
MOV20H,#00H;取码指针的初值l100:
MOVR1,#100;每个字的停留时间L16:
MOVR6,#16;每个字16个码
MOVR4,#00H;扫描指针清零
MOVR0,20H;取码指针存入R0L3:
MOVA,R4
;扫描指针存入A
MOVP1,A
;扫描输出
INCR4
;扫描指针加1,扫描下一个
MOVA,R0
;取码指针存入A
MOVDPTR,#TABLE;取数据表的上半部分的代码
MOVCA,@A+DPTR
MOVP0,A
;输出到P0
INCR0
;取码指针加1,取下一个码。
MOVA,R0
MOVDPTR,#TABLE;取数据表下半部份的代码
MOVCA,@A+DPTR
MOVP2,A
;输出到P2口
INCR0MOVR3,#02
;扫描1毫秒DELAY2:
MOVR5,#248
;
DJNZR5,$
DJNZR3,DELAY2
MOVA,#00H
;清除屏幕
MOVP0,A
ANLP2,#00H
DJNZR6,L3
;一个字16个码是否完成?
DJNZR1,L16
;每个字的停留时间是否到了?
MOV20H,R0
;取码指针存入20H
CJNER0,#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点阵,电路简单,但是已经包涵了LED显示屏的电路基本原理和基本程序,只要扩展单片机的IO接口,并增加一些LED点阵和相关芯片,就能设计出更大面积、更多花样的LED显示屏。因此本文对同类设计具有一定的理论和实践参考价值。本设计的理论基础是单片机,微机原理,模拟和数子电路。比如AT89C51芯片的一些工作原理是在MCS—51的基础上通过改进完成的。8255芯片的工作方式是在微机原理介绍的。三极管和74LS154的工作原理也分别在模拟和数子电路里介绍过。通过本设计不仅把以前学过的知识重新温习,而且在查阅课外资料是还有好多芯片都是以学过的芯片为基础,并且在其基础上改进和完善的。通过毕业设计的实施可以使学生把在校学习的理论知识和实际应用有机地结合起来,同时也能培养我独立思考、勇于创新的科学态度和钻研精神,为我将要踏上工作岗位做一次提前的锻炼。由于多方面原因我没有做硬件方面的东西。所以具体的程序烧录下载没有完成。但理论的部分我一一介绍了,弄懂了里面的工作原理,信号出入作用的地方。达到了毕业设计的目标。另外也有些遗憾,如果有硬件的东西会更有说服力。毕业设计使我在以下几个方面有所明显提高:融会和贯通所学习专业的基本概念、基本理论和基本技能。综合运用所学专业理论知识和技能分析,提高解决实际问题的能力。以科学的、实事求是的态度进行科学试验和工程实践的动手操作能力。提高文献阅读和使用能力。6致谢光阴似箭,转眼三年学习就要结束。三年来,我得到了许多老师的真诚教诲和学员们的热情帮助。值此离别之际,向曾经给予我帮助的老师、学员和朋友表示最衷心的感谢!感谢我们的班主任孙桂玲老师,三年来她在生活上和学习上给于了我们无私的关怀和热情的帮助。在此真诚地祝愿孙桂玲老师工作顺利!幸福美满!感谢我的407舍友正是有了你们,我的学习生活才不显得孤单,谢谢你们在学习和生活中给予了我热情鼓励和无私帮助。我十分珍惜和你们共同学习的日子,这将成为我人生中难以忘怀的美好时光。特别感谢父母对我培训学习的坚定支持和极大的帮助,正是她们挚深的亲情成为我不断求学进取的精神动力。刘凯2021年3月3日参考文献[1]吴微、文军等编单片机原理及制作[M].武汉:武汉大学出版社2021[2]王宏民.LED显示屏的驱动方案[M].哈尔滨:黑龙江电子技术出版社,2021[3]孙国栋等.汇编语言在LED在汉字显示信息系统中的应用[J].北京:计算机信息出版社,2021[4]马忠梅.单片机的C语言应用程序设计[M].北京:航空航天大学出版社,2021[5]NeilG.Jacobson.用PLD器件增强嵌入式系统功能[J].电子工程专辑,2021[6]孟宪元.可编程ASIC集成数字系统[M].北京:电子工业出版社,2021[7]王晓军.VHDL简明教程[M].北京:清华大学出版社,2021[8]陈振官陈宏威等编著.光电子电路及制作实例[J].北京:国防工业出版社,2021[9]雷晓平等编.单片计算机及其应用[M].成都:电子科技大学出,2021[10]李华编著.MCS-51系列单片机实用接口技术[J].北京:北京航空航大学出版社,1993[11]李华编著.单片机与可编程控制器[M].北京:高等教育出版社,2021[12]王毅编.单片机器件及应用[M].西安:陕西电子编辑部,2021[13]张毅坤.单片微型计算机原理及应用[J].陕西:西安电子科技大学出版社2021[14]余锡存曹国华.单片机原理及接口技术[M].陕西:西安电子科技大学出版社,2021[15]雷丽文等.微机原理与接口技术[M].北京:电子工业出版社,2021[16]徐泳龙主编.单片机原理及应用[M].北京:机械工业出版社2021[17]K.Alexander,N.O.Sadiku.FundamentalsofelectricCircuits[M].北京:清华大学出版社2021[18]图形液晶显示模块使用手册(第二版)北京精电蓬远显示技术,2021[19]吴国经主编.单片机应用技术[M].北京:中国电力出版社,2021[20]周航慈.单片机应用程序设计[M].北京航空航天大学出版社,1991[21]潘立民,王燕芳.微型计算机控制技术[M].北京:人民邮电出版社,1990[22]杨凌霄.微型计算机控制技术[M].徐州:中国矿业大学出版社.2021[23]陈汝全.实用微机与单片机控制技术[M].成都:电子科技大学出版社,1995
社会实践报告系别:班级:学号:姓名:作为祖国未来的事业的继承人,我们这些大学生应该及早树立自己的历史责任感,提高自己的社会适应能力。假期的社会实践就是很好的锻炼自己的机会。当下,挣钱早已不是打工的唯一目的,更多的人将其视为参加社会实践、提高自身能力的机会。许多学校也积极鼓励大学生多接触社会、了解社会,一方面可以把学到的理论知识应用到实践中去,提高各方面的能力;另一方面可以积累工作经验对日后的就业大有裨益。进行社会实践,最理想的就是找到与本专业对口单位进行实习,从而提高自己的实战水平,同时可以将课本知识在实践中得到运用,从而更好的指导自己今后的学习。但是作为一名尚未毕业的大学生,由于本身具备的专业知识还十分的有限,所以我选择了打散工作为第一次社会实践的方式。目的在于熟悉社会。就职业本身而言,并无高低贵贱之分,存在即为合理。通过短短几天的打工经历可以让长期处于校园的我们对社会有一种更直观的认识。实践过程:自从走进了大学,就业问题就似乎总是围绕在我们的身边,成了说不完的话题。在现今社会,招聘会上的大字报都总写着“有经验者优先”,可还在校园里面的我们这班学子社会经验又会拥有多少呢?为了拓展自身的知识面,扩大与社会的接触面,增加个人在社会竞争中的经验,锻炼和提高自己的能力,以便在以后毕业后能真正真正走入社会,能够适应国内外的经济形势的变化,并且能够在生活和工作中很好地处理各方面的问题,我开始了我这个假期的社会实践-走进天源休闲餐厅。实践,就是把我们在学校所学的理论知识,运用到客观实际中去,使自己所学的理论知识有用武之地。只学不实践,那么所学的就等于零。理论应该与实践相结合。另一方面,实践可为以后找工作打基础。通过这段时间的实习,学到一些在学校里学不到的东西。因为环境的不同,接触的人与事不同,从中所学的东西自然就不一样了。要学会从实践中学习,从学习中实践。而且在中国的经济飞速发展,又加入了世贸,国内外经济日趋变化,每天都不断有新的东西涌现,在拥
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人际沟通案例分析
- 《磁悬浮支承分类与编码》
- 强直性脊柱炎护理查房
- 妊娠期肝内胆汁淤积症指南解读总结2026
- 2025年建筑行业数字化转型战略规划
- 2026届锦州市高考仿真模拟历史试卷含解析
- 2025-2026学年云浮市高考考前提分历史仿真卷含解析
- 2026年航空业商业航空发展报告
- 2025年医疗设备行业创新技术与临床应用效果报告
- 影像科设备使用成本与效率分析
- 2026年学前教育学期末试题及答案
- 上海市大数据中心招聘笔试真题2025
- 江苏省南通市暨苏北七市2026届高三5月模拟考试(三模)物理+答案
- 2026二建机电实务口诀速记
- 浙江省宁波市2026届九年级中考一模数学试卷(含答案)
- QGDW11447-202410kV-500kV输变电设备交接试验规程
- (高清版)DB43∕T 1151-2016 页岩气地震勘探技术规程
- 竹炭项目规划设计方案(88页)
- 装饰装修方案交底记录表
- 全国建筑设计劳动(工日)定额2015
- 习题与复习题详解线性空间----高等代数
评论
0/150
提交评论