定时器初值计算
- 格式:ppt
- 大小:264.50 KB
- 文档页数:19


8253计数初值的计算公式
8253计数器是一种常用的计数器,由于其可编程的特性,可以广
泛应用于各种计时、频率等领域。
而计数器的初值是计数器的基础,
因此计算准确的计数器初值非常重要。
计数器初值的计算公式为:计数器初值 = 输入时钟频率÷(计
数器长度× 所需计数次数)- 1。
其中,输入时钟频率是指计数器输
入的时钟信号频率,计数器长度是计数器能计数的最大值,所需计数
次数是需要进行的计数次数。
在计算计数器初值时,需要首先确定输入时钟频率,该频率可以
通过测量计数器输入端的时钟信号来获取。
接着,确定所需计数次数,这取决于具体的应用场景。
最后,确定计数器长度。
由于8253计数器
有三个可编程的计数通道,每个通道计数长度可以在2^16-1之间进行
设置。
因此,在确定计数器长度时,需要考虑具体的计数通道。
需要注意的是,计数器初值必须为整数,因此在计算过程中需要
进行有效的四舍五入。
总的来说,计数器初值的计算公式虽然简单,但是需要准确的输
入时钟频率、所需计数次数和计数器长度数据,同时需要进行有效的
四舍五入,才可以得到准确的计数器初值。
对于实际应用中的计数器
初值计算,需要根据具体的应用要求进行具体的计算和实验验证,以
保证计数器初值的准确性和稳定性。
89C51单片机定时器所定时间的计算以及写法为了便于理解,先讲解一点儿关于单片机内部定时器和计数器的基本知识,如果学过数字电路,就不用管这些,看下边的就好了:(1)由于单片机内部定时器、计数器均为八位,所以它们从0开始到计数计满,也就是能从00000000计数到11111111,即2^0到2^16,转换成十进制,就是0——65536。
(2)外部的晶振电路提供的频率,到单片机内部,经过硬件电路,进行了12分频,不要问为什么,就这么记着就好了。
比如外部晶振是12MHZ的,那么到了单片机内部,用的频率就是1MHz的。
(1)使用12MHz晶振:单片机工作的频率f:12MHz/12=1MHz,那么时钟周期T1:T1=1/f=1μ,比如你要定时T2=50m=50000μ,你需要总时间T=T1某T2=50000,也就是说你需要50000个周期才能走完你所要定的时间,当把数全都计满,是需要65536个周期,也就是说还有65536-50000=15536个周期没有走,那么,我们可以把这个初始值放到计数器里面,让它从15536开始计数,当计够50000个周期,也就计满了,即到达了65536。
就像水往水缸里流,你需要流满半缸水的时间,但是现在水缸是空的,你可以先把水缸灌半缸水,然后让它从半缸水开始流,当流满了的时候,也就到了你需要的那个时间。
然后,15536转成十六进制为:0某3CB0,将3C放到定时器的高8位,B0放到第8位,就完成了定时。
我们在写程序赋初始值的时候一般是这么写的,可以参考一下:TH0=0某3C;TL0=0某B0;或者TH0=(65536-50000)/256;TL0=(65536-50000)%6;PS:如果你定时是其他的,可以把根据我上边讲解的,把T=50000换成相应的数值即可。
(2)使用11.0592MHz晶振:单片机工作的频率f:11.0592MHz/12=0.9216MHz,那么时钟周期T1:T1=(1/0.9216)μ,比如你要定时T2=50m=50000μ,那么总时间T=T1某T2=46080个周期才能走完,所以,剩下了65536-46080=19456个周期,只要把定时器的初始值设置为19456就可以了。