单片机入门必备 中断等常用知识文档格式.docx
《单片机入门必备 中断等常用知识文档格式.docx》由会员分享,可在线阅读,更多相关《单片机入门必备 中断等常用知识文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
![单片机入门必备 中断等常用知识文档格式.docx](https://file1.bdocx.com/fileroot1/2023-2/2/04d98abd-dafd-4581-8066-fd7d4b9a40bd/04d98abd-dafd-4581-8066-fd7d4b9a40bd1.gif)
80H
P0
特殊功能
寄存器区
(SFR)
用户RAM区
(堆栈、数据缓冲)
位寻址区
(00H~7FH)
第3组
工作寄存器区
第2组
第1组
第0组
7FH
30H
2FH
20H
1FH
18H
17H
10H
0FH
08H
07H
00H
主要SFR寄存器介绍
1.电源控制寄存器PCON(87H)(不可位寻址)
D7
D6
D5
D4
D3
D2
D1
D0
SMOD
-
GF1
GF0
PD
IDL
SMOD:
波特率倍增位。
SMOD=1,波特率提高1倍。
GF1,GF0:
通用标志位。
PD:
掉电方式位。
当PD=1时,进入掉电方式。
IDL:
空闲方式位。
当IDL=1,进入空闲工作方式。
2.定时/计数器控制寄存器TCON(88H)
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
IT0:
选择
的中断触发方式:
IT0=0,电平触发,低电平有效;
IT0=1,边沿触发,下降沿有效。
IT1:
功能同IT0。
IE0:
外部中断
的中断请求标志位。
若有中断申请,IE0=1,否则IE0=0。
在电平触发方式中,CPU响应中断后,硬件和软件都无法清除IE0标志位,只能撤消外部引脚的低电平才能清除;
在边沿触发方式中,IE0由硬件清零,负脉冲宽度不小于一个机器周期。
IE1:
功能同IE0。
TF0,TF1,TF2:
分别为片内T0,T1,T2溢出中断请求标志位。
由硬件置位和清零。
TR0,TR1,TR2:
分别为T0,T1,T2的运行控制位。
1启动,0停止。
3.定时/计数器工作方式寄存器TMOD(89H)(不可位寻址)
GATE
C/
M1
M0
|-------------------T1--------------------|--------------------T0-------------------|
GATE:
门控制位。
GATE=0,由TR0或TR1启动定时器;
GATE=1,只有TR0或TR1为1且
或
为高电平时才能启动定时器。
:
定时/计数选择位。
=1,计数方式,计数脉冲从外部引脚输入;
=0定时方式,计数脉冲周期为机器周期。
M1,M0:
工作方式选择位。
见下表。
工作方式
功能
定时初值计算
13位定时器/计数器
TH=X高8位,TL=X低5位
1
16位定时器/计数器
TH=X高8位,TL=X低8位
2
自动重装初值的8位定时器/计数器
Reloaddirection:
TH--->
TL
TH=TL=8位X
3
仅T0分为两个8位定时器/计数器
,TH0=8位
,TL0=8位
Note:
只有T1和T2能做波特率发生器
4.串行端口控制寄存器SCON(98H)
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
SM0,SM1:
串行口工作方式选择位,见下表。
SM2:
多机通讯选择位。
在工作方式2和3中,当SM2=1时,如果接收到的第9位RB8为1,则RI被激活;
RB8为0,RI不能被激活。
在方式1中,如果SM2=1且没有接收到有效的停止位,RI不会被激活。
在方式0中,SM2必须为0。
REN:
串行口允许接收位。
1允许接收,0禁止接收。
TB8:
发送数据的第9位。
RB8:
接收数据的第9位。
TI:
串行端口发送中断请求标志位。
每发送完一帧数据,由硬件置位,需要软件清零。
RI:
串行端口接收中断请求标志位。
每接收完一帧数据,由硬件置位,需要软件清零。
注意:
RI和TI共用一个串行中断,所以在程序中要识别是RI还是TI产生的中断。
同步移位寄存器
8位UART
9位UART不变波特率
9位UART可变波特率
5.中断允许寄存器IE(A8H)
EA
ET2
ES
ET1
EX1
ET0
EX0
EA:
总中断允许控制位。
EA=1,打开所有中断;
EA=0,关闭所有中断。
ES:
串行端口中断允许控制位。
1打开,0关闭。
ET1:
T1中断允许控制位。
EX1:
中断允许控制位。
ET0:
T0中断允许控制位。
EX0:
6.中断优先级寄存器IP(B8H)
PT2
PS
PT1
PX1
PT0
PX0
当相应的位为0时,对应中断源为低优先级;
否则为高优先级。
串行端口→T1→
→T0→
低————————————→高
7.程序状态字PSW(D0H)
CY
AC
F0
RS1
RS0
OV
P
CY:
进位标志位。
当D7有进位或借位时,CY=1,否则CY=0。
CY也是位操作累加器,助记符为C。
AC:
辅助进位位。
当低半字节D3向高半字节进位或借位时,AC=1,否则AC=0。
F0:
用户标志位。
用户可以根据自己需要对F0进行定义。
RS1,RS2:
工作寄存器组选择控制位。
单片机复位后,RS1RS0=00。
OV:
溢出标志位。
当进行补码运算时,如有溢出,即结果超出-128~+127时,OV由硬件置1,否则为0。
P:
奇偶校验标志位。
该位始终跟踪累加器A中1的个数的奇偶性。
若为奇数,P=1,否则,P=0。
系统复位、中断入口地址
中断源
中断号
入口地址
保留存储单元
系统复位
-
0000H
0000H~0002H
外部中断0(/INT0)
0003H
0003H~000AH
定时器0溢出中断
000BH
000BH~0012H
外部中断1(/INT1)
0013H
0013H~001AH
定时器1溢出中断
001BH
001BH~0022H
串行口中断
4
0023H
0023H~002AH
定时器2溢出中断
5
002BH
002BH~0032H
MCS-51系列单片机指令表
算术运算指令(共24条)
机器码
助记符
对标志影响
字节数
周期数
28~2F
ADDA,Rn
(A)+(Rn)→A
√
25
ADDA,direct
(A)+(direct)→A
26,27
ADDA,@Ri
(A)+((Ri))→A
24
ADDA,#data
(A)+data→A
38~3F
ADDCA,Rn
(A)+(Rn)+Cy→A
35
ADDCA,direct
(A)+(direct)+Cy→A
36,37
ADDCA,@Ri
(A)+((Ri))+Cy→A
34
ADDCA,#data
(A)+data+Cy→A
98~9F
SUBBA,Rn
(A)-(Rn)-Cy→A
95
SUBBA,direct
(A)-(direct)-Cy→A
96,97
SUBBA,@Ri
(A)-((Ri))-Cy→A
94
SUBBA,#data
(A)-data-Cy→A
04
INCA
(A)+1→A
×
08~0F
INCRn
(Rn)+1→Rn
05
INCdirect
(direct)+1→direct
06,07
INC@Ri
((Ri))+1→(Ri)
A3
INCDPTR
(DPTR)+1→DPTR
14
DECA
(A)-1→A
18~1F
DECRn
(Rn)-1→Rn
15
DECdirect
(direct)-1→direct
16,17
DEC@Ri
((Ri))-1→(Ri)
A4
MULAB
(A)·
(B)→AB
84
DIVAB
(A)/(B)→AB
DAA
对A进行十进制调整
逻辑运算指令(共25条)
58~5F
ANLA,Rn
(A)∧(Rn)→A
55
ANLA,direct
(A)∧(direct)→A
56,57
ANLA,@Ri
(A)∧((Ri))→A
54
ANLA,#data
(A)∧data→A
52
ANLdirect,A
(direct)∧(A)→direct
53
ANLdirect,#data
(direct)∧data→direct
48~4F
ORLA,Rn
(A)∨(Rn)→A
45
ORLA,direct
(A)∨(direct)→A
46,47
ORLA,@Ri
(A)∨((Ri))→A
44
ORLA,#data
(A)∨data→A
42
ORLdirect,A
(direct)∨(A)→direct
43
ORLdirect,#data
(direct)∨data→direct
68~6F
XRLA,Rn
(A)⊕(Rn)→A
65
XRLA,direct
(A)⊕(direct)→A
66,67
XRLA,@Ri
(A)⊕((Ri))→A
64
XRLA,#data
(A)⊕data→A
62
XRLdirect,A
(direct)⊕(A)→direct
63
XRLdirect,#data
(direct)⊕data→direct
E4
CLRA
0→A
F4
CPLA
/(A)→A
23
RLA
A循环左移一位
33
RLCA
A带进位循环左移一位
03
RRA
A循环右移一位
13
RRCA
A带进位循环右移一位
C4
SWAPA
A半字节交换
数据传送指令(共28条)
E8~EF
MOVA,Rn
(Rn)→A
E5
MOVA,direct
(direct)→A
E6,E7
MOVA,@Ri
((Ri))→A
74
MOVA,#data
data→A
F8~FF
MOVRn,A
(A)→(Rn)
A8--AF
MOVRn,direct
(direct)→Rn
78~7F
MOVRn,#data
data→Rn
F5
MOVdirect,A
(A)→direct
88~8F
MOVdirect,Rn
(Rn)→direct
85
MOVdirect1,direct2
(direct2)→direct1
86,87
MOVdirect,@Ri
((Ri))→direct
75
MOVdirect,#data
data→direct
F6,F7
MOV@Ri,A
(A)→(Ri)
A6,A7
MOV@Ri,direct
direct→(Ri)
76,77
MOV@Ri,#data
data→(Ri)
90
MOVDPTR,#data16
data16→DPTR
93
MOVCA,@A+DPTR
((A)+(DPTR))→A
83
MOVCA,@A+PC
((A)+(PC))→A
E2,E3
MOVXA,@Ri
((Ri)+P2)→A
E0
MOVXA,@DPTR
((DPTR))→A
F2,F3
MOVX@Ri,A
(A)→(Ri)+(P2)
MOV@DPTR,A
(A)→(DPTR)
C0
PUSHdirect
(SP)+1→SP
(direct)→SP
POPdirect
((direct))→direct(SP)-1→SP
C8~8F
XCHA,Rn
(A)←→(Rn)
C5
XCHA,direct
(A)←→(direct)
C6,C7
XCHA,@Ri
(A)←→((Ri))
D6,D7
XCHDA,@Ri
(A)0--3←→((Ri))0--3
位操作指令(共12条)
对标志位影响
C3
CLRC
0→Cy
C2
CLRbit
0→bit
SETBC
1→Cy
SETBbit
1→bit
B3
CPLC
/(Cy)→Cy
B2
CPLbit
/(bit)→bit
82
ANLC,bit
(Cy)∧(bit)→Cy
B0
ANLC,/bit
(Cy)∧/(bit)→Cy
72
ORLC,bit
(Cy)∨(bit)→Cy
A0
ORLC,/bit
(Cy)∨/(bit)→Cy
A2
MOVC,bit
(bit)→Cy
92
MOVbit,C
(Cy)→bit
控制转移指令(共22条)
*1
ACALLaddr11
(PC)+2→PC(SP)+1→SP(PC)L→SP
(SP)+1→SP
(PC)H→SPaddr11→PC10~0
12
LCALLaddr16
(SP)+1→SP(PC)H→SPaddr16→PC
22
RET
((SP))→PCH(SP)-1→SP
((SP))→PCL(SP)-1→SP
32
RETI
从中断返回
AJMPaddr11
addr11→PC10~0
02
LJMPaddr16
addr16→PC
80
SJMPrel
(PC)+(rel)→PC
73
JMP@A+DPTR
(A)+(DPTR)→PC
60
JZrel
(PC)+2→PC若(A)=0,(PC)+(rel)→PC
70
JNZrel
(PC)+2→PC若(A)≠0,(PC)+(rel)→PC
40
JCrel
(PC)+2→PC
若(Cy)=1,(PC)+(rel)→PC
50
JNCrel
若(Cy)=0,(PC)+(rel)→PC
20
JBbit,rel
(PC)+3→PC若(bit)=1,(PC)+(rel)→PC
30
JNBbit,rel
(PC)+3→PC若(bit)≠1,(PC)+(rel)→PC
10
JBCbit,rel
(PC)+3→PC若(bit)=1,
0→bit,(PC)+(rel)→PC
B5
CJNEA,direct,rel
(PC)+3→PC
若(A)≠(direct),则(PC)+(rel)→PC
若(A)<
(direct),则1→Cy
B4
CJNEA,#data,rel
若(A)≠data,则(PC)+(rel)→PC
DATA,则1→CY<
font>
B8~8F
CJNERn,#data,rel
若(Rn)≠data,则(PC)+(rel)→PC
若(Rn)<
B6,B7
CJNE
@Ri,#data,rel
若((Ri))≠data,则(PC)+(rel)→PC
若((Ri))<
f