首页 理论教育 定时/计数器特殊寄存器应用实例

定时/计数器特殊寄存器应用实例

时间:2023-11-18 理论教育 版权反馈
【摘要】:定时/计数器0和定时计数器1特殊寄存器——TMOD、TCON用于控制和确定定时/计数功能和工作模式。图3-5 定时/计数器结构图定时/计数器工作方式寄存器TMOD定时/计数器的特殊寄存器主要是用来设工作模式,地址89H,不可以进行寻址,只可通过字节传送指令设定其工作方式。2)作为定时器工作。此时定时器寄存器TL0配置为可以自动重装载的8位计数器,TH0作为预置寄存器。TR1:定时/计数器T1运行控制位。

定时/计数器特殊寄存器应用实例

定时/计数器0和定时计数器1特殊寄存器——TMOD、TCON用于控制和确定定时/计数功能和工作模式。

978-7-111-59182-5-Part01-163.jpg

图3-5 定时/计数器结构图

(1)定时/计数器工作方式寄存器TMOD

定时/计数器的特殊寄存器主要是用来设工作模式,地址89H,不可以进行寻址,只可通过字节传送指令设定其工作方式。TMOD低4位控制寄存器T0高4位控制寄存器T1。见表3-6。

3-6 TMOD

978-7-111-59182-5-Part01-164.jpg

GATE定时操作开关控制位:GATE=0时TR0或TR1为1,定时/计数器选通开关,和INT0/INT1无关。

GATE=1时INT0/INT1为1并且TR0/TR1为1时定时/计数器选通开始工作。C/T定时/计数器功能选择位:C/T=1为计数器,通过引脚端口输入计数脉冲。

C/T=0为定时器,由内部系统时钟提供计时工作脉冲进行机器周期脉冲计数。

M0、M1工作方式选择位有4种,见表3-7。

3-7 TMOD工作方式

978-7-111-59182-5-Part01-165.jpg

方式0为13位计数结构工作方式。由TL0的低5位(高3位未用)和TH0的8位组成,定时或者计数溢出则TCON中的TF0置1,向CPU发出中断请求,如图3-6所示。

1)作为计数工作。

计数范围:1~213

计数值计算公式:计数值=

978-7-111-59182-5-Part01-166.jpg

图3-6 工作方式0逻辑图

213-计数初值

针对T0定时器其计数初值为TH0高8位和TL0低5位的初始值。

2)作为定时器工作。

定时范围:1~213机器周期

定时计算公式:定时时间=(213-定时初值)×机器周期

针对T0定时器其定时初值为TH0高8位和TL0低5位的初始值。

机器周期时间=12/fosc,其中fosc为晶体振荡频率。

初始化案例:单片机外接晶振12M,则机器周期1μs,使用工作方式0,进行100μs定时。

100μs=(8192-定时初值)1μs,得到定时初值=FC1C

初始化程序如下:

TMOD=0x00;

TH0=0xFC;

TL0=0x1C;

EA=1;

TR0=1;

ET0=1;

方式1为16位定时/计数结构工作方式。由TL0(TL1)作为低8位、TH0(TH1)作为高8位,组成16位定时/计数器,如图3-7所示。

1)作为计数器工作。

计数范围:1~216

计数值计算公式:计数值=

216-计数初值

针对T0定时器其计数初值为TH0高8位和TL0低8位的初始值。

2)作为定时器工作。

定时范围:1~216机器周期(www.xing528.com)

978-7-111-59182-5-Part01-167.jpg

图3-7 工作方式1逻辑图

定时时间计算公式:定时时间=(216-定时初值)×机器周期

针对T0定时器其定时初值为TH0高8位和TL0低8位的初始值。

机器周期时间=12/fosc,其中fosc为晶体振荡频率。

初始化案例:单片机外接晶振12MHz,则机器周期1μs,使用工作方式1,进行100μs定时。

100μs=(65536-定时初值)1μs,得到定时初值=FF9C

初始化程序如下:

TMOD=0x01;

TH0=0xFF;

TL0=0x9C;

EA=1;

TR0=1;

ET0=1;

当M1M0=10时,定时/计数器处于工作方式2。此时定时器寄存器TL0配置为可以自动重装载的8位计数器,TH0作为预置寄存器。TL0计数溢出时,TF0置1同时TH0中的内容重装载到TL0中,TH0的内容由软件预置,重装载后内容不变。电路结构如图3-8所示。

978-7-111-59182-5-Part01-168.jpg

图3-8 工作方式2逻辑图

1)作为计数器工作。

计数范围:1~28

计数值计算公式:计数值=28-计数初值

针对T0定时器其计数初值为TH0高8位和TL0低8位的初始值。

2)作为定时器工作

定时范围:1~28机器周期

定时时间计算公式:定时时间=(28-定时初值)×机器周期

针对T0定时器其定时初值为TH0高8位和TL0低8位的初始值。

机器周期时间=12/fosc,其中fosc为晶体振荡频率。

T0工作方式3分为两个独立的8位计数器TL0和TH0,其中TL0既可以作为计数器也可作为定时器,与之前三种工作方式不同体现在方式3只适用于定时器/计数器T0,定时器T1方式3时TR1=0,计数器不工作。工作方式3将T0分成为两个独立的8位计数器TL0和TH0,如图3-9所示。

978-7-111-59182-5-Part01-169.jpg

图3-9 工作方式3逻辑图

(2)定时/计数控制寄存器TCON

定时/计数控制寄存器TCON的地址是88H,可字节寻址也可位寻址,字节地址88H,TCON定义见表3-8。

3-8 TCON

978-7-111-59182-5-Part01-170.jpg

TF1:T1溢出中断请求标志位。T1计数溢出时候由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可以随时查询TF1的状态,TF1作为查询T1中断溢出标志位,TF1也可以用软件置1或者清0,同硬件置1清0效果一样。

TF0:定时/计数器T0溢出中断请求标志位。当定时/计数器0溢出的时硬件置位,申请中断进入中断后被硬件置0。

TR1:定时/计数器T1运行控制位。靠软件置1或者置0,当TR1=1时启动T1运行,TR1=0则T1停止运行。

TR0:定时/计数器T0运行控制位,TR0=1工作,TR0=0不工作。

IE1:外部边沿触发中断1请求标志,检测到在INT引脚上出现外部中断信号的下降沿时候,硬件置位,请求中断,进入中断程序后被硬件自动置0。

IE0:外部边沿触发中断0请求标志,同IE1。

IT1:外部中断1控制位,IT=1时,下降沿触发,IT1=0低电平触发。

IT0:外部中断1控制位,IT=0时,下降沿触发,IT0=0低电平触发。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈