第2章 单片机指系统.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第2章 单片机指系统.ppt》由会员分享,可在线阅读,更多相关《第2章 单片机指系统.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 51单片机共有单片机共有111条指令,分成条指令,分成6类,它的主要特点是:类,它的主要特点是:1、指令较短,最长的只有、指令较短,最长的只有3个字节,所以执行速度快。个字节,所以执行速度快。请看下面请看下面 3 条指令:条指令:第第2章章 MCS 51 单片机的指令系统单片机的指令系统 2、功能强大,、功能强大,8位的乘除运算可用一条指令完成。位的乘除运算可用一条指令完成。3、位操作丰富,适于进行开关量的控制。、位操作丰富,适于进行开关量的控制。4、片内、片内RAM统一编址,片外存储器独立编址,端口操作直接用传送命统一编址,片外存储器独立编址,端口操作直接用传送命令(令(MOV),使用方便
2、。),使用方便。操作码 85H源操作数 4FH目的操作数 5EHINC A操作码 04H操作码 24H操作数 22HADD A,#22HMOV 5EH,4FH 指令的构成:指令的构成:标号:标号:操作码操作码 目的操作数,源操作数;注释目的操作数,源操作数;注释 AAA:MOV A,#20H ;将立即数将立即数20H20H送累加器送累加器A A1指令中的常用符号:指令中的常用符号:Rn:n=07,表示当前工作寄存器,表示当前工作寄存器R0R7中的一个中的一个Ri:i=0、1,代表,代表R0和和R1寄存器中的一个,用作间接寻址寄存器。寄存器中的一个,用作间接寻址寄存器。dir:8 位直接寻址的字
3、节地址(片内位直接寻址的字节地址(片内 RAM 和和 SFR)data:8位立即数,即位立即数,即8位常数。可以为位常数。可以为2进制(进制(B)、)、10进制、进制、16进制(进制(H)、)、字符(字符()等)等data16:表示表示16位立即数,即位立即数,即16位常数,取值范围为位常数,取值范围为#0000H#0FFFFHaddr16:表示表示16位地址位地址 addr11:表示表示11位地址位地址rel:相对偏移量(为一字节补码)用于相对转移指令中相对偏移量(为一字节补码)用于相对转移指令中bit:位地址,在位地址空间中位地址,在位地址空间中$:表示当前指令的地址表示当前指令的地址()
4、:用来表示存储单元的内容():用来表示存储单元的内容:间接寻址的前缀:间接寻址的前缀A,B,C:分别是累加器、分别是累加器、B寄存器和进位标志位寄存器和进位标志位/:位操作时的取反前缀位操作时的取反前缀22.1 寻址方式寻址方式 寻址就是寻找操作数的地址,在计算机中,就是用来确定操作数,寻址就是寻找操作数的地址,在计算机中,就是用来确定操作数,用什么方式从什么地方来找到所需要的操作数。用什么方式从什么地方来找到所需要的操作数。寻址方式是衡量寻址方式是衡量 CPU 的性能的重要指标之一,因为寻址方式的的性能的重要指标之一,因为寻址方式的快捷就决定了执行速度,寻址方式的多样性就决定了编程的灵活程快
5、捷就决定了执行速度,寻址方式的多样性就决定了编程的灵活程度。度。MCS 51 具有具有 7 种寻址方式,它们是:立即、直接、寄存器直接、种寻址方式,它们是:立即、直接、寄存器直接、寄存器间接、变址、相对和位寻址。寄存器间接、变址、相对和位寻址。1、立即寻址、立即寻址 指令中直接给出操作数的寻址方式。在指令中直接给出操作数的寻址方式。在51系列单片机的指令系统系列单片机的指令系统中,立即数用一个前面加中,立即数用一个前面加“#“号的号的8位数位数(#data,如,如#30H)或或16位位数数(#data16,如,如#2052H)表示。立即寻址中的数,称为立即数。表示。立即寻址中的数,称为立即数。
6、立即数不能做源地址。立即数不能做源地址。例如:例如:MOV A,#30H MOV DPTR,#1234H 33、寄存器寻址、寄存器寻址 操作数存放在寄存器中。操作数存放在寄存器中。寻址空间:工作寄存器组和所有的寻址空间:工作寄存器组和所有的SFR寄存器。寄存器。A 在使用在使用PUSH、POP指令的时候要记作指令的时候要记作ACC。例如:例如:MOV A,R0 ;R0A MUL AB ;A*BBA INC DPTR ;DPTR+1DPTR PUSH ACC ;将;将ACC压入堆栈压入堆栈2、直接寻址、直接寻址 操作数的地址直接出现在指令中。操作数的地址直接出现在指令中。寻址空间:寻址空间:51
7、系列片内的系列片内的128字节的字节的RAM和和SFR中的寄存器,对中的寄存器,对SFR操作的时候,既可使用它的地址,也可以直接使用寄存器名。操作的时候,既可使用它的地址,也可以直接使用寄存器名。52系列内部系列内部RAM有有256个字节时,个字节时,80H之后的地址空间之后的地址空间只能使用寄存器只能使用寄存器间接的方式来寻址。间接的方式来寻址。例如例如:MOV 30H,40H MOV R5,DPH (等价于等价于 MOV R5,83H )44、寄存器间址(寄存器间接寻址)、寄存器间址(寄存器间接寻址)操作数存放在以寄存器内容为地址的单元中。操作数存放在以寄存器内容为地址的单元中。寻址空间:
8、片内寻址空间:片内RAM 00H-FFH的地址空间和片外数据存储器的地址空间和片外数据存储器0000H-FFFFH的地址空间。可使用的寄存器只有的地址空间。可使用的寄存器只有DPTR和和Ri,用它,用它们之前要先把要寻的地址装入这些寄存器中。们之前要先把要寻的地址装入这些寄存器中。凡是间接寻址的寄存器之前都要加凡是间接寻址的寄存器之前都要加 号来和直接寻址的方式区号来和直接寻址的方式区分。可用于间接寻址的寄存器只有工作寄存器组中的分。可用于间接寻址的寄存器只有工作寄存器组中的 R0 和和 R1,DPTR 和和 SP(SP是隐含的是隐含的,不出现在指令中)。当采用寄存器间接不出现在指令中)。当采
9、用寄存器间接寻址方式时,由于片内的存储单元只有寻址方式时,由于片内的存储单元只有128个,所以只用个,所以只用 R0 或或 R1 就够了;如果是访问外部存储单元时,由于有就够了;如果是访问外部存储单元时,由于有16位地址,所以要先位地址,所以要先设置好设置好P2高高8位,再通过位,再通过R0 或或 R1送低送低 8 位(通过位(通过P0口),或者就口),或者就由由 DPTR 直接给出直接给出16位地址到位地址到 P2 和和 P0 口来实现地址的查找。口来实现地址的查找。例如:例如:MOV R0,#20H MOV R0,A ;A(20H)地址的内部地址的内部RAM MOVX A,R1;外部外部R
10、AM(地址地址P2 R1)的内容的内容A MOVX DPTR,A;A以以DPTR内容为地址的外部内容为地址的外部RAM 55、位寻址、位寻址 寻址空间:片内寻址空间:片内RAM中中20H2FH中的中的128个位地址及个位地址及SFR中的可中的可位寻址的位地址寻址。通常把进位位位寻址的位地址寻址。通常把进位位C当作位操作的累加器,为直观起当作位操作的累加器,为直观起见,当位地址有地址名时,建议选地址名做地址。见,当位地址有地址名时,建议选地址名做地址。例如:例如:MOV C,20H;20H位的内容送位的内容送CY标志位,标志位,C称为位累加器。称为位累加器。MOV 5FH,C ANL C,P1.
11、0 SETB TR0 CLR 8CH 由于位地址和字节地址相同,所以在编程的时候注意如何将其区分,由于位地址和字节地址相同,所以在编程的时候注意如何将其区分,一般的方法有一般的方法有3种:种:用地址的别名,别名是唯一的,所以不会弄错且便于程序的阅读。用地址的别名,别名是唯一的,所以不会弄错且便于程序的阅读。有专门的位操作指令(有专门的位操作指令(SETB、CLR、CPL),可凭借位指令的操作),可凭借位指令的操作码来区别。码来区别。根据指令的操作数,是字节还是位来予以区分。根据指令的操作数,是字节还是位来予以区分。例如:例如:MOV C,P0.0 SETB 20H MOV 5FH,P1.1 6
12、6、变址寻址、变址寻址 主要用于程序存储器的寻址,所以有专门的主要用于程序存储器的寻址,所以有专门的MOVC 指令。它的寻址指令。它的寻址方法是将方法是将 PC 或或 DPTR 作为基址,再加上作为偏移量的作为基址,再加上作为偏移量的 A 寄存器的内寄存器的内容,形成一个完整的容,形成一个完整的16位的地址,将某程序存储单元的内容读出。位的地址,将某程序存储单元的内容读出。7DH 02H(02H(7DH7DH)8B2FH8B2FHA AMOVC A,A+PC片外片外ROMROM8B2CH+18B2CH+1PCPC+8B2CH+1+2=8B2FH 89H 08H(08H(89H89H)103CH
13、103CHA AMOVC A,A+DPTR片外片外ROMROM1034H1034HDPTRDPTR+.1034H+8=103CH77、相对寻址、相对寻址 主要用于各种跳转。它的寻址方法是以当前的主要用于各种跳转。它的寻址方法是以当前的PC为基址,加上指令给为基址,加上指令给出的一个字节的补码,让出的一个字节的补码,让PC指针实现前跳或者后跳,由于跳转指令自身有指针实现前跳或者后跳,由于跳转指令自身有2字节或字节或3字节之分,相对寻址的执行是在跳转指令执行之后,所以通常计字节之分,相对寻址的执行是在跳转指令执行之后,所以通常计算的公式是:算的公式是:PC+2(3)+指令给出的补码。指令给出的补码
14、。SJMPSJMP 13H13H 。5112H5112H+13H+13HSJMP 13H片外片外ROMROM 5112H5112HPCPC+25127H5127H执行完后执行完后PCPC的位置的位置5112H+2+13H=5127H82.2 传送与交换指令传送与交换指令 为了能简洁地介绍指令功能和操作规则,采用图解的方式来加以说明,为了能简洁地介绍指令功能和操作规则,采用图解的方式来加以说明,先介绍符号及方法:先介绍符号及方法:箭头:箭头:指出源操作数到目的操作数的方向,其上的英文是操作码符指出源操作数到目的操作数的方向,其上的英文是操作码符 圆框:圆框:累加器累加器A 或或 C的符号的符号
15、实线矩形框:实线矩形框:操作数操作数 虚线操作数:虚线操作数:表示立即数表示立即数 2.2.1 传送类指令传送类指令MOV 1、MOV:内部:内部RAM、SFR之间的传送指令(共之间的传送指令(共18条)条)判断以下指令是否正确?判断以下指令是否正确?MOV 29H,R7MOV 56H,#70HMOV R3,R7MOV R3,#0D2HMOV A,#280HMOV 25H,P1MOV 34H,28HMOV R3,R7MOV#34H,28HMOV P3,P1ARnRidirect#dataDPTRMOVPUSHPOP9 2、堆栈操作指令、堆栈操作指令 入栈指令:入栈指令:PUSH dir ;SP
16、SP+1,(SP)(dir)出栈指令:出栈指令:POP dir ;(dir)(SP),SPSP-1例例:设设 A=02A=02,B=56HB=56H,执执行行下下列列指指令令序序列列后后,SP=SP=?A=A=?,B=?,B=?SBR SBR:MOV SPMOV SP,#30H#30H;设栈底;设栈底 PUSH A PUSH ACCCC ;保护现场;保护现场 PUSH B PUSH B MOV A MOV A,#0#0 ;A=0A=0 MOV B MOV B,#01 ;B=01#01 ;B=01 POP POP B B ;恢复现场;恢复现场 POP A POP ACCCC ;B=56H ;B=
17、56H A=02HA=02H RET RET片内片内RAMRAM地址地址内容内容30H30H31H31H020232H32H56H56H33H33HSP错误的:错误的:PUSH APUSH DPTRPUSH R0PUSH R1.103、外部程序存储器和、外部程序存储器和A累加器之间的传送(共累加器之间的传送(共2条)条)AA+DPTRA+PCMOVCMOVC例例:查表法求查表法求 Y=XY=X2 2。设。设 X(0X15)X(0X15)在片内在片内 RAM 20HRAM 20H单元,要求查表单元,要求查表求求 Y Y,存入片内,存入片内 RAM 21HRAM 21H单元单元 ORG 0100H
18、 ORG 0100H SQU:MOV DPTR SQU:MOV DPTR,#TAB#TAB;确定表首地址;确定表首地址 MOV AMOV A,20H20H ;取;取 X X MOVC AMOVC A,A+DPTR A+DPTR ;查表求;查表求 Y=XY=X2 2 MOV 21H MOV 21H,A A ;保存;保存Y Y RET RET ;子程序结束;子程序结束 ;其它程序段;其它程序段 ORG 0200H ORG 0200H ;常数表格首地址;常数表格首地址 TAB:TAB:DB 00 DB 00,0101,0404,0909,225 225;平方表;平方表114、外部数据存储器和、外部数
19、据存储器和A累加器之间的传送(共累加器之间的传送(共4条)条)ADPTRRiMOVXMOVX使用使用RiRi寄存器间址,寄存器间址,必须先给必须先给P2P2口送高口送高8 8位地址,程序如下:位地址,程序如下:MOV P2MOV P2,#20H#20H;高位地址;高位地址 MOV R0 MOV R0,#00#00;低位地址;低位地址 MOVX A MOVX A,R0R0;读片外;读片外RAMRAM MOV P2 MOV P2,#21H#21H;改变高位地址;改变高位地址 MOVX R0 MOVX R0,A A;写片外;写片外RAMRAM它等同于它等同于 :MOV DPTR,#2000;MOV
20、DPTR,#2000;MOVX A,DPTR;MOVX A,DPTR;MOV DPH,#21 MOV DPH,#21H H;MOVX R0,A MOVX R0,A122.2.2 数据交换指令(共数据交换指令(共5条)条)ARnRidirectXCHXCHDSWAPXCHXCHXCHXCHDSWAP8 8位全交换位全交换只交换低只交换低4 4位位自身高低自身高低4 4位交换位交换例:将片内例:将片内RAM 2AHRAM 2AH和和 2BH2BH单元单元中的中的ASCIIASCII码转换成压缩式码转换成压缩式BCDBCD码存入码存入 20H20H单元单元MOV AMOV A,#00H#00H;A=
21、00A=00MOV R0MOV R0,#2AH#2AHMOV R1MOV R1,#2BH#2BHXCHD AXCHD A,R0R0;低低4 4位交换位交换A=08A=08SWAP ASWAP A;A=80HA=80HXCHD AXCHD A,R1R1;低低4 4位交换位交换XCH AXCH A,20H20H;(20(20H)=85HH)=85H片内片内RAMRAM地址地址内容内容20H20H2AH2AH38H38H2BH2BH35H35H132.3 逻辑运算和算术运算指令逻辑运算和算术运算指令 2.3.1 对标志位的影响对标志位的影响 P标志仅对标志仅对A操作的指令有影响。操作的指令有影响。传
22、送类、加传送类、加1、减、减1和逻辑运算指令不影响和逻辑运算指令不影响CY,OV,AC。加减运算影响加减运算影响OV,CY,P和和AC;乘除指令乘除指令使使CY=0;当乘积大于当乘积大于255或或除数为除数为0,OV=1。2.3.2 逻辑运算类指令(逻辑运算类指令(25条)条)ARnRidirect#dataANL,ORL,XRLANL,ORL,XRLANL,ORL,XRLANL,ORL,XRLANL,ORL,XRLRL,RLC,RR,RLC,CLR,CPL14 2.3.3 算数运算类指令(算数运算类指令(23条)条)ARnRidirect#dataADD,ADDC,SUBBADD,ADDC,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 单片机指系统 单片机 系统
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内