基于单片机led滚动显示系统设计_第1页
基于单片机led滚动显示系统设计_第2页
基于单片机led滚动显示系统设计_第3页
基于单片机led滚动显示系统设计_第4页
基于单片机led滚动显示系统设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

三门峡职业技术学院信息工程系毕业设计论文毕业设计项目基于51单片机的LED滚动显示系统专业计算机应用(嵌入式方向)年级09学号姓名指导老师摘要LED显示屏是一种通过控制半导体发光的显示方式,它是由很多个红色的发光二极管组成,靠灯的亮灭来显示字符。LED显示屏分为数码显示屏、图文显示屏和视频显示频。均由LED矩阵块组成。目前由于LED显示屏造价昂贵,主要应用于比较较高档的场所,主要集中在城市的繁华场所。在举办的2010年上海世博会未来各项大项运动赛事等新增需求,都将促使LED显示屏的大规模发展。此外,已架设的大型LED显示屏幕梅10年将历经一次换机潮,随着人们生活水平的提高,户外LED显示屏将逐渐应用于各个行业。本设计主要实现1616LED显示屏对文字及简单图像的显示,扩展功能有实时钟及实时温度采集,并通过LCD1602及LED点阵屏静态及滚动显示。设计分为三大步,分别是软件设计,硬件仿真及实物制作,兼顾理论性及实用性,充分体现了理论与实践相结合,设计过程中不仅学到了很多有用的知识,也增长了自己的专业技能,提高了自己的动手能力。关键字LED显示屏发光二极管半导体ABSTRACTLEDDISPLAYISTHEDISPLAYMODECONTROLLINGBYTHESEMICONDUCTORLIGHTEMITTINGDIODE,ITPROBABLYLOOKSLIKETHATCOMPOSITIONBYANUMBEROFLEDISUSUALLYAREDLIGHTEMITTINGDIODESWHICHSHOWCHARACTERBYTHELEDONANDOFF,LEDDISPLAYISDIVIDEDINTODIGITALDISPLAY,GRAPHICDISPLAYANDVIDEODISPLAY,WHICHISCOMPOSITIONEDBYLEDMATRIXBLOCK,ASTHECOSTOFLEDDISPLAYEXPENSIVECURRENTLY,MAINLYUSEDINRELATIVELYHIGHPLACES,CONCENTRATEDINTHECITIESBUSTINGPLACE,BEINGHELDINTHESHANGHAIWORDEXPO2010,FUTURELARGESCALESPORTINGEVENTSANDOTHERADDITIONALREQUIREMENTSWILLPROMOTELARGESCALEDEVELOPMENTOFLEDDISPLAY,INADDITION,THEORIGINALLARGESCALELEDDISPLAYSCREENWILLBEUPDATINGONCEPER10YEARS,WITHTHEIMPROVEMENTOFPEOPLESLIVINGSTANDARD,OUTDOORLEDDISPLAYWILLGRADUALLYBEUSEDINVARIOUSINDUSTRIESTHEMAINACHIEVEMENTOFTHISDESIGNIS1616LEDDISPLAYSHOWTHETEXTANDSIMPLEIMAGE,THEEXTENSIONFUNCTIONINCLUDEREALTIMECLOCKANDREALTIMETEMPERATUREMEASUREMENTWHICHISDISPLAYEDBYLCD1602ANDLEDDOTMATRIXDISPLAYSCREENTHISDESIGNISDIVIDEDINTOTHREEBIGSTEPS,WHICHISSOFTWAREDESIGN,HARDWARESIMULATIONANDINKINDPRODUCTION,FULLYREFLECTSTHECOMBINATIONOFTHEORYANDPRACTICEFROMTHISDESIGNPROCESS,IMNOTONLYLEARNEDALOTOFUSEFULKNOWLEDGE,ALSOINCREASEMYPROFESSIONALSKILLSANDIMPROVEMYPRACTICALABILITYKEYWORDSLEDDISPLAYSEMICONDUTOR目录1绪论311课题背景及意义512本课题相关介绍713论文章节安排72系统的硬件部分设计821设计要求822设计基本方案823硬件电路芯片介绍8231单片微型计算机简介8232系统芯片的选择9233主控制单片机923480C51接口说明102LED点阵制作12241显示模块的选择12242LED驱动模块的选择12243主要芯片74LS138的介绍12251616LED点阵显示制作142511616LED点阵的内部结构及工作原理1426硬件系统的整体设计图与原理分析1627小结183系统的软件部分设计1931程序设计思路与结构19311程序设计思路19312程序设计流程图1932模块程序设计21321系统初始化21322LED动态显示21323汉字显示程序设计21324显示设计2233小结234系统仿真2441仿真环境介绍2442仿真过程与结果24421绘制电路图24422HEX文件的生成25423调试与结果2543小结27结束语28致谢29参考文献30附录A点阵电路整体硬件电路图311绪论随着电子技术和信息技术的迅速发展,LED的应用范围越来越广泛。它作为一个重要的宣传平台,已经受到全社会的普遍认可和广泛使用。如今,它几乎成为各个广场和大型超市的必备品。然而这些功能的实现离不开单片机的功劳。单片机是一种微型处理器,负责数据的接收、发送和处理的工作。LED显示屏则可以显示变化的数字、文字、图形和图像等。它不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏等无法比拟的优点1。点阵显示器的特点是可以按照实物所需要的大小、形状和颜色进行组合,用单片机控制实行各种文字或图形的变化,达到广告宣传和提示的目的。11课题背景及意义LED点阵电子显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。它以其色彩鲜艳动、态范围广、亮度高、寿命长、工作稳定可靠等优点而成为众多显示媒体以及户外作业显示的理想选择。点阵式LED显示技术是近几年发展较快的显示技术之一,其抗干扰能力强等特点使得其在户外广告、公共告示等方面得到了广泛的应用,因此研究点阵式LED显示屏接口与控制技术具有较高的实际应用价值。LED显示屏的应用涉及社会经济的许多领域,主要包括1证券交易、金融信息显示。2机场航班动态信息显示。3车站旅客引导信息显示。4体育场馆、道路交通信息显示。5调度指挥中心显示。6邮政、电信、商场购物中心等服务领域的业务宣传显示。7广告媒体新产品宣传显示等。实际生活中经常会遇到一些特殊要求的动态显示,比如电梯运行中指示箭头的上下移动、某些智能仪表幅值的条形显示、广告中厂家的商标显示等。这时一般的显示系统就很难达到要求2。另外,由于受到存储器本身的局限,其特殊字符或图案也往往难以显示,同时显示内容也不能随意更改。12本课题相关介绍本课题要求自选单片机及其周边芯片,设计点阵LED与单片机的接口电路,并编制单片机的软件,并对系统进行仿真调试。该设计提出采用软件仿真平PROTEUS对点阵式LED滚动汉字显示屏进行仿真,在PROTEUS中完成硬件电路的设计,同时采用KEILC集成开发平台设计程序,可在计算机上仿真实现点阵滚动汉字显示屏的滚动显示。本设计提出一种利用单片机控制的LED显示系统通讯方法。该方法可以对显示内容包括汉字和特殊图符进行实时控制,从而实现滚动的动态显示效果。该方法同时还可以调节动态显示的速度,并且用户也可以同时进行显示效果的预览仿真,显示内容亦可以较方便的修改3。13论文章节安排在撰写此论文之前,我在学校的图书馆里参阅了大量有关单片机介绍和LED显示电路设计等相关书籍,并且通过网络查找搜集了较多的相关论文。经过反复多次对这些资料进行详细的摘要和严谨的对比整理,我从中学习到很多新的相关专业知识,加深并丰富了我对单片机的理解。最后,我写出了这篇点阵LED显示电路和系统设计的论文。其中各个章节安排如下第一章绪论主要讲述该设计的背景,意义以及设计思想。第二章系统的总体方案设计主要是硬件组成部分及与设计电路相关的芯片介绍。第三章系统的软件部分。第四章系统仿真,显示符合设计要求的显示结果。2系统的硬件部分设计本设计主要采用单片机及其周边芯片,设计点阵LED与单片机的接口电路。21设计要求1通过对80C51单片机的C语言编程,实现汉字的左移滚动显示。2成本低,功能强,设计明了化实用化。3动态显示过程的仿真成果中没有明显的抖动。22设计基本方案为使该模块化的点阵式LED显示屏控制系统使用更加方便,并具有较高的灵活性和视觉舒适性,我对系统的硬件做了非常精心的设计4。本设计的硬件电路包括主控单片机模块、译码器选择数据模块、LED显示模块这三大模块。总体组成框图如图21所示。译码器LED显示模块主控单片机送断码值到显示模块驱动显示模块图21总体结构框图图21简略的描述了系统的结构,本系统先由主控单片机来控制译码器进行位选,然后再将段码的值通过主控单片机的I/O口送往LED显示模块进行汉字的显示。23硬件电路芯片介绍该设计主要介绍LED显示电路所采用的主要芯片,如单片机80C51,译码器74LS138。此外,还简要阐述了选取这些芯片的优点。231单片微型计算机简介单片微型计算机SINGLECHIPMICROCOMPUTER简称单片机,它是一种把组成微型计算机的各功能部件中央处理单元CPU、一定容量的随机存储器RAM和只读存储器ROM、I/O接口电路、定时器/计数器以及串行口等制作在一块芯片中的计算机,从而实现微型计算机的基本功能5。单片机具有结构简单、控制功能强、可靠性高、体积小、价格低等特点,在家用电器、智能化仪器、工业控制以及火箭导航尖端技术领域都发挥着十分重要的作用6。单片机的内部结构示意图如下图22所示。单片机接口电路及外设等软件单片机应用系统图22单片机内部结构示意图图23单片机应用系统组成示意图单片机实质上是一个芯片,在实际应用中通常很难直接把单片机和受控对象进行电气连接,而是必须外加各种扩展接口电路以至外部设备,连同受控对象和单片机程序软件构成一个单片机应用系统。单片机应用系统是以单片机为核心,配以输入、输出、显示、测量和控制等外围电路和软件能实现一种或多种功能的实用系统。单片机应用系统的组成示意图如上图23所示7。232系统芯片的选择方案一8031芯片内部无ROM,需要外扩程序存储器,由此造成电路焊接的困难,况且使用8031还需要另外购买其他的芯片,从而造成成本比较高,且性价比低。方案二80C51芯片内部有ROM,且片内ROM全部采用FLASHROM,它能够在3V的超低压工作,与51系列单片机完全兼容。因此,本设计选择80C51芯片。233主控制单片机80C51是一种高性能CMOS8位微处理器,俗称单片机,它带有4K字节闪烁可编程可擦除只读存储器FPEROMFLASHPROGRAMMABLEANDERASABLEREADONLYMEMORY的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的80C51是一种高效微控制器,80C2051是它的一种精简版本。80C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案8。80C51引脚即外观如图24所示。图2480C51引脚外观图23480C51接口说明VSS20脚接地。VCC40脚主电源5V。XTAL119脚接外部晶体的一端。在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,对于HMOS单片机,该端引脚必须接地;对于CHMOS单片机,此引脚作为驱动端。XTAL218脚接外部晶体的另一端。在片内它是个振荡电路反相放大器输出端,振荡电路的频率是晶体振荡频率。若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。RST9脚单片机刚刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24个时钟周期宽度以上的高电平将使单片机复位。PSEN29脚在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。ALE/30脚地址锁存控制信号ALE是访问外部程序存储器时,PROG锁存低8位地址的输出脉冲。在FLASH编程时,此引脚也用作编程输入PROG脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可以用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位地址为8EH的SFR的第0位的设置对微控制器处于外部执行模式下无效。EA/VPP31脚当EA端输入高电平时,CPU从片内程序存储器地址0000H单元开始执行程序。当地址超出4KB时,将自动执行片外程序存储器的程序。当EA输入低电平时,CPU仅访问片外程序存储器。在对87C51EPROM编程时,此引脚用于施加编程电压VPP。输入/输出引脚1P00P0739脚32脚。2P10P171脚8脚。3P20P2726脚21脚。4P30P3710脚17脚。80C51单片机P3口的第二功能如表21所示。表2180C51单片机P3口第二功能引脚号第二功能P30RXD(串行输入线)P31TXD(串行输出线)P32外部中断0输入线INTP33外部中断0输入线1P34T0(定时器0外部计数脉冲输入)P35T1(定时器1外部计数脉冲输入)P36外部数据存储器写选通信号输出WRP37外部数据存储器写选通信号输出RD一个1616的点阵显示系统由单片机80C51,74LS138,1个1616的LED点阵模块,单片机的时钟复位电路和P0口的上拉电阻组成。1632的点阵显示电路由单片机80C51,4个74LS138和2个1616的LED点阵模块组成。该电路所设计的电子屏可显示多个汉字,并实现左移滚动。2LED点阵制作LEDLIGHTEMITTINGDIODE,50年前人们已经了解半导体材料可产生光线的基本知识,第一个商用二极管产生于1960年。LED是英文LIGHTEMITTINGDIODE发光二极管的缩写,它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,即固体封装,所以能起到保护内部芯线的作用,所以LED的抗震性能好9。点阵式LED的显示采用逐列扫描方式。工作时,由单片机取出第一列需要显示的内容经延时一段时间后再进行下一列点阵数据的显示。需要注意的是,每次只能选通一列数据,即要通过不断的逐列扫描变换来实现汉字或字符的显示。241显示模块的选择方案一点阵显示,是由八行八列的发光二极管集成在一块电路上组成,主要用来显示汉字,同时也能显示数字和少量图像。而且程序简单,显示的效果比较清晰。方案二LED数码管静态显示,电路容易理解且驱动的程序简单,多片七段译码器驱动显示,这不仅增加了成本,还需要占用单片机多个I/O口,也给电路的焊接带来一定的困难,因此不选用这种方案作为显示模块。经过两种方案的比较,最后选择方案一LED的点阵显示。242LED驱动模块的选择方案一采用静态锁存方式,将每一个LED发光管的一端接至单片机的一个I/O口,另一端通过电阻接电源。这种方法可以直接驱动LED,原理简单,驱动能力强,LED的亮度也可以通过限流电阻调节,非常方便,但此种方法太浪费单片机的I/O口,只适合于较小的系统。方案二采用动态扫描方式,通过三极管驱动并联在一起的LED发光管的一端共阴极或共2端,LED发光管的另一脚接通用I/O口,控制其亮灭。该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源10。比较以上两种方案,系统设计中采用方案二。243主要芯片74LS138的介绍译码器是组合逻辑电路的一个重要的器件,芯片74LS138为3线8线译码器,74LS138译码器的引脚管脚如下图25所示。图2574LS138的引脚图所谓译码,就是将每一组代码的含意翻译出来的过程。译码是编码的逆过程。广泛被使用的译码器是74LS138译码器,因此该设计中采用74LS138且其作用也就是将一组码转换为想要的确定的信息。74LS138为3线8线译码器,共有54/74S138和54/74LS138两种线路结构型式。其工作原理当一个选通端E3为高电平,另两个选通端E1和E2为低电平时,可将地址端A、B、C的二进制编码在一个对应的输出端以低电平的方式译出。利用E1、E2和E3可级联扩展成一个24线的译码器;若外接一个反相器还可以级联扩展成为32线译码器。若将选通端中的一个作为数据的输入端时,74LS138还可作数据分配器。假设地址端的值为001,那么则说明其/Y1输出口是有效的,且其输出值为10111111。假设地址端的值为010,那么则说明其/Y2输出口是有效的,且其输出值为11011111。假设地址端的值为011,那么则说明其/Y2输出口是有效的,且其输出值为11101111。在该毕业设计中,由于单片机中的P2口只有八个数据线,显然不够三十二个数据使用。因此,74LS138译码器在此是用于扩展数据的输入端的。4个74LS138译码器正好一共有三十二个输出端口,于是就对应了LED显示屏中的三十二个列选端。满足了1632点阵式LED显示屏的列需求。74LS138译码器引脚功能如表22所示。表2274LS138译码器功能表输入输出S1S2S3ABC0_Y1_2_34_Y5_6_701111111111111111110000011111111000110111111100101101111110011111011111010011110111101011111101110110111111011011111111110251616LED点阵显示制作我们以VERSION10字模精灵为例,每一个汉字由一个16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。2511616LED点阵的内部结构及工作原理我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏幕不仅可以显示汉字,也可以显示在256像素范围内的任何图形。这里我们以“尚”字说明,如图26所示。图26“尚”字显示图用8位的80C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。在此我们把它拆分为上部和下部,上部由816点阵组成,下部也由816点阵组成。在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的P00P07口。方向为P00到P07,显示汉字“学”时,由上往下排列,为P00亮,P01灭,P02灭,P03灭,P04灭,P05灭,P06灭,P07灭。即二进制10000000,转换为16进制为80H。第一列的上半部完成后,继续扫描第一列的下半部,为了接线的方便,我们仍设计成由上往下扫描,从上图可以看到,这一列全部为不亮,即为00000000,16进制则为00H。然后单片机转向第二列的上半部,P01点亮,为01000000,即16进制40H这一列完成后继续进行下半部分的扫描,P20点亮,为二进制00000001,即16进制01H。依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“尚”的扫描代码为080H,000H,040H,001H,067H,0FFH,034H,004H01CH,008H,015H,0FCH,007H,030H,0FDH,050H005H,090H,00DH,050H,017H,0F8H,064H,012H02CH,009H,017H,0FEH,020H,002H,040H,001H由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。不过现在有很多现成的汉字字模生成软件,就不必去画表格算代码了。打开字模,设定一下输出方式,输入汉字后,再单击“取模”。十六进制数据的汉字代码即可自动生成,把我们所需要汉字代码复制到我们的C程序中即可,如下图27所示。图27汉字字模生成图26硬件系统的整体设计图与原理分析硬件系统的整体设计图如下图28所示。图28硬件系统的整体设计图原理分析PROTEUS74软件中只有88和57等LED点阵,所以需要由小的LED屏拼接成一个大的LED显示屏。上图的LED显示部分是由8个88的点阵构成整体的1632点阵屏,可以同时显示两个汉字(或4个英文字母)。要注意的是在PROTEUS74软件中,由于点阵块数太多,所以其接线比较的复杂。此处采用以上接线方式,把8个LED点阵屏以“一共两行,每行4个”的方式紧凑连接在一起,隐藏了那些错综复杂的连线,使我们在视觉上觉得更清新,更一目了然。原理图中,拼接后的点阵式LED显示屏采用的是逐列扫描的工作方式。将事先已经编写好的C语言程序输入到单片机中,80C51单片机的P2口的P20口至P22口连接4个74LS1383线8线译码器的输入端,再由4组8个相应的输出端,与连接LED显示屏对应的列端相连,用来选中所要显示的字符的列。单片机的P0口负责输入所要显示的第一个字的代码信息,P1口负责输入所要显示的第二个字的代码信息。然后又由P0口负责输入所要显示的第二个字的代码信息,P1口负责输入所要显示的第三个字的代码信息,这样在我们的视觉上就感觉字是在连续着在向左移动了。这样依次类推,所有的字都能连续的左移着显示出来。另外,在对单片机进行校验时,P0口须接上10K左右的上拉电阻,就是上图中的RP1电阻。对于74LS138译码器U2来说,其中E1端必须为高电平才能有效,也就是说此时译码器才能正常工作。E2和E3端是低电平有效,用来接地端。其余的3个译码器的原理都是这样。27小结本章节主要介绍了设计中硬件电路用到的单片机80C51芯片的总体结构和各个重要引脚的功能、显示电路中主要器件74LS138译码器的各个引脚及其功能、以及整体设计结构框图的讲解和具体实现字符的连续左移显示的详细分析。3系统的软件部分设计应用系统中的应用软件是根据系统功能要求而设计的,能可靠地实现系统的各种功能。31程序设计思路与结构系统采用模块化结构,包括主程序、延时程序、显示子程序11。311程序设计思路计算机按照给定的程序,逐条执行指令,以完成某项规定的任务。因此,使用计算机必须编写出计算机能执行的程序,用简短的C语言程序进行设计,实现与计算机的通讯,能方便改动显示的内容,使显示内容能够一个接一个的左移滚动慢慢的显示。由单片机80C51的P2口输出进行片选。片选1有效时,将所要显示的汉字的段码值送给P0,P1。驱动相应段点亮。直到送完16个段码就可以显示一个汉字了。312程序设计流程图系统程序主要由开始、初始化、主程序、字库等组成。其中主程序和子程序的流程图如图31和图32所示。Y开始初始化调用显示程序调整数据指针是否显示完图31主程序流程图对图31主程序流程图的简要分析如下首先“开始”,然后对整个系统进行初始化,之后调用相应的显示程序,之后开始调整一下数据的指针,判断此时需要显示的字符是否已经显示完毕。如果已经显示完毕就返回到系统“初始化”的时刻继续进行接下来的流程,如果没有显示完毕则返回到“调用显示程序”的时刻继续接着的流程。开始设一帧显示时间关闭显示并调整指针设片选及数据指针查汉字上部数据及显示查汉字下部数据及显示延时1MS结束是否显示完汉字一帧时间是否到NNYY图32显示程序流程图对图32显示程序流程图的简要分析如下首先开始,之后设定显示一帧字符所用的时间,然后设定片选指针以及数据指针,然后查找相应的汉字或字符的上部数据及显示,接着查找查相应的汉字或字符的下部数据及显示,然后对整个系统延时1MS,之后关闭之前显示的字符内容并调整相关数据的指针,此时判断需要显示的字符是否显示完毕。若没有显示完毕,则返回到“设片选及数据指针”处进行重新工作流程;若已经显示完毕,则判断此时一帧的时间是否完毕。如果时间没有完毕,则返回至“设定一帧显示时间”处重新设定该时间;反之整个系统程序结束完成。32模块程序设计该设计中主要由系统初始化、LED动态显示、汉字显示程序设计以及显示设计几个部分组成。321系统初始化将事先已经编写好的C语言程序输入到单片机中,80C51单片机的P2口的P20口至P22口连接4个74LS1383线8线译码器的输入端,再由4组8个相应的输出端,与连接LED显示屏对应的的列端相连,用来选中所要显示的字符的列。对于74LS138译码器U2来说,其中E1端必须为高电平才能有效,也就是说此时译码器才能正常工作。E2和E3端是低电平有效,用来接地端。其余的3个译码器的原理都是这样。322LED动态显示此次设计理论显示结果为在显示屏上,汉字按照从右向左的顺序一个个显示。设计时可采用如下方法首先将LED显示屏对应的显示缓冲区全部清零,即LED显示空白,然后通过延时程序来设定各个字符的动态显示时间,显示缓冲区依次加入一个汉字点阵数据并进行扫描显示,这样就可达到动态显示的效果12。单片机的P0口负责输入所要显示的第一个字的代码信息,P1口负责输入所要显示的第二个字的代码信息。然后又由P0口负责输入所要显示的第二个字的代码信息,同时P1口来负责输入所要显示的第三个字的代码信息,这样在我们的视觉上就感觉字是在连续着在向左移动了。这样依次类推,所有的字都能连续的左移着显示出来。323汉字显示程序设计打开“字模提取伴侣”软件,设定一下参数设置,即选择C51格式,字节倒序,冗余格式,纵向取模。这样输入单个的汉字后,再单击“取模”。此时十六进制数据的汉字代码即可自动生成,把我们所需要汉字代码复制到我们的C语言程序中就可以了13。从字模提取伴侣中得到需要显示汉字的代码值。如“余境成”的代码为UNSIGNEDCHARCODEZIKU/字符码的存放格式为从左到右共16列,并按列的上下部分依次存放/一组即为一列/转换字符余/0X01,0X00,0X01,0X00,0X02,0X80,0X04,0X40,0X08,0X20,0X10,0X10,0X2F,0XEE,0XC1,0X04,0X01,0X10,0X3F,0XF8,0X01,0X00,0X09,0X20,0X19,0X18,0X21,0X0C,0X45,0X04,0X02,0X00,/转换字符境/0X20,0X80,0X20,0X48,0X27,0XFC,0X21,0X10,0X20,0XA4,0XFF,0XFE,0X20,0X08,0X23,0XFC,0X22,0X08,0X23,0XF8,0X22,0X08,0X3B,0XF8,0XE1,0X20,0X41,0X22,0X02,0X22,0X0C,0X1E,/转换字符成/0X00,0X80,0X00,0XA0,0X00,0X90,0X3F,0XFC,0X20,0X80,0X20,0X80,0X20,0X84,0X3E,0X44,0X22,0X48,0X22,0X48,0X22,0X30,0X2A,0X20,0X24,0X62,0X40,0X92,0X81,0X0A,0X00,0X06;324显示设计汉字显示的原理汉字的显示主要是通过将需要显示的汉字的段码值送入显示模块而完成的。首先从字模软件中得到需要显示汉字的段码值。WHILE1FORI0I8I/显示左半边屏幕P0POFFSET2IP2I|0X08/P240,P231选中U2,输出扫描码给U6DELAYP0POFFSET2I1P2I|0X10/P241,P230选中U3,输出扫描码给U7DELAYFORI8I16I/显示右半边屏幕P0POFFSET2IP2I8|0X20/P251P240,P230选中U4,输出扫描码U8DELAYP0POFFSET2I1P2I8|0X40/P261P250,P240选中U5,输出扫描码U9DELAY33小结本章主要介绍了软件设计中的主程序和显示程序的流程图以及对其内容的简要介绍,以及相关的软件程序,并最终达到所要求的LED显示结果。4系统仿真PROTEUS内容全面包括其能实验的内容包括软件部分的汇编、C51等语言的调试过程,也包括硬件接口电路中的大部分类型。对同一类功能的接口电路,可以采用不同的硬件来搭建完成,因此采用PROTEUS仿真软件进行实验教学,克服了用单片机实验教学板教学中硬件电路固定、学生不能更改、实验内容固定等方面的局限性,可以扩展学生的思路和提高学生的学习兴趣。41仿真环境介绍PROTEUS是目前最好的模拟单片机外围器件的工具,它可以仿真51系列、AVR,PIC等常用的MCU及其外围电路如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件14。当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,可是对于单片机爱好者,或者简单的开发应该是比较好的选择。PROTEUS与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。KEILC51是美国KEILCSOFTWARE公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KEILC5软件提供丰富的库函数和功能强大的集成开发调试工具,全WINDOWS界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KEILC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。42仿真过程与结果利用以上两种软件,就可以进行仿真了。这里以一个1632点阵汉字显示为例说明。421绘制电路图运行PROTEUS的ISIS程序后,进入该仿真软件的主界面。在工作前,要设置VIEW菜单下的捕捉对齐和SYSTEAM下的颜色、图形界面大小等项目。通过工具栏中的P从库中选择元件命令命令,在PICKDEVICES窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,将电路图绘制完毕。422HEX文件的生成利用KEIL51生成HEX文件。具体方法如下1打开单片机软件开发系统KEILUVISION,单击“UVISION”菜单中的“PROJECT”,在此下拉菜单中单击“NEWPROJECT”后。弹出“CREATNEWPROJECT”对话框。键入新建项目名称。2键入新建项目名并单击“确定后”,在弹出的“SELECTDEVICE”对话框中选择合适的单片机型号,如80C51。3单击“UVISION”菜单中的“FILE”,在此下拉菜单中选择“NEW”后,打开一个空的文本编辑口,在此窗口总键入程序,创建新的源程序“一个1616点阵汉字显示C”如是汇编语言程序的话为“一个1616点阵汉字显示ASM文件。4在左边的“PROJECT”窗口的“FILE”页中单击文件组,再单击鼠标右键后,在弹出的窗口中选中“ADDFILESTOGROUP”“SOURCEGROUP1”选项,将“一个1616点阵汉字显示C”程序导入到“SOURCEGROUP1”中。5在“PROJECT”下拉菜单中,选择“OPTIONSFORTARGET”对话框,在此对话框中“OUTPUT”选项卡中的“CREATHEXFILE”选项。6在“PROJECT”下拉菜单中,选择“REBUILDALLTARGETFILES”项。若程序编译成功,将生产“一个1616点阵汉字显示HEX”文件。423调试与结果在PROTEUSISIS编辑窗口中,单击鼠标右键选中单片机80C51并单击鼠标左键,弹出“EDITCOMPONET”对话框,在此对话框的“CLOCKFREQUENCY”栏中设置单片机晶振频率为12MHZ,在“PROGRAMFILE”栏中单击浏览选中KEIL

温馨提示

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

评论

0/150

提交评论