51单片机特殊功能寄存器功能介绍

1、定时器/计数器控制寄存器TCON

D7D6D5D4D3D2D1D0
TCONTF1TR1TF1TR0IE1IT1IE0IT0
位地址8FH8EH8DH8CH8BH8AH89H88H

TCON寄存器中各标志位功能如下:

  • (1) TF1、TF0 计数溢出标志位。
    当计数器计数溢出时,该位置 1。使用 查询方式 时,此位作为状态位供 CPU 查询,但应注意查询有效后,应使用 软件及时将该位清 0。使用 中断方式 时,此位作为中断请求标志位,进人中断服务程序后由硬件自动清 0
  • (2) TR1、TR0 计数运行控制位。
    TR1 位(或 TR0 位)= 1 ,为启动定时器/计数器工作的必要条件。当 TMOD 寄存器中的 GATE = 0 时,仅由运行控制位 T R x ( x = 0 , 1 ) TRx ( x = 0 , 1 ) TRxx=01来控制定时器/计数器的运行;当 GATE= 1 时,定时器/计数器的运行要由外中断引脚 ( I N T 0 ‾ \overline{INT0} INT0 I N T 1 ‾ \overline{INT1} INT1) 的电平与运行控制位 T R x TRx TRx共同来控制。
    TR1 位(或 TR0 位)= 0 ,则停止定时器/计数器工作。
    该位可由软件置 1 或清 0
  • (3) IE1 外部中断请求 1 的中断请求标志位。
  • (4) IE0 外部中断请求 0 的中断请求标志位。
  • (5) IT1 选择外部中断请求 1 为跳沿触发方式还是电平触发方式。
    IT1 = 0 ,为电平触发方式,加到引脚 I N T 1 ‾ \overline{INT1} INT1 上的外部中断请求输人信号为低电平有效,并把 IE1 置 1 。转向中断服务程序时,则由硬件自动把 IE1 清 0
    ITI = 1 ,为跳沿触发方式,加到引脚 I N T 1 ‾ \overline{INT1} INT1 上的外部中断清求输人信号电平从高到低的负跳变有效,并把 IE1 置 1 。转向中断服务程序时,则由硬件自动把 IE 1 清 0
  • (6) IT0 选择外部中断请求 0 为跳沿触发方式还是电平触发方式。

当 AT89s52 单片机复位后, TCON 被清0,6个中断源的中断请求标志均为 0

2、工作方式控制寄存器TMOD

D7D6D5D4D3D2D1D0
TMODGATE C / T ‾ C/\overline{T} C/TM1M0GATE C / T ‾ C/\overline{T} C/TM1M0
TMOD<----------T1方式字段----------><----------T0方式字段---------->

TMOD寄存器8位分为两组,高4位控制 T1 ,低4位控制T0:

  • (1) GATE 门控位
    GATE=0 时 ,仅由运行控制位 T R x ( x = 0 , 1 ) TRx (x=0,1) TRx(x=0,1) 来控制定时器/计数器运行 。
    GATE=1 时 ,用外中断引脚 ( I N T 0 ‾ (\overline{INT0} (INT0 I N T 1 ‾ ) \overline{INT1}) INT1) 上的电平与运行控制位 T R x TRx TRx 共同来控制定时器/计数器运行 。
  • (2) M1、M0 工作方式选择位
M1M0方式功能说明
000为13位定时器/计数器
011为16位定时器/计数器
1028位的常数自动重新装入的定时器/计数器
113仅适用于T0, 此时T0分成两个8位计数器,T1停止计数
  • (3) $C/\overline{T}$ 计数器模式和定时器模式选择位
    C / T ‾ C/\overline{T} C/T = 0 为定时器工作模式,对单片机的时钟振荡器12分频后的脉冲进行计数。
    C / T ‾ C/\overline{T} C/T = 1 为计数器工作模式,计数器对外部输入引脚 T0 (P3.4) 或 T1(P3.5) 上的外部脉冲 (负跳变) 计数

3、串行口控制寄存器SCON

D7D6D5D4D3D2D1D0
SCONSM0SM1SM2RENTB8RB8TIRI
位地址9FH9EH9DH9CH9BH9AH99H98H

SCON寄存器中各标志位功能如下:

  • (1)SM0、SM1 串行口4种工作方式选择位
SM0SM1方式功能说明
000同步移位寄存器方式 (用于扩展I/O口)
0118位异步收发,波特率可变 (由定时器控制)
1029位异步收发,波特率为 f O S C / 64 f_{OSC}/64 fOSC/64 f O S C / 32 f_{OSC}/32 fOSC/32
1139位异步收发,波特率可变 (由定时器控制) 。
  • (2) SM2 多机通信控制位
    因为多机通信必须是工作在方式2或 方式3,因此当串行口工作于方式2 或方式3 时:
    如果SM2=1, 则只有当接收到的第9位 数据 (RB8) 为1 时,才使 RI 置 1,产生中断请求,并将接收到的前 8 位数据送入 SBUF; 当接收到的第 9位数据 (RB8) 为 0时 ,则将接收到的前8 位数据丢弃。
    如果SM2=0,则不论接收到的第9位 数据是1 还是0, 都将前8位数据送入SBUF 中,并使RI 置 1, 产生中断请求。
    在方式1 时 ,如果 SM2=1,则只有收到有效的停止位时才会激活RI。
    在方式 0时 ,SM2 必须为0 。
  • (3) REN 允许串行接收位
    由软件置1或 清0
    REN=1, 允许串行口接收数据。
    REN=0, 禁止串行口接收数据。
  • (4) TB8 发送的第9 位数据
    在方式2 或方式3 时 ,TB8 是要发送的第9 位数据,其值由软件置1 或清0。 在双机串行通信时,TB8 一般作为奇偶校验位使用; 在多机串行通信中用来表示主机发送的是地址帧还是数据帧 , TB8 =1为地址帧,TB8 =0 为数据帧
  • (5) RB8 接收的第9位数据
    工作在方式2 或方式3 时,RB8 存放串行口接收到的第9 位数据。在方式 1 , 如果SM2 =0,RB8是接收到的停止位。 在方式0, 不使用RB8。
  • (6) TI 发送中断标志位
    TI =1,表示一帧数据发送结束。串行口工作在方式 0 时,串行发送的第8 位数据结束时TI 由硬件置1; 在其他工作方式中,串行口发送停止位的开始时置 TI 为 1。TI =1,则可申请中断,CPU响应中断后,在中断服务程序中向“发送SBUF” 写入要发送的下一帧数据。TI位的状态可供软件查询,且 必须由软件清0
  • (7) RI 接收中断标志位
    RI=1, 表示一帧数据接收完毕。串行口工作在方式0 时,接收完第 8 位数据时, RI 由硬件置1; 在其他工作方式中,串行接收到停止位时,该位置1。RI=1,则可申请中断,要求CPU从 “接收SBUF” 取走数据。 RI 位的状态也可供软件查询,且必须由软件清0

SCON的所有位都可使用位操作指令清 0或 置1。

4、特殊功能寄存器PCON

D7D6D5D4D3D2D1D0
PCONSMOD——————GF1GF0PDIDL

PCON寄存器中各标志位功能如下:

  • (1) SMOD 波特率选择位
    例如,方式1的波特率计算公式为
    方式一波特率 = ( 2 S M O D / 32 ) × (2^{SMOD}/32) \times (2SMOD/32)×定时器T1的溢出率
    当SMOD=1 时 ,要比SMOD =0时的波特率加倍,所以也称SMOD位为波特率倍增位。
  • (2) —— 保留位,未定义
  • (3) GF1、GF0 通用标志位,供用户使用,应充分利用
  • (4) PD 掉电模式控制位,若PD=1,则进入掉电模式。
  • (5) IDL 空闲模式控制位,若IDL=1,则进入空闲运行模式

5、程序状态字寄存器PSW

D7D6D5D4D3D2D1D0
PSWCyAcF0RS1RS0OV——P

PSW寄存器中各标志位功能如下:

  • (1) Cy 进位标志位
    也可写为C。在执行算术运算和逻辑运算指令时,若最高位有进位或借位,则 Cy=1; 否则,Cy=0。在位处理器中,它又是位累加器。
  • (2) Ac 辅助进位标志位
    Ac标志位用于在BCD码运算时进行十进位调整。即在运算时,当D3位向D4位产生进位或借位时,Ac=1;否则,Ac=0。
  • (3) F0 用户使用的标志位
    可用指令来使它置1 或清0, 也可用指令来测试该标志位,根据测试结果控制程序的流向。编程时用户应充分利用该标志位。
  • (4) RS1、RS0 4组工作寄存器区选择控制位 1 和位 0
RS1RS0所选的4组寄存器
000 区 (片内RAM地址00H~07H)
011 区 (片内RAM地址08H~0FH)
102 区 (片内RAM地址10H~17H)
113 区 (片内RAM地址18H~1FH)
  • (5) OV 溢出标志位
    当执行算术指令时,OV用来指示运算结果是否产生溢出。如果结果产生溢出,OV=1; 否则,OV=0。
  • (6) —— 保留位,未定义
  • (7) P 奇偶标志位
    该标志位表示指令执行后,累加器 A 中 1 的个数是奇数还是偶数。
    P=1, 表示累加器A 中1 的个数为奇数。
    P=0, 表示累加器A 中1 的个数为偶数。
    该标志位对串行口通信中的数据传输有重要的意义。在串行通信中,常用奇偶检验的方法来检验数据串行传输的可靠性。

6、中断允许寄存器IE

D7D6D5D4D3D2D1D0
IEEA——ET2ESET1EX1ET0EX0
位地址AFH——ADHACHABHAAHA9HA8H

中断允许寄存器IE对中断的开放和关闭实现两级控制。所谓两级控制,就是 有一个总的开关中断控制位EA(IE.7位), 当 EA=0 时,所有的中断请求被屏蔽,CPU对任何中断请求都不接受,因此称EA为系统中断允许总开关控制位;当 EA=1 时,CPU开放中断,但5个中断源的中断请求是否允许,还要由上图中IE的低6位所对应的6个中断请求允许控制位的状态来决定。

IE寄存器中各标志位功能如下:

  • (1) EA 中断允许总开关控制位
    EA = 0,所有的中断请求被屏蔽。
    EA = 1,所有的中断请求被开放。
  • (2) ET2 定时器/计数器T2的中断允许位
    ET2 = 0,禁止 T2 中断。
    ET2 = 1,允许 T2 中断。
  • (3) ES 串行口中断允许位
    ES = 0,禁止串行口中断。
    ES = 1,允许串行口中断。
  • (4) ET1 定时器/计数器T1的溢出中断允许位
    ET1 = 0,禁止 T1 溢出的中断。
    ET1 = 1,允许 T1 溢出的中断。
  • (5) EX1 外部中断1中断允许位
    EX1 = 0,禁止外部中断1 中断。
    EX1 = 1,允许外部中断1 中断。
  • (6) ET0 定时器/计数器T0的溢出中断允许位
    ET0 = 0,禁止 T0 溢出的中断。
    ET0 = 1,允许 T0 溢出的中断。
  • (7) EX0 外部中断0中断允许位
    EXO = 0,禁止外部中断0 中断。
    EXO = 1,允许外部中断0 中断。

AT89S52单片机复位以后,IE 被清0,所有的中断请求被禁止。IE 中与各个中断源相应的位可用指令置1或清0,即可允许或禁止各中断源的中断申请。若使某一个中断源被允许中断,除了IE相应的位被置1外,还必须使 EA 位置1, 即 EA位置1 为中断请求的 必要条件
改变 IE 的内容,可由位操作指令来实现(即SETB bit; CLR bit),也可用字节操作指令实现。

7、中断优先级寄存器IP

D7D6D5D4D3D2D1D0
IP————PT2PSPT1PX1PT0PX0
位地址————BDHBCHBBHBAHB9HB8H

IP寄存器中各标志位功能如下:

  • (1) PT2 定时器T2中断优先级控制位
    PT2 = 1,定时器T2 中断为高优先级。
    PT2 = 0,定时器T2 中断为低优先级。
  • (2) PS 串行口中断优先级控制位
    PS = 1,串行口中断为高优先级。
    PS = 0,串行口中断为低优先级。
  • (3) PT1 串行口中断允许位
    PT1 = 1,定时器T1 中断为高优先级。
    PT1 = 0,定时器T1 中断为低优先级。
  • (4) PX1 外部中断 1 中断优先级控制
    PX1 = 1,外部中断1 中断为高优先级。
    PX1 = 0,外部中断1 中断为低优先级。
  • (5) PT0 外部中断1中断允许位
    PT0 = 1,定时器T0 中断为高优先级。
    PT0 = 0,定时器T0 中断为低优先级。
  • (6) PX0 定时器/计数器T0的溢出中断允许位
    PX0 = 1,外部中断0 中断为高优先级。
    PX0 = 0,外部中断0 中断为低优先级。

中断优先级控制寄存器IP的各位都可由用户程序置1 和清0,用位操作指令或字节操作指令可更新IP的内容, 以改变各中断源的中断优先级。
AT89S52单片机复位以后,IP的内容为 0,各个中断源均为低优先级中断

在所有的中断源为同一中断优先级时,在所有的中断源同时发出中断请求时, 哪一个中断请求能优先得到响应,取决于内部的硬件查询顺序。这相当于在同一个优先级内,还同时存在另一个辅助优先级结构,其查询顺序如下表

中断源中断级别
外部中断 0最高
T0 溢出中断|
外部中断 1|
T2 溢出中断|
串行口中断V
T2 中断最低

8、T2CON

D7D6D5D4D3D2D1D0
T2CONTF2EXF2RCLKTCLKEXEN2TR2 C / T 2 ‾ C/\overline{T2} C/T2 C P / R L 2 ‾ CP/\overline{RL2} CP/RL2
CFHCEHCDHCCHCBHCAHC9HC8H

T2CON寄存器中各标志位功能如下:

  • (1) TF2 T2计 数计满溢出回0 中断请求标志位
    当T2计数计满溢出回0时,由内部硬件置 1 TF2, 向CPU发出中断请求。但是当RCLK位或TCLK位为 1 时将不予置位。本标志位必须由软件清0。
  • (2) EXF2 T2外部中断请求标志位
    当由引脚 T2EX上的负跳变引起、“捕捉”或“重新装载”且EXEN2位为 1,则置 1 EXF2标志位,向CPU发出中断请求。本标志位必须由软件清0。
  • (3) RCLK 串行口接收时钟标志位
    当 RCLK位为 1 时,串行通信端使用定时器/计数器T2的溢出回0信号作为串行通信方式1 和方式3 的接收时钟;当 RCLK位为0时, 使用定时器/计数器1 的溢出回 0 信号作为串行通信方式1 和方式3 的接收时钟。
  • (4) TCLK 串行发送时钟标志位
    当TCLK位为1时,串行通信端使用定时器/计数器2的溢出回0信号作为串行通信方式1和方式3的发送时钟;当TCLK位为0时,串行通信端使用定时器/计数器 1 的溢出回 0 信号作为串行通信方式 1 和 方式3 的发送时钟。
  • (5) EXEN2 T2外部采样允许标志位
    当 EXEN2位为1时,如果 T2 不是正工作在串行口的时钟,则在 T2EX 引脚 (P1.1) 上的负跳变将触发“捕捉”或“重新装载”操作;当EXEN2位为0时,在T2EX引脚(P1.1)上的负跳变对T2不起作用 。
  • (6) TR2 T2启动/停止控制位
    当软件置 1 TR2 时,即 TR2 = 1,则启动 T2 开始计数,当软件清0TR2时,即TR2 = 0, 则停止计数 。
  • (6) $C/\overline{T2}$ T2的定时或计数模式选择位
    当设置 C / T 2 ‾ C/\overline{T2} C/T2 = 1 时,选择对外部事件计数模式; C / T 2 ‾ C/\overline{T2} C/T2 = 0 时,则选择内部定时模式。
  • (6) $CP/\overline{RL2}$ T2捕捉/重新装载选择位
    当设置 C P / R L 2 ‾ CP/\overline{RL2} CP/RL2 =1 时,如果EXEN2为1, 则在T2EX引脚(P1.1)上的负跳变将触发“捕捉”操作;当设置 C P / R L 2 ‾ CP/\overline{RL2} CP/RL2 = 0时 ,如果EXEN2 为 1,则T2计数计满回 0 溢出或T2EX引脚上的负跳变都将引起重新装载操作;当RCLK位为1 或 TCLK位为1, C P / R L 2 ‾ CP/\overline{RL2} CP/RL2标志位不起作用。T2 的计满回 0 溢出时,将迫使T2进行重新装载操作

定时器 T2 有 3 种工作方式:捕捉、重新装载(增计数或减计数)和波特率发生器 3种工作方式,可对寄存器 T2CON 中的相关位进行软件设置来选择,具体见下表。

RCLK+TCLKCP/RL2TR2MODE
00116位自重载
01116位捕捉
1x1波特率发生器
xx0停止工作并关闭

9、T2MOD

D7D6D5D4D3D2D1D0
T2MOD————————————T2OEDCEN

TCON寄存器中各标志位功能如下:

  • (1) T2OE 输出允许位。
    T2OE = 1,允许定时时钟从 P1.0 输出;T2OE = 0,禁止定时时钟从 P1.0 输出。
  • (2) DCEN 计数方式选择。
    DCEN =1,T2 的计数方式由 P1.1 引脚状态决定。P1.1 = 1, T2减计数, P1.1 = 0, T2 加计数; DCEN = 0,计数方式与P1.1 无关,同T1 和T0一样,采用增1 计数。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值