MCS-51单片机指令表(打印版).doc
- 文档编号:8775642
- 上传时间:2023-05-14
- 格式:DOC
- 页数:6
- 大小:446.50KB
MCS-51单片机指令表(打印版).doc
《MCS-51单片机指令表(打印版).doc》由会员分享,可在线阅读,更多相关《MCS-51单片机指令表(打印版).doc(6页珍藏版)》请在冰点文库上搜索。
附录1MCS-51单片机指令表
数据传送类指令
序号
指令格式
指令功能
字节
周期
1
MOV
A,Rn
Rn内容传送到A
1
1
2
MOV
A,direct
直接地址内容传送到A
2
1
3
MOV
A,@Ri
间接RAM单元内容送A
1
1
4
MOV
A,#data
立即数送到A
2
1
5
MOV
Rn,A
A内容送到Rn
1
1
6
MOV
Rn,direct
直接地址内容传送到Rn
2
2
7
MOV
Rn,#data
立即数传送到Rn
2
1
8
MOV
direct,A
A传送到直接地址
2
1
9
MOV
direct,Rn
Rn传送到直接地址
2
2
10
MOV
direct2,direct1
直接地址传送到直接地址
3
2
11
MOV
direct,@Ri
间接RAM内容传送到直接地址
2
2
12
MOV
direct,#data
立即数传送到直接地址
3
2
13
MOV
@Ri,A
A内容送间接RAM单元
1
1
14
MOV
@Ri,direct
直接地址传送到间接RAM
2
2
15
MOV
@Ri,#data
立即数传送到间接RAM
2
1
16
MOVC
A,@A+DPTR
代码字节送A(DPTR为基址)
1
2
17
MOVC
A,@A+PC
代码字节送A(PC为基址)
1
2
18
MOVX
A,@Ri
外部RAM(8地址)内容传送到A
1
2
19
MOVX
A,@DPTR
外部RAM内容(16地址)传送到A
1
2
20
MOV
DPTR,#data16
16位常数加载到数据指针
1
2
21
MOVX
@Ri,A
A内容传送到外部RAM(8地址)
1
2
22
MOVX
@DPTR,A
A内容传送到外部RAM(16地址)
1
2
23
PUSH
direct
直接地址压入堆栈
2
2
24
POP
direct
直接地址弹出堆栈
2
2
25
XCH
A,Rn
Rn内容和A交换
1
1
26
XCH
A,direct
直接地址和A交换
2
1
27
XCH
A,@Ri
间接RAM内容A交换
1
1
28
XCHD
A,@Ri
间接RAM内容和A交换低4位字节
1
1
算术运算类指令
序号
指令格式
指令功能
字节
周期
1
INC
A
A加1
1
1
2
INC
Rn
Rn加1
1
1
3
INC
direct
直接地址加1
2
1
4
INC
@Ri
间接RAM加1
1
1
5
INC
DPTR
数据指针加1
1
2
6
DEC
A
A减1
1
1
7
DEC
Rn
Rn减1
1
1
8
DEC
direct
直接地址减1
2
1
9
DEC
@Ri
间接RAM减1
1
1
10
MUL
AB
A和BRn相乘
1
4
11
DIV
AB
A除以BRn
1
4
12
DA
A
A十进制调整
1
1
13
ADD
A,Rn
Rn与A求和
1
1
14
ADD
A,direct
直接地址与A求和
2
1
15
ADD
A,@Ri
间接RAM与A求和
1
1
16
ADD
A,#data
立即数与A求和
2
1
17
ADDC
A,Rn
Rn与A求和(带进位)
1
1
18
ADDC
A,direct
直接地址与A求和(带进位)
2
1
19
ADDC
A,@Ri
间接RAM与A求和(带进位)
1
1
20
ADDC
A,#data
立即数与A求和(带进位)
2
1
21
SUBB
A,Rn
A减去Rn(带借位)
1
1
22
SUBB
A,direct
A减去直接地址(带借位)
2
1
23
SUBB
A,@Ri
A减去间接RAM(带借位)
1
1
24
SUBB
A,#data
A减去立即数(带借位)
2
1
逻辑运算类指令
序号
指令格式
指令功能
字节
周期
1
ANL
A,Rn
Rn“与”到A
1
1
2
ANL
A,direct
直接地址“与”到A
2
1
3
ANL
A,@Ri
间接RAM“与”到A
1
1
4
ANL
A,#data
立即数“与”到A
2
1
5
ANL
direct,A
A“与”到直接地址
2
1
6
ANL
direct,#data
立即数“与”到直接地址
3
2
7
ORL
A,Rn
Rn“或”到A
1
2
8
ORL
A,direct
直接地址“或”到A
2
1
9
ORLi
A,@R
间接RAM“或”到A
1
1
10
ORL
A,#data
立即数“或”到A
2
1
11
ORL
direct,A
A“或”到直接地址
2
1
12
ORL
direct,#data
立即数“或”到直接地址
3
2
13
XRL
A,Rn
Rn“异或”到A
1
2
14
XRL
A,direct
直接地址“异或”到A
2
1
15
XRL
A,@Ri
间接RAM“异或”到A
1
1
16
XRL
A,#data
立即数“异或”到A
2
1
17
XRL
direct,A
A“异或”到直接地址
2
1
18
XRL
direct,#data
立即数“异或”到直接地址
3
2
19
CLR
A
A清零
1
2
20
CPL
A
A求反
1
1
21
RL
A
A循环左移
1
1
22
RLC
A
带进位A循环左移
1
1
23
RR
A
A循环右移
1
1
24
RRC
A
带进位A循环右移
1
1
25
SWAP
A
A高、低4位交换
1
1
控制转移类指令
序号
指令格式
指令功能
字节
周期
1
JMP
@A+DPTR
相对DPTR的无条件间接转移
1
2
2
JZ
rel
A为0则转移
2
2
3
JNZ
rel
A为1则转移
2
2
4
CJNE
A,direct,rel
比较直接地址和A,不相等转移
3
2
5
CJNE
A,#data,rel
比较立即数和A,不相等转移
3
2
6
CJNE
Rn,#data,rel
比较Rn和立即数,不相等转移
3
2
7
CJNE
@Ri,#data,rel
比较立即数和间接RAM,不相等转移
3
2
8
DJNZ
Rn,rel
Rn减1,不为0则转移
2
2
9
DJNZ
direct,rel
直接地址减1,不为0则转移
3
2
10
NOP
空操作,用于短暂延时
1
1
11
ACALL
add11
绝对调用子程序
2
2
12
LCALL
add16
长调用子程序
3
2
13
RET
从子程序返回
1
2
14
RETI
从中断服务子程序返回
1
2
15
AJMP
add11
无条件绝对转移
2
2
16
LJMP
add16
无条件长转移
3
2
17
SJMP
rel
无条件相对转移
2
2
位操作指令
序号
指令格式
指令功能
字节
周期
1
CLR
C
清进位位
1
1
2
CLR
bit
清直接寻址位
2
1
3
SETB
C
置位进位位
1
1
4
SETB
bit
置位直接寻址位
2
1
5
CPL
C
取反进位位
1
1
6
CPL
bit
取反直接寻址位
2
1
7
ANL
C,bit
直接寻址位“与”到进位位
2
2
8
ANL
C,/bit
直接寻址位的反码“与”到进位位
2
2
9
ORL
C,bit
直接寻址位“或”到进位位
2
2
10
ORL
C,/bit
直接寻址位的反码“或”到进位位
2
2
11
MOV
C,bit
直接寻址位传送到进位位
2
1
12
MOV
bit,C
进位位位传送到直接寻址
2
2
13
JC
rel
如果进位位为1则转移
2
2
14
JNC
rel
如果进位位为0则转移
2
2
15
JB
bit,rel
如果直接寻址位为1则转移
3
2
16
JNB
bit,rel
如果直接寻址位为0则转移
3
2
17
JBC
bit,rel
直接寻址位为1则转移并清除该位
3
2
伪指令
指令中的符号标识
ORG
指明程序的开始位置
Rn
工作寄存器R0-R7
DB
定义数据表
Ri
工作寄存器R0和R1
DW
定义16位的地址表
@Ri
间接寻址的8位RAM单元地址(00H-FFH)
EQU
给一个表达式或一个字符串起名
#data8
8位常数
DATA
给一个8位的内部RAM起名
addr16
16位目标地址,范围64KB
XDATA
给一个8位的外部RAM起名
addr11
11位目标地址,范围2KB
BIT
给一个可位寻址的位单元起名
Rel
8位偏移量,范围-128~+127
END
指出源程序到此为止
Bit
片内RAM中的可寻址位和SFR的可寻址位
$
指本条指令的起始位置
Direct
直接地址,范围片内RAM单元(00H-7FH)和80H-FFH
数据存储器
数据存储器也称为随机存取数据存储器。
数据存储器分为内部数据存储和外部数据存储。
MCS-51内部RAM有128或256个字节的用户数据存储(不同的型号有分别),片外最多可扩展64KB的RAM,构成两个地址空间,访问片内RAM用“MOV”指令,访问片外RAM用“MOVX”指令。
它们是用于存放执行的中间结果和过程数据的。
MCS-51的数据存储器均可读写,部分单元还可以位寻址。
MCS-51单片机的内部数据存储器在物理上和逻辑上都分为两个地址空间,即:
数据存储器空间(低128单元);
特殊功能寄存器空间(高128单元);
这两个空间是相连的,从用户角度而言,低128单元才是真正的数据存储器。
下面我们就来详细的与大家讲解一下:
低128单元:
片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻址方式,R0、R1和DPTR都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR是16位地址指针,寻址范围就可达到64KB。
也就是说在寻址片外数据存储器时,寻址范围超过了256B,就不能用R0、R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。
从上图中我们可以看到,8051单片机片内RAM共有256个单元(00H-FFH),这256个单元共分为两部分。
其一是地址从00H—7FH单元(共128个字节)为用户数据RAM。
从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。
从下图中可清楚地看出它们的结构分布。
1、通用寄存器区(00H-1FH)
在00H—1FH共32个单元中被均匀地分为四块,如下图,每块包含八个8位寄存器,均以R0—R7来命名,我们常称这些寄存器为通用寄存器。
这四块中的寄存器都称为R0—R7,那么在程序中怎么区分和使用它们呢?
聪明的INTEL工程师们又安排了一个寄存器——程序状态字寄存器(PSW)来管理它们,CPU只要定义这个寄存的PSW的D3和D4位(RS0和RS1),即可选中这四组通用寄存器。
对应的编码关系如下表所示。
惹程序中并不需要用4组,那么其余的可用做一般的数据缓冲器,CPU在复位后,选中第0组工作寄存器。
2、位寻址区(20H-2FH)
片内RAM的20H—2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。
位寻址区共有16个字节,128个位,位地址为00H—7FH。
位地址分配如下表所示:
CPU能直接寻址这些位,执行例如置“1”、清“0”、求“反”、转移,传送和逻辑等操作。
我们常称MCS-51具有布尔处理功能,布尔处理的存储空间指的就是这些为寻址区。
3、用户RAM区(30H-7FH)
在片内RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下的80个单元就是供用户使用的一般RAM区了,地址单元为30H-7FH。
对这部份区域的使用不作任何规定和限制,但应说明的是,堆栈一般开辟在这个区域。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 单片机 指令 打印