单片机指令.

上传人:最**** 文档编号:117927316 上传时间:2019-12-11 格式:PPT 页数:41 大小:576.50KB
返回 下载 相关 举报
单片机指令._第1页
第1页 / 共41页
单片机指令._第2页
第2页 / 共41页
单片机指令._第3页
第3页 / 共41页
单片机指令._第4页
第4页 / 共41页
单片机指令._第5页
第5页 / 共41页
点击查看更多>>
资源描述

《单片机指令.》由会员分享,可在线阅读,更多相关《单片机指令.(41页珍藏版)》请在金锄头文库上搜索。

1、指令系统 1 2 3 4 5 3-2 数据传送类指令 片内数据存储器传送指令MOV; 片外数据存储器传送指令MOVX; 程序存储器传送指令MOVC; 累加器交换指令 XCH、XCHD、SWAP; 堆栈操作指令 PUSH、 POP; 3-5 数据传送操作是指把数据从源地址传送到目的 地址,源地址内容不变。 6 3-2-1 片内数据存储器传送指令MOV 格式:MOV , 1)以累加器 A 为目的地址的传送指令(4 条) 助记记符格式相应应操作指令说说明机器周期 MOV A, RnARnn=07, 1 MOV A, directA(direct)1 MOV A, RiA(Ri)i=0,11 MOV

2、A, #dataA#data 注意:以上传送指令的结果均影响程序状态字寄存器 PSW 的 P 。 7 助记记符格式相应应操作指令说说明机器周期 MOV Rn, ARn An=07, 1 MOV Rn, directRn(direct)n=07,1 MOV Rn, #dataRn#datan=07,1 注意:以上传送指令的结果均不影响程序状态字寄存器 PSW 的 P 。 2) 以 Rn 为目的地址的传送指令(3 条) 8 3) 以直接地址为目的地址的传送指令(5 条) 助记记符格式相应应操作指令说说明机器周期 MOV direct , A(direct) An=07, 1 MOV direct

3、,Rn (direct) Rn1 MOV direct ,Ri(direct) (Ri)i=0,12 MOV direct1, direct2 (Direct1) (Direct2)2 MOV direct, #data (Direct) #data2 9 助记记符格式相应应操作指令说说明机器周期 MOV Ri, A(Rn) Ai=0,11 MOV Ri, direct (Rn) (direct) 2 MOV Ri, #data (Rn) #data 1 4) 以间接地址为目的地址的传送指令(3 条) 10 5) 16位传送指令 mov dptr, #mmnnH nnH - DPL mmH -

4、 DPH 11 3-2-2 片外数据存储器传送指令 MOVX 助记记符格式相应应操作指令说说明机器周期 MOVX A, dptrA(dptr)影响P2 MOVX dptr,A(dptr) A2 MOVX A, RiA外部(Ri)影响P2 MOV Ri, A外部(Ri) A2 MOVX A, Ri 和 MOVX Ri, A 不影响P2口的状 态 12 MOV R2,#20h;设置传送次数 MOV DPTR,#TAB ;设置数据源起始地址 MOV R0,#30H;设置目标起始地址 LOOP: MOV A, #00h;设置变址值 MOVC A, A+DPTR;读外部数据存储器 MOV R0, A;将

5、数据传送到内部RAM INC R0;目标地址+1 INC DPTR ;源地址+1 DJNZ R2,LOOP;传送个数判断 请将程序存储器中,标号TAB起始的32个字节的数 据读入到30H开始的内部RAM中 13 MOVC可对程序存储区数据进行传 送,主要用于将程序存储区的数据表格 传送到A,所以,又称查表指令。共有2 条: MOVC A,A+PC MOVC A, A+DPTR 3-2-3 程序存储器传送指令MOVC 14 例: 请将程序存储器中,标号TAB起始的 32个字节的数据读入到30H开始的内部 RAM中 15 1) 字节交换指令XCH(3 条) 3-2-4 累加器交换指令 助记记符格式

6、相应应操作指令说说明机器周期 XCH A, Rn A Rn n=071 XCH A, directA (direct)1 XCH A, RiA (Ri)i=0,11 注意:以上指令结果影响程序状态字寄存器 PSW 的 P 标志。 16 2) 半字节交换指令XCHD(1 条) 助记记符格式相应应操作指令说说明机器周期 XCH A, RiA 30(Ri) 30高位不变变1 3) 高低字节交换指令SWP(1 条) 助记记符格式相应应操作指令说说明机器周期 SWAP AA 30A 741 注意:上指令结果影响程序状态字寄存器 PSW 的 P 标志。 17 3-2-5 堆栈操作指令PUSH POP 助记

7、记符格式相应应操作机器周期 PUSH direct SPSP+1 (SP)(direct) 2 POP direct (SP)(direct) SPSP+1 2 注意: 1) 堆栈是用户自己设定的内部 RAM 中的一块专用存 储区,使用时一定先设堆栈指针,堆栈指针缺省为 SP=07H。 2) 堆栈遵循后进先出的原则安排数据,须成对使用。 3) 堆栈操作必须是字节操作,且只能直接寻址。 18 4) 在子程序调用和中断调用时,系统将自 动将PC压入堆栈,返回时自动将 PC弹出,如果堆栈空间不够(子程序 、中断嵌套过多或要保护的变量过多), 堆栈进入变量区,将导致执行混乱。 19 例: MOV SP

8、,#30H ;设置堆栈指针,SP=30H 为栈底地址 PUSH ACC ;SP+1SP,SP=31H,ACC (SP) PUSH DPH ;SP+1SP,SP=32H,DPH (SP) PUSH DPL ;SP+1SP,SP=33H,DPL (SP) PUSH 01H ;SP+1SP,SP=34H,01H (SP) ;不能写成PUSH R1 POP 01H ;(SP)01H,SP-1SP,SP=33H POP DPL ;(SP)DPL,SP-1SP,SP=32H POP DPH ;(SP)DPH,SP-1SP,SP=31H POP ACC ;(SP)ACC,SP-1SP,SP=30H 20 3

9、-3 算术运算类指令 8051系列单片机共24条8位算术运算指令,这 些指令将对PSW的CY、AC、OV和P标志位产生不同 影响,使用时应特别予以注意。 1) 加、减法指令(22 条) a. 加法指令(8 条) ADD ADDC b. 减法指令(4 条) SUBB c. BCD 码(十进制)调整指令(1 条) DA d. 加 1 减 1 指令(9 条) INC DEC 2) 乘、除法指令 (2 条) a. 乘法指令(1 条) MUL b. 除法指令(1 条) DIV 21 22 3-3-2 加法指令 1) 不带进位的加法指令 ADD ADD A,Rn;AA+Rn ADD A,Ri;AA+(Ri

10、) ADD A,direct;AA+(direct) ADD A,#data;AA+data ADD 指令将影响PSW的CY、AC、OV和P标志 当第7位有进位时,CY=1,于判断无符号运算是否溢出 和多字节的加法运算。 当第7位或第6位有进位时,OV=1,用于判断8位有符号 数相加后是否溢出(127或127或9 , 则:A30-0AHA30 , A74+1A74 , AC=1 如果AC=1 , 则:A30+06H A30 , A74+1A74 , AC=0 2)如果A74+AC 9 , 则:A7A-0AH A74 , CY=1 如果CY=1 , 则:A74+06H A74 , CY=1 30

11、 3-4 逻辑运算类指令 逻辑运算类指令有与、或、异或、清除、取反、 移位等操作指令: 1) 逻辑运算指令(20 条) a. 逻辑与指令(6 条) ANL b. 逻辑或指令(6 条) ORL c. 逻辑异或指令(6 条)XRL d. 累加器 A 清 0 和取反指令(2 条)CLR CPL 2) 循环移位指令(4 条)RR RRC RL RLC 31 3-4-1 逻辑运算类指令 1) 与、或、异或逻辑指令 ANL / ORL / XRL A,Rn;AA/ Rn ANL / ORL / XRL A,Ri ;AA/ (Ri) ANL / ORL / XRL A,direct ;AA/ (direct

12、) ANL / ORL / XRL A,#direct ;AA/ #direct 仅影响P标志 ANL / ORL / XRL direct , A ;(direct)A/ (direct) ANL / ORL / XRL direct , #data;(direct) (direct) / data 不影响PSW 32 CLR A ; A 0 CPL A ; A逐位取反 2) 累加器 A 清 0 和取反指令 33 移位指令 1) 不带进位标志的循环移位指令 RL A ;循环左移位 A7A6 . A1 A0 RR A ;循环右移位 A7A6 A1 A0 34 2) 带进位标志的移位指令 A7A

13、6 . A1 A0 RLC A ;带进位标志的循环左移位 CY RRC A ;带进位标志的循环右移位 A7A6 A1 A0 CY 循环移位指令都为单周期指令 35 3-6 位操作类指令 位操作指令的操作数是“位”,其取值只能是 0 或 1,故又称之为布尔操作指令。 位操作指令的操作对象是片内 RAM 的位寻址区 (20H2FH)和特殊功能寄存器 SFR 中的16 个可位 寻址的寄存器。 位的传送和运算必须通过C,所以 C 也称为位累 加器 36 位寻址有三种不同的写法: 1)直接地址写法:09h (21h的第1位),07fh (2fh的第7位)。 2)点操作符写法:21h.1 0D0H.2 P

14、1.0 。 3)位名称写法: a) 可以位寻址的SFR, 如:OV, P, TR0。 b) 用equ(或bit) 定义的位地址,如:flag1 equ 23h 37 1 位传送指令(2条) MOV MOV C, bit;Cbit MOV bit, C;bitC 2 位修正指令(6条) SETB CLR CPL SETB C ; C0 SETB bit;bit1 CLR C ; C0 CLR bit ;bit0 CPL C ; CC CPL bit ;bitbit 3 位逻辑运算指令(4条) ANL ORL ANL C, bit ; CCbit ANL C, /bit; CCbit ORL C, bit ; C

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

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