本帖最后由 qianjunzx 于 2021-7-16 15:45 编辑
让我们来细细讲解。
1.定时器本质上是计数器,因此基本功能是记录脉冲的次数,当脉冲超过设定值时,可以执行某一段操作,一般为中断系统。 特:我们知道cpu的运行有系统时钟驱动。系统时钟能发出频率稳定的脉冲,那么如果把系统时钟的脉冲输入计数器呢,那不就能计时了吗? 然而,平时,计时功能用的多,因此被叫成了定时器。
2.既然有功能的选择,那必然会有控制。谁来控制呢?又是寄存器。怎么控制寄存器呢?用程序来改变对应地址的值。
3.什么叫做分频?eg:12分频(通俗的讲)就是将系统时钟的12个脉冲当作一个脉冲,频率就降下来了。 分频怎么设置呢,寄存器AUXR中的 T0x12 T1x12 T2x12(地址),可以分别设置T0 T1 T2 计时模式的分频(1/12)。 4.计数器是怎么实现计数功能的呢?我们可以不用深入了解其内部的原件构造,但必须学会设置参数。在计数开始之前,我蛮需要设置两个起点值(THx 、 TLx,x代表编号)。H就是high,L就是low,是计数值的高位和低位,高低位都到达计数的上限时,就会就会溢出并,将计数器归零。计数器模式的设置,可以修改指向应寄存器的参数TMOD,(在不同的芯片中,模式会有所不同) 下图时TMOD 8个位所对应的功能:(图片在最后有,不过还是建议自己去看芯片手册)
Tx_GATE:门控位,用于设置计数器计数与否,是否受P3.2或P3.3电压状态的影响。 GATE=0时,表示计数器计数与否与两端口电压状态无关; GATA=1时,计数器是否计数要参考引脚的状态,即P3.2为高时T0才计数,P3.3为高时T1才计数。
Tx_C/T:定时/计数模式选择位。 =0为定时模式; =1为计数模式。
Tx_M1 Tx_M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置 M1 M0 的两位可以组成两位二进制数,确定4种模式 模式 0(16 位自动重装载模式) 模式 1(16 位不可重装载模式) 模式 2(8 位自动重装模式) 模式 3(不可屏蔽中断的 16 位自动重装载模式) (版权声明:本文为CSDN博主「爱学控制的猫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 这是什么意思?16位就是TLx和THx是两个8位2进制数,也就是说当TLx值到达256时,才归0,在THx上进1。此时最多能进行65536次计数。8位,则同理,32进1。
|