本篇进行中断系统的讲解。
中断请求标志
1.TCON的中断标志
IT0(TCON.0),外部中断0触发方式控制位。
当IT0=0时,为电平触发方式。
当IT0=1时,为边沿触发方式(下降沿有效)。
IE0(TCON.1),外部中断0中断请求标志位。
IT1(TCON.2),外部中断1触发方式控制位。
IE1(TCON.3),外部中断1中断请求标志位。
TF0(TCON.5),定时/计数器T0溢出中断请求标志位。
TF1(TCON.7),定时/计数器T1溢出中断请求标志位。
2.SCON的中断标志
*RI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。注意,RI必须由软件清除。*TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。
80C51中断的控制
一、中断允许控制
CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。
*ET0(IE.1),定时/计数器T0中断允许位;
*EX1(IE.2),外部中断0允许位;
*ET1(IE.3),定时/计数器T1中断允许位;
*ES (IE.4),串行口中断允许位;
*EA (IE.7), CPU中断允许(总允许)位。
二、中断优先级控制
80C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的 。
*PT0(IP.1),定时/计数器T0优先级设定位;
*PX1(IP.2),外部中断0优先级设定位;
*PT1(IP.3),定时/计数器T1优先级设定位;
*PS (IP.4) ,串行口优先级设定位;
*PT2(IP.5) ,定时/计数器T2优先级设定位。
而80C52单片机有四个中断优先级,即可实现四级中断服务嵌套。每个中断源的中断优先级由中断优先级寄存器IP和IPH中的相应位的状态来规定的 。
*PT0(IPH.1),定时/计数器T0优先级设定位;
*PX1(IPH.2),外部中断0优先级设定位;
*PT1(IPH.3),定时/计数器T1优先级设定位;
*PS (IPH.4) ,串行口优先级设定位;
*PT2(IPH.5) ,定时/计数器T2优先级设定位。
同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:
*设置52单片机的4个中断源,使他们的优顺序为T1,INT1,INT0,T0.
IPH = 0x08; PT1 = 1; IP = 0x40; PX1 = 1;