定时器实际上也是计数器,只是计数的是固定周期的脉冲
定时器实际上也是工作在计数方式下,只是计数的是固定周期的脉冲,由于脉冲周期固定,由计数值可以盘算时间,有定时功能
定时和计数只是触发泉源差别(时钟信号和外部脉冲)其他方面是一样的。
单片机里的寄存器可以当作一个个电子开关,用来切换差别的功能、信号。
定时也是通过计数来实现的,定时实际上是对呆板周期的计数,假如你选的单片机的晶振肯定,比如12MHZ来说吧,呆板周期是1us,就是说每1us产生一次计数,就拿50ms来说,这是你想要的计时,意思是,对呆板周期举行50000计数就可以得到我想要的,可T0是一个可以对呆板周期能举行65536次计数,也就是说我想要的50MS不能让T0溢出,怎么办,那么先给这个定时器内里放些数,放多少,就是我们想要的50MS在加上一个多少就能便是65536,也就是65536和50000的差值,这个值就是我们说的初值。
为什么除以256,由于我们的计时器是两个8位构成的,那么要把那些差值装进这两个8位,那么低8位最多能装256个呆板周期,那么256计满了就用高8位的,就是说低8位满一次高8位加1,那么高8位装多少,低8位就满了反复,算法就是用差值除一下256取其整数,剩下的,就是还剩了小于256次数的就放在低8位,就是差值的余数。
以16进制的定时器定时50ms为例,对于TH0初始化,的界说方式有三种:
1.TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
2.TH0=-50000/256;
TL0=-50000%256;
3.TH0=0x3C;
TL0=0xB0;
你把三个式子全换成相应的二进制,就会发现它们右边是一样的!!!
原文链接:https://www.eeworld.com.cn/mcu/article_2016101430481.html
我要评论