网站大量收购独家精品文档,联系QQ:2885784924

单片机原理及应用 教学课件 作者 谢辉 主编 黄滔李焱 副主编 第3单元P89C5x单片机的指令系统及编程举例.ppt

单片机原理及应用 教学课件 作者 谢辉 主编 黄滔李焱 副主编 第3单元P89C5x单片机的指令系统及编程举例.ppt

  1. 1、本文档共130页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
尚辅网 尚辅网 尚辅网 9、无条件长转移指令、无条件绝对转移指令、无条件相对转移指令和条件转移指令的转移范围有什么不同? 10、常用的程序结构有哪几种,有何特点? 11、什么是伪指令,常用的伪指令有哪些?请说明它们的功能. 12、将内部RAM中从20H开始的4个单元中存放的四字节十六进制数和内部RAM中从30H单元开始的4个单元中存放的四字节十六进制数相加,结果存放到从30H开始的单元中。(分别使用顺序程序和循环程序编写) 尚辅网 13、将一个字节内的两个BCD码十进制数拆开并变成相应的ASCII码的程序段如下,给下面每条指令加上注释。   MOV R0,#32H   MOV A,@R0   ANL A,#0FH   ORL A,#30H   MOV 31H,A   MOV A,@R0   SWAP A   ANL A,#0FH   ORL A,#30H   MOV 32H,A 尚辅网 14、编写程序,把累加器中的二进制转换为3位BCD码,分别存放在20H,21H,22H中。 15、编写程序,计算10H~1FH单元的平均值(只保留整数),结果存放在33H单元中。 16、编写程序,把外部RAM中2000H~200FH中的16个数,传送到内部RAM30H~3FH中去。 尚辅网 程序如下: ORG 0000H MOV A,40H XRL A,41H     ;(X)与(Y)进行异或操作 JB ACC.7,NEXT1 ;累加器A的第7位为1,两数符号 不同,转移到NEXT1 MOV A,40H CJNE A,41H,L1 ;(X)≠(Y),转移到L1 CLR P0.0 ;(X)=(Y),点亮P0.0连接的LED SJMP FINISH L1: JC L2 ;(X)(Y),转移到L2 SJMP L3   ;否则,(X)(Y),转移到L3 NEXT1: MOV A,40H JNB ACC.7,L3 ;判断(X)的最高位D7,以确定其正负 L2: CLR P0.2 ;(X)(Y),点亮P0.2连接的LED SJMP FINISH L3: CLR P0.1 ;(X)(Y),点亮P0.1连接的LED FINISH: SJMP $ END 尚辅网 3、多分支程序设计 多分支程序是指经过某个条件判断之后,程序有多个流向(三个以上)。多分支程序也叫散转程序。 指令系统中有一条跳转指令JMP @A+DPTR, 用它可以很容易地实现散转功能。该指令把累加器的8位无符号数与 16 位数据指针的内容相加, 并把相加的结果装入程序计数器PC, 控制程序转向目标地址去执行。此指令的特点在于, 转移的目标地址不是在编程或汇编时预先确定的, 而是在程序运行过程中动态地确定的。目标地址是以数据指针 DPTR的内容为起始的 256 字节范围内的指定地址, 即由 DPTR的内容决定分支转移程序的首地址, 由累加器 A的内容来动态选择其中的某一个分支转移程序。 尚辅网 【例3-15】根据工作寄存器R0 内容的不同, 使程序转入相应的分支 (R0)=0 对应的分支程序标号为PR0;  (R0)=1 对应的分支程序标号为PR1;  (R0)=N 对应的分支程序标号为PRN。 程序如下:  LP0: MOV DPTR, #TAB ; 取表头地址(R2)*2→A MOV A, R0  ;转移的序号放入A中 ADD A, R0 ; R0内容乘以2 JNC LP1 ; 无进位转移 INC DPH ;有加进位,当(R2)*2≥256,DPTR高8位加1 LP1: JMP @A+DPTR ; 跳至散转表中相应位置 TAB: AJMP PR0 ;转到处理程序0 AJMP PR1 AJMP PRN ; 转到处理程序N 说明:在本程序中,若处理的程序数≥128,乘2之后就会有进位,所以进位要加到DPTR的高8位。以上程序散转表首地址TAB和处理程序的入口地址PR0,PR1,…PRN处在2KB的存储区内,使用的是AJMP,若n个散转程序的长度超过2KB,必须将AJMP改为LJMP就能实现64KB的转移范围,同时要

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档