- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
外部中断控制过程;外部中断的处理过程;中断处理过程大致可分为4步:中断请求、中断响应、中断服务和中断返回。;中断处理过程大致可分为4步:中断请求、中断响应、中断服务和中断返回。
当中断源要求CPU为它服务时,必须发出一个中断请求信号。CPU将相应的中断请求标志位置“1”。为确保该中断得以实现,中断请求信号应保持到CPU响应该中断后才能取消。CPU会不断及时地查询这些中断请求标志位,一旦查询到某个中断请求标志置位,CPU就响应这个中断源的中断请求。;2.1中断响应--条件
同时满足以下4个条件时,才可能响应中断:
(1)有中断请求;
(2)对应中断允许位为1;
(3)开中断(即EA=1);
(4)当前一条指令执行完。;2.1中断响应--条件
不响应中断的条件(满足之一):
(1)正在执行同级或高优先级的中断服务程序;
(2)不是指令的最后一个机器周期(该条指令没有执行完);
(3)执行RETI或读写IE/IP指令期间不能响应,或不是其后面一条指令的最后一个机器周期(即如果是RETI或读写IP/IE指令后,需再执行一条指令后才能响应中断);
(4)软件封锁(EA=0)。;2.2中断响应--过程
单片机一旦响应中断请求,就由硬件自动完成以下功能:
(1)把当前程序计数器PC的内容(中断点地址)压入堆栈,以便在RETI后返回原程序执行;
(2)关闭中断,以防止在响应中断期间受其它中断的干扰;
(3)清除相应的中断请求标志位(串行口中断请求标志RI和TI除外);
(4)把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC,从而转入相应的中断服务程序。;2.2中断响应--过程
一般在入口地址处放置一条跳转指令,转到相应的中断服务程序入口处。如对外部中断1的中断响应:
ORG0013H
LJMPWBZD1;2.3中断响应--时间
最短:3个机器周期
第一机器周期:查询中断标志状态;
第二、三机器周期:保护断点及跳转。
最长:8个机器周期
若正在执行RETI等指令需1个机器周期;
下一条指令最长需4个机器周期(如乘法指令);
响应中断需3个机器周期。
;中断源发出中断请求后,相应的中断请求标??位自动置“1”,而CPU响应中断后,必须及时清除中断请求“1”标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。
(1)边沿触发方式的外部中断/INT0和/INT1请求
定时器T0与T1的中断请求
CPU在响应中断后,由硬件自动清除相应的中断请求标志TF0、TF1、IE0与IE1。;(2)串行中断请求TI和RI
需由软件指令进行清除:CLRTI或CLRRI人工清除。
(3)电平触发方式的外部中断/INT0和/INT1请求
由软硬件相结合进行清除。
例如:INSVR:ANLP1,#0FEH;P1.0=0,Q=1撤销中断
ORLP1,#01H;P1.0=1,为下次中断作准备
CLRIE0;清除中断申请
······;MCS-51响应中断后,自动执行中断服务程序。在中断服务程序中,只要遇到RETI指令(不论在什么位置),单片机就结束本次中断服务,返回原程序。因此,在中断服务程序的最后必须有一条RETI指令,用于中断返回。
注意:
(1)不能用RET指令代替RETI指令。
(2)中断服务程序中PUSH与POP须成对使用。
文档评论(0)