80c51指令系统.ppt

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

第三章 80C51单片微机的指令系统 3.1 80C51指令系统概述 3.2 数据传送类指令 3.2.6 堆栈操作指令组 3.3 算术运算类指令 3.4 逻辑运算类指令 3.5 控制程序转移类指令 3.6 布尔(位)操作类指令 图3–1 立即寻址示意图 图3–2 直接寻址示意图 图3–3 寄存器寻址示意图 图3–4 寄存器间接寻址示意图 图3–5 相对寻址示意图 图3–6 变址寻址示意图 图3–7 数据传送指令示意图 图3–8 半字节交换指令示意图 图 3–9 循环移位指令示意图 图3–10 CJNE指令执行流程图 表 3–1 寻址方式与寻址空间 偏移量rel是用补码形式表示的带符号的8 位数,因此.程序转移的目标地址为指令前128 B或指令后 127 B。 这些指令执行后不影响任何操作数和标志位。 例:设(A)=01H 执行程序 JZ ABEL1 ;因为(A)≠ 0,程序继续执行 DEC A ;(A)一l=00H JZ LABEL2 ;因为(A)=00H,程序转向标号 ; LABEL2 指示的地址执行 LABEL1:------ LABEL2:------ ⒉ 数值比较转移指令 CJNE A,direct,rel CJNE A,#data,rel CJNE Rn,# data,rel CJNE @Ri,#data,rel 其指令格式为: CJNE(操作数1),(操作数2),rel 数值比较转移指令是三字节指令,是80C51单片微机指令系统中仅有的四条三个操作数的指令,在程序设计中非常有用。同时具有比较转移和数值大小比较的功能。 数值比较指令的第一字节为操作码(或操作码+操作数1) ,第二字节为操作数2,第三字节为偏移量rel。 1 0 1 1 1 r r r #data rel 这组指令的功能是对指定的两操作数进行比较,即(操作数1)-(操作数2) ,但比较结果均不改变二个操作数的值,仅影响标志位CY。指令流程图如图3–10所示 。 ???若不等,程序转移到(PC)十2再加第三字节带符号 的8位偏移量(rel)指向的目标地址; 若(操作数1) >(操作数2),清进位标志(CY)。 若(操作数1) <(操作数2),则置位进位标志(CY)。 值相等,程序继续执行。 程序转移的范围是从(PC)+3为起始的+127~一128的单元地址。 比如 CJNE Rn,#data,rel指令的编码为 例10:温度控制程序 某温度控制系统,A中存温度采样值Ta,(20H)=温度下限值T20,(30H)=温度上限值T30。若Ta>T30,程序转降温JW,若Ta<T20,程序转升温SW,若T30≥Ta≥T20程序转FH返回主程序。 CJNE A,30H LOOP AJMP FH ;等于T30,转FH LOOP:JNC JW ;大于T30,降温 CJNE A,20 H,LOOP1 AJMP FH ;等于T20,转FH LOOP1:JC SW ;小于T20,升温 FH:------ ;保温 JW:------ ? SW∶------ ? DJNZ Rn,rel DJNZ direct,rel ? 指令功能是:每执行一次本指令,先将指定的Rn或direct的内容减1,再判别其内容是否为0。若不为0,转向目标地址,继续执行循环程序;若为0,则结束循环程序段,程序往下执行。这类指令在计数循环结构程序编写时很有用。 当direct所指示的变量为I/O口时,该变量应读自该口的输出锁存器,而不是引脚。 例:从P1.7引脚输出5个方波 MOV R2,#10 ;5个方波,10个状态 LOP:CPL P1.7 ;P1.7状态变反 DJNZ R2 ,LO

文档评论(0)

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

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档