单片机交通班次信息公告牌论文.doc_第1页
单片机交通班次信息公告牌论文.doc_第2页
单片机交通班次信息公告牌论文.doc_第3页
单片机交通班次信息公告牌论文.doc_第4页
单片机交通班次信息公告牌论文.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

重庆信息技术职业学院毕业设计重庆信息技术职业学院题目 单片机交通班次信息公告牌 选题性质:设计报告其他 院 系 电子工程学院 专 业 电子信息工程技术 2013年 9 月 20 日 2014 届 电子工程 学院毕业设计选题审批单年级 专业 班级 学生姓名 学 号 选题 选题性质设计报告其他选题论证: 指导教师初审意见:签 名:年 月 日毕业设计工作领导小组审批意见:签 名:年 月 日 2014 届 电子工程 学院毕业设计开题报告及进度要求年级 班级 学生姓名 学 号 指导教师 选题性质设计报告其他选题 选题的目的和意义: 选题研究的主要内容和技术方案:毕业设计工作时间2012年 9月 1日 至 2012年 10月 20 日毕业设计工作日程安排时间段工作内容选题、开题、制定任务、开题完成毕业设计指导教师意见: 成果要求: 签字: 年 月 日I 摘 要本设计使用的是ATMEL公司生产的AT89C51单片机作为控制核心,通过控制32*16的LED点阵电子显示屏使其拥有多种显示方式。单片机控制程序采用单片机C51语言进行编辑,通过编程控制各个显示点对应LED阳极和阴极端的电平,就可以有效的控制个显示点的亮灭。所显示字符的点阵数据可以自行编写,也可从标准字库中提取。显示屏采用32*16的LED点阵,可同时显示两个汉字或单色图像。显示方式采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。本设计实现了单片机与PC机间的数据传输及存储,并能利用软件方便的进行显示内容的多样变化,另一面点阵显示屏广泛的应用于交通班次信息的公告等等,所以本设计具有很强的现实应用性。关键字:AT89C51、LED点阵显示屏、C语言、串口通信目 录摘 要I绪 论1第1章 LED显示屏的发展背景及目标21.1 LED显示屏的发展背景及国内外研究现状21.2 设计目标及采取的方案21.2.1本设计的目标21.2.2本设计采取的方案31.3 文章的结构安排3第2章 系统总体分析42.1 显示部分42.2 驱动电路的选择42.3 电源模块选择52.4 工作原理5第3章 系统硬件设计63.1 AT89C51芯片的介绍63.2 时钟电路93.3 复位电路103.4 键盘模块设计103.5点阵式汉字LED显示屏设计113.5.1 LED的特点以及常用的参数113.5.2 LED电子显示屏123.5.3 LED电子显示屏显示字符原理133.6.4 汉字显示的原理143.7 整体电路17第4章 系统软件设计184.1 主程序设计如图4.1所示184.2 子程序设计22结 论25参考文献2627第 页 绪 论LED显示屏是20世纪90年代出现的新型平板显示器件,由于其亮度高、画面清晰、色彩鲜艳,使它在公众多媒体显示领域一枝独秀,因此市场空间巨大。LED显示屏的发展可分为以下几个阶段:第一阶段为1990年到1995年,主要是单色和16级双色图文屏。用于显示文字和简单图片,主要用在车站、金融证券、银行、邮局等公共场所,作为公共信息显示工具。 第二阶段是1995年到1999年,出现了64级、256级灰度的双基色视频屏。视频控制技术、图像处理技术、光纤通信技术等的应用将LED显示屏提升到了一个新的台阶。LED显示屏控制专用大规模集成电路芯片也在此时由国内企业开发出来并得以应用。第三阶段从1999年开始,红、纯绿、纯蓝LED管大量涌入中国,同时国内企业进行了深入的研发工作,使用红、绿、蓝三原色LED生产的全彩色显示屏被广泛应用,大量进入体育场馆、会展中心、广场等公共场所,从而将国内的大屏幕带入全彩时代。实际上,从2000年起,LED草坪灯、交通信号灯、手电筒、地板灯、景观灯等开始进入市场,经过近几年的发展,规模上有较大增长。从应用产品的开发来说,首先是要把新应用研制出来。2004年4月在德国法兰克福照明展上,展出了80家公司采用Luxeon功能器件开发出的应用产品。然而考虑开发什么产品时,一定要从发挥LED本身优点方面出发,如从它的长寿命、防潮、耐振动特性出发,可开发建筑照明、景观灯具、水底投射灯具、广告投光灯具、车辆灯具和交通信号灯;从省电、重量轻、体积小的特性出发,可开发室内照明灯、博物馆投射灯、安全出口标志灯、手电筒;从聚光性好等特性出发,可开发薄形灯具、小台灯、广告灯箱、舞台灯和煤矿灯;从低电压、快速驱动特性出发,可开发手电筒、维修灯、埋地灯、草坪灯和水中灯;从单一波长高亮度特性出发,可开发交通信号灯、道路警示灯、障碍灯和刹车灯等。LED点阵显示屏是通过PC机将要显示的汉字字模提取出来,并发送给单片机,然后显示在点阵屏上,主要适用于室内外汉字显示。第1章 LED显示屏的发展背景及目标1.1 LED显示屏的发展背景及国内外研究现状在大型商场、车站、码头、地铁站以及各类办事窗口等越来越多的场所需要用LED点阵显示图形和汉字。LED行业已成为一个快速发展的新兴产业,市场空间巨大,前景广阔。随着信息产业的高速发展,LED显示作为信息传播的一种重要手段,已广泛应用于室内外需要进行服务内容和服务宗旨宣传的公众场所,例如户内外公共场所广告宣传、机场车站旅客引导信息、公交车辆报站系统、证券与银行信息显示、餐馆报价信息豆示、高速公路可变情报板、体育场馆比赛转播、楼宇灯饰、交通信号灯、景观照明等。显然,LED显示已成为城市亮化、现代化和信息化社会的一个重要标志。LED点阵设计主要应用于显示屏,它是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。由于它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内室外环境适应能力强等优点,自20世纪80年代后期开始,随着LED制造技术的不断完善,在国外得到了广泛的应用。在我国改革开放之后,特别是进入90年代国民经济高速增长,对公众场合发布信息的需求日益强烈,LED显示屏的出现正好适应了这一市场形势,因而在LED显示屏的设计制造技术与应用水平上都得到了迅速的提高。LED显示屏经历了从单色、双色图文显示屏,到图像显示屏的发展过程。1 1.2 设计目标及采取的方案 1.2.1本设计的目标毕业设计是学生完成本专业教学计划达到培养目标的重要的教学环节,是教学计划中综合性最强的实践性教学环节,它对于培养学生正确的思想和工作作风,提高学生综合运用专业知识分析和解决实际问题的能力,达到工程技术人员所必须具备的基本素质等方面具有重要的意义。本设计的理论基础是单片机技术基础,微机原理,模拟和数子电路。比如AT89C51芯片的一些工作原理是在MCS51的基础上通过改进完成的。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 则表示二极管被点亮。若给每一个发光二极管一个驱动电路,一幅画面输入以后,所有L ED 的状态保持到下一幅画。对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,成本高,且可靠性也较低。动态显示,对一幅画面进行分割,对组成画面的各部分分别显示,是动态显示方式。动态显示方式,可以避免静态显示的问题。但设计上如果处理不当,易造成亮度低,闪烁问题。因此合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。动态显示采用多路复用技术的动态扫描显示方式, 复用的程度不是无限增加的, 因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短, 发光的亮度等因素。通过实验发现, 当扫描刷新频率(发光二极管的停闪频率) 为50Hz, 发光二极管导通时间1m s 时, 显示亮度较好, 无闪烁感。 由于静态显示方式,所需的译码驱动装置很多,引线多而复杂,成本高,且可靠性也较低。而动态显示可以避免静态显示的问题,只是在设计时应注意合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。且动态显示易于制作和理解,又能巩固所学知识,达到毕业设计的目标。我采用动态显示。22.2 驱动电路的选择驱动电路的选择采取并口输入,占用大量I/O口资源。选取串口输入,I/O口资源使用较少。所以我选用串口输入。电路中行方向由AT89C51的p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个4.7k*8的排阻上拉。为提供负载能力,接16个2N5551的NPN三极管驱动。列方向则由416译码器74LS154完成扫描,它由89C51的P1.0-P1.3控制。同样,驱动部分则是16个2N5401的三极管完成的。2.3 电源模块选择采用干电池作为LED点阵系统的电源,由于点阵系统耗电量较大,使用干电池需经常换电池,不符合节约型社会的要求。点阵系统要悬挂在墙上,电池总量大,使用会有较大安全隐患。采用一片LM7805三端稳压器,耗电电流为100Ma左右的电源作为系统电源,不仅功率上可以满足系统需要,不需要更换电源,并且比较轻便,使用更加安全可靠。2.4 工作原理使用8*8的点阵发光管模块, 而是直接使用了256个高量度发光管,组成了16行16列的发光点阵。同时为了降低制作难度, 仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。我们把行列总线接在单片机的IO口,然后把扫描代码送入总线,就可以得到显示的汉字了。但是若将LED点阵的行列端口全部直接接入89C51单片机,则需要使用32条IO口,这样会造成IO资源的耗尽,系统也再无扩充的余地。因此,我们在实际应用中只是将LED点阵的16条行线直接接在P0口和P2口,至于列选扫描信号则是由4-16线译码器74LS154来选择控制,这样一来列选控制只使用了单片机的4个IO口,节约了很多IO资源,为单片机系统扩充使用功能提供了条件。考虑到P0口必需设置上拉电阻,我们采用4.7 k排电阻作为上拉电阻。3第3章 系统硬件设计LED点阵设计主要应用于显示屏,它是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。由于它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内室外环境适应能力强等优点,自20世纪80年代后期开始,随着LED制造技术的不断完善,在国外得到了广泛的应用。在我国改革开放之后,特别是进入90年代国民经济高速增长,对公众场合发布信息的需求日益强烈,LED显示屏的出现正好适应了这一市场形势,因而在LED显示屏的设计制造技术与应用水平上都得到了迅速的提高。LED显示屏经历了从单色、双色图文显示屏,到图像显示屏的发展过程。4本设计采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74LS154)、1616 LED点阵5部分组成。有上述工作原理,我画出来该系统的框图。设计总体框图如图3.1所示74LS1544*4键盘图3.1 系统框图8255AT89C51时钟/复位电路LED大屏幕显示3.1 AT89C51芯片的介绍AT89C51是一种带4 kB闪烁可编程可擦除只读存储器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,数据保留时间为10年。他是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。其主要参数及引脚图及其功能如图3.2所示:主要性能参数:(1)与MCS-51产品指令系统完全兼容(2)4k字节可重擦写Flash闪速存储器(3)1000次擦写周期(4)全静态操作:0Hz24MHz(5)三级加密程序存储器(6)128*8字节内部RAM(7)32个可编程I /O口线(8)低功耗空闲和掉电模式(9)6个中断源图3.2 AT89C51AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash 存储器单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。6管脚说明: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口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在Flash编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD (串行输入口)P3.1 TXD (串行输出口)P3.2 /INT0 (外部中断0 )P3.3 /INT1 (外部中断1)P3.4 T0 (记时器0外部输入)P3.5 T1 (记时器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信号将不出现5。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET:当/EA端保持高电平时,此间内部程序存储器。在Flash编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1: 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2: 来自反向振荡器的输出。43.2 时钟电路由AT89C51的18,19脚的时钟端(XTALl及XTAL2)以及12 MHz晶振X1、电容C1,C2组成,采用片内振荡方式。 图3.3 时钟电路3.3 复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位,如图3.4所示。图3.4 复位电路图采用简易的上电复位电路,主要由电阻R1,R2,电容C3,开关K1组成,分别接至AT89C51的RST复位输入端。3.4 键盘模块设计键盘、状态显示模块:为了使软件编程简单,本设计利用可编程芯片8255。P3口接按键,PC口则用于控制状态显示所用LED点阵。每个按键都通过一个10K的上拉电阻接电源+Vcc,按键的另一端接地。当有键按下时,与该键相连的P3口的相应位变为低电平,单片机检测到该变化后即转到相应的键处理程序,同时在程序中点亮LED点阵,如图3.5所示。 图3.5 键盘3.5点阵式汉字LED显示屏设计3.5.1 LED的特点以及常用的参数LED是一种固体光源,当它两端加上正向电压,半导体中的少数载流子和多数载流子发生复合,放出的过剩能量将引起光子发射。采用不同的材料,可制成不同颜色的发光二极管。作为一种新的光源,近年来各大公司和研究机构对LED的研究方兴未艾,使其光效得以大大提高,飞利浦与Agilent的合资公司目前已研发并生产出光效达到171M/W的白色LED,已达到白炽灯的水平。和白炽灯的相比较,LED在性能上具有很多优点,见下表3.1。5随着对LED研究的进一步深入,其光效将进一步得到提高,而其成本将一步下降,在不久的将来LED取代白炽灯甚至荧光灯而发展成21世纪的一种主要的照明光源将成为一种趋势。新的光源呼唤新的电子镇流器,飞利浦照明电子在致力研发新的LED的同时,已于近年在全球各大开发中心开始了LED驱动电路的研究,在此研发领域已占据了世界领先的地位。表3.1 白炽灯与白色LED的性能比较项 目 LED 白 炽 灯色温 (K)300010000 2500-3000光效 (1K/W) -15 15反应速度(s) 0.5 100000冲击电流010倍额定电流耐压击性很 强易 断 裂寿命(h) 2000 1000LED的电压和电流的匹配,如图3.6所示。 I(mA) U(V) 图3.6 LED的电压和电流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 :Light Emitting Diode)已日趋在固体显示中占主导地位。LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。这些优点概括起来是:高亮度、工作电压低、功耗小、小型化而与集成电路匹配,目前应用最广的是红色、绿色、黄色LED。而蓝色和纯绿色LED的开发已经达到了实用阶段。从显示方面讲,LED可以显示文字、数字(数码管),也可以显示图形图象(LED矩阵模块),从应用方面,LED显示即可以用于室内环境,也可以用于室外环境。63.5.2 LED电子显示屏随着科学技术的高速发展,各种新型信息媒体,信息相关设备及手段不断涌现。LED电子显示屏由于具有所显内容信息量大,外形美观大方,操作方便灵活,是近年来得到广泛应用的重要信息设备,大致有以下几类6:(1)条形显示屏该系列可用于显示文字、表格、符号和简单图形等,控制系统体积较小,嵌入在显示屏替内部,一般采用红色高亮度点阵模块,表面可外履深红色遮光薄膜,适用于多种场合发布通知、广告等信息。(2)图文显示屏该产品主要用计算机控制,具有处理速度快、存储容量大等特点,适合显示面积较大的图文信息,可适时显示系统当前日历、时间、文件等,被广泛运用在商场、街道、广场、车站等人群或流动量大的场合。(3)256级灰度视频显示屏该系列具有256级灰度控制功能,使没种基色可达256种颜色,图象显示细腻、柔和、颜色丰富、层次感强等特点。该系列显示屏可显示真彩色图象、电脑动画和电视机、录象机、影碟机等视频节目信息,图象清晰稳定,无噪点和闪烁感。本设计用的显示屏为256级灰度视频显示屏。汉字显示屏广泛应用与汽车报站器,广告屏等。本文介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,没有使用8*8的点阵发光管模块,而是直接使用了256个高量度发光管,组成了16行16列的发光点阵。同时为了降低制作难度, 仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。3.5.3 LED电子显示屏显示字符原理如图3.7所示为单基色8*8的点阵屏内部结构图5 图3.7 单基色8*8的点阵屏内部结构图图3.8 LED显示屏内部电路从图3.8上可知,它的每一列共用一根列线,每一行共用一根行线。当相应的行接高电平,列接低电平时,对应的发光二极管被点亮。通常情况下,一块8*8像素的LED显示屏是不能用来显示一个汉字的,因此,按照其原理结构进行扩展为16*16,就足以显示一个完整的汉字。在显示过程中,多采用扫描方式,利用人的视觉暂停效应,只要刷新速率不小于25帧/秒,就不会有闪烁的感觉。LED点阵显示屏采用1616共256个象素的点阵,通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布,如图3.9所示。7图3.9 LED点阵显示屏底视图我们把行列总线接在单片机的IO口,然后把上面分析到的扫描代码送人总线,就可以得到显示的汉字了。但是若将LED点阵的行列端口全部直接接入89C51单片机,则需要使用32条IO口,这样会造成IO资源的耗尽,系统也再无扩充的余地。因此,我们在实际应用中只是将LED点阵的16条行线直接接在P0口和P2口,至于列选扫描信号则是由4-16线译码器74HC154来选择控制,这样一来列选控制只使用了单片机的4个IO口,节约了很多IO资源,为单片机系统扩充使用功能提供了条件。考虑到P0口必需设置上拉电阻,我们采用4.7 k排电阻作为上拉电阻。3.6.4 汉字显示的原理我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字, 也可以显示在256像素范围内的任何图形,如图3.10所示。8 图3.10 16行16列的点阵组成显示图用8位的AT89C51单片机控制, 由于单片机的总线为8位,一个字需要拆分为2个部分。 一般我们把它拆分为上部和下部,上部由8*16点阵组成, 下部也由8*16点阵组成。在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的p00-p07口。方向为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.11所示。图3.11 汉字字模生成界面可见,汉字点阵显示一般有点扫描、行扫描和列扫描3种。为了符合视觉暂留要求,点扫描方法的扫描频率必须大于16641 024 Hz,周期小于1 ms即可。行扫描和列扫描方法的扫描频率必须大于168一128 Hz,周期小于78 ms即可,但是一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。3.7 整体电路如图3.14所示整体电路图。第4章 系统软件设计软件程序主要由开始、初始化、主程序、字库组成。其中主程序和子程序的流程图如图所示。主程序中,同一帧的反复扫描次数的设定,决定了显示移动的速度延时程序至关重要,这就涉及到前文所说的刷新速率问题,如设置不当,就会有闪烁感。4.1 主程序设计如图4.1所示初始化调用显示程序调整数据指针开 始是否显示完YN主程序流程设计图如4.1所示图4.1 主程序流程图LED 点阵主程序,该程序能够用来实现“信息技术学院”等汉字的显示。ORG 00HLOOP: MOV A,#0FFH ;开机初始化,清除画面MOV P0,A ;清除P0口ANL P2,#00 ;清除P2口MOV R2,#200D100MS: MOV R3,#250 ;延时100毫秒DJNZ R3,$DJNZ R2,D100MSMOV 20H,#00H ;取码指针的初值l100:MOV R1,#100 ;每个字的停留时间L16: MOV R6,#16 ;每个字16个码MOV R4,#00H ;扫描指针清零MOV R0,20H ;取码指针存入R0L3: MOV A,R4 ;扫描指针存入AMOV P1,A ;扫描输出INC R4 ;扫描指针加1,扫描下一个MOV A,R0 ; 取码指针存入AMOV DPTR,#TABLE ;取数据表的上半部分的代码MOVC A,A+DPTRMOV P0,A ; 输出到P0INC R0 ;取码指针加1,取下一个码。MOV A,R0MOV DPTR,#TABLE ;取数据表下半部份的代码MOVC A,A+DPTRMOV P2,A ;输出到P2口INC R0MOV R3,#02 ;扫描1毫秒DELAY2: MOV R5,#248 ;DJNZ R5,$DJNZ R3,DELAY2MOV A,#00H ;清除屏幕MOV P0,AANL P2,#00HDJNZ R6,L3 ;一个字16个码是否完成?DJNZ R1,L16 ;每个字的停留时间是否到了?MOV 20H,R0 ;取码指针存入20HCJNE R0,#0FFH,L100 ;8个字256个码是否完成?JMP LOOP ;反复循环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 子程序设计子程序流程设计如图4.2所示开 始 设1帧显示时间 设片选及数据指针 查汉字上部数据及显示 查汉字下部数据及显示 延时1ms 关显示并调整时针1帧时间是否到是否显示完汉字结 束YYNN 图4.2 子程序流程图延时子程序,协调字符显示速度: DELAY: MOV R7,#1HDL1: MOV R6,#00HDL2: DJNZ R6,DL2DJNZ R7,DL1RETLED 点阵显示子程序:CSLED EQU 8000HCSR1 EQU CSLED ;行1 273CSR2 EQU CSLED+1H ;行2 273CSC1 EQU CSLED+2H ;列1 374CSC2 EQU CSLED+3H ;列2 374ORG 0000HMOV SP,#60HINIT: MOV A,#0H ;关闭行MOV DPTR,#CSR1MOVX DPTR,AMOV DPTR,#CSR2MOVX DPTR,AMOV A,#0FFH ;关闭列MOV DPTR,#CSC1MOVX DPTR,AMOV DPTR,#CSC2MOVX DPTR,AD: MOV R5,#00HMOV R4,#01H ;每次为单行扫描DISP:MOV A,R5MOV DPTR,#ASCE ;此处设定所要显示的字符MOVC A,A+DPTRCPL ACC ;代码取反,决定显示的阴阳MOV DPTR,#CSC2MOVX DPTR,AMOV DPTR,#CSR1MOV A,R4MOVX DPTR,ARL ACCMOV R4,ACCINC R5LCALL DELAYCJNE R5,#8H,DISPMOV A,#0HMOVX DPTR,AMOV R5,#08HMOV R4,#01HDISP2:MOV A,R5MOV DPTR,#ASCEMOVC A,A+DPTRCPL ACCMOV DPTR,#CSC2MOVX DPTR,AMOV DPTR,#CSR2MOV A,R4MOVX DPTR,ARL ACCMOV R4,ACCINC R5LCALL DELAYCJNE R5,#10H,DISP2MOV A,#0HMOVX DPTR,ASJMP DEND在完成编写程序的编译之后,准备一台可以烧写AT89C51的编程器并与电脑主机硬件连接后即可对AT89C51芯片进行程序烧录下载,然后,将烧录好程序的AT89C51单片机装入到40脚的IC座上,通电即可调试和运行。另外,延时程序至关重要,这就涉及到刷新速率问题,如设置不当,就会有闪烁感。结 论虽然本设计只使用

温馨提示

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

评论

0/150

提交评论