搜索

MCS-51单片机定时中断的编程方法解析

gecimao 发表于 2019-05-21 03:16 | 查看: | 回复:

  的中断响应延迟时间,取决于其它中断服务程序是否在进行,或取决于正在执行的是什么样的指

  令。单中断系统中的中断响应时间为3~8个机器周期[1]。无论是哪一种原因引起的误差,在精确定时的应用场合,

  必须考虑它们的影响,以确保精确的定时控制。根据定时中断的不同应用情况,应选择不同的精确定时编程方法。

  在定时器溢出中断得到响应时,停止定时器计数,读出计数值(反映了中断响应的延迟时间),根据此计数值算

  出到下一次中断时,需多长时间,由此来重装载和启动定时器。例如定时周期为1ms,则通常定时器重装载值为-

  1000(0FC18H)。下面的程序在计算每个定时周期的精确重装载值时,考虑了由停止计数(CLR TR1)到重新启动计数

  假如定时周期为10ms,通常定时器重装载值为0D8F0H,中断子程序如下[2]:

  这里用ORL TL1,#0F0H代替MOV TL1,#0F0H 可提高定时精度。此方法只适用于重装载值低位字节的低4位为零

  ,且中断响应的延迟时间小于16个机器周期的情况。类似的定时器重装载值有0FFF0H,0FFE0H等。

  假如定时周期为1ms,通常定时器重装载值为0FC18H,中断子程序如下:

  这种方法中不停止定时器计数过程,若在执行指令ADDC A,TH1 或MOV TH1,A时,恰好产生TL1溢出向TH1进位

  的情况,则TH1的值就不对了,会产生更大的误差。为此,程序段开头为重装载值加4,若有溢出进位,则可提前发

  此方法适用于系统中无其它更高优先级中断源的情况。若类似方法1,在程序段开头和结尾分别加上禁止所有中

  假如定时周期不确定,只知道定时器重装载值存放在寄存器R3、R2中,中断子程序如下:

  当定时中断发生的位置可预知时,通常出现在主程序的AJMP $ (或SJMP $)等待指令处,中断延迟时间为3个或4

  个机器周期。取固定值4可简化补偿程序。以定时周期1ms为例,中断子程序如下:

  在定时器溢出中断得到响应时,停止定时器计数,读出计数值(反映了中断响应的延迟时间),根据此计数值算出...

  DJNZ:这是另一条指令,我们来看一下这条指令后面跟着的两个东西,一个是R6,一个是D2,R6我们当...

  Internet 网络通信中,TCP/IP 协议簇非常庞大,需要占用大量的系统资源。单片机的缺点是资...

  在定时器溢出中断得到响应时,停止定时器计数,读出计数值(反映了中断响应的延迟时间),根据此计数值算出...

  目前单片机广泛应用到国民经济建设和日常生活的许多领域,成为测控技术现代化不可缺少的重要工具。而本文适...

  CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当乱飞到...

  P1口的某一位作为输出线”写入该位口锁存器,则 Q 端上的输出场效应管T截止,该位的输出引...

  MCS-51单片机指令系统按功能可分为5类: (1)数据传送指令 (2)算术运算指令 ...

  P51XA是PHILIPS公司的一种16位单片机,可管理的存储器空间大,运行速度快,支持实时多任务系...

本文链接:http://kingstonflowers.net/dingshifenxi/394.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部