单片机定时器和计数器学习笔记
单片机stc89c52rc中有两个定时器/计数器,T0和T1。每个定时器/计数器既可以实现定时功能,也可以实现计数功能。
定时器/计数器的结构:
定时器/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
TMOD是定时器/计数器的工作方式寄存器,确定工作方式和功能;
TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
定时器/计数器的工作原理 :
加1计数器输入的计数脉冲有两个来源:
一个是由系统的时钟振荡器输出脉冲经12分频(机器周期)后送来;一个是T0或T1引脚输入的外部脉冲信号。
每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向单片机发出中断请求(定时器/计数器中断允许时)。
如果定时器/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值
定时器,计数器的控制
由两个特殊功能寄存器控制。TMOD设置其工作方式;TCON用于控制他的启动和中断申请。
TMOD(设置工作方式)
低四位用于T0,高四位用于T1.格式如下
GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时器/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚也为高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一条件。C/T :定时/计数模式选择位。 C/T =0为定时模式; C/T =1为计数模式。
M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。
TCON(控制寄存器)
低四位用于控制外部中断,高四位用于控制定时器/计数器的启动和中断申请。
TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动设置TF1为1。单片机响应中断后TF1由硬件自动清0。
TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件设置1或清0.所以,用软件可控制定时/计数器的启动和停止。
TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1相同。
TR0(TCON.4):T0运行控制位,其功能于TR1相似。
定时器/计数器初始化:
1:选择工作方式(设置M1,M0)2:选择控制方式(设置GATE)3.选择定时器还是计数器模式(设置C/T) 4.给定时器/计时器赋初值(设置THx和TLx) 5.开启定时器中断(设置ET0或ET1) 6.开启总中断(设置EA) 7.打开计数器(设置TR1或TR0)