㈠ 51单片机的定时器计时怎样计算
51但单片机的定时,要先计算,然后根据要求编写程序,计算会用到公式:t=Tc×(2L-TC)=12/f×(2L-TC) t是定时时间 Tc是机器周期 fs是晶振频率 L是计数器的长度 对于T0,T1有下面三种方式: 方式0:L=13 方式1:L=16 方式2:L=8 对于T2:L=16 然后剩下的就是按照算出的常数编写程序了,就靠你自己了。。。。
㈡ 关于单片机定时器的求算,怎么算出来的
51单片机定时器是“溢出”计时的,所以计算方法是:
(假设定时X毫秒(这里设定在溢出范围内),晶振频率是F兆赫兹),那么计算公式是:
初值=65536-(X*1000)*(F/12)
㈢ 51单片机各种位数定时器初值计算方法
对12MHz ,1个机器周期 1us ,12/fosc = 1us
。
方式0是13位定时器,最大时间间隔 = 2^13 = 8.192ms
方式1是16位定时器,最大时间间隔 = 2^16 = 65.536ms
方式2是8位定时器,最大时间间隔 = 2^8 = 0.256ms =256 us
方式3 仅适用于T0,此时T0分成两个8位计数器,T1停止计数
当选用定时器的方式1时,设机器周期为Tcy,定时器产生一次中断的时间为t,那么需要计数的个数N=t/Tcy,装入THX和TLX中的数分别为:
THX = (2^16 - N)/256 TLX = (2^16 -N )%256(此处的X为定时器0或定时器1)
公式为:(2^y - X)*Tcy = t
Tosc= 1/ fosc
一个机器周期 = 12个时钟周期 = 12/fosc
溢出速率 = 1 / 溢出时间
故:初值X = 2^y – t/Tcy
THX = 高八位
TLX = 低八位
注:
X:定时器初值
N:计数值
y:定时器工作方式
fosc:晶振频率
Tcy:机器周期,Tosc:时钟周期
Tcy = 1/Tosc
㈣ 51单片机用定时器计时应该如何计算求大神支招
这个其实很简单的,你只需要知道一个条件即可:晶振频率。
因为51单片机的机器周期计算公式是12/晶振频率MHz,若晶振为12MHz,则机器周期就是12/(12×10^6)=1us,也就是说计数器没1us计数一次。
那么有了这个条件就好办多了,一般来说,12MHz晶振下,16位定时器满计数是65536次,每次1us,最大就能计时65.536ms,则65536减去多少就是定时多少,如(65536-X)/256,就是定时X微秒。
那么如果晶振不是12MHz,就要把上述的X乘以12/晶振,得到的值就是定时时长。原理相同。
有不懂的地方随时回复我。
希望我的回答能帮助到你。
㈤ 单片机定时器初值计算方法有哪些
呵呵 正确为你解答:
1 可以按定时时间的计算公式, 计算出定时器的时间常数X:
定时时间T=(2的N次方-X)12/单片机晶振频率
2 N为定时器的工作方式:
方式0时,N=13
方式1时,N=16
方式2时,N=8
3 根据定时时间和工作方式,计算出时间常数X
把X转换成二进制数,高8位送给TH1,低8位送给TL1,就可以启动定时器开始定时了。
例如: 工作在方式1,定时时间为1000微秒 晶振频率=12MHZ
则 定时时间T=(2的16次方-X)12/12MHZ=1000 解出 X=64536=FC18H
呵呵 如满意 请选择满意回答
㈥ avr单片机定时器TCNT0=,公式是什么
TCNT0 是8位T0寄存器, 所以赋值范围是0~255,。
晶振 / 分频 = 分频后的时钟
1 /分频后的时钟 = 分频后的每个时钟周期
定时器溢出时间 /分频后时钟每周期时间 = 定时器经过N + 1次累后溢出
256 -定时间经过N次累后溢出 =TCNT0预装值、重装值
例子:8M晶振; 64分频;定时器溢出时间定为 1ms
8000 000 / 64 = 125000(分频后的时钟)
1 / 125000 = 0.000 008 s (分频后的每个时钟周期)
0.001s / 0.000 008s = 125 (定时器经过125 + 1次后溢出)
256 - 125 = 131 (TCNT0预装值、重装值)
㈦ 单片机定时器计算
计算定时器,最原始的公式是(65536-初值)*12/晶振值=定时的时间,由此式子推出:初值=65536-(晶振值*定时时间/12)。则TH0=初值/256,TL0=初值%256,最终结果就是
TH0
=
255-CLOCK/TIME_PER_SEC/12/256;
TL0
=
255-CLOCK/TIME_PER_SEC/12%256;
其中除以TIME_PER_SEC,是因为TIME_PER_SEC表示要定时的时间的倒数。
㈧ 51单片机定时器初值公式
1.简单说起,256表示一个8位分界点,对它求模得高位字节存在TH0中,求余得低位字节放在TL0中,拿十进制打比:15/10得十位1,15%10得个位数5
2.12Mhz时,单周期指令时间为12/fsoc=1us
方式1为16位定时/计数器
故定时1ms为:TH0=(2^16-1000)/2^8,
TL0=(2^16-1000)%256
当为11.0592MHz时,单周期指令时间为12/fsoc=12/11.0592us
由于采用方式0,为13为定时器,TH0高8位和TL0的低5位
故定时1ms为:
TH0=(2^13-1000/(12/11.0592))/2^5,
TL0=(2^16-1000/(12/11.0592))%2^5
这么晚了 写写不容易,多给些分以此鼓励俺
O(∩_∩)O~
㈨ 请问哪位能仔细的讲一下51系列单片机定时器定时计算时间的公式或方法
这个很好理解啊,假设定时器工作在方式1,也就是最大定时为65536US(假设12M晶振,51单片机)
那么你想定时多小为Xus
就直接拿TL0=(65536-x)/256 TL1=(65536-X)%256就可以了的
就好像一个杯子,他最多能装1L的水,而你只想往杯子里加400ml,那么你就必须先往杯子里装
(1000-400)ml的水, 这样的话,是不是你再往杯子里加400Ml的水,就会溢出呢,定时器也是这样的