【大学课件】单片机原理与接口技术 80C51 单片机指令系统.ppt

上传人:sccc 文档编号:6097450 上传时间:2023-09-23 格式:PPT 页数:67 大小:2.18MB
返回 下载 相关 举报
【大学课件】单片机原理与接口技术 80C51 单片机指令系统.ppt_第1页
第1页 / 共67页
【大学课件】单片机原理与接口技术 80C51 单片机指令系统.ppt_第2页
第2页 / 共67页
【大学课件】单片机原理与接口技术 80C51 单片机指令系统.ppt_第3页
第3页 / 共67页
【大学课件】单片机原理与接口技术 80C51 单片机指令系统.ppt_第4页
第4页 / 共67页
【大学课件】单片机原理与接口技术 80C51 单片机指令系统.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《【大学课件】单片机原理与接口技术 80C51 单片机指令系统.ppt》由会员分享,可在线阅读,更多相关《【大学课件】单片机原理与接口技术 80C51 单片机指令系统.ppt(67页珍藏版)》请在三一办公上搜索。

1、第3章 80C51 单片机指令系统,3.1 单片机指令系统概述3.2 80C51 单片机指令寻址方式3.3 80C51 单片机指令分类介绍,http:/,3.1 单片机指令系统概述,指令:规定计算机基本操作的语句或命令。指 令通常有两个组成部分:操作码和操作数。操作码:用于规定指令进行什么操作。操作数:指令操作的对象,可以是具体的数据、数据 的地址或符号。例如:MOV A,#20H,指令系统:一个单片机所能执行的指令集合。指令系统由单片机生产厂商定义的,由CPU 的内部结构决定的。不同的单片机,其指令 系统不尽相同。,http:/,80c51指令中使用的符号的意义作简要说明:,Rn(n=07)

2、:表示当前工作寄存器R0R7中的任一个寄存 器。Ri:可用作间接寻址的寄存器,只能是R0,R1两个寄存器,i=0,1。direct:8位直接地址,在指令中表示直接寻址方式,寻址范围 256个单元。#data:8位立即数。#data16:16位立即数。addr16:表示16位目的地址,主要用于LCALL和LJMP指令 中。addr11:表示11位目的地址,主要用于ACALL和AJMP指令 中。,3.1 单片机指令系统概述,http:/,rel:相对转移指令中的偏移量,为8位带符号补码。DPTR:数据指针。bit:内部RAM(包括专用寄存器)中的直接寻址位。A:累加器 ACC:直接寻址方式的累加器

3、。B:寄存器B C:进位标志位。也称为累加位。/:加在位地址的前面,表示对该位状态取反。:间接寻址寄存器的前缀标志。(X):某寄存器或某单元中的内容。(X):由“X”间接寻址单元中的内容。:箭头左边的内容被箭头右边的内容所取代。,3.1单片机指令系统概述,http:/,3.2 80C51 单片机指令寻址方式,寻址方式,通常是指某一个CPU指令系统中规定的寻找操作数所在地址的方式,或者说通过什么样的方式找到操作数。寻址方式的方便与快捷是衡量CPU性能的一个重要方面,MCS51单片机有七种寻址方式。,http:/,1.寄存器寻址方式定义:操作数在寄存器中,只要指定了寄存器就能得到操作数。例:MOV

4、 A,R0特点:由指令指出某一个寄存器的内容作为操作数。存 放操作数的寄存器在指令代码中不占据单独的一 个字节,而是嵌入(隐含)到操作码字节中。寻址范围:四组通用寄存器Rn(R0R7)、部分专用寄存器(A,B,DPTR,Cy)。,MOV A,Rn;A(Rn)其中n为07之一,Rn是工作寄存 器。MOV Rn,A;Rn(A)MOV B,A;B(A),3.2 80C51 单片机指令寻址方式,http:/,2.直接寻址方式定义:指令中操作数直接以存储单元地址的形式给出。例如:MOV A,3AH特点:指令中含有操作数的地址。该地址指出了参与操 作的数据所在的字节单元地址或位地址。计算机 执行它们时便可

5、根据直接地址找到所需要的操作数。只能使用8位二进制数表示的地址。寻址范围:片内RAM区(低128字节)、专用寄存器。,3.2 80C51 单片机指令寻址方式,http:/,常见形式:MOV A,52H;把片内RAM字节地址52H单元的内容送累加器A中。MOV 52H,A;把A的内容传送给片内RAM的52H单元中。MOV 50H,60H;把片内RAM字节地址60H单元的内容送到50H单元中。MOV IE,#40H;把立即数40H送到中断允许寄存器 IE。IE为专用功能寄存器,其字节地址为0A8H。该指令等价于MOV 0A8H,#40H。INC 60H;将地址60H单元中的内容自加1。,3.2 8

6、0C51 单片机指令寻址方式,http:/,直接寻址方式示意图,3.2 80C51 单片机指令寻址方式,http:/,3.寄存器间接寻址方式定义:指令给出的寄存器中存放的是操作数据的单元地址。这种寻址方式称为寄存器间接寻址。如:MOV A,R0,特点:指令给出的寄存器中存放的是操作数地址。寄存器间 接寻址是一种二次(间接)寻找操作数的寻址方式,寄存器前边必须加前缀符号“”。不能用于寻址特殊 功能寄存器SFR。,3.2 80C51 单片机指令寻址方式,http:/,例如:MOV A,R0例如:MOV DPTR,#3456H;DPTR3456H MOVX A,DPTR;A(DPTR),寄存器间接寻

7、址方式示意图,3.2 80C51 单片机指令寻址方式,http:/,寻址范围:内部RAM低128B(只能使用R0或R1作间址寄存器)外部RAM(使用DPTR作间址寄存器)对于外部低256单元RAM的访问,除可以使用DPTR外,还可以使用R0或R1作间址寄存器。堆栈操作指令(PUSH 和POP)为 SP作间址寄存器的间址寻址方式。,3.2 80C51 单片机指令寻址方式,http:/,4.立即寻址方式定义:将立即参与操作的数据直接写在指令中,这种寻址方式称为立即寻址。立即数只能作为源操作数,不能当作目的操作数。例如 MOV A,#3AHMOV DPTR,#data16特点:指令中直接含有所需的操

8、作数。该操作数可以是8位的,也可以是16位的,常常处在指令的第二字节和第三字节的位置上。立即数通常使用#data或#data16表示,在立即数前面加“#”标志,用以和直接寻址中的直接地址(direc或bit)相区别。,3.2 80C51 单片机指令寻址方式,http:/,例如:MOV A,#52H;A52H MOV DPTR,#5678H;DPTR5678H,立即寻址示意图,3.2 80C51 单片机指令寻址方式,http:/,5.变址寻址方式 定义:这种寻址方式用于访问程序存储器中的数据表格,以基址寄存器(DPTR或PC)的内容为基本地址,加 上变址寄存器A的内容形成16位的地址,访问程序

9、存储器中的数据表格。这种寻址方式称为基址加变 址寄存器间接寻址,简称为变址寻址。例如:MOVC A,A+DPTR;A(A)+(DPTR)MOVC A,A+PC JMP DPTR 仅有3条变址寻址指令。,3.2 80C51 单片机指令寻址方式,http:/,特点:指令操作码中隐含作为基址寄存器用的DPTR(或PC)和作为变址用的累加器A。在执行变址寻址指令时,80c51单片机先把基地址(DPTR或PC 的内容)和地址偏移量(A的内容)相加,以形成操作数地址,再由操作数地址找到操作数,并完成相应的操作。变址寻址方式是单字节指令。,3.2 80C51 单片机指令寻址方式,http:/,寻址范围:只能

10、对程序存储器ROM进行寻址,主要用于查表性质的访问。,3.2 80C51 单片机指令寻址方式,http:/,6.位寻址方式 MCS-51单片机中设有独立的位处理器。位操作指令能对内部RAM中的位寻址区(20H2FH)和某些有位地址的特殊功能寄存器进行位操作。定义:指令中给出的操作数是一个可单独寻址的位地址,这 种寻址方式称为位寻址方式。MOV C,3AH特点:位寻址是直接寻址方式的一种,其特点是对8位二进 制数中的某一位的地址进行操作。,例如:SETB TR0;TR01 CLR 00H;(00H)0 MOV C,57H;将57H位地址的内容传送到C中 ANL C,5FH;将5FH位与进位位C相

11、与,结果在C中,3.2 80C51 单片机指令寻址方式,http:/,寻址范围:内部RAM中的位寻址区 单元地址为20H2FH,共16个单元128位,位地址是00H 7FH。两种表示方法:一种是位地址;另一种是单元地址加位。专用寄存器的可寻址位(4种表示方法)直接使用位地址。例如PSW寄存器位5地址为0D5H。位名称表示方法。例如PSW寄存器位5是F0标志位,则可使 用F0表示该位。单元地址加位数的表示方法。例如PSW寄存器位5,表示为 0D0H.5。专用寄存器符号加位数的表示方法。例如PSW寄存器的位5,表示为PSW.5,3.2 80C51 单片机指令寻址方式,http:/,7.相对寻址方式

12、(解决程序转移),定义:将程序计数器PC的当前值(取出本条指令后的PC值)与指令第二个字节给出的偏移量(rel)相加,形成新的转移目标地址。称为相对寻址方式。例如:SJMP rel;(PC)(PC)+2+rel特点:目的地址指令地址指令字节数偏移量 相对寻址方式是为实现程序的相对转移而设计的,为相对转移指令所使用,其指令码中含有相对地址偏移量,能生成浮动代码。寻址范围:只能对程序存储器ROM进行寻址。相对地址偏移量(rel)是一个带符号的8位二进制补码,其取值范围为128127(以PC为中间的256个字节范围)。rel可以是标号。,3.2 80C51 单片机指令寻址方式,http:/,3.3

13、80C51 单片机指令分类介绍,MCS-51指令系统有42种助记符,代表了33种功能,指令助记符与各种可能的寻址方式相结合,构成80C51单片机的111条指令。这些指令按功能分成5大类:数据传送类(29条)算术运算类(24条)逻辑运算及移位类(24条)控制转移类(17条)位操作类(17条),http:/,3.3.1 数据传送类指令,数据传送类指令一般的操作是把源操作数传送到指令所指定的目标地址。指令执行后,源操作数保持不变,目的操作数为原操作数所替代。数据传送类指令用到的助记符有:MOV,MOVX,MOVC,XCH,XCHD,PUSH,POP,SWAP。数据一般传送指令的助记符“MOV”表示:

14、格式:MOV 目的操作数,源操作数 功能:目的操作数(源操作数中的数据)源操作数可以是:A、Rn、direct、Ri、#data 目的操作数可以是:A、Rn、direct、Ri数据传送指令一般不影响标志。,3.3 80C51 单片机指令分类介绍,http:/,1 以累加器为目的操作数的内部数据传送指令,3.3 80C51 单片机指令分类介绍,http:/,2 数据传送到工作寄存器Rn的指令,3.3 80C51 单片机指令分类介绍,http:/,3数据传送到内部RAM单元或特殊功能寄存器SFR的指令,3.3 80C51 单片机指令分类介绍,http:/,片内数据RAM及寄存器的数据传送指令MOV

15、、PUSH和POP共18条,如图所示。,3.3 80C51 单片机指令分类介绍,http:/,例1:若(30H)=35H,(R1)=70H,说明指令 MOV R1,30H 的结果 解:执行后,直接地址70H(即寄存器R1的内容)的内容为35H,30H与R1的内容不变。例2:已知(70H)=60H,(60H)=20H,P1=0B7H,执行下面指令,说明结果。MOV R0,#70H;R0-70H MOV A,R0;A-60H MOV R1,A;R1-60H MOV B,R1;B-20H MOV R0,P1;70H-0B7H 解:结果是:(70H)=0B7H,(60H)=20H,B=20H(R1)=

16、60H,(R0)=70H,3.3 80C51 单片机指令分类介绍,http:/,例3 指出下面指令的错误:Mov R1,R3 Mov Rn,Ri Mov A,R3解:Mov R1,R3 无寄存器之间直接传送指令 Mov Rn,Ri,无寄存器间接寻址指令 Mov A,R3,间接寻址只能是R1或R0,3.3 80C51 单片机指令分类介绍,http:/,2.外部数据存储器读/写指令(1)Ri作间址寄存器的外部RAM单元读/写指令 MOVX A,Ri(Ri间接寻址的外部RAM单元读)MOVX Ri,A(Ri间接寻址的外部RAM单元写)(2)DPTR作间址寄存器的外部RAM单元读/写指令 MOVX A

17、,DPTR(DPTR间接寻址的外部RAM单元读)MOVX DPTR,A(DPTR间接寻址的外部RAM单元写)3.程序存储器读指令组(只能读不能写,单字节指令)MOVC A,A+DPTR(程序存储器读)MOVC A,A+PC(程序存储器读)注意:读写程序存储器时,只能通过A,3.3 80C51 单片机指令分类介绍,http:/,片外数据存储器数据传送指令MOVX共4条,如图:,程序存储器查表指令MOVC共2条,如图所示。,3.3 80C51 单片机指令分类介绍,http:/,HBA:INC A MOVC A,A+PC RET DB 30H DB 31H200C DB 39H200D DB 41H

18、200E DB 42H200F DB 43H2010 DB 44H2011 DB 45H2012 DB 46H,例:假定A=00H。程序执行情况:,http:/,4.数据交换指令组(1)整字节交换指令 XCH A,Rn(寄存器寻址字节交换)XCH A,direct(直接寻址字节交换)XCH A,Ri(Ri间接寻址字节交换)(2)半字节交换指令 XCHD A,Ri(Ri间接寻址半字节交换)(3)累加器高低半字节交换指令 SWAP A(累加器内容高低半字节交换),3.3 80C51 单片机指令分类介绍,http:/,数据交换指令XCH、XCHD、和SWAP共5条,如图所示。,【例】(R0)30H,

19、(A)65H,(30H)8FH执行指令:,XCHA,R0;(R0)30H,(A)8FH,(30H)65HXCHD A,R0;(R0)30H,(A)6FH,(30H)85HSWAPA;(A)56H,3.3 80C51 单片机指令分类介绍,http:/,5.堆栈操作指令组 PUSH direct(进栈)POP direct(出栈)例5:设(SP)=30H,ACC=60H,B=70H 执行 PUSH ACC PUSH B后的结果如何?解:PUSH ACC;(SP)-31H,(31H)-60H PUSH B;(SP)-32H,(32H)-70H 结果为:(SP)=32H,(31)(32H)=70H,3

20、.3 80C51 单片机指令分类介绍,http:/,例如:进入中断服务程序时,把程序状态寄存器PSW、累加器A、数据指针DPTR进栈保护。设当前SP为60H。则程序段执行后,SP内容修改为64H,而61H、62H、63H、64H单元中依次栈入PSW、A、DPL、DPH的内容,当中断服务程序结束之前,如下程序段(SP保持64H不变)指令执行之后,SP内容修改为60H,而64H、63H、62、61H单元的内容依次弹出到DPH、DPL、A、PSW中。,PUSH PSWPUSH ACCPUSH DPLPUSH DPH,POP DPHPOP DPLPOP ACCPOP PSW,3.3 80C51 单片机

21、指令分类介绍,http:/,3.3.2 算术运算类指令,1加法指令 加法指令分为普通加法指令、带进位加法指令和加1指令。(1)普通加法指令,算术运算指令都是按8位二进制无符号数执行的。,http:/,【例】(A)=85H,R0=20H,(20H)=0AFH,执行指令:ADD A,R0 10000101+10101111 1 00110100结果:(A)=34H;Cy=1;AC=1;OV=1。对于加法,溢出只能发生在两个加数符号相同的情况。在进行带符号数的加法运算时,溢出标志OV是一个重要的编程标志,利用它可以判断两个带符号数相加,和数是否溢出。,3.3.2 算术运算类指令,http:/,(2)

22、带进位加法指令【例如】(A)=85H,(20H)=0FFH,Cy=1执行指令:ADDC A,20H结果:(A)=85H;Cy=1;AC=1;OV=0。,3.3.2 算术运算类指令,http:/,(3)加1指令【例如】(A)12H,(R3)0FH,(35H)4AH,(R0)56H,(56H)00H 执行如下指令:INCA;执行后(A)13HINCR3;执行后(R3)10HINC35H;执行后(35H)4BHINCR0;执行后(56H)01H,3.3.2 算术运算类指令,http:/,(4)十进制调整指令DA A执行该指令时,判断A中的低4位是否大于9,若满足大于则低4位做加6操作;同样,A中的高

23、4位大于9则高4位加6操作。例如:有两个BCD数36与45相加,结果应为BCD码81,程序如下:MOV A,#36H ADD A,#45H DA A得结果7BH;第三条指令对累加器A进行十进制调整,低4位(为0BH)大于9,因此要加6,最后得到调整的BCD码81。,3.3.2 算术运算类指令,http:/,2 减法指令(1)带借位减法指令(2)减1指令,3.3.2 算术运算类指令,http:/,3.乘法指令 乘法指令完成单字节的乘法,只有一条指令:MUL AB;AB(A)(B)【例如】(A)50H,(B)0A0H,执行指令:MULAB 结果:(B)32H,(A)00H(即乘积为3200H),C

24、y0,OV1。4.除法指令 除法指令完成单字节的除法,只有一条指令:DIV AB;A(A)/(B)的商 B(A)/(B)的余数,3.3.2 算术运算类指令,http:/,说明:MUL指令实现8位无符号数的乘法操作,两个乘数分别放在累加器A和寄存器B中,乘积为16位,低8位放在A中,高8位放在B中;DIV指令实现8位无符号数除法,被除数放在A中,除数放在B中,指令执行后,商放在A中而余数放在B中。,3.3.2 算术运算类指令,http:/,算术运算类指令包括:ADD、ADDC、SUBB、MUL、DIV、INC、DEC和DA,如图3.9所示。图3.9 算术运算类指令,3.3.2 算术运算类指令,h

25、ttp:/,1逻辑与指令【例如】(A)37H,(R0)0A9H执行指令:ANLA,R0 结果:(A)21H,3.3.3 逻辑运算及移位类指令,http:/,2 逻辑或指令【例如】(A)37H,(P1)09H执行指令:ORLP1,A 结果:(A)3FH,3.3.3 逻辑运算及移位类指令,http:/,3 逻辑异或指令,4 累加器清0和取反指令 CLR A;对累加器A清“0”CPL A;对累加器A按位取反,3.3.3 逻辑运算及移位类指令,ClearConverse Position Logical,http:/,当需要只改变字节数据的个别位而其余位不变时,只能通过逻辑运算完成。,应用举例 将累加

26、器A的低4位传送到P1口的低4位,但P1口的高4位保持不变。,MOV R0,A ANL A,#0FH ANL P1,#0F0H ORL P1,A MOV A,R0,3.3.3 逻辑运算及移位类指令,http:/,5 移位指令,3.3.3 逻辑运算及移位类指令,Recycle LeftRecycle Left Carry,http:/,循环左移指令示意图:RL A,循环右移指令示意图:RR A,带进位的循环左移指令示意图:RLC A,带进位的循环右移指令示意图:RRC A,3.3.3 逻辑运算及移位类指令,http:/,3.3.3 逻辑运算及移位类指令,图3.10 逻辑运算类指令,http:/,

27、3.3.4 控制转移类指令,1.无条件转移指令(1)绝对转移指令 AJMP addr11 这是2KB范围内的无条件跳转指令,执行该指令时,先将PC+2,然后将addr11送入PC10PC0,而PC15PC11保持不变。操作过程可表示为:PC(PC)2 PC100addr11(2)短转移指令 SJMP rel 操作过程可表示为:PC(PC)2 PC(PC)rel 执行指令时,先将PC+2,再把指令中带符号的偏移量加到PC上,得到跳转的目的地址送入PC。目标地址=源地址+2+rel,Absolute Jump,Short Jump,http:/,(3)长转移指令LJMP addr16;PC add

28、r16 执行该指令时,将16位目标地址addr16装入PC,程序无条件转向指定的目标地址。转移指令的目标地址可在64KB程序存储器地址空间的任何地方,不影响任何标志。(4)变址寻址转移指令(散转指令)JMP A+DPTR;PC(A)(DPTR)2.条件转移指令,(1)累加器判零转移指令,3.3.4 控制转移类指令,Long Jump,Jump,Jump ZeroJump Not Zero,http:/,(2)数值比较转移指令 在MCS-51中没有专门的比较指令,但提供了下面4条比较不相等转移指令;(3)减1不为0转移指令 DJNZ Rn,rel;R(R)10转移 DJNZ direct,rel

29、;direct(direct)10转移,Decrease Jump Not Zero,Compare Jump Not Equal,http:/,图3.11 条件转移类指令,http:/,4.子程序调用及返回指令(1)绝对调用指令 ACALL addr11执行该指令时,PC(PC)2SP(SP)1,(SP)(PC)70SP(SP)1,(SP)(PC)158 PC100addr11(2)长调用指令 LCALL addr16这条指令无条件调用位于16位地址addr16的子程序。其操作过程如下:PC(PC)3SP(SP)1,(SP)(PC)70SP(SP)1,(SP)(PC)158 PC150add

30、r16,http:/,(3)子程序返回指令RET 子程序返回指令是把栈顶相邻两个单元的内容弹出送到PC,SP的内容减2,程序返回PC值所指的指令处执行。RET指令通常安排在子程序的末尾,使程序能从子程序返回到主程序。(4)中断返回指令 RETI 这是指令的功能与RET指令相类似。通常安排在中断服务程序的最后。(5)空操作指令 NOP;PC PC1 空操作也是CPU控制指令,它没有使程序转移的功能。只消耗一个机器周期的时间。常用于程序的等待或时间的延迟。,http:/,3.3.5 位操作类指令1.位传送指令 2 位置位复位指令 SETB C;Cy 1 SETB bit;bit 1 CLR C;C

31、y 0 CLR bit;bit 0,http:/,3 位逻辑运算指令ANL C,bit;Cy(Cy)(bit)ANL C,/bit;Cy(Cy)(/bit)ORL C,bit;Cy(Cy)(bit)ORL C,/bit;Cy(Cy)(/bit)CPL C;Cy()CPL bit;bit(),http:/,位操作类指令如图3.12所示。图3.12 位操作类指令,http:/,5 位控制转移指令,http:/,图3.13 位条件转移指令 以上介绍了MCS-51指令系统,理解和掌握本章内容,是应用MCS-51单片机的一个重要前提。,http:/,【练习1】指出下列程序段的每条指令的源操作数是什么寻址

32、方式,并写出每步运算的结果。(相关单元的内容)设程序存储器(1050H)=5AH:,http:/,【练习2】用数据传送指令实现下列要求的数据传送。(1)R0的内容输出到R1。(2)内部RAM 20H单元的内容传送到A中。(3)外部RAM 30H单元的内容送到R0。(4)外部RAM 30H单元的内容送内部RAM20H单元。(5)外部RAM 1000H单元的内容送内部RAM 20H单元。(6)程序存储器ROM 2000H单元的内容送R1。(7)ROM 2000H单元的内容送内部RAM 20H单元。(8)ROM 2000H单元的内容送外部RAM 30H 单元。(9)ROM 2000H单元的内容送外部

33、RAM 1000H单元。,http:/,解(1)MOV A,R0 MOV R1,A(2)MOV A,20H(3)MOV R0,#30H 或 MOV R1,#30H MOVX A,R0 MOVX A,R1 MOV R0,A MOV R1,A(4)MOV R0,#30H 或 MOV R1,#30H MOVX A,R0 MOVX A,R1 MOV 20H,A MOV 20H,A(5)MOV DPTR,#1000H MOVX A,DPTR MOV 20H,A,http:/,(8)MOV DPTR,#2000H CLR A MOVC A,A+DPTR MOV R0,#30H MOVX R0,A(9)MOV DPTR,#2000H CLR A MOVC A,A+DPTR MOV DPTR,#1000H MOVX DPTR,A,(6)MOV DPTR,#2000H CLR A MOVC A,A+DPTR MOV R1,A(7)MOV DPTR,#2000H CLR A MOVC A,A+DPTR MOV 20H,A,http:/,作业:P75(三)3、5,http:/,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号