(九)c52学习之旅-定时器

定时器可以解决软件延时的不精确性和系统效率的降低。

一、定时/计数器的工作原理
加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。

设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t 。

设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 us。

二、与定时器有关的寄存器
1.工作方式寄存器TMOD
这里写图片描述
高4位设置T1,低4位设置T0

(1)GATE门控位。
GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;
GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一条件。

(2)C/T定时/计数模式选择位。
=0为定时模式; =1为计数模式。

(3)M1M0:工作方式设置位。
定时/计数器有四种工作方式,由M1M0进行设置
这里写图片描述

2.控制寄存器TCON
TCON的低4位用于控制外部中断。TCON的高4位用于控制定时/计数器的启动和中断申请。
这里写图片描述
(1)TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。

(2)TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。

(3)TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。
(4)TR0(TCON.4):T0运行控制位,其功能与TR1类同。

3.IE中断允许控制
这里写图片描述
(1)EA总中断开关
(2)ET1定时器/计数器1开关
(3)ET0定时器/计数器0开关

4.TH*,TL*
TH0,TL0/TH1,TL01:用来赋值初值。

三、定时/计数器的工作方式
(1)方式0
这里写图片描述
方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。
计数个数与计数初值的关系为:X=2^13 - N。

(2)方式1
这里写图片描述
方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器 。
计数个数与计数初值的关系为:X=2^16 - N。

(3)方式2
这里写图片描述
方式2为自动重装初值的8位计数方式。
计数个数与计数初值的关系为:X=2^8 - N。
工作方式2特别适合于用作较精确的脉冲信号发生器。

(4)方式3
这里写图片描述
方式3只适用于定时/计数器T0,定时器T1处于方式3时相当于TR1=0,停止计数。
工作方式3将T0分成为两个独立的8位计数器TL0和TH0

四、定时器/计数器初始化
定时器0的初始化过程
1、定时器模式设定。对TMOD赋值,以确定T0和T1的工作方式。
2、定时器初值设定。计算初值,并将其写入TH0、TL0。
3、设置中断系统。允许全局中断和定时器0中断。
4、启动定时器。使TR0置位,启动定时器0。

* 五、定时器0初值计算*
人工计算(为方便计算,本讲晶振改用12MHz)
计数值=定时时间/(振荡周期*12)
初值=65536-计数值
定时时间= (振荡周期12) (65536-初值)
最大定时时间= (振荡周期*12) *65536=65.536ms

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值