,单片机如何用定时器计算周期
如何入门单片机?记得我们我大一的时候刚进我们学校实验室,我们学长就扔给我一本非常厚的全英文的当时实验室在用的一款MCU的datasheet,我看了一个星期不知道这到底有什么用,只看到到处都是各种寄存器位描述,一脸懵。现在已然是工作十几年的老人了,其实发现就是寄存器设置时候查查数据手册相关寄存器描述就完了,当然现在的同学入门单片机比我们那个时候容易,因为很多现场库给你使用,无需自己从寄存器设置写起,只需写业务逻辑就行。
1、单片机定时器计数器的工作原理,及如何实现定时计数功能原理:16位的定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。显然,定时器的定时时间与系统的振荡频率有关。因一个机器周期等于12个振荡周期,所以计数频率fcount1/12osc。
低字节为TL0(65536X)%6,减去高字节后余下的部分;定时/计数器定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数,同时包含定时/计数器的状态。
2、单片机指令周期的计算计算方法:PIC单片机的每四个时钟周期为一个内部指令周期,例如:8MHz的晶振,则内部指令周期为1/(8/4)0.5uS实例一:35us,8MHz的晶振,8位定时器,分频比1/2,初值E4实例二:156.25us,32768Hz的晶振,8位定时器,分频比1/32,初值FC计算方法一:35(256初值)*分频*4/晶振 14/分频(256初值) 14/2计算方法二:0.(256初值)*分频*4/晶振(256初值)*32*4/32768特别注意:分频比18需要加上一个14/分频指令周期是指令周期执行某一条指令所消耗的时间,它等于机器周期的整数倍。
3、单片机定时器不知道如何计算的?定时器一个计数值等于一个机器周期,对于12M晶振而言相当于1us,所以1毫秒减1000。晶振12MHz时,定时器计数1就是1us,1000就是1ms,2000就是2ms因为定时器是计数是往上加的,所以655362000就是2ms。是的,就是这么算的12MHz除12为1MHz,也就是说一秒次机器周期。1ms1000次机器周期。
TL0.给定的是定时器的初始值.51单片机每12个机器周期将定时器的数值 ;当定时器内数据溢出时候产生定时器中断655362000;65536为溢出值(0xffff),将初始值设定为65536200063536则定时次数为65536635362000TH0(655362000)/256;//重新赋值2ms这样写使程序的可读性变强了。
除非注明,文章均由 白起网络 整理发布,欢迎转载。