4KK323232SS4系列单片机的定时器/计数器

STC15W4K32S4系列单片机内部设置了5个16位定时器/计数器:T0,T1,T2,T3和T1。STC15W4K32S4系列单片机内部定时器/计数器TO,T1的工作方式和控制主要由TCON,TMOD和AUXR三个特殊功能寄存器进行管理。

中国古代先贤发明了一种通过流水计量时间的装置,称为“滴水”。 它允许水通过固定孔滴入容器中。 每滴3次为一秒,每滴180次为一分钟,每滴10,800次为一小时。 这形成了最早的计时器。

4KK323232SS4系列单片机的定时器/计数器

计数是指对事件或事物的数量进行计数,常以1为单位累加,如数水滴的数量。 当所统计的事件的发生存在时间规律时,计数结果乘以事件发生之间的时间间隔就成为计时。

在单片机中,相应的“水滴”由时钟源提供。 假设时钟源为12MHz,时钟周期为1/12μs,单片机可以编程以1个时钟周期或12个时钟周期的速度进行增量统计。

2、STC15W4K32S4单片机的定时器/计数器

STC15W4K32S4系列单片机内部有5个16位定时器/计数器:T0、T1、T2、T3和T1。

4KK323232SS4系列单片机的定时器/计数器

这5个16位定时器/计数器有两种工作模式:计数和计时。 对于定时器/计数器10和T1,通过特殊功能寄存器TMOD中相应的控制位C/T)来选择10或1作为定时器或计数器。

对于定时器/计数器T2,通过特殊功能寄存器AUXR 中的控制位(T2C/ī)来选择T2 是定时器还是计数器。

定时器/计数器的核心部件是加法计数器件。 其本质是对脉冲进行计数。 计数和计时唯一的区别在于计数脉冲的来源:如果计数脉冲来自系统时钟,则为计时模式。 此时定时器/计数器每12个时钟或每1个时钟得到一个计数脉冲,计数值加1; 如果计数脉冲来自单片机外部引脚(TO 为 P3.4,T1 为 F5.5.12 为 F3.1,T3 为 Po .5,T4 为 P0.7),则为计数模式,各脉冲被处理。

4KK323232SS4系列单片机的定时器/计数器

溢出和溢出标志

当水滴不断滴入时,由于容器尺寸有限,满了就会溢出,需要将容器清空。 对于单片机来说,就是通过定时器/计数器溢出标志位(查询模式下)/中断请求标志位(中断模式下)来提醒单片机,通知单片机计时时间到了,或者计数次数到了。

设置定时器/计数器的初始值

STC15W4K32S4单片机的定时器/计数器的核心是16位加法计数器。 其本质是对脉冲进行计数,其取值范围为0~65535。 运行进程一旦启动,就不再需要CPU的关注,独立运行,直到相应的溢出标志的状态发生变化,然后通过软件查询进行处理,或者通过触发中断让CPU执行中断服务子程序。 程序。

4KK323232SS4系列单片机的定时器/计数器

因此,在实际应用中,用户需要使用预设的初始值,以允许定时器/计数器在达到合理的时间或计数值时溢出。

现假设时钟源为12MHz,要求如下:

(1)计数到10800溢出

定时器/计数器的最大计数值为65 535,即计数到65536时会发生溢出。如果需要计数到10800时溢出,则应设置计数器的初始值:

X=65 536-10 800=54 736=D5D0H

(2) 定时10000μs溢出

定时器/计数器的最大计时值为 65 536 次 × 1 μs/次 = 65 536 μs。 如果计时10000μs后发生溢出,则需要对脉冲进行10000次计数。 此时设置定时器的初始值:

X=65 536-10 000=55 536=D8F0H

微控制器中的定时器通常需要重复计时。 溢出后,需要再次重置初始定时器。

将初始值发送给定时器,以保证下一轮计时时间仍为10000μs。

4KK323232SS4系列单片机的定时器/计数器

定时器/计数器TO、T1的特殊功能寄存器

STC15W4K32S4系列单片机内部定时器/计数器TO和T1的工作模式和控制主要由三个特殊功能寄存器:TCON、TMOD和AUXR来管理。

使用定时器/计数器T操作模式0)来控制行车灯

由于采用软件查询方式,每1s定时时间触发一次溢出标志后,必须通过软件清零溢出标志。 定时器的具体设置如下:

TMOD=0x00;

辅助=0x00; //设置T1为定时器工作在模式0,可以节省

//设置T1为12T模式,可以节省

TH1=(65536-50000)/256;//设置定时器初始值,单次50ms

TI1=(65536-50000)256;

//开始T1

TR1=1;

while(!TF1); //软件查询TF1的状态并等待50ms定时器超时。

TF1=0; //清除溢出标志,为循环计时做准备

4KK323232SS4系列单片机的定时器/计数器

通过软件编程反复查询溢出标志位TF1的状态。当定时器到时,TF1将被置位

1、因此只需检查TF1是否等于1就可以知道定时时间是否已到,所以在程序中使用“while”

(!TF1)”是一个循环语句,进行查询判断,并等待50ms定时器超时。

使用定时器/计数器T1中断方式(工作模式0)控制流水灯

由于定时器工作在中断模式,每次 50 ms 定时时间到时,中断标志 TF1 就会被触发。 单片机响应中断后,内部硬件电路会自动清零TF1,因此编写程序时无需使用软件设置TF1。 清除。 定时器的具体设置如下:

4KK323232SS4系列单片机的定时器/计数器

TMOD = 0x00; //设置T1为定时器工作在模式0,可以节省

TH1=(65536-50000)/256; //设置定时器初始值,定时50ms

TL1=(65536-50000)256号;

EA=1; //使能中断使能总控制位

ET1=1; //使能T1中断使能控制位

TR1=1; //开始T1

当T1工作在中断模式时,当50ms的定时时间到时,将自动触发中断,执行中断服务子程序。

单片机

掌叶覆盆子:种植覆盆子可以达到每亩六、七万的产值

2024-2-17 19:03:11

单片机

树莓派PLC工业控制器派工业计算机基本规格

2024-2-17 20:02:45

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索