资源描述
LED显示屏设计摘 要LED大屏幕显示系统,以AT89S52单片机为核心,由键盘显示、与非门、外部锁存器、LED大屏幕显示等功能模块组成。基于题目基本要求,本系统对时间显示和大屏幕显示进行了重点设计。此外,扩展单片机外围接口、逐排显示,与非门等功能。本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。本系统不仅成功的实现了要求的基本功能,发挥部分也得到完全的实现,而且有一定的创新功能。 本设计主要以AT89S52单片机为核心,采用串行传输、静态扫描技术,制作一款拥有PC机通信功能的,模块化LED多功能显示屏。关键词:AT89S52、LED、1680点阵、单片机 目 录绪论5第一章 选定方案 1.1 确定方案6 1.2 单片机的确定7 1.3 显示部分7 1.4 芯片选择7 1.5 电源选择7第二章 单片机概述2.1 AT89S52单片机的结构92.2 管脚说明9第三章 系统整体方案 3.1 需要实现的功能10 3.2 显示模式方案论证10第四章 系统硬件电路的设计 4.1 整体模块设计11 4.2 电源电路设计11 4.3 单片机最小系统电路12 4.4 列扫描电路13 4.5 行控制电路13 4.6 LED显示器电路14 4.7 总体硬件电路设计15第五章 系统程序的设计 5.1 主程序流程图175.1 显示驱动程序17第六章 调试及性能分析 6.1 软件调试22 6.2 硬件调试23 6.3 性能分析24总结24致谢24参考文献27附件一 27附件二30绪论本系统采用单片机AT89S52为LED显示屏的控制核心,制造一种简单的1680汉字显示屏设计。内容包括软件设计、LED显示屏的硬件电路、汇编语言程序设计与调试等方面,涉及到单片机电子产品设计及制造工程中的各个环节,有助于广大学者进一步的学习、了解汉字点阵显示原理,认识单片机的基本结构、工作原理及应用方法,提高单片机知识的运用能力LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。LED显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告宣传等各方面。LED点阵显示屏的构成型式有多种,其中典型的有两种。一种把所需展示的广告信息烧写固化到EPROM芯片内,能进行固定内容的多幅汉字显示,称为单显示型;另一种在机内设置了字库、程序库,具有程序编制能力,能进行内容可变的多幅汉字显示,称可编程序型。目前,国内的LED点阵显示屏大部分是单显示型,其显示的内容相对较少,显示花样较单一。一般在产品出厂时,显示内容就已写入显示屏控制系统中的EPROM芯片内,当需要更换显示内容时就非常困难,这样使该类型的显示屏使用范围受到了限制。国内的另一种LED显示屏可编程序型LED显示屏,虽然增加了显示屏系统的编程能力,显示内容和显示花样都有所增加,但也存在着更换显示内容不便的缺点。随着社会经济的迅速发展,如今的广告牌都存在着显示内容丰富、信息量大、信息更换速度快等特点。因此传统的LED显示屏控制系统已经越来越不能满足现代广告宣传业的需要。而利用PC机通信技术控制LED显示屏,则具有显示内容丰富,信息更换灵活等优点。本设计是基于单片机(AT89C51)讲述了1680 LED汉字点阵显示的基本原理、硬件组成与设计、程序编译与下载等基本环节和相关技术。第一章 选定系统方案1.1 确定方案本设计要求用单片机控制一个1680点阵显示屏,完成相应的汉字显示。根据此要求设计者提出了三种如下相应的设计方案:方案一:PWM(脉宽调制)技术是一种传统的调光方式,它利用简单的数位脉冲,反覆开关LED驱动器,系统只需要提供宽、窄不同的数位式脉冲,即可简单地实现改变输出电流,从而调节LED的亮度。该技术的优点在于能够提供高品质的白光,以及应用简单,效率高。方案二:DSP(digital singnal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。DSP器件比16位单片机单指令执行时间快810倍,完成一次乘加运算快1630倍。DSP器件还提供了高度专业化的指令集,提高了FFT快速傅里叶变换和滤波器的运算速度。此外,DSP器件提供JTAG接口,具有更先进的开发手段,批量生产测试更方便,开发工具可实现全空间透明仿真,不占用用户任何资源。芯片内置544字的高速SRAM。外部可寻址64K字程序/数据及I/O,令周期在25ns50ns之间,实时性处理比16位单片机快2倍以上,可取代一般的单片机。TMS320F206除了具有TMS320C203的功能外,内置32K字零等待快闪存储器,可满足单片设计的要求,能最大限度减少用户板的体积。软件配有汇编/链接C编译器、C源码调试器。 方案三:单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。方案一 致命的缺点是容易产生电磁干扰,有时甚至会产生人耳能听见的杂讯,所以排除。方案二 DSP价格相比其它几种较贵,所以被淘汰方案三 单片机相比其它两种方案,价格便宜且好汇编程序,更适合本次方案。 因为考虑到方案要求低,只需要显示静态汉字,再加上单片机成本低廉且符合方案要求,故选择方案三1.2 单片机的确定我国目前常用的单片机的研制厂家有如下: Intel公司 (MCS51系列,MCS96系列)Atmel公司 (AT89系列,MCS5内核)Microchip 公司(PIC系列)Motorola 公司 (6HCXX系列)Zilog 公司 (Z86系列)Philips 公司 (87,80系列,MCS51内核)Siemens 公司 (SAB80系列,MCS51内核)NEC 公司 (78系列)Epson 公司 (EOC88系列)方案一:AT89C51单片机是这几年在我国非常流行的单片机,是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalshProgrammable and Erasable Read Only Memory)高性能单片机,可擦除只读存储器可以反复擦除100次,具有低功耗、高性能的特点,并且可与工业标准的MCS51指令集和输出管脚相兼容,对于论文中需要实现的功能,完全可胜任。方案二:AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器8K 字节在系统可编程他们是8051的内核,只不过52的内部资源比51稍多,比如增加了一个16位的计数器T2,当然相应的特殊寄存器(SFR)也有了一点变化,另外52的内存也从51的128字节提高到了256字节,ROM也从2K提高到4K,可以装下更大的程序。S52比C51还增加了ISP功能,就是在线可编程功能,这可是很有用的功能,对于买不起仿真器或希望能板上调试(就是插在成品电路板上调试)的人来说十分有价值,你可以随时更新插在电路板上的单片机的程序,十分方便。故综合市场情况与常接触的单片机型号,论文中采用AT89S52单片机。1.3显示部分:LCD液晶显示器的优点:微功耗、尺寸小,超薄轻巧、显示信息量大、字迹清晰、美观、视觉舒适。使整个控制系统更加人性化。LCM301液晶显示器,其是串行口显示,所需I/O口较少,节省了资源,焊接电路时也较为方便。但以上两种因为成本太高,所以我们采用LED二极管,也能达到预期效果。LED的发光颜色和发光效率与制作LED的材料和工艺有关,目前广泛使用的有红、绿、蓝三种。由于LED工作电压低(仅1.5-3V), 能主动发光且有一定亮度,亮度又能用电压(或电流)调节,本身又耐冲击、抗振动、寿命长( 10万小时),所以在大型的显示设备中, 目前尚无其他的显示方式与 LED显示方式匹敌。 把红色和绿色的 LED放在一起作为一个像素制作的显示屏叫双基色屏或伪彩色屏;把红、绿、蓝三种LED管放在一起作为一个像素的显示屏叫三基色屏或全彩屏。制作室内 LED屏的像素尺寸一般是2-10毫米,常常采用把几种能产生不同基色的LED管芯封装成一体,室外LED屏的像素尺寸多为 12-26毫米,每个像素由若干个各种单色LED组成,常见的成品称像素筒或像素模块。LED显示屏如果想要显示图象,则需要构成像素的每个LED的发光亮度都必须能调节,其调节的精细程度就是显示屏的灰度等级。灰度等级越高,显示的图像就越细腻,色彩也越丰富,相应的显示控制系统也越复杂。在当前的技术水平下, 256级灰度的图像,颜色过渡已十分柔和,图像还原效果比较令人满意。1.4芯片的选择方案一:采取并口输入,占用大量I/O口资源方案二:选取串口输入,使用较少。74HC595有8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。8位串行输入, 8位串行或并行输出存储状态寄存器,三种状态输出寄存器可以直接清除 100MHz的移位频率, 输出能力,并行输出,总线驱动。串行输出,标准,中等规模集成电路。综合以上比较,我们选取74HC595来驱动LED点阵。 1.5电源选择78L05是一种固定电压(5V)三端集成稳压器,其适用于很多应用场合.象牵涉到单点稳压场合需要限制噪声和解决分布问题的在-卡调节.此外它们还可以和其它功率转移器件一起构成大电流的稳压电源,如可驱动输出电流高达100毫安的稳压器.其卓越的内部电流限制和热关断特性使之特别适用于过载的情况.当用于替代传统的齐纳二极管-电阻组的时候,其输出阻抗得到有效的改善,其偏置电流大大减少。8550参数: 集电极-基极电压Vcbo:-40V 工作温度:-55 to +150 由于AT89C51的额定工作电压为5V;74HC154额定工作电压为5V;16*16LED驱动电流为0.4A,所以16*80的驱动电流是为2A。二极管的驱动电压是1.61.8v,所以一个二极管需要串联一个电阻降压R=U/I得R=51.8/2=1.6。整个16*80的LED需要串联1000欧的电阻。采用8550第二章 AT89S52单片机概述2.1 AT89S52单片机的结构AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C52 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,2.2 管脚说明 P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0不具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能 P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。 端口引脚 第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。 FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。第三章 系统整体方案3.1 需要实现的功能此次需要实现的功能是利用一个AT89C51、一个74HC154、10个74HC595、20个16*80LED点阵,静态显示“机电工程系”5个字3.2 显示模式方案论证显示部分是本次设计最核心的部分,对于LED8*8点阵显示有以下两种方案:方案一:静态显示,将一帧图像中的每一个二极管的状态分别用0 和1 表示,若为0 ,则表示L ED 无电流,即暗状态;若为1 则表示二极管被点亮。若给每一个发光二极管一个驱动电路,一幅画面输入以后,所有L ED 的状态保持到下一幅画。对于静态显示方式方式,所需的译码驱动装置很多,引线多而复杂,成本高,且可靠性也较低。方案二:动态显示,对一幅画面进行分割,对组成画面的各部分分别显示,是动态显示方式。动态显示方式方式,可以避免静态显示的问题。但设计上如果处理不当,易造成亮度低,闪烁问题。因此合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。动态显示采用多路复用技术的动态扫描显示方式, 复用的程度不是无限增加的, 因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短, 发光的亮度等因素. 我们通过实验发现, 当扫描刷新频率(发光二极管的停闪频率) 为50Hz, 发光二极管导通时间1m s 时, 显示亮度较好, 无闪烁感.。 鉴于上述原因, 我们采用方案一 第四章 系统硬件电路的设计系统硬件部分电路大致上可以分成电源电路、单片机最小系统电路及外围电路、列扫描电路、行扫描电路和LED显示屏电路五部分。4.1整体模块设计本设计行、列驱动电路,显示屏电路,运用单片机的智能化,系统的将每个功能电路模块连接在一起,总体结构设计如下图2.1所示:列驱动器1616LED点阵显示屏行驱动器电源单 片 机图2.1 系统结构设计总图图2.2 电源电路4.3单片机最小系统电路AT89S52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8KB可反复擦写的Flash只读程序存储器和256 字节随机存取数据存储器。该器件采用ATMEL公司高密度、非易失性存储技术制造,兼容标准MCS-51指令系统,灵活应用于各种控制领域。AT89C51单片机最小系统电路由复位电路、晶振电路两部分组成。4.3.1复位电路 AT89C51单片机在启动运行时或者出现死机时需要复位,使CPU以及其他功能部件处于一个确定的初始状态,并从这个状态开始工作。复位电路产生的复位信号(高电平有效)由RST引脚送入到内部的复位电路,对AT89C51单片机进行复位,复位信号要持续两个机器周期(24个时钟周期)以上,才能使AT89C51单片机可靠复位。AT89C51单片机复位电路如下图2.3所示: 图2.3复位电路图 图2.4 晶振电路图复位电路工作原理: 上电瞬间RST引脚的电位与VCC等电位,RST引脚为高电平,随着电容C3充电电流的减少,RST引脚的电位不断下降,其充电时间常数为T=R3*C3=100ms,此时间常数足以RST引脚在保持为高电平的时间内完成复位操作。当单片机已在运行当中时,按下复位键S5后再松开,也能使RST引脚为一段时间的高电平,从而实现AT89S52单片机复位。4.3.2 晶振电路晶振电路如上图2.4所示:XTAL1和XTAL2是片内振荡电路输入端,这两个端子用来外接石英晶体和微调电容,即用来连接AT89S52单片机片内OSC的定时反馈回路。晶振起振后要能在XTAL2端输出一个3V左右的正弦波,以便使片内OSC电路按晶振相同频率自激振荡。通常,OSC的输出时钟频率FOSC为6MHZ16MHZ,典型值为12MHZ或11.0592MHZ。电容C1和C2帮助晶振起振,典型值为30pf,调节它们可以达到微调FOSC的目的。本系统中,晶振为12MHZ,C1=C2=20pf。4.4 列扫描电路列扫描电路由集成电路74HC595构成如图2.5所示,列的处理信号有三个,SER、SRCLK、RCLK,SER做为列移位寄存器的输入,SRCLK是移位时钟,RCLK做为锁存时钟当将16个位数据在SRCLK的脉冲作用下移位寄存器后,就可以开启RCLK时钟,使寄存器的数据存入锁存器,因使能脚接0使能,数据直接输出Q端,Q端数据经330欧姆的限流电阻接入点阵列脚位,即一行的数据显示。13图2.5 列扫描电路原理图4.5 行控制电路行控制电路如下图2.6所示:图2.6 行驱动电路原理图行的处理信号有AB和SCK,AB做为行移位寄存器的输入,SCK是移位时钟,AB的输入在SCK的时钟脉冲下移入寄存器,寄存器输出端Q经4.7K电阻接入三极管B极,控制三极管的导通和截止,从而控制点阵行脚位电量。每次移位的输出16个Q位只允许有一个是低电平,即是分时轮流的输出低电平是三极管导通,从而使扫描至上而下进行。本文行扫描采用的工作方式是:单片机的P23不断的向单片机一位一位的(即串行)发送数据,74HC154不断的接收数据并且存储起来,待到74HC154寄存器集满16位数据的时候,再通过并行输出把数据传给点阵,发送给点阵的16位行信号与两片74HC595芯片发送的16位列信号会合从而产生一个汉字或其他别的图形通过点阵显示出来。排阻RP1和RP2为限流排阻,以免74HC154的输出电流过大烧坏三极管,本文将74HC154输出的信号通过S8550三极管放大再传送给点阵行输入端,以加大扫描强度,提高点阵显示亮度。4.6 LED显示屏电路LED显示屏是将发光二极管按行按列布置的,在扫描驱动方式下可以按行扫描按列控制,也可以按列扫描按行控制。本文就是使用20块88点阵组成1块1680点阵,采用按列扫描按行控制控制方式,扫描顺序自上而下,以满足汉字显示的要求。1680点阵LED结构如图2.7所示:图2.7 1616点阵电路图要实现显示动画,只需考虑其显示方式,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。当采用按行扫描按列控制的驱动方式时,LED显示屏8行的同名列共用一套列驱动器。行驱动器一行的行线连接到电源的一端,列驱动器一列的列线连接到电源的另一端。应用时还应在各条行线或列线上接上限流电阻。扫描中控制电路将行线的1到8轮流接通高电位,使连接到各该行的全部LED器件接通正电源,但具体那一个LED导通,还要看它的负电源是否接通,这就是列控制的任务了。当对应的某一列置0电平,则相应的二极管就亮;反之则不亮。行线上只管一行一行的轮流导通,列线上进行通断控制,实现了行扫描列控制的驱动方式。以上就是1680点阵显示屏系统硬件部分的各功能模块分述,经过合理的设计论证后和就可以整体结合在一起,再根据设计配备好各元器件实物,通过组装后等在单片机的程序存储器里放入编制好的程序即可成为一个完整的应用系统。4.7 总体硬件电路设计在整个电路设计中,用两片8位输出锁存移位寄存器74HC595作为列扫描,用两片74LS154芯片作为行扫描,用单片机AT89S52对74HC595和74HC154进行控制和驱动第五章 系统程序的设计5.1主程序流程图程序初始化外部中断0定时/计数四字逐排显示子程序四字显示程 序扫 描程 序结束显示汉 字5.2显示驱动程序;显示字用查表法,不占内存,用四个16*128共阳LED点阵显示,;R2:行扫描地址(从00-0FH)。;R3:滚动显示时控制移动速度,也可控制静止显示的时间。;*;中断入口程序;*;ORG 0000HLJMP STARTORG 0003HRETIORG 000BHLJMP INTTOORG 0013HRETIORG 001BHRETIORG 0023HRETIORG 002BHRETI;*; 初始化程序 ;*;*; 主程序 ;*;START: MOV 20H,#00H ;清标志,00H为1帧扫描结束标志 MOV A,#0FFH ;端口初始化 MOV P1,A MOV P2,A MOV P3,A MOV P0,A CLR P1.6 ;串行寄存器打入输出端控制位 MOV TMOD,#01H ;使用T0作16位定时器,行扫描用。 MOV TH0,#0FCH ;1ms初值(12MHZ) MOV TL0,#18H MOV SCON,#00H ;串口0方式传送显示字节 MOV IE,#82H ;T0中断允许,总中断允许 MOV SP,#70H LCALL DIS1 ;显示准备,黑屏,1.5秒MAIN: MOV DPTR,#TAB LCALL MOVDISP AJMP MAIN;*; 四字逐排显示子程序 ;*;每次四字移入移出显示方式,入口时定义好DPTR值;MOVDISP: MOV R1,#10 ;显示13排字,每排四字(R1=排数)DISLOOP: MOV R3,#100 ;每排显示时间1.6*100=1.6SDISMOV: MOV R2,#00H ;第0行开始 SETB TR0 ;开扫描(每次一帧)WAITMOV: JBC 00H,DISMOV1 ;标志为1扫描一帧结束(16毫秒为1帧,每行1毫秒) AJMP WAITMOVDISMOV1: DJNZ R3,DISMOV ;1帧重复显示(控制显示时间) MOV A,#160 ;显示字指针移一排(每排8字*32=256) ADD A,DPL ; MOV DPL,A MOV A,#0 ADDC A,DPH MOV DPH,A DEC R1 ;R1为0,显示完 MOV A,R1 JZ MOVOUT ; AJMP DISLOOP ;MOVOUT: RET ;移动显示结束;*; 四个字显示子程序 ;*;静止显示表中某四个字DIS1: MOV R3,#5AH ;静止显示时间控制(16MS*#=1.6秒)DIS11: MOV R2,#00H ;一帧扫描初始值(行地址从00-0FH) MOV DPTR,#TAB ;取表首址 SETB TR0 ;开扫描(每次一帧)WAIT11: JBC 00H,DIS111 ;为1,扫描一帧结束 AJMP WAIT11DIS111: DJNZ R3,DIS11 RET;*; 扫描程序 ;*;1MS传送一行,每行显示1毫秒,一次传送四个字的某行共8个字节.;INTTO: PUSH ACC MOV TH0,#0FCH ;1ms初值重装 MOV TL0,#18H MOV A,#129 ;指向第八个字行右字节 ADD A,DPL MOV DPL,A MOV A,#0 ADDC A,DPH MOV DPH,A MOV A,#0 MOVC A,A+DPTR ;查表 MOV SBUF,A ;串口0方式发送WAIT: JBC TI,GO ;等待发送完毕 AJMP WAIT ;GO: MOV A,DPL ;指向第八个字行左字节 SUBB A,#1 MOV DPL,A MOV A,DPH SUBB A,#0 MOV DPH,A MOV A,#0 MOVC A,A+DPTR MOV SBUF,AWAIT1: JBC TI,GO1 AJMP WAIT1;GO1: MOV R0,#04HMLOOP: MOV A,DPL ;指向前7个字行右字节 SUBB A,#31 MOV DPL,A MOV A,DPH SUBB A,#0 MOV DPH,A MOV A,#0 MOVC A,A+DPTR ;查表 MOV SBUF,A ;串口0方式发送WAIT2: JBC TI,GO2 ;等待发送完毕 AJMP WAIT2 ;GO2: MOV A,DPL ;指向前7个字行左字节 SUBB A,#1 MOV DPL,A MOV A,DPH SUBB A,#0 MOV DPH,A MOV A,#0 MOVC A,A+DPTR MOV SBUF,AWAIT3: JBC TI,GO3 AJMP WAIT3GO3: DJNZ R0,MLOOP ;执行7次; SETB P1.7 ;关行显示,准备涮新 NOP ;串口寄存器数据稳定 SETB P1.6 ;产生上升沿,行数据打入输出端 NOP ; NOP ; CLR P1.6 ;恢复低电平 MOV A,R2 ;修改显示行地址 ORL A,#0F0H ;修改显示行地址 MOV R2,A ;修改显示行地址 MOV A,P1 ;修改显示行地址 ORL A,#0FH ;修改显示行地址 ANL A,R2 ;修改显示行地址 MOV P1,A ;修改完成 CLR P1.7 ;开行显示 INC R2 ;下一行扫描地址值 INC DPTR ; INC DPTR ;下一行数据地址 MOV A,R2 ANL A,#0FH JNZ GO4 SETB 00H ;R2为10H,现为末行扫描,置1帧结束标志 MOV A,DPL ;指针修正为原帧初值 SUBB A,#32 MOV DPL,A MOV A,DPH SUBB A,#0 MOV DPH,A CLR TR0 ;一帧扫描完,关扫描GO4: POP ACC ljmp inttoTAB:DB 0EFH, 0DFH ,0EFH, 3FH ,0ECH, 0FFH ,00H, 00H ,0EDH, 0FFH ,0EEH, 7DH ,0EFH, 0F3H ,0FFH, 0CFH;DB 80H ,3FH, 0BFH ,0FFH ,0BFH ,0FFH, 0BFH ,0FFH ,80H ,03H, 0FFH ,0FDH ,0FFH ,0E1H, 0FFH ,0FFH;机,0DB 0FFH, 0FFH ,0FFH, 0FFH ,0E0H, 0FH ,0EDH, 0DFH ,0EDH, 0DFH ,0EDH, 0DFH,0EDH, 0DFH ,00H, 03H;DB 0EDH ,0DDH, 0EDH ,0DDH, 0EDH ,0DDH, 0EDH ,0DDH, 0E0H ,0DH, 0FFH ,0FDH, 0FFH ,0F1H, 0FFH ,0FFH;电,1DB 0FFH, 0FBH ,0FFH, 0FBH, 0BFH ,0FBH, 0BFH, 0FBH ,0BFH, 0FBH, 0BFH, 0FBH, 0BFH, 0FBH, 80H, 03H;DB 0BFH ,0FBH,0BFH, 0FBH ,0BFH ,0FBH ,0BFH ,0FBH ,0BFH ,0FBH, 0BFH ,0FBH, 0FFH ,0FBH, 0FFH ,0FFH;工,2DB 0F7H, 0DFH ,0B7H, 3FH ,0B4H, 0FFH, 80H, 00H ,76H, 0FFH ,77H, 7DH ,0FEH, 0DDH ,02H, 0DDH;DB 7AH ,0DDH, 7AH ,01H, 7AH ,0DDH, 7AH ,0DDH, 02H ,0DDH, 0FEH ,0DDH, 0FFH ,0FDH, 0FFH ,0FFH;程,3DB 0FFH, 0FFH ,0FFH, 0FDH ,0BFH, 7BH ,0BBH, 37H ,0B2H, 6FH ,0AAH, 5FH, 99H, 7DH ,0B9H, 7EH;DB 0BBH ,01H, 77H ,7FH, 4DH ,5FH, 7EH ,6FH, 7FH ,37H, 7FH ,0B9H, 0FFH ,0FFH, 0FFH ,0FFH;系,4ret end第六章 调试及性能分析6.1 软件调试软件调试主要是利用计算机仿真针对程序中可能存在的错误进行检测,知道得到正确的显示结果。图二:图三:图四:6.2硬件调试 根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:LED驱动模块的调试,数据存储模块的调试等,最后将各模块组合后进行整体测试。1、硬件组装在做好的PCB空板上把系统所用到的所有元器件插入到板上,进行焊接,确保无一处有虚焊、漏焊等。2、硬件调试首先把对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。3、软件调试按照程序流程图在KEIL C51软件中编写好程序,在此软件中检测编写好的程序是否有误语法错误。4、硬件软件联调将调试好的硬件和软件进行联调,主要调试系统的实现功能。6.3测试结果此次系统设计结果较好,LED显示屏能很好的显示信息。LED显示屏由20块88的LED小模块组成,整个显示屏可以显示1680的“机电工程系”总 结本文的点阵LED显示系统以AT89C51单片机为核心,控制点阵的显示与流动,加以设计的,可实现汉字方式循环显示,经实际应用验证,本条屏作为信息显示屏,工作稳定,字迹清晰、美观,亮度适中等优点。我们还可以灵活扩展,使字可以左右或者上下循环移动,本次设计的点阵显示屏可以在我校系部挂起,或者通过修改程序使用在其他领域中,比如医院、银行、俱乐部、出租车、商店等地方,同时本显示屏质量给与保证,经久耐用,损坏时修理方便,调理简便,价格低廉是以后社会发展广泛应用和最适宜的。通过此次论文设计,让我学到了许多知道的和不知道的,都有提高,在单片机的选择、显示屏的组合还有各种器件的选用有了一个明确的认识,程序设计上清晰地思路,理论在实践方面的运用能力有巨大的提高。在实习以前,由于对单片机有一定的兴趣,我通过课外学习已经接触了很多概念以及设计方式,但不专业。但是通过这次深层次的学习、设计我有了一定的实践经验和理论基础,也让我可以进行更深的研究学习,再设计思路上,通过查阅资料了解了许多方法,认识到形式的多样性,模仿优秀作品是每个设计师必走之路,但是做设计必须要有自己的思想,人也要有自己的鲜明个性,久了,就成了自己的风格,风格的养成与一个人的艺术素养和个人修养有直接关系。要拓展自己的知识面,使自己的知识系统化。知识需要接触社会的方方面面,光有书本知识是远远不够的。要求自己在以后的学习中多想,多读,多学。要求自己的写作水平一定要过硬。经验的提高,让我今后在设计时更加方便、快捷,也为毕业后的就业提供了保障,本次论文的完成,让我认识到自己很多方面的不足,知识是无穷无限的,知道的越多,就越感觉到自己的不足,自己该提升的空间就越大。在今后我要深刻对知识的理解记忆,实践操作方面要勤加练习,设计论文形式摇动的创新,勤加思考,勤快练习,不懈怠,对于知识不懂得要及时查阅资料,更要勤加积累总结。 在实践中不断对自己所学的知识进行更新,进行补充。 参考文献李朝青 主编,单片机原理及接口技术(第3版),北京:北京航空航天大学出版社,2005.10 张毅刚 主编,MCS-51 单片机实用子程序设计, 哈尔滨大学出版社, 2003.6史光国 主编,半导体发光二级管及固体照明,科学出版社,2007-4-1沈红卫 主编,基于单片机结构的智能系统设计与实现,电子工业出版社黄惠媛 主编,单片机原理与接口技术,海洋出版社周平、伍云辉 主编,单片机应用技术,电子科技大学出版社吴金戌 沈金阳 郭庭吉 主编8051单片机实践与应用清华大学出版社附件一:74HC595芯片资料 8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。特点 8位串行输入 8位串行或并行输出 存储状态寄存器,三种状态 输出寄存器可以直接清除 100MHz的移位频率 输出能力 并行输出,总线驱动 串行输出;标准 中等规模集成电路应用 串行到并行的数据转换描述 595是告诉的硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准。595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。数据在SCHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。 参考数据 符号参数条件TYP单位HCHCttPHL/tPLH传输延时SHcp到Q7STcp到QnMR到Q7CL=15pFVcc=5V161714212019NsNsNsfmaxSTcp到SHcp最大时钟速度10057MHzCL输入电容Notes 13.5 3.5pFCPDPower dissipation capacitance per package.Notes2115 130 pFCPD决定动态的能耗,PDCPDVCCf1+(CLVCC2f0) F1输入频率,CL输出电容 f0输出频率(MHz) Vcc=电源电压引脚说明符号引脚描述Q0Q715, 1, 7并行数据输出GND8地
展开阅读全文