5.1 视觉实验:D流水灯

上传人:re****.1 文档编号:569255717 上传时间:2024-07-28 格式:PPT 页数:27 大小:6.21MB
返回 下载 相关 举报
5.1 视觉实验:D流水灯_第1页
第1页 / 共27页
5.1 视觉实验:D流水灯_第2页
第2页 / 共27页
5.1 视觉实验:D流水灯_第3页
第3页 / 共27页
5.1 视觉实验:D流水灯_第4页
第4页 / 共27页
5.1 视觉实验:D流水灯_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《5.1 视觉实验:D流水灯》由会员分享,可在线阅读,更多相关《5.1 视觉实验:D流水灯(27页珍藏版)》请在金锄头文库上搜索。

1、5.1 视觉实验:LED流水灯 目 录引引言言单个灯闪烁单个灯闪烁LED流水灯流水灯户外广告灯户外广告灯 引 言小实验:小实验:注视右图注视右图中心四个黑点中心四个黑点15秒秒30秒钟;秒钟;然后朝自己身边的墙壁看然后朝自己身边的墙壁看(白色的白色的墙或白色的背景墙或白色的背景)或者看此页面的或者看此页面的白色部分;白色部分;看的同时快速眨几下眼睛,看看看的同时快速眨几下眼睛,看看您能看到什么?您能看到什么?视觉暂留现象视觉暂留现象 视觉暂留物体在快速运动时,当人眼所看到的影象消失后,人眼仍能继续保持物体在快速运动时,当人眼所看到的影象消失后,人眼仍能继续保持其影象其影象0.10.4秒秒左右的

2、图象,这种现象被称为视觉暂留现象。左右的图象,这种现象被称为视觉暂留现象。电影户外动画广告电视 目 录引引言言单个灯闪烁单个灯闪烁LED流水灯流水灯户外广告灯户外广告灯 LED驱动电路工作原理 与单片机的与单片机的P1口口相连相连74HC04非门非门1 11 11 11 11 11 11 11 1 P1=0XFF00000000 P1.0=110P1=0X000 00 00 00 00 00 00 00 0 11111111 P1.0=001编程思路编程思路1:对对P1.0进行反复置进行反复置1、清、清0操作,以实现引脚上的操作,以实现引脚上的LED闪烁。闪烁。 单个LED闪烁范例1程序代码

3、.AREAHOME(ABS,CODE).ORG0x0000;复位向量,程序起始地址复位向量,程序起始地址Start:SETBP1.0;P1.0=1,点亮,点亮LEDCLRP1.0;P1.0=0,熄灭,熄灭LEDSJMPStart;返回返回Start重复执行重复执行编程思路编程思路1:对对P1.0进行反复置进行反复置1、清、清0操作,以实现引脚上的操作,以实现引脚上的LED闪烁。闪烁。实验现象:实验现象: LED不闪烁,不太亮又有点亮。不闪烁,不太亮又有点亮。 每一个汇编程序必须要有一个以每一个汇编程序必须要有一个以HOME命名的段,否则编译时会出现警告。命名的段,否则编译时会出现警告。以句点开

4、头的命以句点开头的命令为汇编命令令为汇编命令.AREA命令定义了一个命令定义了一个绝对定位段绝对定位段HOME.org命令在命令在HOME程序中进程序中进行绝对定位,定位复位向量行绝对定位,定位复位向量SDCC51编译器仅支持编译器仅支持0x0000格式,不支持格式,不支持0000H。“Start”为程序的标号。在二进制层面,标号的值就是存储器的地址,而标号又为程序的标号。在二进制层面,标号的值就是存储器的地址,而标号又是引用存储器的值的别名,因此在语言层面是引用存储器的值的别名,因此在语言层面标号的值就是程序的地址标号的值就是程序的地址。地址地址操作码与操作数操作码与操作数助记符助记符注释注

5、释0000000011010010SETBP1.0;P1.0口置口置1,点亮,点亮LED00000001100100000000001011000010CLRP1.0;P1.0口清口清0,熄灭,熄灭LED00000011100100000000010010000000SJMP0x0000;跳转到程序头,重复执行跳转到程序头,重复执行0000010111111010机器语言机器语言 汇编语言汇编语言 单个LED闪烁范例1问题分析 编程思路编程思路1:对对P1.0进行反复置进行反复置1、清、清0操作,以实现引脚上的操作,以实现引脚上的LED闪烁。闪烁。实验现象:实验现象: LED不闪烁,不太亮又有

6、点亮。不闪烁,不太亮又有点亮。问题解决:问题解决: 在置在置1/清清0操作之后,增加零点几秒或几秒的延时。操作之后,增加零点几秒或几秒的延时。 因此,如果要让人眼看到因此,如果要让人眼看到LED闪烁,我们必须将闪烁,我们必须将LED点亮和熄灭的停顿时间扩大接近秒的级别点亮和熄灭的停顿时间扩大接近秒的级别计算机指令的执行速度非常快,其执行时间是计算机指令的执行速度非常快,其执行时间是微秒微秒级的级的 人眼的反应时间:人眼的反应时间:毫秒级毫秒级 单个LED闪烁范例2编程思路 编程思路编程思路2:对对P1.0进行置进行置1、延时、清、延时、清0、延时的反复操作,使、延时的反复操作,使LED闪烁。闪

7、烁。.AREAHOME(ABS,CODE).ORG0x0000;复位向量,程序起始地址复位向量,程序起始地址Start:SETBP1.0;P1.0=1,点亮,点亮LEDCLRP1.0;P1.0=0,熄灭,熄灭LEDSJMPStart;返回返回Start重复执行重复执行;执行延时执行延时Delay实体代码实体代码;执行延时执行延时Delay实体代码实体代码 单个LED闪烁范例2延时程序编写所谓停顿,就是站在那里不动,但单片机并不会停滞不前,它会一直所谓停顿,就是站在那里不动,但单片机并不会停滞不前,它会一直以微秒级的速度狂奔。我们并不要求单片机停止运行,而仅仅是让以微秒级的速度狂奔。我们并不要求

8、单片机停止运行,而仅仅是让P1.0口口的的输出信号维持一段时间输出信号维持一段时间即可。即可。MOVR7,#0xFF;1个机器周期个机器周期Delay:DJNZR7,Delay;2个机器周期个机器周期(*)将立即数将立即数0xFF传送到传送到R7中中标号标号标号标号 (R7-1)=0?YesNoDJNZR7,$根据汇编语言编译规则约定的正确书写格式根据汇编语言编译规则约定的正确书写格式 $表示指令自身的存储地址表示指令自身的存储地址单片机的时钟晶振为单片机的时钟晶振为11.0592MHz 机器周期的频率为机器周期的频率为(11.0592 12)MHz 一个机器周期耗时为:一个机器周期耗时为:1

9、2 11.0592MHz 1.085s 这段程序共占用机器周期:这段程序共占用机器周期:12255511它的延时时间为:它的延时时间为:5111.085s0.5545msR7初值初值0xFF,它将循环它将循环255次次DJNZR7,.DJNZR7,.SDCC51不支持不支持$,用句点来代替,否则编译错误,用句点来代替,否则编译错误 单个LED闪烁范例2延时程序编写所谓停顿,就是站在那里不动,但单片机并不会停滞不前,它会一直所谓停顿,就是站在那里不动,但单片机并不会停滞不前,它会一直以微秒级的速度狂奔。我们并不要求单片机停止运行,而仅仅是让以微秒级的速度狂奔。我们并不要求单片机停止运行,而仅仅是

10、让P1.0口口的输出信号维持一段时间即可。的输出信号维持一段时间即可。MOVR7,#0xFF;1个机器周期个机器周期Delay:DJNZR7,.;2个机器周期个机器周期(*) 编程技巧:给编程技巧:给R7赋值赋值0xFF并不是最大的延时参数,其并不是最大的延时参数,其最大延时参数最大延时参数应该是应该是0。对计算机而言,。对计算机而言,0减减1的结果是的结果是0xFF,因此用,因此用0做延时参数可循环做延时参数可循环256次,其延时时间为次,其延时时间为(1 2 256) 1.085s 556.605s 0.557ms。0.557ms对人眼对人眼来说仍然太快来说仍然太快解决方法:解决方法:在程

11、序的外面再套上一层延时循环,以增加时间长度。在程序的外面再套上一层延时循环,以增加时间长度。MOVR7,#0x0 单个LED闪烁范例2延时程序编写MOVR6,#0x0;1个机器周期个机器周期Delay:MOVR7,#0x0;1个机器周期个机器周期DJNZR7,.;2个机器周期个机器周期DJNZR6,Delay;2个机器周期个机器周期解决方法:解决方法:在程序的外面再套上一层延时循环,以增加时间长度。在程序的外面再套上一层延时循环,以增加时间长度。MOVR7,#0x0;1个机器周期个机器周期Delay:DJNZR7,.;2个机器周期个机器周期(*)(R7-1)=0?YN给R7赋初值0(R6-1)

12、=0?给R6赋初值0YN流程图:流程图: 它的延时时间为:它的延时时间为:(1(122562)256)1.085s143047ms143ms如果延时还不够,可以再加第三级延时,如果延时还不够,可以再加第三级延时,这样就需要再增加一个工作寄存器。这样就需要再增加一个工作寄存器。进行简单估算:进行简单估算:如果第一级延时时间为如果第一级延时时间为0.557ms,则第,则第2级最大延时是它的级最大延时是它的256倍,即:倍,即:0.557ms256142.592ms143ms第第3级延时时间又是第级延时时间又是第2级延时的级延时的256倍,即:倍,即:143ms25636608ms36.6s如果再给

13、程序加上如果再给程序加上2级延时,则它的最大延时时间将超过级延时,则它的最大延时时间将超过3个星期。个星期。对于闪烁现象的观察,对于闪烁现象的观察,143ms是一个比较理想的参数是一个比较理想的参数下一步:把延时下一步:把延时程序插入程序程序插入程序 单个LED闪烁范例2程序代码 .AREAHOME(ABS,CODE).ORG0x0000;复位向量,程序起始地址复位向量,程序起始地址Start:SETBP1.0;P1.0=1,点亮,点亮LEDCLRP1.0;P1.0=0,熄灭,熄灭LEDSJMPStart;返回返回Start重复执行重复执行;执行延时执行延时Delay实体代码实体代码;执行延时

14、执行延时Delay实体代码实体代码MOVR6,#0x0;1个机器周期个机器周期Delay:MOVR7,#0x0;1个机器周期个机器周期DJNZR7,$;2个机器周期个机器周期DJNZR6,Delay;2个机器周期个机器周期.AREAHOME(ABS,CODE).ORG0x0000Start:SETBP1.0;P1.0=1,点亮,点亮LEDMOVR6,#0x0;延延时143msDelay:MOVR7,#0x0DJNZR7,.DJNZR6,DelayCLRP1.0;P1.0=0,熄灭,熄灭LEDMOVR6,#0x0;延延时143msDelay1:MOVR7,#0x0DJNZR7,.DJNZR6,D

15、elay1SJMPStart;返回返回Start,循环执行程序,循环执行程序编程思路编程思路2:对对P1.0进行置进行置1、延时、清、延时、清0、延时的反复操作,使、延时的反复操作,使LED闪烁。闪烁。实现现象:实现现象: 人眼能观察到人眼能观察到LED的闪烁现象。的闪烁现象。两者的作用和功能一样,却占两者的作用和功能一样,却占用用2个程序空间个程序空间能否使程序变能否使程序变得简单一些得简单一些这两条程序实现的功能这两条程序实现的功能等价于等价于CPLP1.0 单个LED闪烁范例2程序代码 .AREAHOME(ABS,CODE).ORG0x0000Start:SETBP1.0;P1.0=1,

16、点亮,点亮LEDMOVR6,#0x0;延延时143msDelay:MOVR7,#0x0DJNZR7,$DJNZR6,DelayCLRP1.0;P1.0=0,熄灭,熄灭LEDMOVR6,#0x0;延延时143msDelay1:MOVR7,#0x0DJNZR7,$DJNZR6,Delay1SJMPStart;返回返回Start,循环执行程序,循环执行程序编程思路编程思路2:对对P1.0进行置进行置1、延时、清、延时、清0、延时的反复操作,使、延时的反复操作,使LED闪烁。闪烁。实现现象:实现现象: 人眼能观察到人眼能观察到LED的闪烁现象。的闪烁现象。CPLP1.0;LED状态取反状态取反 单个L

17、ED闪烁范例3程序代码 编程思路编程思路3:程序优化,用程序优化,用CPLP1.0替代替代SETBP1.0和和CLRP1.0。该程序巧妙地利用了位操作的该程序巧妙地利用了位操作的“非逻非逻辑辑”指令,使延时程序的利用率达到指令,使延时程序的利用率达到了最大,比较一下这两段程序的篇幅,了最大,比较一下这两段程序的篇幅,就可以看出程序的思路以及对指令的就可以看出程序的思路以及对指令的熟练掌握是多么地重要。熟练掌握是多么地重要。地址地址操作操作码码与操作数与操作数助助记记符符注注释释0000000010110010CPLP1.0;LED状状态态取反取反000000011001000000000010

18、01111110MOVR6,#0x0;延延时时143ms00000011000000000000010001111111MOVR7,#0x0000000101000000000000011011011111DJNZR7,.;R70,返回指令本身,返回指令本身00000111111111100000100011011110DJNZR6,0x0004;R70,返回地址,返回地址0x000400001001111110100000101010000000SJMP0x0000;程序跳程序跳转转到到0x0000,循,循环执环执行程序行程序0000101011110100 上升沿与下降沿LED点亮的过程就

19、是在点亮的过程就是在I/O口上产生了高电平口上产生了高电平“1”,并持续延时,并持续延时143ms;LED熄灭就是在熄灭就是在I/O上产生了低电平上产生了低电平“0”,并持续延时,并持续延时143ms。如此周而复始,如此周而复始,LED既闪烁。既闪烁。143ms286ms上升沿上升沿:数字电平由:数字电平由0变为变为1的的那一瞬间,用那一瞬间,用“”表示表示下降沿下降沿:数字电平由:数字电平由1变为变为0的那一瞬间,用的那一瞬间,用“”表示表示CLRP1.0NOP;瞬瞬间延延时时间SETBP1.0;产生产生“那一瞬间那一瞬间”的延时的延时 NOP:一条只有一个机:一条只有一个机器周期的空操作指

20、令器周期的空操作指令用软件来产生用软件来产生“”上升沿的代码:上升沿的代码: 关键知识点 尽管上面的练习很简单,但必须认真实践,搞清楚每一行代尽管上面的练习很简单,但必须认真实践,搞清楚每一行代码的来龙去脉。看懂了!仅仅代表你码的来龙去脉。看懂了!仅仅代表你“暂时记住暂时记住”了而已,但很了而已,但很快就会忘记。当你将调试中出现的所有快就会忘记。当你将调试中出现的所有“问题(问题(bug)”都找到时,都找到时,才会体会更深。无数成功者的经验表明:过程比结果更重要!才会体会更深。无数成功者的经验表明:过程比结果更重要!“延时时间延时时间”的计算以及的计算以及“上升沿与下降沿上升沿与下降沿”是本节

21、至关重是本节至关重要的知识点。其次,必须学会查阅相关的资料,了解单片机要的知识点。其次,必须学会查阅相关的资料,了解单片机I/O口口和非门集成电路驱动电流的大小,和非门集成电路驱动电流的大小,LED的导通电压与回路电流以的导通电压与回路电流以及限流电阻的计算及限流电阻的计算。 目 录引引言言单个灯闪烁单个灯闪烁LED流水灯流水灯户外广告灯户外广告灯 流水灯现象分析人们时常看到户外动画广告,一会儿从左到右地显示,一会儿又从右到左地显人们时常看到户外动画广告,一会儿从左到右地显示,一会儿又从右到左地显示,这就是流水灯效果,其特征是将想要显示的画面切割成示,这就是流水灯效果,其特征是将想要显示的画面

22、切割成N份,且每次只让其中份,且每次只让其中的一个画面显示,让肉眼能够看得清楚。的一个画面显示,让肉眼能够看得清楚。一个简单的例子:一个简单的例子:0.2秒秒0.2秒秒0.2秒秒0.2秒秒这个动画就是由右边四个图形每个图这个动画就是由右边四个图形每个图形显示形显示0.2s,循环显示制作而成的。,循环显示制作而成的。如果在中间再多加几个中间显示的图如果在中间再多加几个中间显示的图形,并缩短每个图形的显示时间可以使形,并缩短每个图形的显示时间可以使动画更流畅。动画更流畅。视觉暂留效应视觉暂留效应 LED流水灯范例1现象实现 编程思路编程思路1:将将0x01、0x02、0x04、0x08、0x10、

23、0x20、0x40、0x80依次送往单片依次送往单片机机P1口,即将口,即将“MOVdirect,#data”指令使用指令使用8次,并加上合适的延时次,并加上合适的延时时间时间。将使第将使第1个个LED灯点亮,灯点亮,其它灯熄灭其它灯熄灭将使第将使第2个个LED灯点亮,灯点亮,其它灯熄灭其它灯熄灭依次点亮第依次点亮第3、4、5、6、7、8个个LED灯,并同时使其它灯熄灭灯,并同时使其它灯熄灭.AREAHOME(ABS,CODE).ORG0x0000;复位向量,程序起始地址复位向量,程序起始地址Start:MOVP1,#0x01;LED的显示状态:的显示状态:;执行延时执行延时Delay实体代码

24、实体代码MOVP1,#0x02;LED的显示状态:的显示状态:;执行延时执行延时Delay实体代码实体代码MOVP1,#0x80;LED的显示状态:的显示状态:;执行延时执行延时Delay实体代码实体代码AJMPStart;跳转到跳转到Start,循环执行程序,循环执行程序实验现象:实验现象:LED从右向左移动。从右向左移动。优点:逻辑关系清楚,能够达到目的。优点:逻辑关系清楚,能够达到目的。缺点:代码量大、效率低,书写繁琐。缺点:代码量大、效率低,书写繁琐。能否使程序变能否使程序变得简单一些得简单一些观察分析:观察分析:LED从右向左移动的过程中,每次只点亮一个从右向左移动的过程中,每次只点

25、亮一个LED,即数据,即数据0x01、0x02、0x04、0x08、0x10、0x20、0x40、0x80中的中的“1”是一个不断是一个不断地从右向左移动的过程。对照指令表发现,逻辑运算地从右向左移动的过程。对照指令表发现,逻辑运算“RLCA”指令可指令可以将保存在累加器以将保存在累加器A中的数据实现左移。中的数据实现左移。依次将依次将0x01、0x02、0x03、0x80送往单片机送往单片机P1口口 LED流水灯范例2程序优化 编程思路编程思路2:先用先用“MOVA,#0x01”指令将数据指令将数据0x01存放到累存放到累加器加器A中,然后再将中,然后再将A中中的数据传递给的数据传递给P1口

26、;口;接着使用接着使用“RLCA”移移位运算指令,将位运算指令,将A的内容的内容全部向左移动全部向左移动1位。位。MOVA,#0x01MOV P1,ACYALED显示显示初始值:初始值:000000001第第1次移位:次移位:000000010第第2次移位:次移位:000000100第第3次移位:次移位:000001000第第4次移位:次移位:000010000第第5次移位:次移位:000100000第第6次移位:次移位:001000000第第7次移位:次移位:010000000第第8次移位:次移位:100000000第第9次移位:次移位:0000000019种状态循环显示,既实现了种状态循环

27、显示,既实现了“流水流水”灯现象灯现象 LED流水灯范例2程序代码.AREAHOME(ABS,CODE).ORG0x0000Start:MOVA,#0x01;操作数据取初值操作数据取初值0x01,设定第一个,设定第一个LED亮亮Loop:MOVP1,A;初次上初次上电时LED的的显示状示状态:RLCA;左移一次后左移一次后LED的的显示状示状态:MOVR6,#0x0;延延时143msDelay:MOVR7,#0x0DJNZR7,.DJNZR6,DelaySJMPLoop编程思路编程思路2:程序优化,使用程序优化,使用“RLCA”指令来实现指令来实现“流水流水”灯现象。灯现象。A中的数据传递给中

28、的数据传递给P1口,点亮口,点亮LED将将0x01存放到存放到A中中流程图:流程图:A中的数据左移中的数据左移1位位延时延时143ms跳跳转转地址地址操作操作码码与操作数与操作数助助记记符符注注释释0000000001110100MOVA,#0x01;操作数据取初操作数据取初值值0x01,第一个,第一个LED亮亮00000001000000010000001011110101MOVP1,A;将将A的内容送到的内容送到P1口口00000011100100000000010000110011RLCA;A的内容左移一次的内容左移一次0000010101111110MOVR6,#0x0;R6取延取延时

29、时初初值值0,延,延时时143ms00000110000000000000011101111111MOVR7,#0x0;R7取延取延时时初初值值000001000000000000000100111011111DJNZR7,.;R7自减循自减循环环00001010111111100000101111011111DJNZR6,0x0007;R6自减循自减循环环00001100111110100000110110000000 SJMP0x0002;返回返回0x0002,重复操作,重复操作0000111011110011 关键知识点 附录附录A中的最后一题就是作者中的最后一题就是作者2010年面向全

30、国电类专业招聘开发工年面向全国电类专业招聘开发工程师的考题,其实就是从上面这个例子改过来,但很多学生做不出来。程师的考题,其实就是从上面这个例子改过来,但很多学生做不出来。而事实上尽管上面这个很简单,很多学生虽然看懂了,但由于没有结合而事实上尽管上面这个很简单,很多学生虽然看懂了,但由于没有结合作者介绍的设计思想动手实践,到头来放下书本也就全部忘记了。因此,作者介绍的设计思想动手实践,到头来放下书本也就全部忘记了。因此,看懂了不见得真正地掌握了。看懂了不见得真正地掌握了。如果如果将程序清单中将程序清单中“RLCA”指令改为指令改为“RLA”,请仔细观察流水,请仔细观察流水灯的效果有什么不同?另

31、,如果要求让流水灯从右到左变化,如何编程灯的效果有什么不同?另,如果要求让流水灯从右到左变化,如何编程? 目 录引引言言单个灯闪烁单个灯闪烁LED流水灯流水灯户外广告灯户外广告灯 查表法的提出 总结分析 在前面两小节中,在前面两小节中,“求反和右移求反和右移”2条指条指令的巧妙运用都是在令的巧妙运用都是在有逻辑规则的前提下有逻辑规则的前提下的操作。的操作。问题提出 解决办法 实际应用中许多变化并实际应用中许多变化并不存在规律。且随着显示花不存在规律。且随着显示花样的增多,如果继续沿用上样的增多,如果继续沿用上述编程方法,当用户需要修述编程方法,当用户需要修改显示形式时,编程的工作改显示形式时,

32、编程的工作量会越来越大。量会越来越大。引进新的处理方引进新的处理方法法“列表列表”新的编程思路:将显示花样做成一个列表,用查表指令找到显示数据区 查表法思路分析 Table:.DB0x81,0x42,0x24,0x18,0x24,0x42,0x81,0x00.DB0x18,0x24,0x42,0x81,0x42,0x24,0x18,0x00.DB0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01.DB0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01.DB0x00,0xFF,0x00,0xFF.DB0x55列表:列表:将一组数据按一定规律

33、集中书写在一起的方式。它的好处是可以将用户最关将一组数据按一定规律集中书写在一起的方式。它的好处是可以将用户最关心的最关键数据罗列在一起,看起来极其方便。如:心的最关键数据罗列在一起,看起来极其方便。如:查表指令:查表指令:MOVCA,A+DPTRC:表示该操作在代码存储区(:表示该操作在代码存储区(CODE)DPTR:80C51单片机唯一的单片机唯一的16位数据寄存器位数据寄存器数数据据根据A的值加上DPTR的值,使PC指向表内相应的地址取出所需要的数据。由此可见,要想改变显示的花样,那么只需修改显示数据区的列表就可以了。 户外广告灯程序范例.AREAHOME(ABS,CODE).ORG0x

34、0000Start:MOVDPTR,#Table;将将Table表的地址存入数据指针表的地址存入数据指针Loop:CLRA;清清0累加器累加器AMOVCA,A+DPTR;查表查表CJNEA,#0x55,Loop1;是否是结束码,则跳到是否是结束码,则跳到Loop1AJMPStart;返回起点,重复执行返回起点,重复执行Loop1:MOVP1,A;将将A输出到输出到P1MOVR6,#0x00;延时时间为延时时间为143msDelay:MOVR7,#0x00DJNZR7,.DJNZR6,DelayINCDPTR;数据指针加数据指针加1,取下一个码,取下一个码AJMPLoopTable:.DB0x8

35、1,0x42,0x24,0x18,0x24,0x42,0x81,0x00.DB0x18,0x24,0x42,0x81,0x42,0x24,0x18,0x00.DB0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01.DB0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01 ;右移两次右移两次.DB0x00,0xFF,0x00,0xFF;闪烁两次闪烁两次.DB0x55;显示数据区结束特征码显示数据区结束特征码DPTRTable表的地址表的地址A0查表:查表:A(A)+(DPTR)(A)=0x55?跳跳转转P1A延时延时DPTR(DPTR)+1跳跳转转YN流程图流程图 户外广告灯程序范例请自行将汇编语言与机器码程序进行对证,请自行将汇编语言与机器码程序进行对证,了解程序实现过程并思考为什么要这样。了解程序实现过程并思考为什么要这样。查表指令的应用查表指令的应用非常广泛,如果存储器空非常广泛,如果存储器空间允许,有时使用查表方式更直接速度更快,间允许,有时使用查表方式更直接速度更快,因此通过这个例子,大家必须重点因此通过这个例子,大家必须重点掌握查表指令的应用方法。掌握查表指令的应用方法。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号