MCS-51单片机中断响应的三种方法解析

发布者:星际穿越最新更新时间:2021-01-13 来源: eefocus关键字:MCS-51  单片机  中断响应 手机看文章 扫描二维码
随时随地手机看文章

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)。


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个机器周期


这种方法中不停止定时器计数过程,若在执行指令ADDC A,TH1 或MOV TH1,A时,恰好产生TL1溢出向TH1进位的情况,则TH1的值就不对了,会产生更大的误差。为此,程序段开头为重装载值加4,若有溢出进位,则可提前发生,其中2个机器周期是考虑到为TL1重装载占用的时间。


此方法适用于系统中无其它更高优先级中断源的情况。若类似方法1,在程序段开


关键字:MCS-51  单片机  中断响应 引用地址:MCS-51单片机中断响应的三种方法解析

上一篇:开发51单片机操作系统时应注意哪些问题
下一篇:51单片机矩阵式键盘的编程方法

推荐阅读最新更新时间:2024-10-30 01:06

学习笔记 从零开始学单片机(3) 定时器
定时器在单片机应用中非常的重要,单片机可以对外部脉冲计数和精确定时。51有两个定时器T0和T1,有四种工作模式,它们分别使用TH0,TL0和TH1,TL1作为特殊功能寄存器。TMOD用于设置工作方式,TCON控制启动和停止计数器。单片机复位时它们都是0。 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TF1和TF0-溢出标志位,=溢出时置1 TR1和TR0-计数运行控制,=1 启动 TMOD GATE C/T M1 M0 GATE C/T M1 M0 高4位定时器1,低4位定时器0 GATE门控位 GATE=0时,由TR0/TR1启动计数器;GATE=1时,有
[单片机]
学习笔记 从零开始学<font color='red'>单片机</font>(3) 定时器
基于PIC16F627单片机的可调倒计时提醒器软硬件设计
  一、硬件电路   如图1所示,电源变压器T1将AC220V市电变换为AC9V交流电压后,经D1~D4整流、C4滤波、U2MC7805(或LM7805)稳压后,得到5V直流电压,为整机供电。   主控芯片为PIC16F627单片机,其每个端口的拉电流或灌电流可达25mA,无需外加三极管,就可以直接驱动LED数码管。   设PIC16F627的RB口为输出,其中RB0~RB6用于数码管的段驱动,因选用的是LG5621BH共阳数码管,故只有当RBO~RB6输出低电平时,数码管才能被点亮,RB7口用于控制蜂鸣器,三极管Q3(S8050)作驱动放大,只有在RB7输出高电平时,蜂鸣器才能鸣响报警。设RA0~RA2为输出口,其中
[单片机]
基于PIC16F627<font color='red'>单片机</font>的可调倒计时提醒器软硬件设计
MCS-51单片机定时中断不同应用情况解决方案
MCS-51单片机的中断响应延迟时间,取决于其它中断服务程序是否在进行,或取决于正在执行的是什么样的指令。单中断系统中的中断响应时间为3~8个机器周期 。无论是哪一种原因引起的误差,在精确定时的应用场合,必须考虑它们的影响,以确保精确的定时控制。根据定时中断的不同应用情况,应选择不同的精确定时编程方法。 文中以定时器T1工作在定时方式1为例,晶振频率为12MHz 。 1 方法1 在定时器溢出中断得到响应时,停止定时器计数,读出计数值(反映了中断响应的延迟时间),根据此计数值算出到下一次中断时,需多长时间,由此来重装载和启动定时器。例如定时周期为1ms,则通常定时器重装载值为-1000(0FC18H)。下面的程序在计算每个定时
[单片机]
51单片机资源扩展:从片内ROM跳转到片外ROM
源于一年前想自己动手给51写个OS,编译选Large模式,调试时整个流程都跑的好好的,可是烧写到片上后得不到预期的效果,后来查书才知道51单片机片上只有4KRom,如果没有扩展片外Rom,当访问4K以外的程序空间,程序指针又会回到最开始执行。参考手册扩展片外Rom后,能访问达64K的程序空间。网上能搜索到的扩展方式都是将EA引脚接地,让MCU上电后从外部ROM开始执行。但查看芯片手册,明明说EA为高时,程序从片内ROM执行,当执行到0x1000以上地址时(标准51单片机),会跳转到片外ROM执行。按网上的做法,为了扩展个片外ROM,片内的基本ROM都不用了,有点浪费了,于是开始找资料如何从片内跳转到片外执行。 射人先射马,发
[单片机]
51<font color='red'>单片机</font>资源扩展:从片内ROM跳转到片外ROM
时钟芯片SD2200ELP与AVR单片机TWI接口控制的设计
  在提升机制动闸瓦间隙实时在线检测的设计中,需要保存故障时间和故障数据。   大部分仪器仪表中都要使用时钟芯片,但是很多的实时时钟芯片(如PCF8563)没有掉电保护,须外接晶振和电池,比较麻烦。而深圳兴威帆电子技术有限公司生产的SD2200ELP是内置32 KBE2PROM的串行实时时钟芯片,不需要外接器件支持,连线简单、可靠,提供的数据精确,断电后也能继续工作。微控制器采用Atmel公司的ATmegal6单片机,利用AT-megai6的硬件TWI接口可直接对SD2200ELP进行操作,无需软件模拟I2C方式,使用方便、可靠。   1 SD2200L简介   SD2200L系列(包括SD2200B/C/D/E/FLP)是一
[单片机]
时钟芯片SD2200ELP与AVR<font color='red'>单片机</font>TWI接口控制的设计
盛群再推出HT68F60、HT66F60Flash MCU系列
继全新系列的Enhanced Flash MCU,I/O型的HT68Fxx系列及A/D型的HT66Fxx系列后,盛群再推出12KWords HT68F60及HT66F60系列,全系列符合工业上-40℃ ~ 85℃工作温度与高抗噪声的性能要求,搭配盛群ICP (In-Circuit Programming) 技术方案,可轻易实现成品韧体更新,全系列搭载非挥发性数据存储器(EEPROM),可于生产过程或成品运作中储存相关调校参数与数据,并且不因电源关闭而消失,可有效提高生产效能与产品弹性。 Enhanced Flash MCU系列Program Memory为12K Words,SRAM 576 Bytes,内建256 B
[单片机]
盛群再推出HT68F60、HT66F60Flash <font color='red'>MCU</font>系列
8x8LED点阵+单片机+普中+江科大自化协
1 功能: (1)静态显示:显示一个笑脸; (2)动态显示:a,移动显示“HELLO!”,b,显示笑脸哭脸的变化; 2 原理 3 框图 4 硬件原理图 5 软件设计 5.1 静态显示源程序 (1)主函数 #include REGX52.H #include delay100ms.h sbit SER = P3^4; //74HC595的串行数据输入DS sbit RCK = P3^5; //74HC595的移位寄存器SH_CP sbit SCK = P3^6; //74HC595的锁存寄存器ST_CP #define matrixled_col P0 //笑脸的数据,列向取模 unsigned
[单片机]
8x8LED点阵+<font color='red'>单片机</font>+普中+江科大自化协
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved