PIC单片机定时器初值计算方法及几种周期小结

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PIC单片机定时器初值计算方法及几种周期小结

PIC 定时器也用是蛮多的,据说网上还有计算初值的强力软件,不过我还

是手动算下吧。总结了下2013.8.27PIC 单片机定时器初值计算方法

PIC 的指令周期是4 个震荡周期,在没有使用分频器的情况下,TMR0 会在

每个指令周期信号(等于晶体振荡器产生的主时钟周期的 4 倍)到来时自动

加1。在配置了分频器的情况下,TMR0 会在每次收到由分频器将指令周期信

号分频一个固定倍数后产生的信号时自动加1。如果TMR0 在累加计数的过程中,CPU 执行一条往TMR0 中写入数据的指令,则累加计数器的加 1 操作

将被推迟两个指令周期,重新开始计数。这两个指令周期的偏差在用户编写时

间精度要求较高的程序时应引起注意,可以通过在每次写入TMR0 时给一个

调整值的方法来解决。

假设的是时钟频率为4MHz。因此,一个指令周期就是一个微秒(μs)

的时间。

,也就是计数一次时间是1us。

没有分频比定时器的初值计算公式:T0=256-Tc+2

其中TC 是想得到的次数。加2 的原因是写值的时候要消耗两个指令周期。

如果分频器给了定时器,最好不要再读写TMR0 了,不然会照成误差。

假设分频器是16,晶振是4Mhz,一次由00 到FF 的时间是

16*256=4096us。假设50ms 的时间

在中断每次加上4096,

主程序检查是不是超过5000,超过了就减掉5000,这样算是50ms 就得到了。1:8

相关文档
最新文档