单片机原理及应用 第8讲 位操作指令及练习.ppt

单片机原理及应用 第8讲 位操作指令及练习.ppt

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

控制转移指令 1、无条件转移指令: 长转移类指令:LJMP addr16 绝对转移类指令:AJMP addr11 短转移指令:SJMP rel 间接转移指令:JMP @A+DPTR 我们在编写汇编语言源程序时,可以直接写成: LJMP 标号 ;即转移到标号处 AJMP 标号 SJMP 标号 JMP 标号 3、常用子程序 子程序是能够完成某一专用任务的程序段,其代码为所有的主程序共享,因此,子程序在结构上应具有通用性和独立性。 编写子程序时应注意的问题 1、子程序的第一条指令地址为子程序的入口地址,该指令前必须有标号。 2、主程序通过调用指令来调用子程序,子程序末尾必须要有返回指令来返回主程序。 3、主程序调用子程序后,单片机可以自动保护断点地址,但对于R0-R7,SFR以及某些内存单元内容需要保存的话,就需要在子程序开头写保存它们的指令(进栈)、在末尾写恢复它们的指令(出栈)。 4、入口参数:将输入数据存放到子程序指定的位置 出口参数:子程序将处理结果存放到指定的位置。 延迟子程序 系统设计中的显示、键盘及数据采集中经常要用到延迟。 DELAY:MOV R3,#98 LOOP:DJNZ R3,LOOP DJNZ R2,DELAY RET 入口参数就是R2,根据单片机的时钟频率,只要在主程序中给R2不同的值,就能实现不同时间长度的延迟。 例:从P1口的P1.0管脚输出周期为10个机器周期的方波 CLR P1.0 LOOP: CPL P1.0 NOP NOP SJMP LOOP 练习: 1、已知某单片机监控程序始址为A080H,问用什么办法使单片机开机后自动执行监控程序 2、已知MA=0500H,问8051单片机执行如下指令 MOV SP ,#70H MA:LCALL 8192H 堆栈中数据如何变化,PC中内容是什么 3、已知外部RAM中以3000H为始址的数据块以零为结束标志,试编程将之传送到以30H为始址的内部RAM区 位操作指令 例1:内部RAM的M1和M2单元各有一个无符号8位二进制数,试编程比较它们的大小,并把大数送到MAX单元 MOV A, M1 CJNE A, M2,LOOP LOOP: JNC LOOP1 MOV A,M2 LOOP1:MOV MAX,A 例2:已知外部RAM以2000H开始有一个数据缓冲区,该缓冲区中数据以回车符(ASCII码为0DH)为结束标志,试编一程序把正数送入片内RAM以30H为起始地址的正数区,把负数送入片内RAM以50H为起始地址的负数区。(假设输入数据不超过32个) ORG 0100H MOV DPTR, #2000H MOV R0,#30H MOV R1,#50H NEXT: MOVX A, @DPTR CJNE A,#0DH,COMP SJMP DONE COMP:JB ACC.7 ,LOOP MOV @R0,A INC R0 INC DPTR SJMP NEXT LOOP:MOV @R1,A INC R1 INC DPTR SJMP NEXT DONE:SJMP DONE 伪指令 3 定义字节伪指令 6 数据地址赋值伪指令 8、 定义存储区伪指令 用于定义在标号开始的内存单元预留一定数量的内存单元,以备源程序执行过程中使用。预留单元的数量由X决定 格式为: 标号: DS X 例如: TAB : DS 10H DB 16H , 12 H * 2. 条件转移指令(8条) 条件转移指令是指在满足一定条件时进行相对转移,否则程序继续执行本指令的下一条指令。 (1)判A内容

文档评论(0)

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

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

1亿VIP精品文档

相关文档