单片机指令详解Word格式文档下载.docx
《单片机指令详解Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机指令详解Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
26H~27H
累加器内容与内部RAM低128单元内容相加
A←(A)+((Ri)),i=0,1
5、ADDA,#data
立即数加法指令
24H
累加器内容与立即数相加
A←(A)+data
6、ADDCA,Rn
寄存器带进位加法指令
38H~3FH
累加器内容、寄存器内容和进位位相加
A←(A)+(Rn)+(C),n=0~7
1
C,AC,OV
7、ADDCA,direct
直接寻址带进位加法指令
35H
累加器内容、内部RAM低128单元或专用寄存器内容与进位位加
A←(A)+(direct)+(C)
8、ADDCA,@Ri
间接寻址带进位加法指令
36H~37H
累加器内容、内部RAM低128单元内容及进位位相加
A←(A)+((Ri))+(C),i=0,1
9、ADDCA,#data
立即数带进位加法指令
34H
累加器内容、立即数及进位位相加
A←(A)+data+(C)
10、AJMPaddr11
绝对转移指令
A10A9A810001A7A6A5A4A3A2A1A0
构造目的地址,实现程序转移。
其方法是以指令提供的11位地址,取代PC的低11位,.而PC的高5位保持不变。
PCl0~0←addrll
由于addrll的最小值是000H,最大值是7FFH,因此地址转移范围是2KB。
11、ANLA,Rn
寄存器逻辑与指令
58H~5FH
累加器内容逻辑与寄存器内容
A←(A)∧(Rn),n=0~7
12、ANLA,direct
直接寻址逻辑与指令
55H
累加器内容逻辑与内部RAM低128单元或专用寄存器内容
A←(A)∧(diret)
13、ANLA,@Ri
间接寻址逻辑与指令
56H~57H
累加器内容逻辑与内部RAM低128单元内容
A←(A)∧((Ri))i=0,1
14、ANLA,#data
立即数逻辑与指令
54H
累加器内容逻辑与立即数
A←(A)∧data
15、ANLdirect,A
累加器逻辑与指令
52H
内部RAM低128单元或专用寄存器内容逻辑与累加器内容
direct←(A)∧(direct)
16、ANLdirect,#data
逻辑与指令
53H
内部RAM低128单元或专用寄存器内容逻辑与立即数
direct←(direct)∧data
3
17、ANLC,bit
位逻辑与指令
82H
进位标志逻辑与直接寻址位
C←(C)∧(bit)
18、ANLC,/bit
B0H
进位标志逻辑与直接寻址位的反
MCS-51系列单片机指令以C开头的指令有10条,分别为:
CJNEA,dircet,relCJNEA,#data,relCJNERn,#data,relCJNE@Ri,#data,relCLRACLRCCLRbitCPLACPLCCPLbit
1、CJNEA,dircet,rel
数值比较转移指令
B5H
累加器内容与内部RAM低128字节或专用寄存器内容比较,不等则转移。
若(A)=(direct),则PC←(PC)+3,C←0
若(A)>(direct),则PC←(PC)+3+rel,C←0
若(A)<(direct),则PC←(PC)+3+rel,C←1
2、CJNEA,#data,rel
B4H
累加器内容与立即数比较,不等则转移。
若(A)=data,则PC←(PC)+3,C←0
若(A)>data,则PC←(PC)+3+rel,C←0
若(A)<data,则PC←(PC)+3+rel,C←1
3、CJNERn,#data,rel
B8H~BFH
寄存器内容与立即数比较,不等则转移。
若(Rn)=data,则PC←(PC)+3,C←0
若(Rn)>data,则PC←(PC)+3+rel,C←0
若(Rn)<data,则PC←(PC)+3+rel,C←1
4、CJNE@Ri,#data,rel
B6H~B7H
内部RAM低128单元内容与立即数比较,不等则转移。
若((Ri))=data,则PC←(PC)+3,C←0
若((Ri))>data,则PC←(PC)+3+rel,C←0
若((Ri))<data,则PC←(PC)+3+rel,C←1
5、CLRA
累加器清0指令
E4H
累加器清0
A←0
6、CLRC
进位标志清0指令
C3H
进位位清0
C←0
7、CLRbit
直接寻址位清0指令
C2H
直接寻址位清0
bit←0
8、CPLA
累加器取反指令
F4H
累加器取反
A←(A)
9、CPLC
进位标志取反指令
B3H
进位标志位状态取反
C←(c取反)
10、CPLbit
直接寻址位取反指令
B2H
直接寻址位取反
bit←(bit取反)
MCS-51系列单片机指令以D开头的指令有8条,分别为:
DAADECADECRnDECdirectDEC@RiDIVABDJNZRn,relDJNZdirect,rel
1、DAA
十进制调整指令
D4H
对BCD码加法运算的结果进行有条件的修正
若(A)3~0>9∨(AC)=1,则A3~0←(A)3~0+6
若(A)7~4>9∨(C)=1,则A7~4←(A)7~4+6
若(A)7~4=9∧(A)3~0>9,则A7~4←(A)7~4+6
DA指令不影响溢出标志
2、DECA
累加器减1指令
14H
累加器内容减1
A←(A)-1
3、DECRn
寄存器减1指令
18H~1FH
寄存器内容减1
Rn←(Rn)-1,n=0~7
4、DECdirect
直接寻址减1指令
15H
内部RAM低128单元及专用寄存器内容减1
direct←(direct)-1
5、DEC@Ri
间接寻址减1指令
16H~17H
内部RAM低128单元内容减1
(Ri)←((Ri))-1,i=0,1
6、DIVAB
无符号数除法指令;
84H
A的内容被B的内容除。
指令执行后,商存于A中,余数存于B中。
A←(A)/(B)的商
B←(A)/(B)的余数
4
C被清0;
若B=00H,除法无法进行,并使OV=1;
否则OV=0。
7、DJNZRn,rel
寄存器减1条件转移指令
D8H~DFH
寄存器内容减1。
不为0转移;
为0顺序执行。
Rn←(Rn)-l,n=0~7
若(Rn)≠0,则PC←(PC)+2+rel
若(Rn)=0,则PC←(PC)+2
8、DJNZdirect,rel
直接寻址单元减1条件转移指令
D5H
内部RAM低128单元内容减1。
若(direct)≠0,则PC←(PC)+3+rel
若(direct)=0,则PC←(PC)+3
MCS-51系列单片机指令以I开头的指令有5条,分别为:
INCAINCRnINCdirectINC@RiINCDPTR
1、INCA
累加器加1指令
04H
累加器内容加1
A←(A)+1
2、INCRn
寄存器加1指令
08H~0FH
寄存器内容加1
Rn←(Rn)+1,n=0~7
3、INCdirect
直接寻址单元加1指令
05H
内部BAM低128单元或专用寄存器内容加1
direct←(direct)+1
4、INC@Ri
间接寻址单元加1指令
06H~07H
内部RAM低128单元内容加1
(Ri)←((Ri))+1;
i=0,l
5、INCDPTR
16位数据指针加1指令
A3H
数据指针寄存器DPTR内容加1
DPTR←(DPTR)+1
MCS-51系列单片机指令以J开头的指令有8条,分别为:
JBbit,relJBCbit,relJCrelJMP@A+DPTRJNBbit,relJNCrelJNZrelJZrel
1、JBbit,rel
位条件转移指令。
20H
根据指定位的状态,决定程序是否转移。
若为1则转移;
否则顺序执行。
若(bit)=1,则PC←(PC)+3+rel
若(bit)≠1,则PC←(PC)+3
2、JBCbit,rel
位条件转移清0指令
10H
对指定位的状态进行测试。
若为1,则把该位清0并进行转移;
否则程序顺序执行。
若(bit)=1,则PC←(PC)+3+rel,bit←0
3、JCrel
累加位条件转移指令
40H
根据累加位(C)的状态决定程序是否转移,若为1则转移,否则顺序执行。
若(C)=1,则PC←(PC)+2+rel
若(C)≠1,则PC←(PC)+2
4、JMP@A+DPTR
无条件间接转移指令
72H
A内容与DPTR内容相加作为转移目的地址,进行程序转移。
PC←(A)+(DPTR)
5、JNBbit,rel
位条件转移指令
30H
若为0则转移;
若(bit)=0,则PC←(PC)+3+rel
若(bit)≠0,则PC←(PC)+3
6、JNCrel
50H
根据累加位(C)的状态决定程序是否转移。
若为o则转移;
若(C)=0,则PC←(PC)+2+rel
若(C)≠0,则PC←(PC)+2
7、JNZrel
判0转移指令
70H
累加位(A)的内容不为0,则程序转移;
若(A)≠0,则PC←(PC)+2+rel
若(A)=0,则PC←(PC)+2
8、JZrel
60H
累加位(A)的内容为o,则程序转移;
若(A)=0,则PC←(PC)+2+rel
若(A)≠0,则PC←(PC)+2
MCS-51系列单片机指令以L开头的指令就2条,分别为:
LCALLaddr16LJMPaddrl6
1、LCALLaddr16
长调用指令
12H
按指令给定地址进行子程序调用
PC←(PC)+3
PC←addrl6
在64KB的范围内调用子程序
2、LJMPaddrl6
长转移指令
02H
使程序按指定地址进行无条件转移
MCS-51系列单片机指令以M开头的指令有24条,分别为:
MOVA,RnMOVA,directMOVA,@RiMOVA,#dataMOVRn,AMOVRn,directMOVRn,#dataMOVdirect,AMOVdirect,RnMOVdirect2,direct1MOVdirect,@RiMOVdirect,#dataMOV@Ri,AMOV@Ri,directMOV@Ri,dataMOVC,bitMOVbit,CMOVDPTR,#datal6MOVCA,@A+DPTRMOVCA,@A+PCMOVXA,@RiMOVXA,@DPTRMOVX@Ri,AMOVX@DPTR,AMULAB
1、MOVA,Rn
寄存器数据传送指令
E8H~EFH
寄存器内容送累加器
A←(Rn),n=0~7
2、MOVA,direct
直接寻址数据传送指令
E5H
内部RAM低126单元或专用寄存器内容送累加器
A←(direct)
3、MOVA,@Ri
间接寻址数据传送指令
E6H~E7H
内部RAM低128单元内容送累加器
A←((Ri)),i=0,1
4、MOVA,#data
立即数据传送指令
74H
立即数送累加器
A←data
5、MOVRn,A
累加器数据传送指令
F8H~FFH
累加器内容送寄存器
Rn←(A)
6、MOVRn,direct
A8H~AFH
内部RAM低128单元或专用寄存器内容送累加器
Rn←(direct),n=0~7
7、MOVRn,#data
78H~7FH
立即数送寄存器
Rn←data,n=0~7
8、MOVdirect,A
F5H
累加器内容送内部RAM低128单元或专用寄存器
direct←(A)
9、MOVdirect,Rn
88H~8FH
寄存器内容送内部RAM低128单元或专用寄存器
direct←(Rn),n=0~7
10、MOVdirect2,direct1
85H
内部RAM低123单元或专用寄存器之间的相互传送
direct2←(direct1)
11、MOVdirect,@Ri
86H~87H
内部RAM低128单元内容送内部RAM低128单元或专用寄存器
direct←((Ri)),i=0,1
12、MOVdirect,#data
立即数传送指令
75H
立即数送内部RAM低128单元或专用寄存器
direct←data
13、MOV@Ri,A
F6H~F7H
累加器内容送内部RAM低128单元
(Ri)←(A),i=0,1
14、MOV@Ri,direct
A6H~A7H
内部RAM低128单元或专用寄存器内容送内部RAM低128单元
(Ri)←(direct),i=0,1
15、MOV@Ri,data
76H~77H
立即数送内部RAM低128单元
(Ri)←data,i=0,1
16、MOVC,bit
位数据传送指令
A2H
内部RAM可寻址位或专用寄存器的位状态送累加位C
C←(bit)
17、MOVbit,C
累加位数据传送指令
92H
累加器状态送内部RAM可寻址位或专用寄存器的指定位
bit←(C)
18、MOVDPTR,#datal6
+六位数据传送指令
90H
十六位立即数送数据指针
DPH←datal5~8
DPL←data7~0
19、MOVCA,@A+DPTR
程序存储器读指令
93H
读程序存储器单元内容送累加器
A←((A)+(DPTR))
变址寄存器A内容加基址寄存器DPTR内容时,低8位产生的进位直接加到高位,不影响进位标志。
20、MOVCA,@A+PC
83H
A←((A)+(PC))
同MOVCA,@A+DPTR指令(序号70)
21、MOVXA,@Ri
寄存器间接寻址外部RAM读指令
E2H~E3H
读外部RAM低256单元数据送累加器
22、MOVXA,@DPTR
数据指针间接寻址外部RAM读指令
E0H
读外部RAM单元数据送累加器
A1←((DPTR))
字