《LED显示屏设计毕业论文.doc》由会员分享,可在线阅读,更多相关《LED显示屏设计毕业论文.doc(29页珍藏版)》请在三一办公上搜索。
1、LED显示屏设计摘 要LED大屏幕显示系统,以AT89S52单片机为核心,由键盘显示、与非门、外部锁存器、LED大屏幕显示等功能模块组成。基于题目基本要求,本系统对时间显示和大屏幕显示进行了重点设计。此外,扩展单片机外围接口、逐排显示,与非门等功能。本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。本系统不仅成功的实现了要求的基本功能,发挥部分也得到完全的实现,而且有一定的创新功能。 本设计主要以AT89S52单片机为核心,采用串行传输、静态扫描技术,制作一款拥有PC机通信功能的,模块化LED多功能显示屏。关键词:AT89S52
2、、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 显示驱动程序
3、17第六章 调试及性能分析 6.1 软件调试22 6.2 硬件调试23 6.3 性能分析24总结24致谢24参考文献27附件一 27附件二30绪论本系统采用单片机AT89S52为LED显示屏的控制核心,制造一种简单的1680汉字显示屏设计。内容包括软件设计、LED显示屏的硬件电路、汇编语言程序设计与调试等方面,涉及到单片机电子产品设计及制造工程中的各个环节,有助于广大学者进一步的学习、了解汉字点阵显示原理,认识单片机的基本结构、工作原理及应用方法,提高单片机知识的运用能力LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室
4、内外环境适应能力强等优点。并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。LED显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告宣传等各方面。LED点阵显示屏的构成型式有多种,其中典型的有两种。一种把所需展示的广告信息烧写固化到EPROM芯片内,能进行固定内容的多幅汉字显示,称为单显示型;另一种在机内设置了字库、程序库,具有程序编制能力,能进行内容可变的多幅汉字显示,称可编程序型。目前,国内的LED点阵显示屏大部分是单显示型,其显示的内容相对较少,显示花样较单一
5、。一般在产品出厂时,显示内容就已写入显示屏控制系统中的EPROM芯片内,当需要更换显示内容时就非常困难,这样使该类型的显示屏使用范围受到了限制。国内的另一种LED显示屏可编程序型LED显示屏,虽然增加了显示屏系统的编程能力,显示内容和显示花样都有所增加,但也存在着更换显示内容不便的缺点。随着社会经济的迅速发展,如今的广告牌都存在着显示内容丰富、信息量大、信息更换速度快等特点。因此传统的LED显示屏控制系统已经越来越不能满足现代广告宣传业的需要。而利用PC机通信技术控制LED显示屏,则具有显示内容丰富,信息更换灵活等优点。本设计是基于单片机(AT89C51)讲述了1680 LED汉字点阵显示的基
6、本原理、硬件组成与设计、程序编译与下载等基本环节和相关技术。第一章 选定系统方案1.1 确定方案本设计要求用单片机控制一个1680点阵显示屏,完成相应的汉字显示。根据此要求设计者提出了三种如下相应的设计方案:方案一:PWM(脉宽调制)技术是一种传统的调光方式,它利用简单的数位脉冲,反覆开关LED驱动器,系统只需要提供宽、窄不同的数位式脉冲,即可简单地实现改变输出电流,从而调节LED的亮度。该技术的优点在于能够提供高品质的白光,以及应用简单,效率高。方案二:DSP(digital singnal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号
7、,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。DSP器件比16位单片机单指令执行时间快810倍,完成一次乘加运算快1630倍。DSP器件还提供了高度专业化的指令集,提高了FFT快速傅里叶变换和滤波器的运算速度。此外,DSP器件提供JTAG接口,具有更先进的开发手段,批量生产测试更方便,开发工具可实现全空间透明仿真,不占用用户任何资源。芯片
8、内置544字的高速SRAM。外部可寻址64K字程序/数据及I/O,令周期在25ns50ns之间,实时性处理比16位单片机快2倍以上,可取代一般的单片机。TMS320F206除了具有TMS320C203的功能外,内置32K字零等待快闪存储器,可满足单片设计的要求,能最大限度减少用户板的体积。软件配有汇编/链接C编译器、C源码调试器。 方案三:单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅
9、片上构成的一个小而完善的计算机系统。方案一 致命的缺点是容易产生电磁干扰,有时甚至会产生人耳能听见的杂讯,所以排除。方案二 DSP价格相比其它几种较贵,所以被淘汰方案三 单片机相比其它两种方案,价格便宜且好汇编程序,更适合本次方案。 因为考虑到方案要求低,只需要显示静态汉字,再加上单片机成本低廉且符合方案要求,故选择方案三1.2 单片机的确定我国目前常用的单片机的研制厂家有如下: Intel公司 (MCS51系列,MCS96系列)Atmel公司 (AT89系列,MCS5内核)Microchip 公司(PIC系列)Motorola 公司 (6HCXX系列)Zilog 公司 (Z86系列)Phil
10、ips 公司 (87,80系列,MCS51内核)Siemens 公司 (SAB80系列,MCS51内核)NEC 公司 (78系列)Epson 公司 (EOC88系列)方案一:AT89C51单片机是这几年在我国非常流行的单片机,是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalshProgrammable and Erasable Read Only Memory)高性能单片机,可擦除只读存储器可以反复擦除100次,具有低功耗、高性能的特点,并且可与工业标准的MCS51指令集和输出管脚相兼容,对于论文中需要实现的功能,完全可胜任。方案二:AT89S52具有以下标准功能: 8k字节Fl
11、ash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器8K 字节在系统可编程他们是8051的内核,只不过52的内部资源比51稍多,比如增加了一个16位的计数器T2,当然相应的特殊寄存器(SFR)也有了一点变化,另外52的内存
12、也从51的128字节提高到了256字节,ROM也从2K提高到4K,可以装下更大的程序。S52比C51还增加了ISP功能,就是在线可编程功能,这可是很有用的功能,对于买不起仿真器或希望能板上调试(就是插在成品电路板上调试)的人来说十分有价值,你可以随时更新插在电路板上的单片机的程序,十分方便。故综合市场情况与常接触的单片机型号,论文中采用AT89S52单片机。1.3显示部分:LCD液晶显示器的优点:微功耗、尺寸小,超薄轻巧、显示信息量大、字迹清晰、美观、视觉舒适。使整个控制系统更加人性化。LCM301液晶显示器,其是串行口显示,所需I/O口较少,节省了资源,焊接电路时也较为方便。但以上两种因为成
13、本太高,所以我们采用LED二极管,也能达到预期效果。LED的发光颜色和发光效率与制作LED的材料和工艺有关,目前广泛使用的有红、绿、蓝三种。由于LED工作电压低(仅1.5-3V), 能主动发光且有一定亮度,亮度又能用电压(或电流)调节,本身又耐冲击、抗振动、寿命长( 10万小时),所以在大型的显示设备中, 目前尚无其他的显示方式与 LED显示方式匹敌。 把红色和绿色的 LED放在一起作为一个像素制作的显示屏叫双基色屏或伪彩色屏;把红、绿、蓝三种LED管放在一起作为一个像素的显示屏叫三基色屏或全彩屏。制作室内 LED屏的像素尺寸一般是2-10毫米,常常采用把几种能产生不同基色的LED管芯封装成一
14、体,室外LED屏的像素尺寸多为 12-26毫米,每个像素由若干个各种单色LED组成,常见的成品称像素筒或像素模块。LED显示屏如果想要显示图象,则需要构成像素的每个LED的发光亮度都必须能调节,其调节的精细程度就是显示屏的灰度等级。灰度等级越高,显示的图像就越细腻,色彩也越丰富,相应的显示控制系统也越复杂。在当前的技术水平下, 256级灰度的图像,颜色过渡已十分柔和,图像还原效果比较令人满意。1.4芯片的选择方案一:采取并口输入,占用大量I/O口资源方案二:选取串口输入,使用较少。74HC595有8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。8位串行输入, 8位串行或并行输
15、出存储状态寄存器,三种状态输出寄存器可以直接清除 100MHz的移位频率, 输出能力,并行输出,总线驱动。串行输出,标准,中等规模集成电路。综合以上比较,我们选取74HC595来驱动LED点阵。 1.5电源选择78L05是一种固定电压(5V)三端集成稳压器,其适用于很多应用场合.象牵涉到单点稳压场合需要限制噪声和解决分布问题的在-卡调节.此外它们还可以和其它功率转移器件一起构成大电流的稳压电源,如可驱动输出电流高达100毫安的稳压器.其卓越的内部电流限制和热关断特性使之特别适用于过载的情况.当用于替代传统的齐纳二极管-电阻组的时候,其输出阻抗得到有效的改善,其偏置电流大大减少。8550参数:
16、集电极-基极电压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 公司高密度非易失性存储器技术制造,与工业
17、80C52 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护
18、方式下,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”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入
19、使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(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 输出缓
20、冲器能驱动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
21、逻辑电平。对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口还接收一些用于
22、FLASH闪存编程和程序校验的控制信号。 RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将
23、ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。 FLASH存储器编程时,该引脚加上+1
24、2V的编程允许电源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 的状态保持到下一幅画。对于静态显示方式
25、方式,所需的译码驱动装置很多,引线多而复杂,成本高,且可靠性也较低。方案二:动态显示,对一幅画面进行分割,对组成画面的各部分分别显示,是动态显示方式。动态显示方式方式,可以避免静态显示的问题。但设计上如果处理不当,易造成亮度低,闪烁问题。因此合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。动态显示采用多路复用技术的动态扫描显示方式, 复用的程度不是无限增加的, 因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短, 发光的亮度等因素. 我们通过实验发现, 当扫描刷新频率(发光二极管的停闪频率) 为50Hz, 发光二极管导通时间1m s 时
26、, 显示亮度较好, 无闪烁感.。 鉴于上述原因, 我们采用方案一 第四章 系统硬件电路的设计系统硬件部分电路大致上可以分成电源电路、单片机最小系统电路及外围电路、列扫描电路、行扫描电路和LED显示屏电路五部分。4.1整体模块设计本设计行、列驱动电路,显示屏电路,运用单片机的智能化,系统的将每个功能电路模块连接在一起,总体结构设计如下图2.1所示:列驱动器1616LED点阵显示屏行驱动器电源单 片 机图2.1 系统结构设计总图图2.2 电源电路4.3单片机最小系统电路AT89S52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8KB可反复擦写的Flash只读程序存储器和25
27、6 字节随机存取数据存储器。该器件采用ATMEL公司高密度、非易失性存储技术制造,兼容标准MCS-51指令系统,灵活应用于各种控制领域。AT89C51单片机最小系统电路由复位电路、晶振电路两部分组成。4.3.1复位电路 AT89C51单片机在启动运行时或者出现死机时需要复位,使CPU以及其他功能部件处于一个确定的初始状态,并从这个状态开始工作。复位电路产生的复位信号(高电平有效)由RST引脚送入到内部的复位电路,对AT89C51单片机进行复位,复位信号要持续两个机器周期(24个时钟周期)以上,才能使AT89C51单片机可靠复位。AT89C51单片机复位电路如下图2.3所示: 图2.3复位电路图
28、 图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端输出一个3
29、V左右的正弦波,以便使片内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
30、使能,数据直接输出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不断的向单片机一位一位的(即串行)发送数据,74HC
31、154不断的接收数据并且存储起来,待到74HC154寄存器集满16位数据的时候,再通过并行输出把数据传给点阵,发送给点阵的16位行信号与两片74HC595芯片发送的16位列信号会合从而产生一个汉字或其他别的图形通过点阵显示出来。排阻RP1和RP2为限流排阻,以免74HC154的输出电流过大烧坏三极管,本文将74HC154输出的信号通过S8550三极管放大再传送给点阵行输入端,以加大扫描强度,提高点阵显示亮度。4.6 LED显示屏电路LED显示屏是将发光二极管按行按列布置的,在扫描驱动方式下可以按行扫描按列控制,也可以按列扫描按行控制。本文就是使用20块88点阵组成1块1680点阵,采用按列扫描
32、按行控制控制方式,扫描顺序自上而下,以满足汉字显示的要求。1680点阵LED结构如图2.7所示:图2.7 1616点阵电路图要实现显示动画,只需考虑其显示方式,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。当采用按行扫描按列控制的驱动方式时,LED显示屏8行的同名列共用一套列驱动器。行驱动器一行的行线连接到电源的一端,列驱动器一列的列线连接到电源的另一端。应用时还应在各条行线或列线上接上限流电阻。扫描中控制电路将行线的1到8轮流接通高电位,使连接到各该行的全部LED器件接通正电源,但具体那一个LED导通,还要看它的负电源是否接通,这就是列控制的任务了。当对应
33、的某一列置0电平,则相应的二极管就亮;反之则不亮。行线上只管一行一行的轮流导通,列线上进行通断控制,实现了行扫描列控制的驱动方式。以上就是1680点阵显示屏系统硬件部分的各功能模块分述,经过合理的设计论证后和就可以整体结合在一起,再根据设计配备好各元器件实物,通过组装后等在单片机的程序存储器里放入编制好的程序即可成为一个完整的应用系统。4.7 总体硬件电路设计在整个电路设计中,用两片8位输出锁存移位寄存器74HC595作为列扫描,用两片74LS154芯片作为行扫描,用单片机AT89S52对74HC595和74HC154进行控制和驱动第五章 系统程序的设计5.1主程序流程图程序初始化外部中断0定
34、时/计数四字逐排显示子程序四字显示程 序扫 描程 序结束显示汉 字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帧扫描结束标志 MO
35、V 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;*; 四字逐排显示子程序 ;*;
36、每次四字移入移出显示方式,入口时定义好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 ;
37、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 WAIT1
38、1DIS111: 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 ;指向第八个字行左
39、字节 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