单片机专用寄存器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最后存 入的, 最先出 去 最先存 入的, 只有最 后出去
wk.baidu.com
SP总是指向最后一个压入的数据在堆栈中的存放地址。
18
(2)SP是一个8位的寄存器,它指示栈顶地址(最后 一个压入堆栈的数据的存放地址)。 (3)压栈:先将SP=(SP)+1,再将要压栈的数据 存入SP指向的内部RAM单元。MCS-51/52的堆栈向上 增长。 (4)弹出:将SP指示的地址的内容取出,然后SP= (SP)-1。 (5)复位后SP的默认值SP=7,故默认堆栈从08单元 开始。
21
7. 并行 端口数据缓冲寄存器 并行I/O端口数据缓冲寄存器
P3 0B0H 可位寻址 P2 0A0H 可位寻址 P1 90H 可位寻址 P0 80H 可位寻址
(1)可读可写。 ① 写操作,将数据送到输出端口; ② 读操作则是读入端口引脚的状态。 要正确地读入外部状态,作为输入端口使用时,应该先向端 口写“1”。由于复位后的默认状态为“1”,如果没有输出过 “0”,则也可以不写“1”而直接进行读操作。
19
(6)由于0~1FH是4个工作寄存器区,20H~2FH是可 以为寻址的区域,一般应该将堆栈设为30H以后。 通常将堆栈设置在程序工作用缓存空间后,也就 是内部RAM的高地址空间。例如30H~0BFH为数据缓 存空间,则对站可以设定在0C0H~0FFH。 (7)直接给SP赋值,设定堆栈的位置,例如 MOV SP ,#0CFH, 设定堆栈从0D0H开始(第一个压入的数据存放在(SP) +1=0CFH+1=0D0H)。
20
6. 数据指针 数据指针DPTR 16位的寄存器。由两个8位寄存器构成。 DPH DPL 高8位DPH,低8位DPL,地址分别为: 83H 82H
① DPTR不能进行位寻址操作。 ② DPTR主要用于对64KB存储器进行访问时,作地址寄存器。 ③ DPTR也可以做为两个普通的8位寄存器使用。 ④ 它可以进行16位的加1运算:INC DPTR ⑤ 但不能进行16位的减一运算。 ⑥ DPTR是MCS51/52中唯一一个可以操作的16位寄存器。
10
1。程序计数器PC 。程序计数器
是一个独立的16为寄存器,不占用内部SFR空间。 作用:存放下一条要执行的指令的地址。 每取出一条指令,它的内容都要自动进行修改,指向下一条要 执行的指令。 不能直接访问PC。
11
2. 累加寄存器A (1)地址:0E0H; (2)作用:累加寄存器。 在运算中,大部分单操作数指令的操作数取自A;许 多双操作数指令的一个操作数取自A;算术运算指令 的结果保存在A。(或B,A) (3)符号:用符号A表示。
13
0E7H D7
0E6H D6
0E5H D5
0E4H D4
0E3H D3
0E2H D2
0E1H 0E0H D1 D0
3。寄存器B (1)可寻址的寄存器,地址:0F0H,符号:B; (2)作用:辅助寄存器,乘法指令中,作为第二操 作数,并存放结果高位字节;除法指令:除数,并存 放结果的余数部分;其他情况,做一般寄存器使用。 (3)B寄存器的各位具有独立的位地址,可以进行 位寻址访问操作。
地址: 地址:87H
D3 GF1 D2 GF0 D1 PD D0 IDL
(1) SMOD——串口波特率控制位 =0, 波特率正常
不能位寻址
=1, 串行通信方式1,2,3时,波特率加倍 (2) GF1,GF0——通用标志位,软件设置,软件判别控制转移。 例如,进入待机方式时,将GF0置1,而非待机状态GF0=0, 则一旦发生中断,软件通过查询GF0就可以识别是正常工作状态 时的中断请求,还是待机状态时的中断请求,从而转不同的程序 进行处理。
17
(1)堆栈:它是一个特殊的存储空间,在该存 储空间,可以使用特殊的指令按特殊的规则进 行访问。这个规则就是后进先出原则。 一般有两条指令: 数据按特殊规则存入该空间——压栈。 从该空间按特殊的规则取出——弹出。 数据在该空间的存放位置,由一个寄存器指 示——堆栈指针SP。
弹出 压栈 SP 底
5. 堆栈指针 堆栈指针SP
位地址 0D7H 位编号 位符号 功能 D7 CY 进位 信号
0D6H D6 AC
0D5H 0D4H 0D3H 0D2H D5 F0 D4 RS1 D3 RS0 D2 OV
0D1H D1 --------
0D0H D0 P 奇偶 标志
15
半进位 用户定 信号 义标志
工作寄存 器区选择
溢出 暂不用 标记
地址 89H 88H 87H 82H 83H 81H 80H
复位后初态 00H 00H 00H 00H 00H 07H FFH
7
这些特殊功能寄存器中,凡是地址能被8整除的寄存器, 这些特殊功能寄存器中,凡是地址能被8整除的寄存器,都具有 位寻址功能. 即寄存器中的每位都具有位地址, 位寻址功能. 即寄存器中的每位都具有位地址,可以按位寻址 操作。 操作。例如 例如P0: 地址为80H,能被8整除,它的每一位都可以进行位寻 址, P0 :P0.0,P0.1……P0.7 寄 存 器 A(ACC) 的 地 址 : 0 E0H, 也 能 进 行 位 寻 址 : ACC.0,ACC.1,…,ACC.7 11个主要的可位寻址寄存器的位地址如图所示。 11个主要的可位寻址寄存器的位地址如图所示。
12
注:汇编程序中 使用符号A是寻址寄存器A—寄存器寻址, 使用符号ACC,它就变成直接寻址了—寻址SFR区的 0E0H单元(它可以作为RAM直接访问)。这一般在 堆栈操作中使用。 该寄存器可以进行位寻址,它的位符号地址为 ACC.I(I=7~0),,如下表
位地址 位编号 位符号 ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 ACC.0
例如A:
ACC.0,ACC.1
端口寄存器P1:P1.0,P1.2
(地址能被8整除的专用寄存器,具有位寻址功能)
4
4.主要寄存器的地址表(1)
寄存器名 B A PSW TH2 TL2 RCAP2H RCAP2L T2MOD T2CON 通用寄存器 累加器 程序状态寄存器 T2时间常数寄存器高字节 T2时间常数寄存器低字节 T2重装载寄存器高字节 T2重装载寄存器低字节 T2工作方式控制寄存器 T2控制寄存器 功能名称 地址 F0H E0H D0H 0CDH 0CCH 0CBH 0CAH 0C9H 0C8H 复位后初态 00H 00H 00H 0 0 0 0 0 00H
22
(2)对于逻辑操作指令,例如:ANL P1,A,它的 操作实际上是: 读入P1,与A的内容进行逻辑运算,再将运算结果 写回到P1。
应该注意的是,这是读入的不是引脚上的状态,而 输出锁存器的状态。这对修改输出控制信号是有利的。
23
8 电源控制寄存器 PCON
D7 SMOD D6 D5 D4 -
B8H B0H A8H A0H 99H 98H 90H 8BH 8AH 8DH 8CH
XXX00000B FFH 0XX00000B FFH 不定 00H 0FFH 00H 00H 00H 00H
6
主要寄存器的地址表(3)
寄存器名 TMOD TCON PCON DPL DPH SP P0
功能名称 定时器/计数器方式控制寄存器 定时器控制寄存器 电源控制寄存器 地址寄存器低8位 地址寄存器高8位 堆栈指针寄存器 P0口数据寄存器
24
(3) PD —— 进入掉电方式激活位,软件设置PD=1,进入掉电 方式,晶振停止,IRAM的内容保持不变。只有复位 信号有效才能使单片机推出掉电状态进入正常工作 状态。 (4) IDL—— 进入待机方式控制位,软件设置IDL=1,单片机进 入待机方式,内部振荡器继续工作,CPU暂停运行 ,中断逻辑正常工作。 退出待机工作方式的方法: ① 被允许的任何一个中断有效 ② 复位信号有效
8
地址 F0H E0H D0H B8H B0H A8H A0H 98H 90H 88H 80H
(MSB) F7 E7 D7 —— B7 EA AF A7 SM0 9F 97 TF1 8F 87 F6 E6 D6 —— B6 —— A6 SM1 9E 96 TR1 8E 86 F5 E5 D5 —— B5 —— A5 SM2 9D 95 TF0 8D 85 F4 E4 D4 PS BC B4 ES AC A4 REN 9C 94 TR0 8C 84 F3 E3 D3 PT1 BB B3 ET1 AB A3 TB8 9B 93 IE1 8B 83 F2 E2 D2 PX1 BA B2 EX1 AA A2 RB8 9A 92 IT1 8A 82 F1 E1 D1 PT0 B9 B1 ET0 A9 A1 TI 99 91 IE0 89 81
PSW标志位介绍(续)
④ OV:溢出标志位,当运算结果溢出时OV为“1”, 否则为“0”。 ⑤ ⑥ PSW.1:未定义位。 P(PSW.0):奇偶标志位。当累加器A中“1” 的个数为奇数时,P置“1”,否则P置“0”。
⑦ RS1、RS0:工作寄存器区选择位,软件设置。 ⑧ 该二位可以为寻址操作,利用软件置“1”或清 “0”,例如SETB RS0, CLR RS1。 设置1区
2.7
专用寄存器
1
2.7.1 专用寄存器的基本情况
1. 主要包括 累加寄存器A,辅助寄存器B、程序状态寄存器PSW、电 源控制寄存器PCON 程序计数器PC、对栈指针SP、数据指针DPTR, P端口数据寄存器 中断相关的寄存器:IE,IP… 其它外设控制、工作方式、例如TMOD,SCON;时间常 数寄存器TL0、TH0、……、数据缓冲寄存器SBUF……
位地址 0F7H 0F6H B.6 D6 0F5H B.5 D5 0F4H B.4 D4 0F3H B.3 D3 0F2H B.2 D2 0F1H B.1 D1 0F0H B.0 D0
14
符号地址 B.7 位编号 D7
4. 程序状态字 程序状态字PSW
(1)地址:0D0H; PSW的各位具有独立的位地址,可以进行位寻址操作。 不同位具有不同的作用。 (2)结构
25
2.7.3 其他专用寄存器 包括中断允许寄存器IE,中断优先级寄存器IP, 定时器控制寄存器/工作方式寄存器,时间常数寄存 器,串行通信控制寄存器、数据缓冲寄存器,……等。 下面仅做简单介绍,在具体应用时再具体讨论。
26
1.定时器时间常数寄存器 定时器时间常数寄存器: 定时器时间常数寄存器
5
主要寄存器的地址表(2)
寄存器名 功能名称 地址 复位后初态
IP P3 IE P2 SBUF SCON P1 TL1 TL0 TH1 TH0
中断优先级控制寄存器 P3口数据寄存器 中断允许控制寄存器 P2口数据寄存器 串行口发送/接收缓冲器 串行口控制寄存器 P1口数据寄存器 T1计数器低8位 T0计数器低8位 T1计数器高8位 T0计数器高8位
2
2. 地址空间与访问的寻址方式
(1)地址空间 专用寄存器位于内部RAM地址空间的高128字节位置 (80H~0FFH), (2)寻址方式 只能使用直接寻址方式访问。
例如从P1口读入数据 MOV A,90H ; 90H是P1端口的地址。 (MOV A,P1) ; P1是P1端口的符号地址,
3
3. 许多寄存器具有位寻址操作功能。
(3)PSW标志位介绍
①CY(PSW.7):进位标志位。在进行加法(或减 法)运算时,若运算结果最高位有进位或借位,则 CY自动置“1”,否则CY置“0”。 在进行布尔操作运算时,CY(简称C)作为布尔处 理器 ②AC:辅助进位标志位。当进行加法或减法时,若 低4位向高4位有进位(或借位)时,AC被置“1”, 否则AC被置“0”。在十进制调整指令中AC还作为 十进制调整的判别位。 ③ F0:用户标志位。用户可用软件对F0位置“1” 或清“0”,也可以用软件测试F0 以决定程序的流 向 16
(LSB) F0 E0 D0 PX0 B8 B0 EX0 A8 A0 RI 98 90 IT0 88 80
符号
B A PSW IP P3 IE P2 SCON P1 TCON P0
9
2.7.2 专用寄存器介绍
只介绍51/52中的一些主要的专用寄存器,其它扩展型号还有很 多扩展的专用寄存器,在使用实再查相关使用说明书。