掌握MCS-51的中断系统结构及应用、掌握中断处理过程、学会中断程序编写。
1.中断的基本概念
(1)中断CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序,叫做中断。
(2)中断源 中断源是指能发出中断请求,引起中断的装置或事件。
(3)中断处理过程 中断处理过程大致可分为四步:中断请求、中断响应、中断服务和中断返回。
中断请求:中断源发出中断请求信号,相应的中断请求标志位(在中断允许控制寄存器IE中)置“1”。
中断源发出中断请求,相应中断请求标志置“1”。CPU响应中断后,必须清除中断请求“1”标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。
中断响应:CPU查询(检测)到某中断标志为“1”,在满足中断响应条件下,响应中断。如果存在下列情况时,中断请求不予响应:
1)CPU正处于一个同级的或更高级的中断服务中。
2)当前指令是中断返回(RETI)或子程序返回(RET)、访问IE、IP的指令。这些指令规定,必须在完成这些指令后,还应接着执行一条后面的指令才能够响应中断请求。
若排除CPU正在响应同级或更高级的中断情况,中断响应等待时间为3~8个机器周期。
执行中断服务程序:中断服务程序应包含以下几部分:①保护现场;②执行中断服务程序主体,完成相应操作;③恢复现场。
中断返回:在中断服务程序最后,必须安排一条中断返回指令RETI。
中断响应等待时间:若排除CPU正在响应同级或更高级的中断情况,中断响应等待时间为3~8个机器周期。
中断请求的撤除:中断源发出中断请求,相应中断请求标志置“1”。CPU响应中断后,必须清除中断请求“1”标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。
2.中断控制
(1)中断源与中断请求标志如表6-1所示。
表6-1 中断源与中断请求标志
(www.xing528.com)
(2)中断控制寄存器 与中断有关的特殊功能寄存器是中断允许控制寄存器(IE)、定时器控制寄存器(TCON)、中断优先级控制寄存器(IP)及串行口控制寄存器(SCON)。
·中断允许控制寄存器(IE)
8051单片机通过中断允许控制寄存器进行两级中断控制。EA位作为总控制位,以各中断源的中断允许位作为分控制位。但总控制位为禁止(EA=0)时,无论其他位是1或0,整个中断系统是关闭的。只有总控制位为1时,才允许由各分控制位设定禁止或允许中断,因此,单片机复位时,IE寄存器的初值是(IE)=00H,中断系统是处于禁止状态,即关中断。
·定时器控制寄存器(TCON)
这个寄存器既有中断控制功能,又有定时器/计数器的控制功能。其中与中断有关的控制位有6位:IE0、IE1、IT0、IT1、TF0、TF1。
IEx——外部中断请求标志位,当CPU采样到引脚出现中断请求后,此
位由硬件置1;在中断响应完成后转向中断服务程序时,再由硬件自动清0。这样就可以接收下一次外中断源的请求。
ITx——外中断0请求信号方式控制位,当IT0=1,后沿负跳变有效;IT0=0,低电平有效。此位可由软件置1或清0。
TFx——计数器0溢出标志位,当计数器0产生计数溢出时,该位由硬件置1,当转到中断服务程序时,再由硬件自动清0。这个标志位的使用有两种情况:当采用中断方式时,把它作为中断请求标志位用,该位为1,当CPU开中断时,则CPU响应中断;而采用查询方式时,作查询状态位使用。
·中断优先级控制寄存器(IP)
通过对IP的编程,可以把5个(8052为6个)中断源分别定义在两个优先级中。IP是中断优先级寄存器,可以位寻址。IP的低6位分别各对应一个中断源:某位为1时,相应的中断源定义为高优先级;某位为0时,定义为低优先级。
8051单片机的硬件把全部中断源在同一个优先级的情况下按下列顺序排列了优先权,优先权最高,定时器2优先权最低:
·串行口控制寄存器(SCON)
该寄存器共有八位字节地址,其中与中断有关的控制位有两位:
TI——串行口中断请求标志位。当发送完一帧串行数据后,由硬件中断置1,在转向中断服务程序后,用软件清0。
RI——串行口接收中断请求标志位。当接收完一帧串行数据后,由硬件中断置1,在转向中断服务程序后,用软件清0。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。