《单片机讲义讲》PPT课件.ppt_第1页
《单片机讲义讲》PPT课件.ppt_第2页
《单片机讲义讲》PPT课件.ppt_第3页
《单片机讲义讲》PPT课件.ppt_第4页
《单片机讲义讲》PPT课件.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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,共有6条ANLA,RnANLA,directANLA,RiANLA,#dataANLdirect,AANLdirect,#data例:设(A)=0A3H,(R0)=0F0HANLA,R0结果(A)=0A0H;A的低四位清零,4,2逻辑或指令“或”指令是将源操作数与目的操作数按位相或,其结果送入目的操作数中。“或”指令可以使操作数的数据位置1,即使操作数某些位置1,其他位保持不变。这类指令的助记符为ORL,共有6条ORLA,RnORLA,directORLA,RiORLA,#dataORLdirect,AORLdirect,#data例:设(A)=52HORLA,#0FH结果(A)=5FH;逻辑或指令用做置位,5,3逻辑异或指令“异或”指令是将源操作数与目的操作数按位相异或,即不同为1,相同为0,其结果送入目的操作数。“异或”指令可以使操作数的数据位取反,即使操作数某些位取反,其他位保持不变。这类指令的助记符为XRL,共有6条XRLA,RnXRLA,directXRLA,RiXRLA,#dataXRLdirect,AXRLdirect,#data例1:设(A)=5FHXRLA,#0FH;(A)=50H例1:设(A)=5FH(R7)=5FHXRLA,R7;(A)=00H,6,4累加器清零与取反,是单字节指令CLRA;机器码E4H指令功能是将累加器A的内容清零。CPLA;机器码F4H指令功能是将累加器A的内容按位取反,即累加器A中各位1变0,0变1。例(A)=55HCPLA;(A)=0AAHCLRA;(A)=00H上面介绍了逻辑类运算指令,逻辑指令特点是按位进行,7,5移位指令AT89C51移位指令有四种,都是对累加器A进行操作。这组移位指令只能对操作数移一位,若要移多位,则要通过编写程序完成。,8,图3-4左循环移位指令示意图,RLA(1)RLA的指令功能是将累加器A的内容左循环移位。如图3-4所示,累加器A的最高位移入最低位,同时其他各位依次左移。,9,图3-5带进位左循环移位指令示意图,RLCA(2)RLCA的指令功能是将累加器A的内容和进位标志一起左循环移位。如图3-5所示,累加器A的最高位移入进位位CY,同时其他各位依次左移,CY位移入累加器A的最低位。,10,图3-6右循环移位指令示意图,RRA(3)RRA的指令功能是将累加器A的内容右循环移位。如图3-6所示,累加器A的最低位移入最高位,同时其他各位依次右移。,11,图3-7带进位右循环移位指令示意图,RRCA(4)RRCA的指令功能是将累加器A的内容和进位标志一起右循环移位。如图3-7所示,累加器A的最低位移入进位位CY,同时其他各位依次右移,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)“JMPA+DPTR”为间接转移指令,用它可实现分支转移。64K注意:转移范围,16,2有条件转移指令有条件转移指令是指根据指令中给出的条件进行判断,若条件成立,则程序转向指定的目的地址执行,否则顺序执行程序。有条件转移指令的目标地址都在相对于该指令的下一条指令为-128+127的区域内这类指令共有6条JZrelJNZrel;判零转移指令CJNEA,direct,relCJNEA,#data,relCJNERn,#data,relCJNERi,#data,rel;比较转移指令这类指令不影响任何操作数。,17,1)累加器判零指令JZ指令的功能是判断累加器A的值。若累加器A的值为0,则程序转移到目标地址;否则,顺序执行程序。JNZ指令的功能是判断累加器A的值。若累加器A的值不为0,则程序转移到目标地址;否则,顺序执行程序。例:设(A)=01HJZLABEL1DECAJZLABEL2,18,2)比较转移指令这组比较指令的功能是将目的操作数的内容和源操作数的内容进行比较。若不相等,则程序转移到目标地址;否则,则顺序执行程序。CJNEA,direct,relCJNEA,#data,relCJNERn,#data,relCJNERi,#data,rel;比较转移指令3)减1条件转移指令这组指令的功能是先将操作数的内容减1,然后判断结果。如果不为0,则转移到目标地址;否则,则顺序执行程序。DJNZRn,relDJNZdirect,rel这类指令的功能是,每执行一次本命令,将指定的Rn或direct的内容减1并判断其是否为0,若不为0,转向目的地址,若为0,则结束循环程序,19,3空操作指令NOP执行这条指令除PC内容加1外,不影响任何标志位和其他寄存器。NOP指令常用来产生一个机器周期的延迟。4调用与返回指令在程序设计中,有些如延时、显示等具有一定功能的程序在一个系统中常常被多次使用,为了避免重复编写相同功能的程序,使程序编写和调试更加容易,通常把这些具有一定功能的经常被反复使用的程序段作为子程序。,20,1)短调用指令ACALL指令的目标地址是11位。在调用子程序时,该指令与AJMP指令类似,要求调用子程序的入口地址与ACALL指令后面指令的第一个字节在同一个2K页面的程序存储器区域中。2)长调用指令LCALL指令的目标地址是16位。可在64K程序存储器区域范围内调用任何一个子程序。3)返回指令RET是子程序返回指令。它使CPU从子程序返回到调用指令的下一条指令。,21,上面介绍了控制转移指令:该节学习重点:1.条件转移指令,其寻址方式为相对寻址,寻址范围为(-128-+127);2.无条件转移指令范围,不同指令有不同的转移范围。3.无条件转移指令和调用指令LCALLACALL指令的区别。两者不同之处在于调用指令在转移前,要执行完该指令后PC内容自动压入堆栈,才做addr16(或addr12)送入PC的工作,其中addr16(或addr12)就是子程序的首地址或子程序的入口地址。执行子程序中,遇到RET就从堆栈中将原压入堆栈的地址弹回给PC,继续主程序的执行。,22,3.3.5位操作类指令AT89C51有一个完整的位处理机,用于对位地址进行操作,在3.2节中已经说明,只有内部RAM20H2FH单元和单元地址能被8整除的特殊功能寄存器能够进行位操作,所有的位操作都是直接寻址方式进行的。在位处理器中,位的传送和逻辑运算是通过进位标志CY来完成的,CY的作用相当于CPU中的累加器A。位操作指令共17条,如表3-5所示。,23,表3-5位操作指令,24,1位数据传送指令这组指令的功能是将源操作数位地址单元的值传送给目标操作数指向的位地址单元中,源操作数内容不变。例3.24MOVC,07H;MOVC,20H.7等效其机器码均为0A2H07H;将内部RAM20H单元的最高位的值送入CY中MOVP1.0,C;将CY的值送入P1口的D0位,25,2位修正指令(1)CLRC使进位标志位内容CY清零;(2)CLRbit使位地址单元内容清零;(3)CPLC使进位标志位内容取反;(4)CPLbit使位地址单元内容取反;(5)SETBC使进位标志位内容置1;(6)SETBbit使位地址单元内容置1。,26,3位逻辑运算指令(1)ANLC,bit指令功能是把源操作数位的内容与目标操作数CY的内容进行与运算,结果送入CY中;(2)ANLC,/bit指令功能是对源操作数位取反后,再与目标操作数进行与运算,结果存入CY中,但不改变源操作数本身的值;设(20H)=00H;CY=1例ANLC,/20H.7结果CY=1;(20H)=00H;,27,(3)ORLC,bit指令功能是把源操作数位的内容与目标操作数CY的内容进行或运算,结果送入CY中;(4)ORLC,/bit指令是对源操作数位取反后,再与目标操作数进行或运算,结果存入CY中,但不改变源操作数本身的值。,28,4位条件转移类指令位判断转移指令都是条件转移指令,转移的目标地址都是用相对偏移量表示的,转移范围相对于该指令的下一条指令-128+127范围内。使用这些指令编程时,只用一个标号或16位数来表示转移目标地址。,29,(1)JC指令功能:若进位标志CY为1,则转移到目标地址执行程序,否则顺序执行程序;(2)JNC指令功能:若进位标志CY为0,则转移到目标地址执行程序,否则顺序执行程序;(3)JB指令功能:若位地址单元内容为1,则转移到目标地址执行,否则顺序执行程序;,30,(4)JNB指令功能:若位地址单元内容为0,则转移到目标地址执行,否则顺序执行程序;(5)JBC指令功能:若进位标志CY为1,则转移到目标地址执行程序,且将CY清零,否则顺序执行程序。,31,例1:ORG0100HCLRC;(CY)=0JCL1;L1,L2为标号CPLC;(CY)=1JCL2;条件满足转L2例2:ORG0100HSETBC;(CY)=1简写C=1JNCL1;C=0转L1;C=1顺序执行CPLC;C=0JNCL2;C=0转L2,32,例3:判直接寻址位转移MOVP1,#0CAH;CAH=11001010BMOVA,#56H;56H=01010110BJBP1.2,L1;P1.2为0,不转JNBACC.3,L2;ACC.3为0,转L2例4:MOVA,#43H;43H=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论