单片机期末总结最完整版Word下载.docx
- 文档编号:4577242
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:86
- 大小:693.02KB
单片机期末总结最完整版Word下载.docx
《单片机期末总结最完整版Word下载.docx》由会员分享,可在线阅读,更多相关《单片机期末总结最完整版Word下载.docx(86页珍藏版)》请在冰点文库上搜索。
FFH
专用寄存器区
RAM
8011
7EH
基本RAM区
oon
OOOOU
4•数据存储器
Fill
7FH
30112IH
20H
IFH
OOH
特殊功能寄"
器区
用户
RAMK
程序存储器
(a)程序存储器
内部数据存储器外部数据存储器
(b)数据存储器
MCS-51基本型单片机部数据存储器有256B的存储空间,地址为OOH~FFH;
外部数据存储器的地址空间最大为64KB,编址为OOOOH-FFFFHo
256B的部存储器按功能划分为两部分:
地址为00H-7FH的低128B的基本RAM区和地址为80H-FFH的高128B的特殊功能寄存器(SFR)区
基本RAM区分为工作寄存器区,位寻址区,用户RAM区
工作寄存区(00H〜:
LFH).共分为4组.每组由8个工作寄存器,编号R0~R7
位寻址区(20H~2FH).W个单元,既可以作为普通RAM单元使用,有可以对单元中的每—位进行位操作。
用户RAM区(30H〜7FH):
用于存放随机数据及运算的中间结果。
程序状态字寄存器(PSW):
RS1,RSO(PSW4PSW.3):
工作寄存器组选择
•ZTTJtU止
(MSB>
(LSB>
AMB
RSI
kso
i用部“dill
i
KOl<
7M甩的览M为"
0711
1
RO-R7力儒〜0FH
£
«
:
W/rSOI2
RO-R?
的堆址外jo-ini
KO-R7IS-1FH
V>
H
2FII
21-11
2OH
201
2BH
2AH
2W
2»
2?
2611
25H
2411
UH
22H
2IH
IMl
IH1I
I7H
lOti
OHI
ami
0711
7KH
TEH
7I)H
7CH
7BH
7AH
?
VH
7811
77H
76H
75H
74H
7311
7211
7111
61-H
6(UI
6I>
I<
6C»
I
6HH
6AH
69H
6KH
6?
ll
66H
6SH
64H
6311
621(
6IH
Mill
5FH
5BH
SDH
St'
5AH
59H
5«
5T||
$611
55H
Mil
S3H
52H
SIH
5011
4FI1
4BI1
4DH
4CI
4HH
4AII
49H
48H
47>
l
46H
4SI1
44l<
43H
42H
4111
40H
3EI(
5DK
5CH
JIlli
3AH
3。
"
38M
37II
36H
35H
MH
33H
3211
3111
3<
HI
ZFH
2EH
21)11
2CH
ZAH
前H
2«
tl
27H
24H
23H
2211
2111
2Ctl
IEH
IDII
ICH
IBII
IAH
I9H
IXH
1711
1611
1511
I4H
1211
IIH
IOH
01-1<
OHH
ODIi
OCH
l)HI<
OAH
09H
0811
0611
05H
04H
0311
O2H
0111
(Mill
HIPRAMK
<
X>
II
控制位。
可用软件对它们置1或清0,以选择当前工作寄存器的组号。
堆栈指针寄存器SP:
堆栈只允许在其一端进行数据插入和数据删除操作的线性表。
PUSH,数据写入堆栈称为插入运算(入栈);
POP,从堆栈中读出数据称为删除运算(出栈)。
堆栈的特点:
后进先出LIFO(Last-InFirt-0ut)o
堆栈有两种类型:
向上生长型,向下生长型。
进栈操作:
先SP加后写入数据
出栈操作:
先读出数据.后SP减1
MCS-51单片机复位后,SP的初值自动设为07H;
5•什么是振荡周期,时钟周期,机器周期和指令周期。
如何计算机器周期的确切时间?
1)振荡周期是指为单片机提供脉冲信号的振荡源的周期,是单片机最基本的时间单位。
通常由外接晶振与部电路来提供振荡脉冲信号,其频率记为九此频率的倒数即是振荡周期。
2)振荡脉冲经过二分频后就是单片机的时钟信号,时钟信号的周期称为时钟周期,又定义为状态,用S表示。
时钟周期是振荡周期的二倍。
3)机器周期是指令执行过程中完成某一个基本操作所需的时间。
一个机器周期等于12个
振荡周期。
即A,o
/JOSC
4)指令周期是指执行一条指令所需要的时间,根据指令不同,可包含1、2、4个机器周期。
常用符号说明:
符号
含义
Rh
Ri
A
兴示半前选定詣仔器组的1.作寄仔器R0~R7*=0〜7
表示作为何接寻址的需存器,只有R0.R1两个•即:
=0.1
累加器A.ACC则表爪累加器A的地址
丰data
#data16addrl6addrl1directrelbit
(X)«
)
$
/
衣示8位立即数,即00H〜FFH
表示16位K即数.即0000H-FFFFH
表示16位地址,町用于64KB范田内寻址JHTLCALL和LJMP指令屮农示11位地址阿用于2KB范国内7址•川于ACALLfilAJMP指令中片内8位RAM单•元地址•包新特殊功能詣〃益的地址或符号名称
常符号的8位地址倔移虽(一128〜十127),用TSJMP和条件转移描令中
位寻址区的直接寻址位,即内部RAMC包括SFR〉中的町寻址位
1<小x地址单兀中的内容•或山x所指定的M需(1器的内容
it|X河搖址的单元中的内容
将箭头后而的内容传送到箭头前而去
円前折令所在地灿
加在位地址之前,丧示该位状态取反
@
间按丁址寄仔器或展址奇存器的w缀
寻址方式:
(1)立即寻址。
操作数直接在指令中给出,它可以是二进制、十进制、十六进制数,也可以是带单引号的字符,通常把这种操作数称为立即数,它的寻址围就是指令本身所在的程序存储单元。
例:
MOVA,#25H;
MOVDPTR,#1234H;
(2)直接寻址。
在指令中直接给出存放操作数的存单元的地址。
寻址围为:
部RAM低128字节单元,特殊功能寄存器。
MOVA.25H;
(3)寄存器寻址。
指令中给岀的是操作数所在的寄存器。
4组工作寄存器(R0~R7),部分特殊功能寄存器,如A、B、DPTRo
MOVA.R7;
(4)寄存器间接寻址。
存放操作数的存单元的地址放在寄存器中,指令只给出寄存器(包括Ri和DPTR),寄存器名称前加"
前缀标志。
寻址围:
地址围从00~FFH的全部部RAM单元,包括堆栈区,但不包括特殊功能寄存器,以及地址围从0000~FFFFH的全部片外RAMo
MOVA,R7;
(5)变址寻址。
将基址寄存器与变址寄存器的容相加,结果作为操作数的地址。
变址寻址主要用于查表操作。
64KB的程序存储空间。
MOVCA.A+DPTR;
(6)相对寻址。
指令中给出的操作数是程序相对转移的偏移量。
偏移量是一个带符号的单字节数,围为-128~+127。
S〕MP50H;
⑺位寻址。
操作数是位地址。
寻址围:
部RAM位寻址区共128位(位地址:
00~7FH),21个特殊功能寄存器中的可寻址位(对于8051,有83位)。
MCS-51单片机指令系统
I.数据传送类(29条)
1•普通传送指令
MOV:
部ROM;
MOVC:
外部ROM;
MOVX程序存储器。
1)片数据存储器传送指令(16条)
(1)以A为目的操作数指令(4条)
MOVA,#data;
MOVA,direct;
MOVA,Rn;
MOVA,Ri;
⑵以Rn为目的操作数的指令(3条)
MOVRn,#data;
MOVRn,direct;
MOVRn,A;
(3)以直接地址为目的操作数的指令(5条)
MOVdirect,#data;
MOVdirect,direct;
MOVdirect,A;
MOVdirect,Rn;
MOVdirect.Ri;
(4)以寄存器间接寻址为目的操作数的指令(3条)
MOVRi,#data;
MOVRi,direct;
MOVRi.A;
(5)16位书库传送指令(1条)
MOVDPTR,#datal6;
;
A—((DPTR))
(DPTR)—A
2)片外数据存储器传送指令(4条)使用DPTR进行间接寻址MOVXA,DPTRMOVXDPTR.A使用Ri进行间接寻址MOVXA,RiMOVXRi,A
MOVCA,A+PC;
A—((A)+(PC))
例3.7已知程序存储器中以TAB为起点地址的空间存放着0~9的ASCII码累加器A中存
放着一个0~9之间的BCD码数据。
要求用查表的方法获得A中数据的ASCII码。
解法上MOVDPTR,#TAB
MOVCA,A+DPTR
34H,35H,36H.
39H
RET
TAB:
DB30H,31H,32H,33H,
解法2:
37H,38H,
INCA
MOVCA,A+PC
34Ht35H,36H,
2.数据交换指令(5条)
(1)整字节交换指令
源操作数与累加器A进行8位数据交换,共有3条指令:
XCHA,Rn;
(A)—(Rn)
XCHA,direct;
(A)4—(direct)
XCHA,Ri;
(A)—((Ri))
(2)半字节交换指令
((Ri))3~0
源操作数与累加器A进行低4位的半字节数据交换,只有1条指令:
XCHDA,Ri;
(A)3~0
(3)累加器高低半字节交换指令
累加器A的高低半个字节进行数据交换,只有1条指令:
SWAPA;
(A)3~0(A)7-4
3堆栈操作指令
PUSHdirect;
--SP+1.SP4-(direct)
POPdirect;
--direct?
-(SP),SP^-(SP-l)
II•算术运算类指令
1.加法指令
1)不带进位的加法指令
ADD
A,#data
A4—(A)+data
A:
direct
A-(A)
+(direct)
A,Rn
+(Rn)
A:
Ri
A—(A)+
((Ri))
加法运算的结果会影响程序状态字寄存器PSW,其中包括:
1如果运算结果的最高位第7位有进位,进位标志CY置T,反之,CY清©
2如果运算结果的第3位有进位,辅助进位标志AC置T,反之,ACWO"
3如果运算结果的第6位有进位而第7位没有进位或者第7位有进位而第6位没有进位,则溢出标志OV置T(即OV二C7㊉C6),反之,6/清©
;
4奇偶标志P随累加器A中1的个数的奇偶性而变化。
例3.10已知(A)二97H,(R0)二89H,
执行指令:
ADDA,RO
解:
10010111
+10001001
2—00100000
运算结果:
(A)二20H,CY=1,AC二1,OV二2,P二
若97H和89H是两个无符号数,则结果是正确的;
反之,若97H和89H是两个带符号数(即负数),则由于有溢出而表明相加结果是错误的,因为两个负数相加结果不可能是正数。
2)带进位的加法指令
ADDC
ADDCADDC例3.11
ADDC解:
10001001+1
1—00100001
(A)=21H,CY=1,AC二1,OV=1,P二0。
3)力口1指令
INC
;
A—(A)+2
Rn
Rn—
(Rn)+1
direct
4—(direct)
+1
(Ri)—
((Ri))+1
DPTR
DPTR<
-(DPTR)
+1
加1指令的操作不影响程序状态字PSW的状态,只有“INCA"
指令可以影响奇偶标志位P
例3.13已知:
(A)二OFFH,(R3)二OFH,(30H)二0F0H,(R0)二40H,(40H)二OOH,(DPTR)=1234H,
执行如下指令:
INCR3
INC30H
INCRO
INCDPTR
其结果为:
(A)=00H,(R3)=10H,(30H)=OF1H,(RO)=40H.(40H)=01H.(DPTR)=1235H,PSW中仅P改变。
2.减法指令
1)带借位的减法指令
SUBB
A,#date
A—(A)-data-(CY)
A,direct
A—(A)-(direct)-(CY)
A—(A)-(Rn)-(CY)
A,Ri
A-(A)-((Ri))-(CY)
减法运算的结果会影响程序状态字寄存器PSW,其中包括:
1如果运算结果的最高位第7位有借位,则进位标志CY置反之,CY清"
0”;
2如果运算结果的第3位有借位,则辅助进位标志AC置"
1:
反之,AC清“0"
3如果运算结果的第6位有借位而第7位没有借位或者第7位有借位而第6位没有借位,则溢出标志OV置T(即OV二C7®
C6),反之,OV清©
例3・14已知(A)二0C9H,(R2)二54H,(CY)=lo
SUBBA,R2
11001001
-010101001
01110100
运算结果:
(A)=74H.CY二0,AC=0,OV=1,P二0。
若C9H和54H是两个无符号数,则结果74H是正确的;
反之,若为两个带符号数,则由于有溢出而表明结果是错误的,因为负数减正数其差不可能是正数。
2)减1指令组
4条减1指令:
DECA;
A—(A)
DECRn;
Rn—(Rn)-1
DECdirect
DECRi
direct4—(direct)-1
(Ri)-((Ri))-1
减1操作不影响PSW的状态,只有DECA影响奇偶标志位P
只有数据指针DPTR加1指令,而没有DPTR减2指令,如果要在程序设计中进行DPTR-1运算,只有通过编程完成
例3.3JL5假如(A)=OFH.(R7)=19H,(30H)二OOH,(RI)=40H.(40H)二OFFH,执行指令:
结果:
(A)=OEH,(R7)=18H,(30H)=OFFH,(RI)=40H,(40H)=0FEHoPSW中仅p改变
3乘法指令
MULAB
16位乘积的低位宇节放在A中:
高位宇节放在B中
乘法运算影响PSW的状态:
进位标志CY总是被清“0”,溢出标志位状态与乘积有关
例3.3.16已知(A)=80H(即十进制数128),(B)=40H(即十进制数64),
执行指令:
MULAB
执行结果:
乘积为2000H(十进制数为8192),(A)=00H,(B)二20H,CY二0,
OV=1
4.除法指令
DIVAB
除数:
B
被除数:
指令执行后,商存于A中,余数存于B中
除法运算影响PSW的状态:
进位标志位CY总是被清溢出标志位OV状态则反映除数情况
例3.17已知(A)=80H(即十进制数128),(B)=40H(即十进制数64),
DIVAB
商为02H,余数为OOH,(A)=02H,(B)=00H,CY二0,OV二0。
5•十进制调整指令:
用于对BCD码十进制数加法运算的结果进行修正。
DAA
十进制调整的修正方法:
(1)累加器低4位大于9或辅助进位位(AC)二1,则进行低4位加6修正
A—(A)+06H
(2)累加器高4位大于9或进位标志位(CY)二1,则进行高4位加6修正
A—(A)+60H
(3)累加器高4位为9、低4位大于9,则进行高4位和低4位分别加6修正
A—(A)+66H
例3.18试编写程序,实现93+59的加法运算.并分析执行过程。
加法运算程序为:
MOVA,#93H
ADDA:
#59H
DAA
程序执行的过程分析:
10010011
+01011002
11101100
01100110;
加66H调整
101010010
是正确的BCD码。
最终结果为101010010(152)
III.逻辑运算及移位类指令(24条)
1.逻辑与运算指令组
ANL
Adata
A(direct)
A(Rn)
A—(A)A
direct,#data
direct—
(direct)
direct,A
direct—
data
(A)
例3.19已知(A)=86H,试分析下面指令执行的结果:
(1)ANLA,#0FFH;
(2)ANLA,#0F0H;
(3)
ANLA,#0FH;
由上例可知,逻辑与指令可用于将指定位清0,方法:
将要清零的位与0相与,把要保留的位与1相与。
2.逻辑或运算指令组
ORLA,#data
A4—(A)Vdata
ORLA,direct
A4—(A)V(direct)
ORLA,Rn
A—(A)V(Rn)
ORLA,Ri
A-(A)V((Ri))
ORLdirect,#data
direct4—(direct)Vdata
ORLdirect,A
direct4—(direct)V(A)
例3.20已知(A)=86H,试分析下面指令执行的结果:
3逻辑异或运算指令组
XRL
As#data
A,Ri
例3.3.20
A—(A)data
A4—(A)(direct)
A—(A)(Rn)
A-(A)((Ri))
direct4—(direct)data
direct4—(direct)(A)
XRLA,#OFFH;
\|/\|7\JZ
(1(2(3(4军
已知(A)二86H,试分析下面指令执行的结果:
XRLA,#OFOH;
XRLA,#OFH;
XRLA,#1AH;
(1)A二79H;
(2)A二76H;
(3)A=89H;
(4)A二9CH,
4.累加器清"
0”和取反指令组
累加器清“0”指令CLRA;
A—0
累加器取反指令:
CPLA;
A—(A)
5•移位指令组
(1)累加器循环左移RLA;
(2)累加器循环右移RRA;
(3)带进位循环左移RLCA;
(4)带进位循环右移RRCA;
例3.3.23
若累加器A中的容为10001011B,CY二0,则执行RLCA指令后累加器A中的容
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 期末 总结 完整版
![提示](https://static.bingdoc.com/images/bang_tan.gif)