基于单片机LED点阵广告屏设计论文完整版.docx

上传人:b****6 文档编号:12796986 上传时间:2023-06-08 格式:DOCX 页数:21 大小:404.29KB
下载 相关 举报
基于单片机LED点阵广告屏设计论文完整版.docx_第1页
第1页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第2页
第2页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第3页
第3页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第4页
第4页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第5页
第5页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第6页
第6页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第7页
第7页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第8页
第8页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第9页
第9页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第10页
第10页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第11页
第11页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第12页
第12页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第13页
第13页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第14页
第14页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第15页
第15页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第16页
第16页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第17页
第17页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第18页
第18页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第19页
第19页 / 共21页
基于单片机LED点阵广告屏设计论文完整版.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机LED点阵广告屏设计论文完整版.docx

《基于单片机LED点阵广告屏设计论文完整版.docx》由会员分享,可在线阅读,更多相关《基于单片机LED点阵广告屏设计论文完整版.docx(21页珍藏版)》请在冰点文库上搜索。

基于单片机LED点阵广告屏设计论文完整版.docx

基于单片机LED点阵广告屏设计论文完整版

第一章

一、概述

当今社会在飞速发展无疑能源、健康、空间的利用,成了人们着重关注的对象。

而在这个信息传递极速的社会,LED的出现给人们带来了希望之光。

LED的特色之处一是节能(直接功耗,间接耗能),二是基本无电离辐射,三提高空间利用率。

而这些特色又恰好解决了上述的三种问题。

然而LED点阵显示屏的特点不仅仅于此LED点阵显示屏用的是数码管,而数码管具有实用,便宜等优点。

做出来的LED点阵显示很耐用。

LED点阵显示屏之所以受到广泛重视而得到迅速发展,是与LED显示屏本身所具有的优点分不开的。

LED点阵显示屏的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。

二、简介

组合型led点阵显示器以发光二极体为图素,它用高亮度LED晶粒进行阵列组合后,再透过环氧树脂和塑模封装而成。

具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。

  点阵显示器有单色和双色两类,可显示红,黄,绿,橙等。

LED点阵有4×4、4×8、5×7、5×8、8×8、16×16、24×24、40×40等多种;根据图素的数目分为等,双原色、三原色等,根据图素顏色的不同所显示的文字、图像等内容的顏色也不同,单原色点阵只能显示固定色彩如红、绿、黄等单色,双原色和三原色点阵显示内容的顏色由图素内不同顏色发光二极体点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极体的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。

  几种LED点阵显示器的内部电路结构和外型规格,其他型号点阵的结构与引脚可试验获得,LED点阵显示器单块使用时,既可代替数码管显示数位,也可显示各种中西文字及符号,如5x7点阵显示器用於显示西文字母,5×8点阵显示器用於显示中西文,8x8点阵用於显示中文文字,也可用於图形显示。

用多块点阵显示器组合则可构成大萤幕显示器,但这类实用装置常通过微机或单片机控制驱动。

  由LED点阵显示器的内部结构可知,器件宜採用动态扫描驱动方式工作,由於LED管芯大多为高亮度型,因此某行或某列的单体LED驱动电流可选用窄脉冲,但其平均电流应限制在20mA内,多数点阵显示器的单体LED的正向压降约在2V左右,但大亮点∮10的点阵显示器单体LED的正向压降约为6V。

  大萤幕显示系统一般是将由多个LED点阵组成的小模组以搭积木的方式组合而成的,每一个小模组都有自己的独立的控制系统,组合在一起后只要引入一个总控制器控制各模组的命令和资料即可,这种方法既简单而且具有易展、易维修的特点。

LED点阵显示系统中各模组的显示方式有静态和动态显示两种。

静态显示原理简单、控制方便,但硬体接线复杂,在实际应用中一般採用动态显示方式,动态显示採用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示幕的各行进行选通,同时又向各列送出表示图形或文字资讯的脉冲信号,反復迴圈以上操作,就可显示各种图形或文字资讯。

第二章

2.1、16×16点阵LED原理及应用

设计时必须掌握点阵工作原理方能进行更深层设计。

16x16LED点阵其实就是4块8x8点阵LED级联而成的,因此特给出8×8点阵LED的工作原理。

(1)为8×8点阵LED外观及引脚图,其等效电路如图

(2)所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。

例如如果想使左上角LED点亮,则Y0=1,X0=0即可。

应用时限流电阻可以放在X轴或Y轴。

而16x16就是在8x8原理的基础上将四块8x8级联而成,如图(3)。

(1)8×8点阵LED外观及引脚图

 

(2)8×8点阵LED等效电路

 

 

图(3)四块8x8点阵LED级联成16x16点阵

2.2、LED点阵的显示文字图形原理

汉字显示屏用于显示汉字、字符及图像信息,在公共汽车、银行、医院及户外广告等地方都有广泛的应用。

下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。

为了降低成本,使用了四块8×8的LED点阵发光管的模块,组成了一个16×16的LED点阵显示屏,如图(3)所示。

在这里仅做了二十五个汉字的显示,在实际的使用中可以根据这个原理自行的扩展显示的汉字,下面是介绍汉字显示的原理。

LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。

以16×16点阵为例,把所有同一行的发光管的阴极连在一起,把所有同一列的发光管的阳极连在一起(共阴的接法),先送出对应第1列发光管亮灭的数据并锁存,然后选通第1列使其燃亮一定的时间,然后熄灭;再送出第2列的数据并锁存,然后选通第2列使其燃亮相同的时间,然后熄灭;….第16列之后,又重新燃亮第1列,反复轮回。

当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。

该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。

显示数据可通过单片机的P0,,P2口接驱动电路传输到点阵行引脚。

LED点阵显示模块进行的方法有两种:

1)水平方向(X方向)扫描,即逐列扫描的方式(简称列扫描方式):

此时用一个P口输出列码决定哪一列能亮(相当于位码),用另一个P口输出行码(列数据),决定该列上哪个LED亮(相当于段码)。

能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。

(2)竖直方向(Y方向)扫描,即逐行扫描方式(简称行扫描方式):

此时用一个P口输出决定哪一行能亮(相当于位码),另一个P口输出列码(行数据,行数据为将列数据的点阵旋转90度的数据)决定该行上哪些LED灯亮(相当于段码)。

能亮的行从上向下扫描完16行(相当于位码循环移位16次)即显示一帧完整的图像。

本设计应用的是第一种的扫描方法,即水平方向(X方向)扫描。

每一个字由16行16列的点阵形成显示,即每个字均由256个点阵来表示,我们可以把每一个点理解为一个像素。

一般我们使用的16×16的点阵宋体字库,即所谓的16×16,是每一个汉字在纵横各16点的区域内显示的。

汉字库从该位置起的32字节信息记录了该字的

字模信息。

事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。

我们以水平方向(x方向)扫描显示汉字的“杨”为例来说明其扫描原理,每一个字由16行16列的点阵组成显示,如图下的,如果用8位的AT89S51的单片机来控制,由于单片机的总线为8位,一个字需要拆分成两个部分。

一般我们把它分解成上部分和下部分,上部分由8*16的点阵组成,下部分也由8*16的点阵组成。

在本例中单片机首先显示的是左上角的第一列的部分,即第0列的P00~P07口。

方向为P07到P00,显示汉字“杨”的时候,P00到P02都是灭的,P03亮,因为行接阴极,即二进制11110111,转换为16进制为F7H,如图(4)所示。

上半部分第一列完成之后,继续扫描下半部分的第一列,即从P27向P20方向扫描,从上图可以看到,这一列P2.2亮,其余全部灭,所以代码为11111011,16进制为FBH,然后单片机转向上半部的第二列,除了P03亮,其他的都不亮,即为11110111,16进制为F7H,这一列扫描完成之后继续进行下半部分的扫描,除了P20\P21亮,其他的为不亮,为二进制11111100,即16进制FCH。

按照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“杨”的扫描代码为:

F7HFBHF7HFCH37HFFH00H00H

B7HFFH77HFEHF5HF7HBDHDBH;

9DHECH2DHF7HB5HF9H39HBEH

BDH7FH3FH80HFFHFFHFFHFFH;

图(4)显示原理图

由这个原理可以看到,无论显示何种字体或图像,都可以用这种方法来分析出它的扫描代码从而显示在屏幕上。

了解汉字的显示原理之后,那如何得到汉字的字模信息呢?

现在有一些现成的汉字字模生成软件,可从网上下载汉字字库提取程序直接提取字库,如图(5)所示的为一种字模生成软件,软件打开后输入汉字,点击“检取”后,十六进制数据汉字代码即可以自动生成,把我们需要的竖排数据复制到我们的程序即可。

图(5)

2.3、点阵的移动

以下以16×16点阵为例介绍点阵的移动。

要显示一个字符,该字符的点阵数据可以列向(纵向)16点组字,又可以行向(横向)16点组字。

无论哪一种组字方法,都既可以显示字符的水平方向的移动,又可以显示竖直方向的移动。

本设计主要采用汉字的左移,所以以下只作左移显示的解释。

显示字符的左右移动

(1)列扫描方式左移动:

列向组字显示字符水平方向的移动(左滚动)

在这里有两个方法:

方法1:

延长数组法。

将原来字符点阵数组的16个数据重复一遍延长,点阵数组的数据个数为32个。

每扫描一帧取8个数据显示,下一帧取数要在数组中后移一个数取数。

循环一遍扫16帧。

可以假想有两块16×16的点阵模块(共32帧)水平平行排列,用一个恰好能罩住16列点阵的中空方框去罩这个点阵,第1(第1帧)罩住最左边数起第一列开始的16列,就扫描显示这16列;第2次(第2帧)使方框右移一列,罩住做左边数起第2列开始的16列,就扫描显示这16列;······;这样每扫描完一帧使方框右移一列,最后第16次(第16帧)时,罩住左边数起的第16列开始的16列,就扫描显示这16列。

如此完成16帧画面的扫描显示,也就完成了整个一次移动循环扫描、之后反复循环,即可呈现显示字符沿水平向左移动的图像,如图6所示。

图6方框图法左右移动示意图

因为是列向组字(列扫描方式,点阵数据为行码,上边为低位下面为高位),希望显示移动的一个字符,第1次扫描从行码的点阵数组中取第1~16个数据,送行码输出口,对应于这8个数据,同时用列码输出口输出列码,分别控制第1~16列。

扫描完前16个数据之后,第2次扫描从点阵数组中取第3~18个数据(第18个数据与第1个数据同),送行码输出口,对应于这16个数据,同时用列码输出口输出列码,仍分别控制扫第1~16列。

第3次扫描从点阵数组中取第5~20个数据(第20个数据码与第2个数据码相同)扫描······;如此实现字符向左移动。

以上完成一个图形移动的方法,也可以看成是移动16个不同的字形。

如图2.13所示,首先扫描第一个字型,同样是16行,16次扫描,16次显示;完成一个字型的扫描以后,再扫描第二个字型;完成第二个字型的扫描之后,再扫描第三个字型······依此类推,即可产生该文字的左移的感觉。

假设如果原本某个汉字的字型(第一个字型),其编码为:

00H,10H,20H,30H,40H,50H,60H,70H,80H,90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H;

第二个字型的编码为:

20H,30H,40H,50H,60H,70H,80H,90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H,00H,10H

也就是把第一个字型的编码中,第1列显示数据,变为第2列显示数据;第2列显示数据,变成第3列显示数据;第3列显示数据,变成第4列显示数据;第4列显示数据,变成第5列显示数据······以此类推。

当第一个字型扫描显示完成之后,就进行这样的动作调整,以产生第二个字型的编码。

同样的,当第二个字型扫描完成之后,就进行这样的调整动作,以产生第三个字型的编码。

这个调整动作时先将16个编码根据序填入存储器,例如第1行编码存入20H,第二行编码存入21H······要进行左移调整时,则先将20H地址的数据转移到36H地址,再将21H地址的数据转移到20H地址,将22H地址的数据转移到21H地址,将23H地址的数据转移到22H地址,将24H地址的数据转移到23H地址,将25H地址的数据转移到24H地址,将26H地址的数据转移到25H地址,将27H地址的数据转移到26H地址,将28H地址的数据转移到27H地址······

本设计主要采用以上方法实现左移,其他方法在此不再说明。

2.4芯片资料

主要芯片介绍

1.8051系列的单片机

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

图片见下图附录1。

附录189S51管脚图

(1).管脚说明

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

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.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(记时器0外部输入)

P3.5T1(记时器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信号将不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出

2.

74ls154功能简介:

54/74154为4线-16线译码器,当选通端(G1、G2)均为低电平时,可将地址端(ABCD)的二进制编码在一个对应的输出端,以低电平译出。

如果将G1和G2中的一个作为数据输入端,由ABCD对输出寻址,74LS154还可作1线-16线数据分配器。

附录274LS154管脚图

(2)引脚功能介绍

A、B、C、D译码地址输入端(低电平有效)

G1、G2选通端(低电平有效)

0-15输出端(低电平有效)

(3)74ls154真值表:

第三章方案设计

3.1单片机延时子程序

延时程序在单片机编程中使用非常广泛,也很重要,在本课程设计的程序中用到了延时子程序,所以在此详细的叙述一下。

在弄清延时程序指令的用法之前,要清楚的了解延时程序的基本概念,机器周期和指令周期的区别和联系、相关指令的用法等。

下面是本设计的程序中延时程序的计算:

DELAY:

MOVR2,#2;1延时1ms

D1:

MOVR3,#2481

DJNZR3,$2*248

DJNZR2,D12*(2+1+2*248)

RET2

T=1+2*(2+1+2*248)+2=1001us

3.2.PROTEUS仿真

1.列驱动电路:

如图,用74hc154控制列扫描电路,外加PNP型三极管基极经200欧电阻接154输出引脚,集电极接点阵16列引脚,发射极接电源vcc实现饱和导通状态。

2.行控制电路可直接接上单片机P0,P2口。

如图9

图9行控制电路图

3.3软件调试在PROTEUS环境中通过了调试如图10(可是实际电路当中却不能显示,将在硬件调试中解释)

 

3.4硬件调试

3.3.1节可以看到,在PROTEUS仿真软件中的接线可以通过,可是在实际电路中不能显示,这是因为实际当中51单片机的各个引脚负载能力有限,必须还要通过外接驱动电路才能很好的显示,如外接三极管放大、接锁存器锁存等等来增强驱动能力,本设计采用了外接三极管放大的方法成功调试出较好的显示效果。

实际电路及实物图请看附录一。

第四章

经验总结

本次课程设计到现在有三个多星期,回顾这些天我感到学到了很多东西,在写这个心得的时候,我想就这些天的收获,说一说自己内心的想法。

本设计的是一个16x16的点阵LED图文显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。

图形或文字显示有静止、移入移出等显示方式。

本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。

总结本文的研究工作,主要做了下面几点工作:

一、通过查阅大量的相关资料,详细了解了LED的发光原理和LED显示屏的原理,了解了LED的现状,清楚地了解了LED显示屏与其它显示屏相比较有那些优点,明确了研究目标。

并且通过对单片机资料的查阅和应用,更进一步增加了对单片机知识的理解和运用能力。

并证实了自己的思路:

“查资料→思考总结→运用→找出差错,再查资料和向别人询问→再次运用”的正确性。

二,本文设计的LED显示屏能够实现在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。

三,本文列出了系统具体的硬件设计方案,硬件结构电路图,软件流程图和具体汇编语言程序设计与调试等方面。

四,在这次课程设计的过程中学会了PROTEUS的基本使用,感到PROTEUS对电子专业的同学来说是一个很有用的软件。

在运用PROTEUS时可以运用一些快捷的标号,总线的方法画图,这样既能使电路图清晰,简单,更能大大提高画图速度

五,通过这次课程设计,重新复习并进一步增强了动手的能力,学以致用,把只是运用到实际生活中才是根本目的。

六,存在问题:

没有考虑仿真软件是一个理想的仿真环境,而实际连接的电路板会由于譬如连接不当,相邻器件间的干扰等等的问题导致在仿真软件中能良好运行的程序,出现显示问题,经过排查和合理的器件摆放焊接,问题解决。

总体来说这次的课程设计很成功,达到了预想的目的:

学到了知识,提高了能力,完成了任务。

有点缺憾是时间有限,不能进一步深入和扩散学习和研究。

希望有时间可以对程序和电路图作更进一步的改进,譬如实现点阵的上下移动,对角线移动,三色显示等

 

附录

附一:

实际硬件接线图:

附二设计流程图

附三设计程序

;多字移动

;一个字占32个字节,1K可以存放1K=1024字节/32=32个字,C51=4K=128个字,C52=8K=256个字。

;但程序约占用160个字节(相当于5个字的空间),最终可以显示的字为C51=123个字,C52=251个字。

;超过后单片机将存储不下。

ORG000H

JMPMIAN

ORG030H

MIAN:

MOVP3,#00;关闭端口

MOVP1,#0FFH

MOVP0,#0ffh

MOVP2,#0ffh

CALLDELAY;延时1ms

MOVR5,#2;移动列的数量(列数乘2)

MOVA,#33;显示几个字

MOVB,#32;一个字=32个码

MULAB

MOV22H,A;存放1~8个字的数量

MOV23H,B;存放8的倍数个字的数量

;如50个字:

50×32=1600=0640H,则DPH处为06H=6,DPL处为40H=64

;简单算法:

50÷8=6余2,6为DPH处数,余的2×32=64为DPL数

MOVDPTR,#TAB;赋查表初址

MOVR0,DPL;保存DPTR初值,R0、R1记录取码进度

MOVR1,DPH

MOV20H,DPL;20H、21H保持DPTR初值不变

MOV21H,DPH

LOOP:

MOVR7,#5;每屏停留时间

L1:

MOVR6,#16;每屏16个码

MOVR4,#00;扫描指针清零

MOVDPL,R0;取码指针存入DPL

MOVDPH,R1

L16:

MOVA,R4;扫描指针存入A

MOVP1,A;扫描输出

INCR4;扫描指针加1

CLRA;A清零

MOVCA,@A+DPTR;查表送A

MOVP0,A;送P0口显示

INCDPTR;取码指针加1

CLRA;A清零

MOVCA,@A+DPTR;查表送A

MOVP2,A;送P2口显示

INCDPTR;取码指针加1

CALLDELAY;扫描延时1ms

MOVP0,#0ffh;清除屏幕

MOVP2,#0ffh

DJNZR6,L16;1屏是否完成?

DJNZR7,L1;每屏停留时间是否到了?

MOVA,R0;如字需移动,用该指令

ADDA,R5;如大于256,C=1

MOVR0,A

JNCDP

INCR1

DP:

MOVA,20H;DPL初值

ADDA,22H;如大于256,C=1。

因DPL初值在90H以上,显示4个字后DPH将加1,导致判断失误

MOVA,DPH

SUBBA,21H;已显示字的数量(乘8)

CJNEA,23H,LOOP;DPH中的字是否完成?

CLRC

MOVA,DPL

SUBBA,20H;已显示字的数量

CJNEA,22H,LOOP;DPL中的字是否完成?

lJMPMIAN

DELAY:

MOVR2,#2;延时1ms

D1:

MOVR3,#248

DJNZR3,$

DJNZR2,D1

RET

TAB:

Db0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0x8F,0xFB,0x6D,0xFB,0x53,0xFB,0x57,0xFB,0x07,0x80

Db0x53,0xFD,0x75,0

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2