定时器原理
1、什么是定时器?什么是计数器?
定时器,字面意思就是定时的。手机的闹钟就是个定时器,定个每天早上7点的闹钟。
计数器,字面意思计时统计个数的,来一个就加一个,一直累加着。
其实定时器和计数器里面的内容是一样的,区别在于,定时器是在数内部的时钟,计数器是数外面的脉冲。
2、STC89C51RC单片机的定时器/计数器
定时器/计数器0
定时器/计数器1
定时器/计数器2
其实传统的51单片机就只有定时器/计数器0和定时器/计数器1这两个,STC的51单片机自己加了一个定时器/计数器2。
定时器/计数器的核心内容就是一个加法计数器,对脉冲进行计数,来一个脉冲计数器就加1.
用作定时的时候,单片机是在数自己的系统时钟脉冲;
用作计数的时候,单片机是在数从外面的脉冲,这个外面的脉冲通过计数器绑定的引脚传给单片机,
T0对应的引脚是P3.4,T1对应的引脚是P3.5;
是用来定时还是用来计数,可以通过设置定时器模式寄存器TMOD的C/T位来决定。
3、定时器/计数器0的工作模式
模式0:13位定时器/计数器
模式1:16位定时器/计数器
模式2:8位自动重装模式
模式3:两个8位定时器/计数器
4、定时器/计数器1的工作模式
模式0:13位定时器/计数器
模式1:16位定时器/计数器
模式2:8位自动重装模式
5、定时器/计数器0、定时器/计数器1相关的寄存器
定时器控制寄存器TCON
TF1:定时器/计数器T1溢出标志位。当T1被允许计数后,就开始不断+1计数,计数计到最大值的时候,TF1位的值就自动变成1了,这也叫做硬件置1。如果这个时候定时器中断被允许了,那就向CPU请求中断,当CPU响应了中断之后,TF1位的值就自动变成0了。
TR1:定时器T1的运行控制位。TR1位要由软件来置位或者清零。TR1相当于计数使能信号,但是这个计数使能信号有个前提:
当TMOD计数器的第7位那个GATE =0的时候,TR1 =1,开始计数,TR1=0,禁止计数;
当TMOD计数器的第7位那个GATE =1的时候,TR1 =1,然后INT1为高电平的时候才开始计数
TF0:跟TF 1的功能是一样的,用于定时器/计数器0;
TR0:跟TR1的功能是一样的,用于定时器/计数器0;