【单片机】常用寄存器(STC89C52)

一、定时器T0/T1

1. 控制寄存器TCON

  • TCON为定时器/计数器T0、T1的控制寄存器,同时也锁存T0、T1溢出中断源和外部请求
    中断源等,TCON格式如下:
    TCON : 定时器/计数器中断控制寄存器 (可位寻址)]在这里插入图片描述
  • TF1:定时器/计数器T1溢出标志。T1被允许计数以后,从初值开始加1计数。当最高位产生溢出时由硬件置“1”TF1,向CPU请求中断,一直保持到CPU响应中断时,才由硬件清“0”TF1(TF1也可由程序查询清“0”)。
  • TR1:定时器T1的运行控制位。该位由软件置位和清零。当GATE(TMOD.7)=0,TR1=1时就允许T1开始计数,TR1=0时禁止T1计数。当GATE(TMOD.7)=1,TR1=1且INT1输入 高电平时,才允T1计数。
  • TF0:定时器/计数器T0溢出中断标志。T0被允许计数以后,从初值开始加1计数,当最高位产生溢出时,由硬件置“1”TF0,向CPU请求中断,一直保持CPU响应该中断时,才由硬件清“0”TF0( TF0也可由程序查询清“0”)。
  • TR0:定时器T0的运行控制位。该位由软件置位和清零。当GATE(TMOD.3)=0,TR0=1时就允许T0开始计数,TR0=0时禁止T0计数。当GATE(TMOD.3)=1,TR0=0且INT0输入 高电平时,才允许T0计数。
  • IE1:外部中断1请求源(INT1/P3.3)标志。IE1=1,外部中断向CPU请求中断,当CPU响应该中断时由硬件清“0”IE1。
  • IT1:外部中断1触发方式控制位。IT1=0时,外部中断1为低电平触发方式,当INT1(P3.3)输入低电平时,置位IE1 。采用低电平触发方式时,外部中断源(输入到INT1)必须保持低电平有效,直到该中断被CPU 响应,同时在该中断服务程序执行完之前,外部中断源必须被清除(P3.3要变高),否则将产生另一次中断。当IT1=1时,则外部中断1(INT1)端口由“1”→“0”下降沿跳变,激活中断请求标志位IE1 ,向主机请求中断处理。
  • IE0:外部中断0请求源(INT0/P3.2)标志。IE0=1外部中断0向CPU请求中断,当CPU响应外部中断时,由硬件清“0”IE0(边沿触发方式)。
  • IT0:外部中断0触发方式控制位。IT0=0时,外部中断0为低电平触发方式,当INT0(P3.2)输入低电平时,置位IE0。采用低电平触发方式时,外部中断源(输入到INT0)必须保持低电平有效,直到该中断被CPU响应,同时在该中断服务程序执行完之前,外部中断源必须被清除(P3.2要变高),否则将产生另一次中断。当IT0=1时,则外部中断0(INT0)端口由“1”→“0”下降沿跳变,激活中断请求标志位IE0 ,向主机请求中断处理。

2. 工作模式寄存器TMOD

  • 定时和计数功能由特殊功能寄存器TMOD的控制位C/T进行选择,TMOD寄存器的各位信息如下表所列。可以看出,2个定时/计数器有4种操作模式,通过TMOD的M1和M0选择。2个定时/计数器的模式0、1和2都相同,模式3不同,各模式下的功能如下所述。
    在这里插入图片描述
  位	 	 	符号 	 	功能
TMOD.7/ 		GATE	 	TMOD.7控制定时器1,1时只有在INT1脚为高及TR1控制位置1时才可打开定时器/计
							数器1。
TMOD.3/ 		GATE	 	TMOD.3控制定时器0,1时只有在INT0脚为高及TR0控制位置1时才可打开定时器/计
							数器0。
TMOD.6/ 		C/T	 	 	TMOD.6控制定时器1用作定时器或计数器,清零则用作定时器(从内部系统时钟输入),
							置1用作计数器(从T1/P3.5脚输入)
TMOD.2/ 		C/T 	 	TMOD.2控制定时器0用作定时器或计数器,清零则用作定时器(从内部系统时钟输入),
							置1用作计数器(从T0/P3.4脚输入)
TMOD.5/TMOD.4 	M1、M0	 	定时器定时器/计数器1模式选择
 				0 	0	 	13位定时器/计数器,兼容8048定时模式,TL1只用低5位参与分频,TH1整个8位全用。
 				0 	1		16位定时器/计数器,TL1、TH1全用
 				1 	0 		8位自动重装载定时器,当溢出时将TH1存放的值自动重装入TL1.
 				1 	1 	 	定时器/计数器1此时无效(停止计数)。 
TMOD.1/TMOD.0 	M1、M0 		定时器/计数器0模式选择
 				0 	0 	 	13位定时器/计数器,兼容8048定时模式,TL0只用低5位参与分频,TH0整个8位全用。
 				0 	1 	 	16位定时器/计数器,TL0、TH0全用
 				1 	0 		8位自动重装载定时器,当溢出时将TH0存放的值自动重装入TL0
 				1 	1	 	定时器0此时作为双8位定时器/计数器。TL0作为一个8位定时器/计数器,通过标准定
 							时器0的控制位控制。TH0仅作为一个8位定时器,由定时器1的控制位控制。

在这里插入图片描述

二、定时器T2

  • 定时器2是一个16位定时/计数器。通过设置特殊功能寄存器T2CON中的C/T2位,可将其作为定
    时器或计数器(特殊功能寄存器T2CON的描述如下所示)。
    在这里插入图片描述
  位	 	 	符号 	 	功能
T2CON.7/ 		TF2	 	 	定时器2溢出标志。定时器2溢出时置位,必须由软件清除。当RCLK或TCLK=1 时,TF2
							将不会置位
T2CON.6/ 		EXF2	 	定时器2外部标志。当EXEN2=1且T2EX的负跳变产生捕获或重装时,EXF2置位。定时器2
							中断使能时,EXF2=1将使CPU从中断向量处执行定时器2中断子程序。EXF2位必须用软
							件清零。在递增/递减计数器模式(DCEN=1)中,EXF2不会引起中断
T2CON.5/ 		RCLK	 	接收时钟标志。RCLK置位时,定时器2的溢出脉冲作为串行口模式1和模式3的接收时钟。
							RCLK=0时,将定时器1的溢出脉冲作为串行口模式1和模式3的接收时钟
T2CON.4/ 		TCLK 		发送时钟标志。TCLK置位时,定时器2的溢出脉冲作为串行口模式1和模式3的发送时钟。
							TCLK=0时,将定时器1的溢出脉冲作为串行口模式1和模式3发送时钟
T2CON.3/ 		EXEN2 		定时器2外部使能标志。当其置位且定时器2未作为串行口时钟时,允许T2EX的负跳变产
							生捕获或重装。EXEN2=0时,T2EX的跳变对定时器2无效
T2CON.2/ 		TR2 		定时器2 启动/停止控制位。置1 时启动定时器
T2CON.1/ 		C/T2 		定时器/ 计数器选择。(定时器20 = 内部定时器(SYSclk/12 或SYSclk/61 = 外部事件计数器(下降沿触发)
T2CON.0/ 		CP/RL2 		捕获/重装标志。置位:EXEN2=1,T2EX的负跳变产生捕获.清零:EXEN2=0时,定时器
							2溢出或T2EX的负跳变都可使定时器自动重装。当RCLK=1 或TCLK=1 时,该位无效且定
							时器强制为溢出时自动重装
  • 定时器2有3种操作模式:捕获、自动重新装载(递增或递减计数)和波特率发生器。这3种模
    式由T2CON中的位进行选择(如下表所列)。
    在这里插入图片描述
  • T2MOD : 定时器/计数器2模式控制寄存器 (不可位寻址)
    在这里插入图片描述
    T2OE: 定时器2 输出使能位
    DECN: 向下计数使能位。定时器2 可配置成向上/ 向下计数器
    在这里插入图片描述

三、单片机串行口

  • STC89C52系列单片机的串行口设有两个控制寄存器:串行控制寄存器SCON和波特率选
    择特殊功能寄存器PCON。

  • 串行控制寄存器SCON用于选择串行通信的工作方式和某些控制功能。其格式如下:
    SCON : 串行控制寄存器 (可位寻址)
    在这里插入图片描述

  • SM0/FE: 当PCON寄存器中的SMOD0/PCON.6位为1时,该位用于帧错误检测。当检测到一个无效停止位时,通过UART接收器设置该位。它必须由软件清零。当PCON寄存器中的SMOD0/PCON.6位为0时,该位和SM1一起指定串行通信的工作方式,如下表所示

  • 其中SM0、SM1按下列组合确定串行口的工作方式
    在这里插入图片描述

  • SM2:允许方式2或方式3多机通信控制位。在方式2或方式3时,如SM2位为1,REN位为1,则从机处于只有接收到RB8位为1(地址帧)时才激活中断请求标志位RI为1,并向主机请求中断处理。被确认为寻址的丛机则复位SM2位为0,从而才接收RB8为0的数据帧。在方式1时,如果SM2位为1,则只有在接收到有效的停止位时才置位中断请求标志位RI为1;在方式0时,SM2 应为0。

  • REN:允许/禁止串行接收控制位。由软件置位REN,即REN=1为允许串行接收状态,可启动串行接收器RxD,开始接收信息。软件复位REN,即REN=0,则禁止接收。

  • TB8: 在方式2或方式3,它为要发送的第9位数据,按需要由软件置位或清0。例如,可用作数据的校验位或多机通信中表示地址帧/数据帧的标志位。

  • RB8: 在方式2或方式3,是接收到的第9位数据。在方式1,若SM2=0,则RB8是接收到的停止位。方式0不用RB8。

  • TI: 发送中断请求标志位。在方式0,当串行发送数据第8位结束时,由内部硬件自动置位,即TI=1,向主机请求中断,响应中断后必须用软件复位,即TI=0。在其他方式中,则在停止位开始发送时由内部硬件置位,必须用软件复位。

  • RI: 接收中断请求标志位。在方式0,当串行接收到第8位结束时由内部硬件自动置位RI=1, 向机请求中断,响应中断后必须用软件复位,即RI=0。在其他方式中,串行接收到停止位的中间时刻由内部硬件置位,即RI=1(例外情况见SM2说明),必须由软件复位,即RI=0。

四、中断系统

1、中断优先级

void 	Int0_Routine(void) 		interrupt 0;		//外部中断0
void 	Timer0_Rountine(void) 	interrupt 1;		//定时器/计数器0中断
void 	Int1_Routine(void) 		interrupt 2;		//外部中断1
void 	Timer1_Rountine(void) 	interrupt 3;		//定时器/计数器1中断
void 	UART_Routine(void) 		interrupt 4;		//串口行中断
void 	Timer2_Routine(void) 	interrupt 5;		//定时器/计数器2中断
void 	Int2_Routine(void) 		interrupt 6;		//外部中断2
void 	Int3_Routine(void) 		interrupt 7;		//外部中断3

2、中断允许寄存器
在这里插入图片描述

  • EA : CPU的总中断允许控制位,EA=1,CPU开放中断,EA=0,CPU屏蔽所有的中断申请。
  • EA的作用是使中断允许形成两级控制。即各中断源首先受EA控制;其次还受各中断源自己的中断允许控制位控制。
  • ET2: 定时/计数器T2的溢出中断允许位。ET2=1,允许T2中断;ET2=0,禁止T2中断。
  • ES : 串行口1中断允许位。ES=1,允许串行口1中断;ES=0,禁止串行口1中断。
  • ET1 : 定时/计数器T1的溢出中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。
  • EX1 : 外部中断1中断允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。
  • ET0 : T0的溢出中断允许位。ET0=1,允许T0中断;ET0=0禁止T0中断。
  • EX0 : 外部中断0中断允许位。EX0=1,允许中断;EX0=0禁止中断。
  • 3
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值