单片机电子教案教学课件作者李全利第3章

上传人:E**** 文档编号:92631130 上传时间:2019-07-11 格式:PPT 页数:82 大小:1.32MB
返回 下载 相关 举报
单片机电子教案教学课件作者李全利第3章_第1页
第1页 / 共82页
单片机电子教案教学课件作者李全利第3章_第2页
第2页 / 共82页
单片机电子教案教学课件作者李全利第3章_第3页
第3页 / 共82页
单片机电子教案教学课件作者李全利第3章_第4页
第4页 / 共82页
单片机电子教案教学课件作者李全利第3章_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《单片机电子教案教学课件作者李全利第3章》由会员分享,可在线阅读,更多相关《单片机电子教案教学课件作者李全利第3章(82页珍藏版)》请在金锄头文库上搜索。

1、3.1 指令格式及常用符号,本章内容:,3.2 80C51的寻址方式,3.3 数据传送类指令(29条),3.4 算术运算类指令(24条),3.5 逻辑运算与循环类指令(24条),3.6 控制转移类指令(17条),3.7 位操作类指令(17条),第3章 80C51的指令系统,3.1 指令格式及常用符号,3.1.1 机器指令的编码格式,单字节指令,8位编码仅为操作码:,指令 INC A,编码为04H。A隐含在操作码中。,注意:指令中“A”表示累加器,而“ACC”表示累加器对应的地址(E0H)。,0000 0100,INC A,高5位为操作码,低3位为存放操作数的寄存器编码。如:MOV A,R0,8

2、位编码含有操作码和寄存器编码,编码为1110 1000B,可表示为E8H(低3位000为寄存器R0的编码)。,1110 1000,MOV A,R0,寄存器号,双字节指令,第一字节表示操作码,第二个字节表示参与操作的数据或数据存放的地址。 如:MOV A,#50H,编码为0111 0100B,0101 0000B。其十六进制表示为74H,50H。,操作数,0101 0000,MOV A,#50H,操作码,0111 0100,三字节指令,指令的第一字节表示该指令的操作码,后两个字节表示参与操作的数据或数据存放的地址。 如:MOV 20H,#50H,编码为0111 0101B,0010 0000B,

3、0101 0000B。可表示为75H,20H,50H。,操作数,0010 0000,MOV 20H,#50H,操作码,0111 0101,0101 0000,3.1.2 符号指令的格式,一般格式: 操作助记符 目的操作数,源操作数;注释,在两个操作数的指令中,通常目的操作数写在左边,源操作数写在右边。,操作数个数,无操作数,单操作数,两操作数,三操作数,如:ANL A,40H ANL为“与”操作的助记符,立即数“40H”为源操作数,累加器A为目的操作数。,注:在指令中,多数情况下累加器用“A”表示,仅在直接寻址方式中,用“ACC”表示累加器在SFR区的具体地址E0H。,MOV A,30H;机器

4、码为74H、30H; MOV ACC,30H;机器码为75H、E0H、30H。,3.1.3 符号指令及其注释中常用的符号,Rn(n=07)-当前工作寄存器组中的寄存器之一; Ri(i=0,1)-当前工作寄存器组中的R0或R1; -间址寄存器前缀; #data -8位立即数; #data16-16位立即数; direct-片内低128个RAM单元地址及SFR地址(可用符号名称表示);,addr11-11位目的地址; addr16-16位目的地址; rel-补码形式表示的8位地址偏移量,值在128127范围内; bit-片内RAM位地址、SFR的位地址(可用符号名称表示); /-位操作数的取反操作

5、前缀; ()- 表示 地址单元或寄存器中的内容; -箭头右边的内容送入箭头左边的单元中。,3.2 80C51的寻址方式,寻找操作数或指令的地址的方式。,寻址方式有七种,即:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。,若不特别声明,我们后面提到的寻址方式均指源操作数的寻址方式。,寻址方式及对应的存储器空间,操作数在寄存器中,指令中直接给出该寄存器名称。具有较高的传送和运算速度。,3.2.1 寄存器寻址,例:MOV A,R0,寻址空间,R0R7,A,B(AB),DPTR,例:MOV A,R0 ;设(R0)=30H,0工作寄存器组,00H,7F

6、H,30H,30H,80H,FFH,A,E8H,FFFFH,MOV A,R0,0000H,ROM,SFR,RAM,结果:(A)=30H,操作码后的字节是操作数的地址,操作数本身放在该地址指示的存储单元中。,3.2.2 直接寻址,寻址空间,片内RAM( 128字节),SFR(常采用符号形式),如:MOV A,50H,例:MOV A,50H ;设(50H)=3AH,50H,7FH,3AH,3AH,80H,FFH,A,FFFFH,MOV A,50H,0000H,ROM,SFR,RAM,结果:(A)=50H,寄存器中内容为地址,从该地址取操作数。,3.2.3 寄存器间接寻址,寻址空间,片内RAM,片外

7、RAM,间址寄存器,R0或R1,DPTR,片内RAM,片外RAM(256字节) P2口线,页面方式,MOV,MOVX,例:MOV A, R0 ;设(R0)=30H,E6H,FFFFH,MOV A, R0,0000H,ROM,结果:(A)=30H,30H,7FH,5AH,5AH,80H,FFH,A,SFR,RAM,30H,R0,编码中直接给出操作数。操作码之后的操作数称为立即数。,3.2.4 立即寻址,寻址空间:ROM,立即数 单字节、双字节 标识: 源操作数,例:MOV A, #50H ;,7FH,50H,80H,FFH,A,FFFFH,MOV A,#50H,0000H,ROM,SFR,RAM

8、,结果:(A)=50H,以一个基地址加上一个偏移量地址形成操作数地址。,3.2.5 变址寻址,寻址空间:ROM,基址寄存器:,DPTR,PC,偏移量寄存器:A,操作数地址:,例:MOVC A, A+DPTR ;,7FH,0FH,80H,FFH,A,FFFFH,MOVC A, A+DPTR,0000H,ROM,SFR,RAM,结果:(A)=88H,93H,88H,00H,24H,2400H+0FH= 240FH,240FH,DPL,DPH,88H,以PC当前值为基准,加上指令中相对偏移量 rel 形成目标地址。,3.2.6 相对寻址,PC,目标地址:,+,rel,PC的当前值:读出该2字节或3字

9、节的跳转指令后,PC指向的下条指令的地址。,rel 取值范围是:128127。(补码),例:JC rel ;设 rel75H,PSW.7为 “1”,7FH,1000 0000,80H,FFH,PSW,1002H,JC rel,1000H,ROM,SFR,RAM,结果:程序转向1077H单元,1001H,1077H,1000H+02H= 1002H,PC值,字节数,1002H+75H= 1077H,当前PC值,新PC值,对位地址中内容进行操作。操作的是8位二进制数中的某一位。,3.2.7 位寻址,SFR的寻址位常用符号位地址表示,如: CLR ACC.0 MOV 30H,C,寻址空间,片内RAM

10、中位寻址区,SFR中的可寻址位,3.3 数据传送类指令(29条),一般不影响PSW状态,传送类指令分成两大类,MOV,一般传送 非MOV,特殊传送, 如:MOVC、MOVX、PUSH、POP、XCH、XCHD及SWAP。,16位传送,将源操作数data16(通常是地址常数)送入目的操作数DPTR中。,例如: MOV DPTR,#1234H,3.3.1 一般传送指令,结果为: (DPH)=12H,(DPL)=34H。,8位传送,data不能用作目的字节; 源字节与目的字节不相同(除direct外); 寄存器寻址与寄存器及其间址间不相互传送。,传送关系,目的,源操作数,A,A,Rn,Rn,dire

11、ct,direct,Ri,Ri,#data,以A为目的,例:若(R1)= 20H,(20H)= 55H 执行 MOV A,R1,MOV A,,Rn,direct,Ri,#data,结果:(A)= 55H。,以Rn 为目的,例:若(50H)= 40H 执行 MOV R6,50H,MOV Rn,,A,direct,#data,结果:(R6)= 40H。,以direct 为目的,例:若(R1)=50H,(50H)=18H 执行MOV 40H,R1,结果:(40H)=18H。,MOV direct,,Rn,direct1,Ri,#data,A,以Ri为目的,例:若(R1)=30H,(A)=20H 执行

12、 MOV R1,A,结果:(30H)=20H,MOV Ri,,A,direct,#data,ROM查表,MOVC A,A+PC 以PC的当前值与偏移量之和作为程序存储器地址,将该地址单元的内容传送到A。指令执行后PC的内容不变。,3.3.2 特殊传送指令,MOVC A,A+DPTR 以DPTR与偏移量之和作为程序存储器地址,将该地址单元的内容传送到A。指令执行后DPTR的内容不变。,读写片外RAM,读片外RAM MOVX A,DPTR MOVX A,Ri,写片外RAM MOVX DPTR,A MOVX Ri,A,堆栈操作,操作 PUSH direct POP direct,原则:向地址高端生长

13、,后进先出,SP :指向栈顶(活动端),复位值07H,例:若(SP)=07H,(40H)=88H 执行 PUSH 40H,结果:(SP)=08H,(08H)=88H。,数据交换,例:若(R0)=80H,(A)=20H。 执行 XCH A,R0,交换类指令, 传送是双向的,字节交换,XCH A,,Rn,direct,Ri,结果:(A)=80H,(R0)=20H。,半字节交换,例:若(R0)30H,(30H)67H, (A)20H。 执行 XCHD A,R0 后,(A)27H,(30H)60H。,XCHD A,Ri SWAP A,例:若(A)30H,执行SWAP A后,(A)03H。,3.4 算术

14、运算类指令(24条),加、减、乘、除及加1和减1等 多数以A为源操作数,同时又使A为目的操作数。 PSW中的OV、CY、AC,CY,无符号整数多字节加、减法、移位等 OV,可方便的控制补码运算 AC,用于BCD码运算。,3.4.1 加法,不带进位加,影响:CY、AC、OV和P,ADD A,,Rn,direct,Ri,#data,注:D7、D6位只有一个有进位时,(OV)=1。如:两个正数相加结果为负数或两个负数相加结果为正数时属于错误结果,此时(OV)=1。,例 若(A)=84H,(30H)=8DH,执行指令 ADD A,30H 之后,由于:,结果:(A)=11H,(CY)=1,(AC)=1,

15、(OV)=1(D7有进位,D6无进位),(P)=0。,CY,AC,带进位加,源操作数与A的内容相加再与CY相加,结果送入目的操作数A中。,ADDC A,,Rn,direct,Ri,#data,CY是在该指令执行之前已存在的值。,增1,源操作数的内容加 1 ,结果再送回原单元。这些指令中仅 INC A 影响P标志。,INC,Rn,direct,Ri,DPTR,A,十进制调整,对A中刚进行的2个BCD码加法的结果调整。,DA A,当A中低4位数出现了非BCD码或低4位产生进位(AC=1),则在低4位加6。,当A中高4位数出现了非BCD码或高4位产生进位(CY=1),则在高4位加6。,调整后,CY表示结果的百位值。,例:若(CY)0,A和R2内容见下式。执行指令: ADD A,R2 DA A,结果:1 23( BCD数),3.4.2 减法,带借位减,SUBB A,,Rn,direct,Ri,#data,影响:CY、AC、OV和P,注

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号