单片机第4章[全国重点大学课件].ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机第4章[全国重点大学课件]

第四章 汇编语言程序设计;§4.1 概述;4.1.2 编制程序的步骤;4. 分配内存,确定程序与数据区存放地址; 5. 编写源程序; 6. 调试、修改,最终确定程序。;4.1.3 方法技巧;4.1.4 汇编语言的规范;3.伪指令:控制汇编用的特殊指令,这些指令不属 于指令系统,不产生机器代码。;常用的伪指令;常用的伪指令;常用的伪指令;常用的伪指令;常用的伪指令;§4.2 汇编语言程序编辑和汇编;§4.3 程序设计基础与举例;org 1000h start:mov dptr,#table mov a,20h movc a,@a+dptr mov 21h,a sjmp $ org 2000h table:db 0,1,4,9,16,25 end;例2:将20H单元的压缩(Packed )BCD码拆成两个ACSII码存入21H、22H单元。;方法1;周期数 源程序;0? (21H) ; ORG 2000H MOV R0,#21H MOV @R0,#0 MOV A,20H XCHD A,@R0 ORL 21H,#30H SWAP A ORL A,#30H MOV 22H,A END;4.3.2 分支程序;4.3.2 分支程序;例1:设变量x以补码形式存放在片内RAM 30H单元中,变量y与x的关系是:;A=?; ORG 1000H START:MOV A,30H JZ NEXT ;x=0,转移 ANL A,#80H ;保留符号位 JZ ED ;x0,转移 MOV A,#05H ;x0,不转移 ADD A,30H MOV 30H,A SJMP ED NEXT:MOV 30H,#20H ED:SJMP $; 4.3.3 循环程序;开始;循环控制的一般方法: 循环次数已知 利用循环次数控制 循环次数未知 利用关键字控制 利用“逻辑尺” 根据“逻辑尺”的内容,进行控制。;例1 : 50ms延时子程序。设晶振频率为12MHz,则机器周期为1us。;例2 将内部RAM中起始地址为data的数据串送到外部RAM中起始地址为buffer的存储区域中,直到发现‘$’字符,传送停止----循环次数事先不知道先判断,后执行。;?? 在实际应用中的循环程序中,有时会遇到在循环体内具有多分支结构的循环程序,每执行循环一次,程序应判断是按照规定好的次序去执行其他分支或重复执行某个分支。 ?? 对于这种结构的循环程序,我们可采用逻辑尺控制的方法实现。逻辑尺控制法首先应设计一把逻辑“尺”,即将字节、字或双字甚至将根据需要所设置的多字节中的各位表示不同操作,如果需在循环中执行更多分支,也可采用多位组合。 最常用而用简单的逻辑尺是用一位0或1???示两种不同的分支操作。如下例: 例题:对一个部件的加工操作,根据设计要求,需通过两个不同的程序段来完成,并且执行程序段PRO1和PRO2的顺序和次数也有规定。 ?? 例如规定:PRO1(2次)→PRO2(3次)→PRO1(5次)→PRO2(4次) 请编程实现;分析:根据题目的特点和要求,我们采用逻辑尺控制法来编程。首先应设计定义一把逻辑尺。题目规定执行PRO1和PRO2共14次,因此采用一位的两种状态0或1来分别标志转向分支PRO1或PRO2. N???? EQU?? 14???? ;定义循环的总次数 RULE? EQU?? 183CH? ;定义逻辑尺 CODE?? SEGMENT ????? ASSUME CS:CODE START: MOV AX,RULE ??????? MOV CL,N LOP:?? SAL AX,1 ??????? JC? PRO2 PRO1:??? ????????? . PRO2: ????????? . NEXT:?? DEC CL ??????? JNZ LOP ??????? MOV AH,4CH ??????? INT 21H CODE?? ENDS ?????? END START; 4.3.4 子程序问题;; 4.3.5 码型转换程序的设计;例1 将一位十六进制数转换成ASCII码,设十六进制数存放在R0中,转换后的ASCII码放在R2中。

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档