请问单片机中的定时器1的溢出率是怎么回事呢?
发布网友
发布时间:2022-04-22 08:42
我来回答
共4个回答
热心网友
时间:2023-06-22 22:17
肯定“0o小威哥o0”在2013年给出的评论。
我从书上看到了这样的解释,稍后把资料源摆在下面:
定时器T1有方式0、1、2、3。区别在于位数和装载方式不同。
因为方式2的计数器位数是8位的,而且可以自动重装载(计数器计满以后,硬件自动把计数初值装载到8位计数器里面),所以适合可以比较精确的计时。
我赞同定时器的溢出率是每秒溢出的个数的说法。对于您给出的计算公式,我想修正完善一下:
当单片工作在12分频模式时,定时器T1的溢出率=(fsys/12)/(256-TH1)。
解释一下,fsys作为单片机CPU、内部接口的时钟成为系统时钟。您给出的fosc,据我所知是时钟源(振荡器时钟)信号的频率。fsys与fosc有什么关系呢?
因为时钟源信号需要经过一个可编程(也就是可以位操作或直接对某寄存器操作)的时钟分频器再提供给单片机CPU和内部接口的。关系就是靠一个分频系数N得到的。fsys=fosc/N。可编程时钟分频器是靠时钟分频寄存器CLK_DIV(PCON2)控制的。当分频系数N=1的时候,显然有fsys=fosc。因为时钟分频器是可编程的,所以fsys与fosc就有不相等的可能性。通过控制PCON2寄存器的CLKS2、CLKS1、CLKS0,可以分别获得1、2、4、8、16、32、64、128的分频系数N。注意:我这里说的12分频工作模式只针对与系统时钟频率,不针对与时钟源频率,对于某时钟源频率fosc经过4分频得到系统时钟频率fsys,在计时器T1的高8位计数器TH1计数的时候每经过12个时系统钟频率,计数器才加1。
参考书籍:单片微机原理与接*术,丁向荣主编,电子工业出版社。全书第30页,系统时钟与时钟分频寄存器。
参考资料:STC89C52系列单片机指南,下载地址 www.stcmcu.com ,网页比较大,内容比较多(建议用ctrl+F 开启网页查找:stc89c52,立马就搜索到了,下载这个技术手册,找到235页)。
最后想要补充的,君子美美与共,和而不同:D 。我认为,分享学习到的知识是我学习与表达生活的一种方式。知识经过分享,让更多人收益,帮助到其他人,才有可能发挥知识的价值。知识留在书本上,一点价值都没有,要是用来考试的话就太可悲了。有不对的地方,希望包含。
热心网友
时间:2023-06-22 22:17
溢出率应该是每秒溢出的次数。12/fosc=每个机器周期时间,(12/fosc)*(256-初值)=溢出一次所需的时间,最后用1除以该数就代表每秒溢出的次数,也就是溢出率。
热心网友
时间:2023-06-22 22:18
定时开始计数 记到256就溢出了
热心网友
时间:2023-06-22 22:18
定时器1的溢出率,也叫定时器1的溢出频率,从设定初值开始计数,当计数到0FFH再一个计数脉冲到来时刻就溢出,初值越大溢出率也越高,我们使用这个溢出率确定通信波特率。
在使用11.0592MHz晶体时,SMOD=0,C/T=0,方式=2,波特率=9600,则定时器重装载数值是0FDH。