16×16点阵式LED显示屏毕业设计说明书(共34页).doc
精选优质文档-倾情为你奉上毕业设计说明书课题名称: 点阵式LED汉字显示屏的设计 学生姓名 戴沛夷 学 号 二级学院(系) 电气电子工程学院 专 业 应用电子技术 班 级 电子0911 指导教师 阮越广 起讫时间: 2011 年11 月1 日2012 年1 月6 日专心-专注-专业点阵式LED汉字显示屏的设计摘 要本设计所使用的是AT89C51高性能CMOS 8位微处理器作为主控制模块。利用简单的外围电路来驱动16×16的点阵LED显示屏。利用AT89C51单片机本身强大的功能和E ²PROM可以很方便的实现单片机与PC机之间的数据传递及存贮。并能够利用仿真软件可以很方便的进行仿真调试,和显示内容的多样化。LED汉字点阵广泛应用于银行,机场,港口等公共场所。所以本设计具有很强的应用性。本课题利用嵌入式系统软硬件设计仿真平台Proteus对点阵式LED滚动汉字显示屏进行仿真设计,完成了系统的硬件电路设计和软件编程,并进行了仿真调试,实现了汉字在点阵式LED显示屏上的滚动显示,达到了仿真设计的目的。关键词:仿真; 显示;点阵;微处理器;控制模块 Abstract This design is used AT89C51 MCU as a main controller,and depend on a simple external circuit to driver 16×16 lattice LED display.By using its own powerful functions and capacity of internal E2PROM. It is easy to accomplish the MCU and the PC and E2PROM for internal storage,date transmission equipment,and it also can be used show a varieties content changes.The other dot matrix display is wildely used in Banks,Airports,Ports and other public places.Therefore,the design has strong practical application.With the help of Proteus an embedded system simulation flat, rolling Chinese character display on dot-matrix LED was simulated. Hardware circuit and programs were finished in the embedded system flat. And Simulation debugging was carried on, which fulfilled the rolling Chinese character display on dot-matrix LED. By Proteus simulation, the anticipated design goal was reached. Keywords: Simulation; Proteus; Display; dot-matrix;目 录第1章 绪论1.1 引言点阵式LED组成的汉字显示屏在公共场所应用非常广泛。例如,车站发车时间提示、股票大厅中的股票价格显示板、商场的活动广告栏、候机厅的起飞时间表。点阵显示器的特点是可以按照需要的大小、形状和颜色进行组合,用单片机控制实行各种文字或图型的变化,达到广告宣传和提示的目的。Proteus是一款新颖的嵌入式系统软硬件设计仿真平台,特别适用于单片机仿真,能够在线、实时仿真多种类型的单片机,诸如MCS-51系列单片机、PIC单片机、AVR单片机等,能够像硬件仿真器一样进行软硬件调试,而没必要花钱去购买和维护价格不菲的仿真器,对于初学单片机的人来说,既减少了学习成本,又达到了良好的学习效果。1.2 设计课题的背景知识 LED显示屏分为图文显示屏和视频显示屏,均由LED矩阵块组成。图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于交通运输、车站、商场、医院、宾馆、证券市场、工业企业管理等公共场所。如图所示 LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。这些优点概括起来是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。现代LED的发展很快,很多研究领域非常已经深刻,实际情况是:很多相关的知识已经远远超出我们在校学生的能力范围,所以本课题只是简单的研究一下用单片机驱动的LED移动显示汉字以及Proteus的应用,本课题的目的有一下四点:一是亲手制作一个简单实用的显示文字的LED点阵;二是通过制作LED点阵增强对LED点阵的了解和应用,以及复习巩固单片机知识;三是通过此次课题可以掌握一些仿真软件比如:Proteus,Keil3,PCtoLCD汉字取模软件。四是通过这个课题可以培养我们独立思考,动手实践的能力 图1-1LED的应用 LED点阵显示器是由一串发光或是不发光的点状(或条状)显示器按矩阵的方式排列组成的,其发光体是(LED发光二极管)。LED的汉字显示方式是先根据所需要的汉字提取汉字点阵(如16×16 点阵),常用的汉字取模软件有PCtoLCD等。将字模文件保存形成新的汉字编码;而在使用时则需要先根据新的汉字编码组成语句,再由MCU根据新编码提取相应的点阵进行汉字显示。不论显示图形还是文字,都是控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光。通常事先把需要显示的图形文字转换成点阵图形,在按照显示控制的要求以一定的格式形成显示数据。对于只控制通断的图文显示屏来说,每个LED发光器件占据数据中的1位(1bit),在需要该LE D器件发光的数据中相应的位填1,否则填0。当然,根据控制电路的安排,相反的定义同样时可行的。这样依照所需显示的图形文字,按显示屏的各行各列逐点填写显示数据,就可以构成一个显示数据文件。显示图形的数据文件,其格式相对自由,只要能够满足显示控制的要求即可。文字的点阵格式比较规范,可以采用现行计算机通用的字库字模。组成一个字的点阵,其大小也可以有8×8、16×16、24×24、32×32、48×48等不同规格。当前,LED点阵显示器的应用十分广泛。下图为8×8点阵LED的等效电路图和外观及引脚,16×16的诸如此类的。图1-2 8×8点阵LED等效电路图图1-3 8×8点阵LED外观及引脚图1.3 LED的扫描方式点阵LED一般采用扫描式显示,实际运用分为如下三种方式:点扫描;行扫描;列扫描;若采用第一种方式,其扫描频率F必须大于16×64=1024Hz,周期小于1ms。若采用第二种和第三种方式,则F必须大于16×8=128Hz,周期小于7.8ms才可以符合视觉暂留要求。此外一次驱动一行和一列是需外加驱动电路提高电流,否则LED亮度会不足。根据位选线与段选线的连接方法不同,LED显示器可以分为静态显示和动态显示两种方式。段选线控制字符选择,位选控制显示位的亮暗。LED在显示某一字符时,其显示驱动电路要具有锁存功能,由单片机送出的显示驱动码一经送出后,在不改变显示内容的情况下该驱动吗一直保持到下一个字符为止。这是LED的静态显示。因为LED的静态显示要占用大量的I/O口,硬件电路也比较复杂,为了简化电路,降低成本,可采用动态显示的硬件接法是将所有的LED显示器的段选线并在一起,接到一个8位的I/O口上,而位选线则分开接到各自的控制I/O线上。由于各LED的段选线是接到一起的,如果不加控制,在显示字模时各LED会显示出同样的内容,为解决这一问题,应使LED在每一个时间段内只显示一位,在此期间只使一位LED的位选线有效,则在此期间只有一位LED显示,其他的则不显示。各LED在一个显示周期内分别显示一段时间,当一个显示周期足够短时(小于10ms),由于人眼的视觉暂留特性,使人感觉每个LED都在亮。 第2章 方案设计 2.1 任务要求选用合适的51系列单片机并设计一个点阵汉字显示屏。显示屏有一块16×16点阵LED显示器组成,通过按键可以实现逐字、向左右移动显示4个汉字的功能。完成相应的软硬件设计。可以通过制作实物或利用PROTEUS仿真软件完成调试。2.2 方案设计LED点阵总体框图如图所示,点阵电路大体上可以分成微机本身的硬件、显示驱动电路、控制信号电路三部分。控制电路部分包括一个51CUP和一些外围电路。在整个电路当中此控制电路部分相当于一个上位机,它负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给屏体电路部分发送命令。点阵显示屏体、以及它的行和列的各个驱动电路。由于两部分的电路在制板时可以放到一起,所以可以将其字库放到控制电路部分使用串行通讯方式来与屏体电路部分进行数据和命令的传送。此显示电路采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。由行译码器给出的行选通信号,从第一行开始,按顺序依次对各行进行扫描(把该行与电源的一端接通)。另一方而,根据各列锁存的数据,确定相应的列驱动器是否将该列与电源的另一端接通。接通的列,就在该行该列点燃相应的LED;未接通的列所对应的LED熄灭。图 2-1 系统框图第3章 硬件设计3.1 51单片机简介单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。8051是MCS-51系列单片机的一个产品。MCS-51系列单片机是Intel公司推出的通用型单片机,8051单片机系列指的是MCS-51系列和其他公司的8051衍生产品。这些衍生品是在基本型基础上增强了各种功能的产品。这些产品给8位单片机注入了新的活力,给它的开发应用开拓了更广泛的前景。8051系列的内部结构可以划分为CPU、存储器、并行口、串行口、定时器/计数器、中断逻辑几部分。(1)中央处理器8051的中央处理器由运算器和控制逻辑构成,其中包括若干特殊功能寄存器(SFR)。算术逻辑单元ALU能对数据进行加、减、乘、除等算术运算;“与”、“或”、“异或”等逻辑运算以及位操作运算。ALU只能进行运算,运算的操作数可以事先存放到累加器ACC或寄存器TMP中,运算结果可以送回ACC或通用寄存器或存储单元中,累加器ACC也可以写为A。B寄存器在乘法指令中用来存放一个乘数,在除法指令中用来存放除数,运算后B中为部分运算结果。程序状态字PSW是个8位寄存器,用来寄存本次运算的特征信息,用到其中七位。PSW的格式如下所示,其各位的含义是:CY:进位标志。有进位/错位时CY=1,否则CY=0。 AC:半进位标志。当D3位向D4位产生进位/错位时,AC=1,否则AC=0,常用于十进制调整运算中。F0:用户可设定的标志位,可置位/复位,也可供测试。RS1、RS0:四个通用寄存器组选择位,该两位的四种组合状态用来选择03寄存器组。OV:溢出标志。当带符号数运算结果超出-128+127范围时OV=1,否则OV=0。当无符号数乘法结果超过255时,或当无符号数除法的除数为0时OV=1,否则OV=0。P:奇偶校验标志。每条指令执行完,若A中1的个数为奇数时P=1,否则P=0,即偶校验方式。控制逻辑主要包括定时和控制逻辑、指令寄存器 、译码器以及地址指针DPTR和程序寄存器PC等。单片机是程序控制式计算机,即它的运行过程是在程序控制下逐条执行程序指令的过程:从程序存储器中取出指令送指令存储器IR,然后指令译码器ID进行译码,译码产生一系列符合定时要求的微操作信号,用以控制单片机的各部分动作。8051的控制器在单片机内部协调各功能部件之间的数据传送、数据运算等操作,并对单片机发出若干控制信息。这些控制信息的使用专门的控制线,诸如PSEN、ALE、EA以及RST,也有一些是和P3口的某些端子合用,如WR和RD就是P3.6和P3.7,他们的具体功能在介绍8051引脚是一起叙述。(2)存储器组织8051单片机的存储器结构特点之一是将程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式,这种结构称为哈佛结构单片机。这种结构与通用微机的存储器结构不同,一般微机只有一个存储器逻辑空间,可随意安排ROM或RAM,访存时用同一种指令,这种结构称为普林斯顿型。8051单片机在物理上有四个存储空间:片内程序存储器和片外程序存储器、片内数据存储器和片外数据存储器。8051片内有256K数据存储器RAM和4KB的程序存储器ROM。除此之外,还可以在片外扩展RAM和ROM,并且各有64KB的寻址范围。也就是最多可以在外部扩展2*64KB存储器。8051的存储器组织结构如图所示。图3-1 8051存储器组织结构64K字节的程序存储器(ROM)空间中,有4K字节地址区对于片内ROM和片外ROM是公用的,这4K字节地址是0000HFFFH。而1000HFFFFH地址区为外部ROM专用。CPU的控制器专门提供一个控制信号EA用来区分内部ROM和外部ROM的公用地址区:当EA接高电平时,单片机从片内ROM的4K字节存储器区取指令,而当指令地址超过0FFFH后,就自动的转向片外ROM取指令。当EA接低电平时,CPU只从片外ROM取指令。程序存储器的某些单元是保留给系统使用的:0000H0002H单元是所有执行程序的入口地址,复位以后,CPU总是丛0000H单元开始执行程序。0003H002AH单元均匀地分为五段,用做五个中断服务程序的入口。用户程序不应进入上述区域。8051的RAM虽然字节数不很多,但却起着十分重要的作用。256个字节被分为两个区域:00H7FH时真正的RAM区,可以读写各种数据。而80HFFH是专门用于特殊功能寄存器(SFR)的区域。对于8051安排了21个特殊功能寄存器,每个寄存器为8位,所以实际上128个字节并没有全部利用。内部RAM的各个单元,都可以通过直接地址来寻找,对于工作寄存器,则一般都直接用R0R7,对特殊功能寄存器,也是直接使用其名字较为方便。8051内部特殊功能寄存器都是可以位寻址的,并可用“寄存器名.位”来表示,如ACC.0,B.7等。 单片机最小系统该最小系统由按键复位RESET电路、晶体振荡电路以及I/O接口电路组成。复位的实现通常用2种方式:开机上电复位和外部手动复位,本设计用的是外部手动复位。 图3-2 单片机最小系统原理图图3-3 单片机复位电路3.2 主电路设计点阵式LED滚动汉字显示屏硬件电路设计框图如图所示。电路包括单片机、电源电路、复位电路、驱动电路和LED点阵电路等。本设计的核心是利用单片机读取显示字型码,通过驱动电路对16×16 LED点阵进行动态列扫描,以实现汉字的滚动显示。本设计选用的单片机为ATMEL公司的AT89C51,显示屏采用16×16 LED点阵。电源电路通过Vcc为单片机和其他电路提供稳定的+5V工作电压。电路是单片机的驱动电路,复位电路可在需要时,手动使单片机程序计数器复位清零。通过阳极驱动电路向16×16点阵送字型码,本设计采用74HC154。通过阴极驱动电路对16×16点阵进行列扫描。利用Proteus软件设计点阵式LED滚动汉字显示屏硬件电路原理图如图所示。在Proteus软件中,单片机模型本身包含了工作电源和可改变的工作频率,因此在仿真时无需设计电源电路和时钟电路。需要说明的是在Proteus软件目前版本中还没有16×16点阵模块,本设计中采用Proteus软件中现有的8×8点阵模块组合成一个16×16点阵模块。从图中可以看出,一个16×16共阴极LED点阵是由4个8×8的点阵构成,4个8×8点阵可由单片机P0口和P2口输出段码值,片选位由74HC154控制。这些字符串的字模可通过PCtoLCD2002提取字模软件实现。16×16点阵的阴极驱动由P1口经74HC154 译码后动态扫描16×16点阵的各列,本设计中需要一片74HC154译码器,循环扫描各列,显示一个完整的汉字需要扫描32次。RP1为电阻排,含有8个电阻,作P0口各位的上拉电阻,以保证P0口能够输出高电平。复位电路的作用是,在任何时刻可以手动复位单片机,使程序重新执行。图3-4 16×16点阵式LED汉字显示屏原理图3.3 显示驱动电路 74HC154是一款高速CMOS器件,74HC154引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC154译码器可接受4位高有效二进制地址输入,并提供16个互斥的低有效输出。74HC154的两个输入使能门电路可用于译码器选通,以消除输出端上的通常译码“假信号”,也可用于译码器扩展。该使能门电路包含两个“逻辑与”输入,必须置为低以便使能输出端。任选一个使能输入端作为数据输入。74HC154可充当一个1-16的多路分配器。当其余的使能输入端置低时,地址输出将会跟随应用的状态.又叫4线16线译码器,也可以实现地址的扩展。(4-Line to 16-Line Decoder/Demultiplexer) 图3-5 74HC154管脚图 4-Line to 16-Line Decoder/Demultiplexer 引脚说明:1-11 ,13-17 :输出端。(outputs (active LOW)) 12:Gnd电源地 (ground (0 V)) 18-19:使能输入端、低电平有效 (enable inputs (active LOW) 20-23:地址输入端 (address inputs) 24:VCC电源正 (positive supply voltage:74HC154地址/全能输入对应输出表(真值表):表3-6 74HC154真值表H = 高电平(HIGH voltage level) L = 低电平(LOW voltage level) X = 任意电平(dont care) 只要控制端G1、G2任意一个为高电平,A、B、C、D任意电平输入都无效。G1、G2必须都为低电平才能操作芯片。74HC154 基本参数:电压 2.06.0V驱动电流 +/-5.2 mA传输延迟 11 ns5V74HC154 其他特性:逻辑电平 CMOS功耗考量 低功耗或电池供电应用74HC154 封装与引脚:SO24, SSOP24, DIP24, TSSOP24温度范围 :-40+85 -40+125 第4章 软件设计4.1 任务说明 根据任务要求在一块16×16的点阵显示屏上通过按键实现逐字、向上、左移显示4个汉字。前提是要基于PROTEUS仿真软件来实现的。并选用合适的51系列单片机,在前面已经介绍了8051系列的单片机,具体我们使用AT89C51来做的。这在这章我会具体介绍程序,下一章节我会降到PROTEUS 与KEIL是如何联调的以及取模软件4.2 软件设计 软件设计:AT89C51单片机是8位机,每次只能送出8位数据,因此要向16×16点阵送出16行阳极驱动,需要送两次,或先送上8行,或先送下8行。在采用取模软件时,一定要清楚4个8×8的点阵的极性如上图就是共阴极的,否则会出现字型残缺现象。根据设计要求并结合4块8×8的点阵显示屏的硬件连接并进行程序设计,程序设计流程利用单片机汇编语言实现“浙江机电”4个字的滚动显示,汉字按16×16点阵编码,小数点,阿拉伯数字,英文字母均按16×8的点阵编码。具体程序的分析我会在文章的末尾详细的说明的。 以下是主程序和子程序的流程图:图4-1 主程序流程图 图4-2 子程序流程图 第5章 仿真及调试5.1 PROTEUS及KEIL的简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2012年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:1原理布图2PCB自动或人工布线3SPICE电路仿真。革命性的特点:1互动的电路仿真:用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。2仿真处理器及其外围电路:可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。汉字取模软件网上介绍的并不多,所以在这里我就用自己的话来概括一下。虽然网上汉字取模软件遍布,但是真正好的汉字取模软件并不多。我这里所说的好,具体是指功能多多样化,操控的方便性等。我这里所用的是PCtoLCD2002这款汉字取模软件,在此之前我也下了几款汉字取模软件,但是效果并不好,具体表现为显示的时候有乱码的现象。有些字出现了残缺。我这里不是给它他打广告,也许只有自己用过了才知道。这款软件有2种去码方式一种是有一种是C51格式的,还有一种是A51格式即汇编的。除此以外它还有取模方式的选择等。如图下面是“浙江机电”的字模图5-1 汉字取模软件 5.2 仿真步骤首先要在PROTEUS,KEIL中把相应的原理图和程序画好并保存。我重点介绍KEIL应为其中过程极为复杂繁琐。现在,我们来做个实际程序,请跟着我一步一步学着做,实际体验一下从编辑源程序到程序调试的全过程。这里让我们做一个 LED的汉字点阵的程序。在Keil系统中,每做个独立的程序,都视为工程(或者叫项目)。首先从菜但的“工程”中“新建工程.”,建立我们将要做的工程项目:新建的工程要起个与工程项目意义一致的名字,可以是中文名;我们这里的程序是实验测试程序,所以起的名字为 Test ,并将 Test 工程“保存” 接下来,Keil环境要求我们为 Test 工程选择一个单片机型号;我们选择 Atmel 公司的 89C51(虽然我们使用的是89S51,但由于89S51与89C51内、外部结构完全一样,所以这里依然选择“89C51”)。“确定”后工程项目就算建立了。立了工程项目,肯定要实施这个工程,现在就为工程添加程序;点击“文件”中的“新建”,新建一个空白文档;这个空白文档就是让我们编写单片机程序的场所。在这里你可以进行编辑、修改等操作。输完程序以后后再检查一下,并保存文件,保存文件时,其文件名最好与前面建立的工程名相同(当然这里为 Test 了),其扩展名必须为 .Asm !“文件名”中一定要写全,如:Test.Asm ;C语言程序后缀名为.C保存后的文档彩色语法会起作用,将关键字实行彩色显示:保存了Asm文件后,还要将其添加到工程中。具体做法如下:鼠标右键点击 “Source Group 1”,在弹出的菜单中选“增加文件到组 Source Group 1”: 在接下来出现的窗口中,选择“文件类型”为“Asm源文件(*.a*,*.src)”(由于我们使用的是汇编语言,所以选择Asm源文件),选中刚才保存的 Test.Asm,按“Add”,再按“关闭”,文件就添加到了工程中。向工程添加了源文件后,鼠标右键点击 “TarGet 1” ,在弹出的菜单中选“目标 Target 1 属性”, 在打开的话框中,选择“输出”选项卡,在这个选项卡中,“E生成HEX文件”选项前要打勾,按“确定”退出。最后,从菜单的“工程”中执行“R重新构造所有目标”汇编、连接、创建Hex文件一气呵成;在工程文件的目录下就会生成与工程名相同的一些文件,其中大部分文件我们并不必关心,而生成的 Hex 文件是我们需要的!它是要烧写到单片机中的最终代码,也就是单片机可以执行的程序。这里生成的是 Test.HEX ,稍后就写入。若在下面的状态窗中有错误提示,就需要再次编辑、修改源程序(如语法、字符有错等)、保存、构造所有。直至没有错误。在没有语法错误的情况下,按下图红圈中的按钮就可以进行模拟调试了。然后再PROTEUS ISIS 中双击AT89C51单片机,在弹出的对话框中选择后缀名为:“.HEX”的文件,单击确定就可以了。对单片机设置完毕后就可以开始仿真了。仿真过程中如有硬件问题可在Proteus ISIS中直接修改,如有软件问题可在Keil Vision2中直接修改,通过Keil与Proteus的联合调试就可以得到满意的结果。利用Proteus实现了对点阵式LED滚动汉字显示屏的仿真,说明程序和电路图都没有问题。关于仿真的结果我会在文章的末尾进行说明。总结本次毕业设计从十一月中旬到现在有一个多月,回顾着些天我感到学到了很多东西,在写这个心得的时候,我想就这些天的收获,说一说自己内心的想法。本设计的是一个16x16的点阵LED汉字显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示文字,清晰无串扰。文字显示有静止、移入移出等显示方式。本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。总结本文的研究工作,主要做了下面几点工作:一、通过查阅大量的相关资料,详细了解了LED的发光原理和LED显示屏的原理,了解了LED的现状,清楚地了解了LED显示屏与其它显示屏相比较有那些优点,明确了研究目标。并且通过对单片机资料的查阅和应用,更进一步增加了对单片机知识的理解和运用能力。并证实了自己的思路:“查资料思考总结运用找出差错,再查资料和向别人询问再次运用”的正确性。二、本文设计的LED显示屏能够实现在目测条件下LED显示屏各点亮度均匀、充足,文字,显示文字应稳定、清晰无串扰。文字显示有静止、移入移出等显示方式。三、本文列出了系统具体的硬件设计方案,硬件结构电路图,软件流程图和具体汇编语言程序设计与调试等方面。四、在这次毕业设计的过程中学会了 PROTEUS 的基本使用,感到PROTEUS对应用电子专业的同学来说是一门很有用的课程。五、通过这次毕业设计,重新复习并进一步增强了动手的能力,学以致用,把只是运用到实际生活中才是根本目的。六、存在问题:没有考虑仿真软件是一个理想的仿真环境,而实际连接的电路板会由于譬如连接不当,相邻器件间的干扰等等的问题导致在仿真软件中能良好运行的程序,出现显示问题,经过排查和合理的器件摆放,问题解决。总体来说这次的毕业设计还可以,达到了预想的目的:学到了知识,提高了能力,完成了任务。有点缺憾是时间有限,不能进一步深入和扩散学习和研究。希望有时间可以对程序和电路图作更进一步的改进,譬如实现点阵的上下移动等。 附录A 元器件清单 元 器 件元件库中名称描 述元 器 件元件库中名称描 述单片机U1AT89C511按键RSTBUTTON3个晶振CRYSTAL18×8LED点阵4个MATRIX-8×8-GREEN4个(共阴极)电容C1C2CAP2电阻R1R23WATT220R 3WATT10K2电解电容C3CAP-ELEC14/16译码器74HC1541电阻排RESPACK-81 附录B 源程序ORG 0000H LJMP MAIN ORG 0003H LJMP INT0_SER ;外部中断0 ORG 0013H LJMP INT1_SER ;外部中断1 ORG 0100HMAIN: MOV TCON,#05H ;触发方式控制位, MOV P1,#00H MOV P2,#00H MOV P0,#00H SETB EA SETB EX0 SETB EX1 ;外部中断允许 MOV DPTR,#j1 ;把要显示的字给DPTR LCALL DISP ;MOV R2,#16 MOV DPTR,#j2 LCALL DISP MOV DPTR,#j3 LCALL DISP MOV DPTR,#j4 LCALL DISP LJMP MAININT0_SER: MOV P0,#00H MOV P1,#00H MOV P2,#00H MOV R6,#10LFT_0: MOV R5,#20 MOV DPTR,#J0 ;关显示LFT_1: PUSH DPL ;DPTR的低8位 PUSH DPH ;DPTR的高8位 LCALL DISP ;MOV R2,#16 POP DPH POP DPL CLR C ;溢出标志位清零 MOV A,DPL ;低8位给A ADD A,#08H ;低8位加8给A MOV DPL,A ;然后再给低8位 CLR A ;A清零 ADDC A,DPH ;高8位与A相加再给A MOV DPH,A ;然后A再给高8位 DJNZ R5,LFT_1 ;减1不等于0就跳到LFT_1,一直循环20次,最后顺序往下 DJNZ R6,LFT_0 ;减1不等于0就跳到LFT_0,一直循环10次,最后返回主程序 RETIINT1_SER: ;外部中断1 MOV P0,#00H MOV P1,#00H MOV P2,#00H ;关显示 MOV R5,#10RIGT_0: MOV DPTR,#J1 ;把“浙”字给DPTR ACALL RIGT_LF ;调用RIGT_LF MOV DPTR,#J3 ;把“机”字给DPTR ACALL RIGT_LF ;调用RIGT_LF MOV DPTR,#J5 ;把J5给DPTR ACALL RIGT_LF ;调用RIGT_LF DJNZ R5,RIGT_0 ;如果执行了中断程序那么R5的值是10,如果没有执行中断那么R5的值就是20 RETIDISP: MOV R2,#16DISP0: MOV R0,#0 ;段码;从左到右 MOV R1,#0 ;位码DISP1: MOV P1,R1 ;把0给P1 MOV A,R0 ; MOVC A,A+DPTR ;变址寻址,以DPTR为基地址,A为偏移量 MOV P2,A ;在把A送给P0口