单片机第三章优质文档.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

单片机第三章;教学目标

掌握汇编语言程序基本结构。

掌握程序设计的步骤和方法。

学会具体程序的应用。;程序设计的过程大致可以分为以下几个步骤:

(1)编制说明要解决问题的程序框图。

(2)确定数据结构、算法、工作单元、变量设定。

(3)根据所用计算机的指令系统,按照已编制的程序框图,用汇编语言编制出源程序。

(4)将编制出的程序在计算机上调试,直至实现预定的功能。;4.1三种基本程序结构:(1)顺序程序

顺序程序是指按顺序依次执行的程序,也称为简单程序或直线程序。顺序程序结构虽然比较简单,但也能完成一定的功能任务,是构成复杂程序的基础。;【例4-1/3-27】已知16位二进制负数存放在R1、R0中,试求其补码,并将结果存放在R3、R2中。

分析:负数的求补:“求反加1”,符号位不变。

利用CPL指令实现求反;

加1时,则应低8位先加1,高8位再加上低位的进位。注意:不能用INC指令。

;步骤:

(1)低八位送累加器(CPL操作八位数字只能在累加器中进行);

(2)低八位取反,加1;

(3)存低八位处理结果;

(4)高八位送累加器;

(5)高八位取反,加标志位并将符号位置1;

(6)保存高八位处理结果。;程序如下:

CONT: MOV A,R0 ;读低8位

CPLA ;取反

ADD A,#1 ;加1

MOV R2,A;存低8位

MOV A,R1;读高8位

CPL A ;取反

ADDCA,#80H ;加进位及符号位

MOV R3,A ;存高8位

RET ;返回;【例3-28/4-2】将两个半字节数合并成一个1字节数。

设内部RAM的40H、41H单元中分别存放着8位二进制数11011001B。

要求取出两个单元中的低半字节,合并成一个字节后,存放在42H单元中。

;要求:设内部RAM的40H、41H单元中分别存放着8位二进制数。要求取出两个单元中的低半字节,合并成一个字节后,存放在42H单元中。

步骤:(1)取40H里面的数字放入累加器;(2)高四位清零;(3)高低位互换;(4)保存;(5)取41H里面的数字放入累加器;(6)高四位清零;

(7)拼字;(8)保存。

;ANL A,#0FH ;取第二???半字节

步骤(1)40H数字送累加器;

分析:负数的求补:“求反加1”,符号位不变。

当主程序运行过程中需要用子程序时,只要执行调用子程序的指令,使程序转至子程序即可。

START: MOV R1,#40H

循环程序中的某些指令可以反复执行多次。

LOOP: MOV @R0,A ;清单元

这时可以用转移指令AJMP(或LJMP)组成一个转移表。

INC R1

循环程序中的某些指令可以反复执行多次。

DEL2: DJNZ R7,DEL2;

要求:设有40个外部RAM单元要清“0”,即为循环次数存放在R2寄存器中,其首地址存放在DPTR中,设为3000H。

MOV R3,A ;存和的低8位

查表程序是一种常用程序,它广泛应用于LED显示器控制、打印机打印及数据补偿、计算、转换等功能程序中,具有程序简单、执行速度快等优点。

只有简单程序和分支程序是不够的。

1三种基本程序结构:(1)顺序程序

CJNE A,#88H,DISPLAY;;【例3-29/4-3】拆字程序。

40H里面一个8位二进制数拆成两个半字节数字,分别送入41H42H中。

步骤(1)40H数字送累加器;(2)备份;

(3)高四位清零;(4)保存低四位;

(5)取数字;(6)低四位清零;(7)高地位互换;(8)保存高四位。; ORG 0000H

START: MOV R1,#40H

MOV A,@R1

MOV B,A ;暂存B中

ANL A,#0FH ;取第一个半字节

INC R1

MOV @R1,A ;存放第一个半字节

MOV A,B

SWAP A

ANL A,#0FH

文档评论(0)

192****8424 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档