赣州市宣传部领导班子:MCS-51单片机特殊功能寄存器详解
来源:百度文库 编辑:中财网 时间:2024/05/11 02:47:18
1、 定时器/计数器的方式寄存器TMOD
TMOD是一个8位的特殊功能寄存器,对应的地址是89H,不可位寻址。
A 主要完成三个功能:
*确定选择定时器还是计数器;
*选择何种工作方式;
*是否借用外中断控制定时器和计数器的启停;
B TMOD的低4位是控制T0的字段(T0--P3.4 定时器/计数器0外部事件脉冲输入端)
TMOD的高4位是控制T1的字段(T1--P3.5定时器/计数器1外部事件脉冲输入端)
C 控制字的格式和含义
a、 GATE(TMOD.7)
分为两种情况:GATE=0,定时器的启停和INT1无关,只取决于TR0;
GATE=1,定时器的启停不仅要由TR0来控制,而且要INT1引脚的控制,只有二者
都为高电平时定时器 才开始工作;
b、 C/T(TMOD.6)
分为两种情况:C/T=0,用作定时器;
C/T=1,用作计数器;
d、 M1(TMOD.5),M0(TMOD.4)
用M1,M0来控制定时器/计数器的4种工作方式:
*方式0:M1=0,M0=0.13位定时/计数方式
*方式1:M1=0,M0=1.16位定时/计数器
*方式2,M1=1,M0=0.8位初值自动重新装入的8位定时/计数器
*方式3,M1=1,M0=1.仅适用于T0,分为两个8位计数器,T1停止计数
2、定时器/计数器控制寄存器TCON
TCON是一个8位的特殊功能寄存器,对应的地址为88H,可为寻址。
A 控制字的格式和含义
a、TF1(TCON.7),TF0(TCON.5)----T1、T0计数溢出标志位
当计数器计数溢出时,该位置“1”。使用查询方式时,此位作为状态位供cpu
查询,但应注意在查询该位有效后应以软件方法及时将该位清“0”。使用中断
方式时,此位作为中断申请标志位,进入中断服务程序后由硬件自动清0.
b、TR1(TCON.6),TR0(TCON.4)----计数运行控制位
TR1(TR0)=1,启动定时/计数器工作的必要条件,还与GATE位的状态有关。
TR1(TR0)=0,停止定时/计数器工作。
该位可由软件置1或清0.
C、 IE1(TCON.3),IE0(TCON.1)----外部中断INT1(P3.3)、INT0(P3.2)的中断请求标志位
当有外部的中断请求时,INT1(INT0)=1(有硬件完成),在cpu响应中断后,由硬件将
IE1(IE0)清0.
d、 IT1(TCON.2),IT0(TCON.0)----INT1(INT0)触发方式控制位
可由软件进行置位和复位。IT0(IT1)=0,INT0(INT1)为低电平触发方式;
IT0(IT1)=1,INT0(INT1)为负跳变触发方式;
3、中断允许寄存器IE
在51中断系统中,中断的允许或禁止是由片内可进行位寻址的8位中断允许寄存器IE来
控制的
EA(IE.7):总开关,如果它等于0,则所有中断都不允许;
ES(IE.4):串行口中断允许;
ET1:定时器1中断允许;
EX1:外中断1中断允许;
ET0:定时器0中断允许;
EX0;外中断0中断允许;
4、5个中断源的优先级
单片机的中断服务入口地址如下,它们的自然优先级由高到低排列。
外中断0:0003H;
定时器0:000BH;
外中断1:0013H;
定时器1:001BH;
串口:0023H;
采用c51的编程语言,该语言中断服务函数的完整语法如下:
返回值 函数名称(【参数】)【模式】【重入】interrupt n 【using n】
interrupt对应的是中断源的编号,而【using】决定了使用寄存器的组号。这里,需要对
寄存器的组号进行简单的解释。51系统中有4个寄存器组,具体的位置取决于psw(程序状态字)
的两位RS0、RS1的设置。当运行一个中断任务时,采用不同的寄存器组。在c51
中,寄存器组的选择就取决于using后的变量的指定,变量位0~3的整数。
在这里给出不同中断服务程序的c51程序写法:
*外中断INT0--------void intsvr0(void) interrupt 0 using 1
*定时/计数器T0-----void timer0(void) interrupt 1 using 1
*外中断INT1--------void intsvr0(void) interrupt 2 using 1
*定时/计数器T1-----void timer0(void) interrupt 3 using 1
*串口中断----------void serial0 interrupt 4 using 1P3口的代替功能
寄存器地址B0H,位寻址B7H~B0H。
引脚
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
代替功能
RXD
TXD
/INT0
/INT1
T0
T1
/WR
/RD
TCON:定时器控制寄存器
寄存器地址88H,位寻址8FH~88H。
位地址
8E
8D
8B
89
88
位符号
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TF0(TF1)——计数溢出标志位,当计数器计数溢出时,该位置1。
TR0(TR1)——定时器运行控制位
当TR0(TR1)=0 停止定时器/计数器工作
当TR0(TR1)=1 启动定时器/计数器工作
IE0(IE1)——外中断请求标志位
当CPU采样到P3.2(P3.3)出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清0。
IT0(IT1)——外中断请求信号方式控制位
当IT0(IT1)=1 脉冲方式(后沿负跳有效)
当IT0(IT1)=0 电平方式(低电平有效)此位由软件置1或清0。
TF0(TF1)——计数溢出标志位
当计数器产生计数溢出时,此位由硬件置1。当转向中断服务时,再有硬件自动清0。计数溢出的标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。
TMOD:工作方式控制寄存器
寄存器地址89H,不可位寻址。
位序
B7
B6
B5
B4
B3
B2
B1
B0
位符号
GATE
C/T
M1
M0
GATE
C/T
M1
M0
GATE——门控位
当=0时,以运行TR0(或TR1)启动或禁止定时器、计数器
当=1时,以TR0*/INT0(或TR1*/INT1)启动或禁止定时器、计数器
GATE=0 以TR0(TR1)启动定时器
GATE=1 以INT0(INT1)启动定时器
C/T=0 定时/计数工作方式选择位
M
T2MOD:工作方式控制寄存器
寄存器地址
-
-
-
-
-
-
T2OE
DCEN
T2OE:定时器2输出允许位,当=1时,P1.0/T2引脚输出连续脉冲信号
DCEN:当=1时,T2配置成向上向下计数器T2CON:定时器控制寄存器
寄存器地址0C8H,位寻址0C8H~0CFH。
位地址
CF
CE
CD
CC
CB
CA
C9
C8
位符号
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/T2
CP/RL2
TF2:T2溢出标记
当T2溢出时TF2=1,TD2只能用软件清除
当RCLK=1或TCLK=1时,TF2将不置位
EXF2:T2外部标记
当EXEN2=1时,T2EX/P1.1引脚上的负跳变引起T2的捕捉/重装操作,此时EXF2=1。在T2中断允许时,EXF2=1将引起中断,EXF2只能用软件清除。在T2的向上、向下计数模式下(DCEN=1)EXF2的置位将不引起中断。
RCLK:接收时钟允许
当RCLK=1时,T2的溢出脉冲可用作串行口的接收时钟信号,适于串行口模式1、3当RCLK=0时,T1的溢出脉冲用作串行口接收时钟信号
TCLK:发送时钟允许
EXEN2:T2外部事件(引起捕捉/重装的外部信号)允许
当EXEN2=1时,如果T2没有作串行时钟输出(即RCLK+TCLK=0),则在T2EX/P1.1引脚跳变将引起T2的捕捉/重装操作;
当EXEN2=0时,在T2EX引脚的负跳变将不起作用
TR2:T2的启动/停止控制
C/T2:计数定时
CP/RL2:捕捉/重装选择
当CP/RL2=1且EXEN2=1时,T2EX/P1.1引脚的负跳变将引起捕捉操作
当CP/RL2=0且EXEN2=1时,T2EX/P1.1引脚的负跳变将引起重装操作
当CP/RL2=0且EXEN2=0时,T2的溢出将引起T2的自动重装操作
当RCLK+TCLK=1时,CP/RL2控制位不起作用,T2被强制工作于重装方式。重装方式发生于T2溢出时,常用来作波特率发生器。SCON:串行口控制寄存器
寄存器地址98H,位寻址9FH~98H。
位地址
9E
9D
9B
99
98
位符号
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
SM0、SM1:串行口工作方式选择位
SM2:多机通信控制位
REN:允许/禁止串行口接收的控制位
TB8:在方式2和方式3中,是被发送的第9位数据,可根据需要由软件置1或清零,也可以作为奇偶校验位,在方式1中是停止位。
RB8:在方式2和方式3中,是被接收的第9位数据(来自第TB8位);在方式1中,RB8收到的是停止位,在方式0中不用。
TI——串行口发送中断请求标志位
当发送完一帧串行数据后,由硬件置1;在转向中断服务程序后,用软件清0。
RI——串行口接收中断请求标志位
当接收完一帧串行数据后,由硬件置1;在转向中断服务程序后,用软件清0。IE:中断允许控制寄存器
寄存器地址A8H,位寻址AFH~A8H。
位地址
AF
AE
AD
AC
AB
AA
A9
A8
位符号
EA
/
ET2
ES
ET1
EX1
ET0
EX0
EA:中断允许总控制位
当EA=0时,中断总禁止。
当EA=1时,中断总允许后中断的禁止与允许由各中断源的中断允许控制位进行设置。
EX0( EX1):外部中断允许控制位
当EX0( EX1)=0 禁止外中断
当EX0( EX1)=1 允许外中断
ET0(EX1):定时/计数中断允许控制位
当ET0(ET1)=0 禁止定时(或计数)中断
当ET0(ET1)=1 允许定时(或计数)中断
ET2:定时器2中断允许控制位,在AT89S52、AT
ES:串行中断允许控制位
当ES=0 禁止串行中断
当ES=1 允许串行中断
IP:中断优先级控制寄存器
寄存器地址B8H,位寻址BFH~B8H。
位地址
BF
BE
BD
BC
BB
BA
B9
B8
位符号
/
/
PT2
PS
PT1
PX1
PT0
PX0
PX0——外部中断0优先级设定位
PT0——定时中断0优先级设定位
PX1——外部中断1优先级设定位
PT1——定时中断1优先级设定位
PS——串口中断优先级设定位
PT2——定时器2优先级设定位PSW:程序状态字
寄存器地址D0H,位寻址D7H~D0H。
位地址
D7
D6
D5
D4
D3
D2
D1
D0
位符号
CY
AC
F0
RS1
RS0
OV
-
P
CY——进位标记
AC——半进位标记
F0——用户设定标记
RS1 、RS0——4个工作寄存器区的选择位。
VO——溢出标记
P——奇偶校验标记
PCON:电源控制器及波特率选择寄存器
字节地址=87H,不可位寻址
SMOD
-
-
POF
GF1
GF0
PD
IDL
SMOD——波特率倍增位
GF1、GF0——用户通用标记
PD——掉电方式控制位,PD=1时进入掉电模式
IDL——空闲方式控制位,IDL=1时进入空闲方式
在AT89S51中PCON.4是电源断电标记位POF,上电是为1进入空闲模式:PCON=0x01; 之前执行AUXR=0xFF;定义空闲模式下看门狗WDT不计数。
PCON:电源控制器及波特率选择寄存器
字节地址=87H,不可位寻址
SMOD
-
-
POF
GF1
GF0
PD
IDL
SMOD——波特率倍增位
GF1、GF0——用户通用标记
PD——掉电方式控制位,PD=1时进入掉电模式
IDL——空闲方式控制位,IDL=1时进入空闲方式
在AT89S51中PCON.4是电源断电标记位POF,上电是为1