单片机定时中断的精确定时编程方法种种

[复制链接]
查看1347 | 回复0 | 2011-9-7 22:50:21 | 显示全部楼层 |阅读模式
<




引 言

  MCS-51单片机的中断响应延迟时间,取决于其它中断服务程序是否在进行,或取决于正在执行的是什么样的指令。单中断系统中的中断响应时间为3~8个机器周期[1]。无论是哪一种原因引起的误差,在精确定时的应用场合,必须考虑它们的影响,以确保精确的定时控制。根据定时中断的不同应用情况,应选择不同的精确定时编程方法。

  文中以定时器T1工作在定时方式1为例,晶振频率为12MHz 。

1 方法1

  在定时器溢出中断得到响应时,停止定时器计数,读出计数值(反映了中断响应的延迟时间),根据此计数值算出到下一次中断时,需多长时间,由此来重装载和启动定时器。例如定时周期为1ms,则通常定时器重装载值为-1000(0FC18H)。下面的程序在计算每个定时周期的精确重装载值时,考虑了由停止计数(CLR TR1)到重新启动计数(SETB TR1)之间的7个机器周期时间。程序中#LOW(-1000 7)和#HIGH(-1000 7)是汇编符号,分别表示-1000 7=0FC1FH这个立即数的低位字节(1FH)和高位字节(0FCH)。
热帖推荐
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则