你们好,最近小时发现有诸多的小伙伴们对于单片机定时器程序的运行顺序,单片机定时器程序这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
1、方式0是单片机计时器的第一种计时方式,这一方式13位计数模式。
2、方式1则采用16位计数模式,
3、方式2采用8位自动重装入计数模式,这两种技术模式也是目前在单片机应用过程中最常使用的及时方式。
4、方式3,这一模式下只有T0有的双8位计数模式。
5、由于单片机的机器周期通常为1μs~2μs,因此定时误差一般应在0μs~20μs之内,对于一般应用,此误差可以忽略,但是对于精确度要求比较高的应用场合,此误差必须进行校正。定时误差是定时溢出后转入执行定时处理语句段之间所耗费的时间,此时间主要由定时溢出转入定时处理语句段所必须执行的指令或硬件过程产生。
6、(1)、定时器的个数:网上见到的 51 单片机教程都说定时器有 2 个:定时器 0 和定时器 1,实际上有的单片机有 3 个定时器,如博主买的开发板上的单片机:STC89C54RD+,因此,编程时注意看好有几个定时器……
7、(2)、TL,TH:初值寄存器,分别是低 8 位,高 8 位,后边加上一个数字 0 或 1,代表定时器 0 或定时器 1
8、(3)、TMOD:模式控制寄存器,属于 SFR 特殊功能寄存器,地址:89H,决定定时/计数器的四种工作模式,8 位
9、GATE 选通门:GATE=0 时,只要 TR=1,计数器就开始工作
10、GATE=1 时,只有 INT=TR=1 时,计数器工作(用来测量 INT 脚高电平脉冲的宽度)
11、C/T:计数器输入脉冲选择开关,决定着计数器的“定时”或“计数”的两种工作方式
12、C/T=0:定时方式:计数器接收内部时钟信号 fosc
13、C/T=1:计数方式:计数器接收引脚上的外部信号
14、M1、M0 模式选择:确定 4 种工作模式
15、(4)、TCON:控制寄存器,属于 SFR 特殊功能寄存器,地址:88H,8 位
16、TF:定时器溢出标志,计数器溢出时硬件自动置位,即 TF=1,进入中断后再由硬件自动清除(TF=0)
17、TR:计数器的控制位
18、TR=1:计数器开始工作
19、TR=0:计数器停止计数
20、IE:外部中断 INT 的请求标志
21、当单片机检测到 INT 引脚上有下降沿时,IE=1 申请中断,进入中断服务程序时,硬件自动清除 IE 标志
22、IT:外中断触发类型控制
23、IT=1 时,外中断信号的下降沿触发 IE 标志
24、IT=0 时,外中断信号的低电平触发 IE 标志
25、(5)、作为“定时器”使用时,“定时”与“初值”的关系如下:
26、T = ( M - TC ) × t
27、其中:T:定时时间
28、M:计数器的模
29、TC:计数初值
30、t:计数器计数脉冲的周期(t = fosc / 12)
31、 仅供参考
32、#include <reg51.h>
33、void InitTimer0(void)
34、{
35、 TMOD = 0x01;
36、 TH0 = 0x0FF;
37、 TL0 = 0x9C;
38、 EA = 1;
39、 ET0 = 1;
40、 TR0 = 1;
41、}
以上就是单片机定时器程序这篇文章的一些介绍,希望对大家有所帮助。