欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    单片机指令系统.ppt

    • 资源ID:2222332       资源大小:308KB        全文页数:50页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机指令系统.ppt

    第3章 单片机指令系统,3.1 MCS51指令简介3.2 指令系统,LOOP:MOV A,R0;将R0的内容送A 标号 操作码 第一操作数 第二操作数 注释(目的操作数)(源操作数)注:白色的内容不是必须的,3.1 MCS51指令简介,一、MCS51指令格式,二、MCS51系列单片机指令系统分类 按寻址方式分为以下七种:按功能分为以下四种:1、立即立即寻址 1、数据传送指令位操2、直接寻址 2、算术运算指令3、寄存器寻址 3、逻辑运算指令4、寄存器间接寻址指令 4、控制转移类指令5、相对寻址 5、位操作指令6、变址寻址7、位寻址,三、寻址方式,寻址方式:寻找(或确定)操作数所在单元地址的方式。寻址方式越多,计算机寻址能力越强,但指令系统也越复杂。说明:以下讨论的寻址方式都是针对源操作数的。但实际上目的操作数也有寻址问题。,1、寄存器寻址 MOV A,Rn 操作数在寄存器中,如R0R7,A、B、Cy(位)、DPTR 2、直接寻址 MOV A,40H 操作数直接以单元地址形式给出(也可以寄存器名称形式给出,但A B DPTR 除外)如:MOV A,P0;MOV R0,TH0,3、寄存器间接寻址 MOV A,R1 操作数是通过寄存器间接得到的。4、立即寻址 MOV A,#40H 操作数在指令中直接给出。5、基址寄存器加变址寄存器寻址 以DPTR或PC为基址寄存器,以A为变址寄存器,以两者相加形成的16位地址为操作数的地址。MOVC A,A+DPTR MOVC A,A+PC,四、指令中常用符号说明,Rn当前寄存器区的8个工作寄存器R0R7(n07);Ri当前寄存器区可作地址寄存器的2个工作寄存器R0和R1(i0,1);direct8位内部数据存储器单元的地址及特殊功能寄存器的地址;#data表示8位常数(立即数);#datal6表示16位常数;add 16表示16位地址;addrll表示11位地址;rel8位带符号的地址偏移量;bit表示位地址;间接寻址寄存器或基址寄存器的前缀;()表示括号中单元的内容()表示间接寻址的内容;,五、MCS51指令简介 1.以累加器A为目的操作数的指令,MOV A,data;A data MOV A,Rn;n=07,A(Rn)MOV A,Ri;i=0,1,A(Ri)MOV A,direct;A(Rn)direct为内部RAM或SFR地址 注:MOV A,Ri;以Ri的内容为地址,把该地址中 的内容送到A中去。A(Ri)MOV A,R0;将R0的内容送到A去。A(R0)MOV A,#20H;(A)=20H A的内容为20H MOV A,20H;(A)=(20H)A的内容为20H中的内容 注意以上两组指令的不同点,例:MOV R0,#30HMOV 30H,#60HMOV A,R0(A)=?,2.以Rn为目的操作数的指令,MOV Rn,A;Rn(A),n=07MOV Rn,direct;Rn(direct)MOV Rn,data;Rn data,3.以直接地址为目的操作数的指令,MOV direct,A;direct(A)MOV direct,Rn;direct(Rn),n=07MOV direct,Ri;direct(Ri),i=0,1MOV direct,direct;direct(direct)MOV direct,#data;direct data,4.以寄存器间接地址为目的操作数指令,MOV Ri,A;(Ri)(A),i=0,1MOV Ri,direct;(Ri)(direct)MOV Ri,data;(Ri)data,应用举例1,MOV P1,#0FEH;11111110B可以使P1.0上的发光二极管点亮MOV P1,#0F0H;11110000B可以使P1口上的上面4个发光二极管点亮,8段数码管显示,MOV P1,#00H;显示 8.MOV P1,#0F8H;显示 7MOV P1,#88H;显示 A,应用举例2,一个引脚的高低电平,可以通过“光电耦合器”控制继电器,从而以“弱电”控制“强电”。,3.2 指令系统,一、数据传送指令位操作 1.16位数据传输指令,MOV DPTR,#data16;DPTR data16 DPTR-数据指针,为SFR中(DPH)、(DPL)MOV DPTR,#2010H相当于:MOV DPH,#20H MOV DPL,#10H,2、堆栈操作指令,进栈指令 PUSH direct如:(SP)=60H,(A)=30H,(B)=70H 时,执行 PUSH Acc;(SP)+1=61HSP,(A)61H PUSH B;(SP)+1=62HSP,(B)62H结果:(61H)=30H,(62H)=70H,(SP)=62H退栈指令 POP direct如:(SP)=62H,(62H)=70H,(61H)=30H 时,执行 POP DPH;(SP)DPH,(SP)1=61HSP POP DPHL;(SP)DPL,(SP)1=60HSP结果:(DPTR)=7030H,(SP)=60H堆栈的存储原则:先进后出,3.累加器A与外部数据传输指令,MOVX A,DPTR;A(DPTR)地址范围64KMOVX A,Ri;A(Ri)地址范围0255MOVX DPTR,A;(DPTR)(A)MOVX Ri,A;(Ri)(A),4.查表指令,MOVC A,A+DPTR;A(A)+(DPTR)例:(DPTR)=0300H,(A)02H ROM中(0302H)=55H执行:MOVC A,A+DPTR结果:(A)=55H,MOVC A,A+PC A(A)+(pc)PC程序指针,指向下一条指令的地址例:根据A中的内容(09)查平方表,MOVC A,A+PC 例子:,地址 机器码 源程序 ORG 0000H0000 7403 MOV A,#03H0002 83 MOVC A,A+PC0003 00 DB 00H0004 01 DB 01H0005 04 DB 04H0006 09 DB 09H0007 10 DB 10H0008 19 DB 19H0009 24 DB 24H 000A 31 DB 31H000B 40 DB 40H000C 51 DB 51H(顺便讲解如何查机器码)END,5.字节交换指令,XCH A,Rn;(A)(Ri)XCH A,direct;(A)(direct)XCH A,Ri;(A)(Ri)例:(A)=80H,(R7)=97H执行:XCH A,R7结果:(A)=97H,(R7)=80H例:将片内RAM 60H单元与61H单元的数据交换。XCH 60H,61H 对吗?,6.半字节交换指令,XCHD A,Ri;(A)0-3(Ri)0-3例:(R0)=60H,(60H)=3EH,(A)=59H执行:XCHD A,R0结果:(A)5E H(60H)39 H,二、算术操作类指令,1.加法指令(Addtion)2.带进位加法指令3.加1指令(Increase)4.十进制调整指令5.带借位减法指令(Subtraction)6.减1指令(Decrease)7.乘法指令(Multiplication)8.除法指令(Division),PSW寄存器,Cy:进位标志位AC:辅助进位标志位F0:供用户使用的标志位OV:溢出标志位P:奇偶标志位 A中数据的奇偶性。当1的个数为奇数,P=1,否则P=0。RS1 RS0 0 0 区0(地址:00H07H)0 1 区1(地址:08H0FH)1 0 区2(地址:10H17H)1 1 区3(地址:18H1FH),2.带进位加法指令,ADDC A,Rn;A(A)+(Rn)+(Cy)ADDC A,Ri;A(A)+(Ri)+(Cy)ADDC A,direct;A(A)+(direct)+(Cy)ADDC A,data;A(A)+#data+(Cy)对标志位的影响与ADD相同,3.加1指令,INC A;A(A)+1INC Ri;Ri(A)+1INC direct;direct(direct)+1INC Ri;(Ri)(Ri)+1INC DPTR;DPTR(DPTR)+1对标志位不产生影响若:(A)0FFH,(Cy)=0执行:INC A结果:(A)00H,(Cy)=0,4.十进制调整指令,DA A 用途:紧跟在BCD码加法指令(不包括减法)之后,进行十进制调整。(96H 为压缩BCD码,表示十位为9,个位为6)如两BCD码加:MOV A,#35H ADD A,#46H(A)=7BH,并不是 81H 但:DA A 后,(A)81H,5.带借位减法指令(Subtraction),(1)SUBB A,Rn;A(A)-(Rn)-(Cy)(2)SUBB A,Ri;A(A)-(Ri)-(Cy)(3)SUBB A,direct;A(A)-(direct)-(Cy)(4)SUBB A,data;A(A)-#data-(Cy)(5)对标志位的影响(6)Cy-进位位(7)AC-半进位位(8)OV-溢出位,6.减1指令(Decrease),减1类指令共4条,其功能是将操作数指定单元内容减1。DEC A;A-1A,A中内容减1DEC Rn;Rn-1Rn,Rn中内容减1DEC direct;(direct)-1(direct),直接地址中内容减1DEC Ri;(Ri)-1(Ri),Ri间址中的内容减1,7.乘法指令(Multiplication),MUL AB;(A)(B)低8位A 高8位B A、B中都是无符号整数 如果积大于255,OV1,否则OV0;进位标志总是清零 Cy0。,8.除法指令(Division),DIV AB;(A)(B)商 A 余数B A、B中都是无符号整数 如果除数B为“0”,OV1,否则OV0;进位标志总是清零 Cy0。,三、逻辑运算指令1.简单逻辑操作指令,CLR A;A“0”CPL A;A A SWAP A;A03 A47例:(A)=3AH,CPL A,(A)=0C5H 0011 1010B 1100 0101B(A)=3AH,SWAP A,(A)=0A3H,2.循环指令,左循环指令(Rotate Accumulator Left)RL A 例(A)6CH=0110 1100B RL A(A)=1101 1000B=0D8H,带进位左循环指令(Rotate Accumulator Left through Carry flag),RLC A 例(A)6CH=0110 1100B,(C)=1 RLC A(A)=1101 1001B=0D9H,右循环指令(Rotate Accumulator Right),RR A例(A)6CH=0110 1100B RR A(A)=0011 0110B=36H,带进位右循环指令(Rotate A Right with C),RRC A例(A)6CH=0110 1100B,(C)=1 RRC A(A)=1011 0110B=0B6H,3.逻辑与指令,ANL A,Rn ANL A,direct ANL A,dataANL A,RiANL direct,AANL direct,data“与”,“有0即0,全1为1”0000 0111)1111 1101 0000 0101 B 05H,4.逻辑或指令,ORL A,Rn ORL A,direct ORL A,dataORL A,RiORL direct,AORL direct,data“或”,“有1即1,全0为0”0000 0110)0110 1101 0110 1111 B 6FH,5.逻辑异或指令,XRL A,Rn XRL A,direct XRL A,dataXRL A,RiXRL direct,AXRL direct,data“异或”,“相异为1,相同为0”0000 0110)0110 1101 0110 1011 B 6BH,例(A)=01B,表示随机状态,为1或0,执行下述一组指令执行后A的值如何?XRL A,#0C0H;将累加器A的内容D7、D6取反 0 1 ORL A,#03H;将累加器A的内容D1、D0置1 1 1 0 1 0 0 0 0 ANL A,#0E7H;将累加器A的内容D4、D3清0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 解:执行上述指令后,(A)=100011B。,习题1:如何将累加器A中的数据高4位清0,低位不变?习题2:如何将寄存器R2中的数据奇数位取反,偶数位不变?,四、控制转移类指令1.跳转指令,短跳指令 AJMP addr11 PCaddr11,跳转范围2k长跳指令 LJMP addr16 PCaddr16,跳转范围64k间接跳转指令 JMP A+DPTR PC(A)(DPTR),相对转移指令 SJMP rel PC(PC)+2 PC(PC)+rel,rel机器码的相对偏移量,为8位补码 转移范围:前128后127字节 rel(目的地址转移指令地址转移指令字节数)补(目的地址PC当前值)补编程时,可用标号代替转移目的地址,rel 交给编译程序计算。SJMP NEXT(或AJMP NEXT,SJMP NEXT)NEXT:原地踏步指令的指令:HERE:SJMP HERE常写成:SJMP$,地址 机器码 源程序 注释 ORG 0000H;整个程序起始地址0000 20 00 30 LJMP MAIN;跳向主程序 ORG 0030H;主程序起始地址0030 C3 MAIN:CLR C;MAIN为程序标号0031 E6 LOOP:MOV A,R00032 37 ADDC A,R10033 08 INC R00034 DA FB DJNZ R1,LOOP;相对转移0036 80 03 SJMP NEXT0038 78 03 MOV R0,#03H003A 18 NEXT:DEC R0003B 80FE SJMP$;HERE:SJMP HERE END;结束标记,程序中标号与地址之间的关系,2.条件转移指令,JZ rel;(A)0,转移JNZ rel;(A)0,转移,3.比较不相等转移指令,CJNE A,#data,rel;(A)=#data,继续 C0(A)#data,转 C0(A)#data,转 C1 特点:只有时,C1CJNE A,direct,relCJNE Rn,#data,relCJNE Ri,#data,rel,4.减 1 不为 0 转移指令,DJNZ Rn,rel;Rn(Rn)1(Rn)0,转移(Rn)0,继续DJNZ direct,rel例:延时子程序 delay:MOV R7,#03H delay0:MOV R6,#19H delay1:DJNZ R6,delay1 DJNZ R7,delay0 RET,5.调用子程序指令,短调用指令 ACALL addr11长调用指令 LCALL addr16 编程时,可用标号代替转移目的地址,addr11,addr16交给编译程序计算。,7.中断返回指令,NOP,6.子程序返回指令,8.空操作指令,RETI,RET,RET指令从堆栈弹出保存的PC地址,实现子程序返回。,五、位操作指令1.数据位传送指令,MOV C,bit;bit 可直接寻址位 C(bit)MOV bit,C;C 进位位(bit)C 例:将位地址20H的一位数传送到位地址30H中:MOV C,20H MOV 30H,C位变量修改指令 CLR C;将C0 CLR bit CPL C;将C求反再存入C CPL bit;将bit求反再存入bit SETB C;将C1 SETB bit;(bit)1,2.位变量逻辑指令,ANL C,bitANL C,bitORL C,bitORL C,bit,3.条件转移类指令,JC rel;如 C=1,转移JNC rel;如 C=0,转移JB bit,rel;如 bit=1,转移JNB bit,rel;如 bit=0,转移JBC bit,rel;如 bit=1,转移并 bit0,

    注意事项

    本文(单片机指令系统.ppt)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开