MCS-51单片机定时中断不同应用情况

根据定时中断的不同应用情况,应选择不同的精确定时编程方法。mcs-51单片机的中断响应延迟时间,取决于其它中断服务程序是否在进行,或取决于正在执行的是什么样的指令。单中断系统中的中断响应时间为3~8个机器周期.文中以定时器t1工作在定时方式1为例,晶振频率为12mhz 。
1 方法1
在定时器溢出中断得到响应时,停止定时器计数,读出计数值(反映了中断响应的延迟时间),根据此计数值算出到下一次中断时,需多长时间,由此来重装载和启动定时器。例如定时周期为1ms,则通常定时器重装载值为-1000(0fc18h)。下面的程序在计算每个定时周期的精确重装载值时,考虑了由停止计数(clr tr1)到重新启动计数(setb tr1)之间的7个机器周期时间。程序中#low(-1000+7)和#high(-1000+7)是汇编符号,分别表示-1000+7=0fc1fh这个立即数的低位字节(1fh)和高位字节(0fch)。
……
clr ea ;禁止所有中断
clr tr1 ;停止定时器t1
mov a,#low(-1000+7) ;期望数的低位字节
add a,tl1 ;进行修正
mov tl1,a ;重装载低位字节
mov a,#high(-1000+7) ;对高位字节处理
addc a,th1
mov th1,a
setb tr1 ;重启动定时器
setb ea ;重开中断
……
此方法适用于各种原因造成的定时误差的情况,为通用方法。
2 方法2
假如定时周期为10ms,通常定时器重装载值为0d8f0h,中断子程序如下[2]:
orl tl1,#0f0h
mov th1,#0d8h
……
这里用orl tl1,#0f0h代替mov tl1,#0f0h 可提高定时精度。此方法只适用于重装载值低位字节的低4位为零,且中断响应的延迟时间小于16个机器周期的情况。类似的定时器重装载值有0fff0h,0ffe0h等。
3 方法3
假如定时周期为1ms,通常定时器重装载值为0fc18h,中断子程序如下:
mov a,#low(-1000+4) ;期望数的低位字节
add a,tl1
mov tl1,a
mov a,#high(-1000+4) ;对高位字节处理
addc a,th1
mov th1,a
dec tl1 ;恢复提前了的2个机器周期
……
4 方法4
假如定时周期不确定,只知道定时器重装载值存放在寄存器r3、r2中,中断子程序如下:
mov a,#05h ;3个机器周期装载tl1,2个周期提前
add a,tl1
add a,r2
mov tl1,a
mov a,r3 ;处理高位字节
addc a,th1
mov th1,a
dec tl1 ;恢复提前了的2个机器周期
……
此法适用于定时周期不确定的情况,其它同方法3。
5 方法5
当定时中断发生的位置可预知时,通常出现在主程序的ajmp $ (或sjmp $)等待指令处,中断延迟时间为3个或4个机器周期。取固定值4可简化补偿程序。以定时周期1ms为例,中断子程序如下:
org 001bh
mov tl1,#low(-1000+4)
mov th1,#high(-1000+4)
……
此方法适用于定时中断总发生在同一条指令位置,且无其它中断源的情况。

显示技术:OLED浪潮及其它激动人心的发展趋势
基准电压是什么_基准电压有什么作用
半导体市场预计2020年将下降6%
物连网(IoT)传感器网络 推动车连网于跨境交通
MWC展示了5G毫米波的性能与应用场景
MCS-51单片机定时中断不同应用情况
苹果新机人脸识别 华为表示没有压力 iPhoneX实在没亮点只好学安卓玩表情包
安防如何把控大数据安全时代的主导权
联想最终放弃IBM存储,与NetApp合作到底在想什么
小米5X搭载MIUI系统支持全新的手势操作
漏电保护器有几种类型
瑞能第四代快恢复二极管的详细介绍
PCB传输线模型
电容滤波的原理及作用的介绍(三)
中国电信天翼云为苹果iCloud云存储提速
如何制作一个无天地线无电源矿石机?
2019智慧医疗趋势洞察:AI、大数据、5G时代来临
交流发电机的构成
【节能学院】Acrel-2000在线测温系统在山东某高分子智能车间的应用
晶体振荡器与压控振荡器