您的位置 首页 知识

MCS-51单片机的中止体系(2)

中断响应过程中断响应过程为,中断源发出中断请求rarr;对中断请求进行响应rarr;执行中断服务程序rarr;返回主程序。这个过程可分为三个阶

中止呼应进程

中止呼应进程为,中止源宣布中止恳求→对中止恳求进行呼应→履行中止服务程序→回来主程序。这个进程可分为三个阶段来完结。
1. 中止采样
关于外部中止恳求,中止恳求信号来自于单片机外部,核算机要想知道有没有中止恳求发生,有必要对信号进行采样。
① 电平触发方法的外中止恳求(IT0/IT1=0)采样到高电平时,标明没有中止恳求,IE0或IE1继续为“0”。采样到低电平时,IE0/IE1由硬件主动置“1”,标明有外中止恳求发生。
② 脉冲触发式的外中止恳求(IT0/IT1=1)在相邻的机器周期采样到的电平由高电平变为低电平时,则IE0/IE1由硬件主动置“1”,不然为“0”。
2. 中止查询
由CPU测验TCON和SCON中的各个中止标志位的状况,确认有那个中止源发生恳求,查询时按优先级次序进行查询,即先查询高优先级再查询低优先级。假如同级,按以下次序查询:
#INT0→T0→#INT1→T1→ S
假如查询到有标志位为“1”,标明有中止恳求发生,接着就从相邻的下一机器周期开端进行中止呼应。
3. 中止呼应
当CPU查询到中止恳求时,由硬件主动发生一条LCALL指令,LCALL指令履行时,首先将PC内容压入仓库进行断点维护,再把中止进口地址装入PC,使程序转向相应的中止区进口地址。LCALL指令的方法如下:
LCALL addr16 ;addr16:中止进口地址
进口地址已由体系设定,如下:

中止源 进口地址
0003H
T0 000BH
0013H
T1 001BH
S 0023H

从表中能够看出,每个中止区只要8个单元,很难组织下一个中止程序,一般是在中止进口地址处加一条跳转指令,跳转到用户的服务程序进口。编写中止服务程序的格局一般如下:
ORG 0000H
SJMP MAIN
ORG 0003H
AJMP 1NJERRVP
MAIN: ···
HERE: SJMP HERE
1NJERRVP: ··· ;中止呼应程序
RETI
并不是一切的恳求都被呼应,当遇到下列状况之一时不呼应这些中止恳求:
(1)CPU正在处理一个同级或许高档的中止服务
(2)当时指令还没有履行结束
(3)当时指令是RET、RETI或许是拜访IP、IE的指令,履行完这些指令后,还有必要再履行一条指令,才呼应中止恳求。
留意:MCS-51单片机对中止查询成果不作回忆,当有新的查询成果出现时,由于以上原因而被延迟的查询成果将不复存在,其中止恳求也就不能再被呼应了。

中止恳求的吊销

中止呼应后,TCON和SCON的中止恳求标志位应及时吊销。不然意味着中止恳求依然存在,有或许形成中止的重复查询和呼应,因而需求在中止呼应完结后,吊销其中止标志。
1. 守时中止恳求的吊销
硬件主动把TF0(TF1)清0,不需求用户参加。
2. 串行中止恳求的吊销
需求软件清零。
3. 外部中止恳求的吊销
(1)脉冲触发方法的外中止恳求吊销
中止标志位的清零是主动的,脉冲信号往后就不存在了,因而其吊销是主动的。
(2)电平触发方法的外中止恳求吊销
中止标志位的清零是主动的,可是假如低电平继续存在,在今后的机器周期采样时,又会把中止恳求标志位(IE 0/IE 1)置位。为此,需求外加电路,把中止恳求信号从低电平强制为高电平。

电平触发方法的外中止恳求吊销
经过直接置位端#Sd使中止恳求信号强制从低电平变为高电平,要完成此功用需求在中止进口地址处参加如下两条指令:
ORL P1, #01H
ANL P1,#0FEH

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/261489.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部