《单片机讲义讲》PPT课件.ppt

上传人:牧羊曲112 文档编号:5475516 上传时间:2023-07-11 格式:PPT 页数:33 大小:511KB
返回 下载 相关 举报
《单片机讲义讲》PPT课件.ppt_第1页
第1页 / 共33页
《单片机讲义讲》PPT课件.ppt_第2页
第2页 / 共33页
《单片机讲义讲》PPT课件.ppt_第3页
第3页 / 共33页
《单片机讲义讲》PPT课件.ppt_第4页
第4页 / 共33页
《单片机讲义讲》PPT课件.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《《单片机讲义讲》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《单片机讲义讲》PPT课件.ppt(33页珍藏版)》请在三一办公上搜索。

1、1,单片机原理与应用 第七讲 主要内容 第3章 AT89C51指令系统 1.3.3.3 逻辑操作与移位指令 2.3.3.4 控制转移类指令 3.3.3.5 位操作类指令,2,3.3.3 逻辑操作与移位指令 这类指令主要包括与、或、异或、求反、清零、移位等操作指令。逻辑操作与移位指令如表3-3(略)所示。共有 24 条,按参与运算的操作数的个数可分为:单操作数逻辑运算和双操作数逻辑运算两大类。下面分别予以介绍,3,1逻辑与指令“与”指令是将源操作数与目的操作数按位相与,其结果送入目的操作数中。“与”指令可以屏蔽操作数的某些位,即使操作数某些位清零,其他位保持不变。这类指令 的助记符为 ANL,共

2、有 6 条 ANL A,Rn ANL A,direct ANL A,Ri ANL A,#data ANL direct,A ANL direct,#data例:设(A)=0A3H,(R0)=0F0H ANL A,R0 结果(A)=0A0H;A 的低四位清零,4,2逻辑或指令“或”指令是将源操作数与目的操作数按位相或,其结果送入目的操作数中。“或”指令可以使操作数的数据位置1,即使操作数某些位置1,其他位保持不变。这类指令 的助记符为 ORL,共有 6 条 ORL A,Rn ORL A,direct ORL A,Ri ORL A,#data ORL direct,A ORL direct,#da

3、ta 例:设(A)=52H ORL A,#0FH 结果(A)=5FH;逻辑或指令用做置位,5,3逻辑异或指令“异或”指令是将源操作数与目的操作数按位相异或,即不同为1,相同为0,其结果送入目的操作数。“异或”指令可以使操作数的数据位取反,即使操作数某些位取反,其他位保持不变。这类指令 的助记符为 XRL,共有 6 条 XRL A,Rn XRL A,direct XRL A,Ri XRL A,#data XRL direct,A XRL direct,#data例1:设(A)=5FH XRL A,#0FH;(A)=50H 例1:设(A)=5FH(R7)=5FH XRL A,R7;(A)=00H,

4、6,4累加器清零与取反,是单字节指令 CLR A;机器码E4H 指令功能是将累加器A的内容清零。CPL A;机器码F4H 指令功能是将累加器A的内容按位取反,即累加器A中 各位1变0,0变1。例(A)=55H CPL A;(A)=0AAH CLR A;(A)=00H 上面介绍了逻辑类运算指令,逻辑指令特点是按位进行,7,5移位指令 AT89C51移位指令有四种,都是对累加器A进行操作。这组移位指令只能对操作数移一位,若要移多位,则要通过编写程序完成。,8,图3-4 左循环移位指令示意图,RL A(1)RL A的指令功能是将累加器A的内容左循环移位。如图3-4所示,累加器A的最高位移入最低位,同

5、时其他各位依次左移。,9,图3-5 带进位左循环移位指令示意图,RLC A(2)RLC A的指令功能是将累加器A的内容和进位标志一起左循环移位。如图3-5所示,累加器A的最高位移入进位位CY,同时其他各位依次左移,CY位移入累加器A的最低位。,10,图3-6 右循环移位指令示意图,RR A(3)RR A的指令功能是将累加器A的内容右循环移位。如图3-6所示,累加器A的最低位移入最高位,同时其他各位依次右移。,11,图3-7 带进位右循环移位指令示意图,RRC A(4)RRC A的指令功能是将累加器A的内容和进位标志一起右循环移位。如图3-7所示,累加器A的最低位移入进位位CY,同时其他各位依次

6、右移,CY位移入累加器A的最高位。,12,3.3.4 控制转移类指令 控制转移类指令主要以改变程序计数器PC内容为目标,用来控制程序执行的流向。它主要分为以下几类,如表3-4所示。,13,表3-4 控制转移类指令,14,15,1无条件转移指令 无条件转移指令是指当程序执行到这条指令时,程序将无条件地转移到指令指向的地址单元取指运行。(1)AJMP为短转移指令。2k(2)LJMP为长转移指令。64K(3)SJMP为相对转移指令。(-128+127)(4)“JMP A+DPTR”为间接转移指令,用它可实现分支转移。64K 注意:转移范围,16,2有条件转移指令 有条件转移指令是指根据指令中给出的条

7、件进行判断,若条件成立,则程序转向指定的目的地址执行,否则顺序执行程序。有条件转移指令的目标地址都在相对于该指令的下一条指令为-128+127的区域内 这类指令共有 6 条 JZ rel JNZ rel;判零转移指令 CJNE A,direct,rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE Ri,#data,rel;比较转移指令 这类指令不影响任何操作数。,17,1)累加器判零指令 JZ指令的功能是判断累加器A的值。若累加器A的值为0,则程序转移到目标地址;否则,顺序执行程序。JNZ指令的功能是判断累加器A的值。若累加器A的值不为0,则程序转移到目标地

8、址;否则,顺序执行程序。例:设(A)=01H JZ LABEL1 DEC A JZ LABEL2,18,2)比较转移指令 这组比较指令的功能是将目的操作数的内容和源操作数的内容进行比较。若不相等,则程序转移到目标地址;否则,则顺序执行程序。CJNE A,direct,rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE Ri,#data,rel;比较转移指令3)减1条件转移指令 这组指令的功能是先将操作数的内容减1,然后判断结果。如果不为0,则转移到目标地址;否则,则顺序执行程序。DJNZ Rn,rel DJNZ direct,rel 这类指令的功能是,每执行

9、一次本命令,将指定的 Rn 或 direct 的内容减1 并判断其是否为 0,若不为 0,转向目的地址,若为 0,则结束循环程序,19,3空操作指令 NOP 执行这条指令除PC内容加1外,不影响任何标志位和其他寄存器。NOP指令常用来产生一个机器周期的延迟。4调用与返回指令 在程序设计中,有些如延时、显示等具有一定功能的程序在一个系统中常常被多次使用,为了避免重复编写相同功能的程序,使程序编写和调试更加容易,通常把这些具有一定功能的经常被反复使用的程序段作为子程序。,20,1)短调用指令 ACALL指令的目标地址是11位。在调用子程序时,该指令与AJMP指令类似,要求调用子程序的入口地址与AC

10、ALL指令后面指令的第一个字节在同一个2 K页面的程序存储器区域中。2)长调用指令 LCALL指令的目标地址是 16位。可在64 K程序存储器区域范围内调用任何一个子程序。3)返回指令 RET是子程序返回指令。它使CPU从子程序返回到调用指令的下一条指令。,21,上面介绍了控制转移指令:该节学习重点:1.条件转移指令,其寻址方式为 相对寻址,寻址范围为(-128-+127);2.无条件转移指令范围,不同指令有不同的转移范围。3.无条件转移指令和 调用指令 LCALL ACALL 指令的区别。两者不同之处在于调用指令 在转移前,要执行完该指令后 PC 内容自动压入堆栈,才做 addr 16(或a

11、ddr 12)送入PC 的工作,其中addr 16(或addr 12)就是子程序的首地址或子程序的入口地 址。执行子程序中,遇到 RET 就从堆栈中将原压入堆栈的地址弹回给 PC,继续主程序的执行。,22,3.3.5 位操作类指令 AT89C51有一个完整的位处理机,用于对位地址进行操作,在3.2节中已经说明,只有内部RAM 20H2FH单元和单元地址能被8整除的特殊功能寄存器能够进行位操作,所有的位操作都是直接寻址方式进行的。在位处理器中,位的传送和逻辑运算是通过进位标志CY来完成的,CY的作用相当于CPU中的累加器A。位操作指令共17条,如表3-5所示。,23,表3-5 位操作指令,24,

12、1位数据传送指令 这组指令的功能是将源操作数位地址单元的值传送给目标操作数指向的位地址单元中,源操作数内容不变。例3.24 MOV C,07H;MOV C,20H.7等效 其机器码均为 0A2H 07H;将内部RAM 20H单元的最高位的值送入CY中 MOV P1.0,C;将CY的值送入P1口的D0位,25,2位修正指令(1)CLR C 使进位标志位内容CY清零;(2)CLR bit 使位地址单元内容清零;(3)CPL C 使进位标志位内容取反;(4)CPL bit 使位地址单元内容取反;(5)SETB C 使进位标志位内容置1;(6)SETB bit 使位地址单元内容置1。,26,3位逻辑运

13、算指令(1)ANL C,bit指令功能是把源操作数位的内容与目标操作数CY的内容进行与运算,结果送入CY中;(2)ANL C,/bit指令功能是对源操作数位取反后,再与目标操作数进行与运算,结果存入CY中,但不改变源操作数本身的值;设(20H)=00H;CY=1 例 ANL C,/20H.7 结果 CY=1;(20H)=00H;,27,(3)ORL C,bit 指令功能是把源操作数位的内容与目标操作数CY的内容进行或运算,结果送入CY中;(4)ORL C,/bit 指令是对源操作数位取反后,再与目标操作数进行或运算,结果存入CY中,但不改变源操作数本身的值。,28,4位条件转移类指令 位判断转

14、移指令都是条件转移指令,转移的目标地址都是用相对偏移量表示的,转移范围相对于该指令的下一条指令-128+127范围内。使用这些指令编程时,只用一个标号或16位数来表示转移目标地址。,29,(1)JC 指令功能:若进位标志CY为1,则转移到目标地址执行程序,否则顺序执行程序;(2)JNC 指令功能:若进位标志CY为0,则转移到目标地址执行程序,否则顺序执行程序;(3)JB 指令功能:若位地址单元内容为1,则转移到目标地址执行,否则顺序执行程序;,30,(4)JNB 指令功能:若位地址单元内容为0,则转移到目标地址执行,否则顺序执行程序;(5)JBC 指令功能:若进位标志CY为1,则转移到目标地址

15、执行程序,且将CY清零,否则顺序执行程序。,31,例1:ORG 0100H CLR C;(CY)=0 JC L1;L1,L2 为标号 CPL C;(CY)=1 JC L2;条件满足转 L2例2:ORG 0100H SETB C;(CY)=1 简写 C=1 JNC L1;C=0转 L1;C=1 顺序执行 CPL C;C=0 JNC L2;C=0转 L2,32,例3:判直接寻址位转移 MOV P1,#0CAH;CAH=1100 1010 B MOV A,#56H;56H=0101 0110 B JB P1.2,L1;P1.2为0,不转 JNB ACC.3,L2;ACC.3为0,转 L2例4:MOV A,#43H;43H=0100 0011B JBC ACC.2,L1;ACC.2=0,不转 JBC ACC.6,L2;ACC.6=1,转L2且将ACC.6清0(A)=03H,33,单片机原理与应用 第七讲 小结 第3章 AT89C51指令系统 1.3.3.3 逻辑操作与移位指令 2.3.3.4 控制转移类指令 3.3.3.5 位操作类指令 学习要点:1.不同逻辑指令操作的指令格式 2.控制转移类指令的方式与范围 3.位操作指令的指令方式与转移条件 RAM 内直接可寻址的位地址、特殊功能寄存器的位 地址。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号