1.中断源
80C51.单片机中有5个中断源。80c52中增加了一个中断源--定时器/计数器T2中断,共有6个中断源。每一个中断源都能被单片机程控为高优先级或低优先级。
80c51单片机的5个中断源包括2个外部中断源和3个内部中断源。2个外部中断源为INT0和INT1,外部设备的中断请求信号、掉电等故障信号都可以从INT0或INT1引脚输入。3个内部中断源为定时器/计数器TO、T1的定时/计数溢出中断源和串行口发送或接收中断源。80C5 1的5个中断源可以分为3类,即:
(1)外部中断
外部中断是由外部信号引起的,共有两个外部中断,其中断请求信号分别从引脚INT0(P3.2)和INTl(P3.3)上引入。
(2)定时中断
定时中断是为满足定时或计数需要而设置的。当计数器发生计数溢出时,表明设定的定时时间已到或计数值已满,这时可以申请中断。由于定时器/计数器位于单片机芯片内部,所以定时中断属于内部中断。80C51.内部有两个定时器/计数器,所以定时中断有两个源,即:
① FF0(P3.4)一一定时器/计数器TO溢出中断。
② FFI(P3.5) 定时器/计数器T1溢出中断。
(3)串行中断
串行中断是为串行数据传送的需要而设置的。每当串行口发送或接收一组串行数据时,就产生一个中断请求。 .
TI(SCON.1)和RI(SCON.O)--串行口发送和接收中断源。
2.中断的允许和禁止由中断允许寄存器IE控制
中断允许寄存器IE格式如图5—1所示。
┏━━━━━┳━━━┳━━━┳━━━┳━━━┳━━━━┳━━━━┳━━━━┳━━━━┓ ┃ 位地址 ┃ AFH ┃ AEH ┃ ADH ┃ ACH┃ ABH ┃ AAH ┃ A9H ┃ A8H ┃
┣━━━━━╋━━━╋━━━╋━━━╋━━━╋━━━━╋━━━━╋━━━━╋━━━━┫ ┃ 符 号 ┃ EA ┃ ┃ ┃ ES ┃ ETl ┃ EXl ┃ ETO ┃ EXO ┃
┗━━━━━┻━━━┻━━━┻━━━┻━━━┻━━━━┻━━━━┻━━━━┻━━━━┛
图5—1 中断允许寄存器IE格式
IE寄存器中相应位设置为O时,所对应的中断源被禁止中断;相应位设置为1时,所对应的中断源被允许中断。
系统复位后IE寄存器中各位均为0,即此时禁止所有中断。
与中断有关的控制位共6位,即:
EX0 外部中断O中断允许位。
ETO 定时器/计数器T0中断允许位。
EXl 外部中断1中断允许位。
ETl 定时器/计数器T1中断允许位。
ES 串行口中断允许位。
EA CPU中断允许位。当EA=1时,允许所有中断开放,总允许后,各中断的允许或禁止由各中断源的中断允许控制位进行设置;当EA=0时,所有中断屏蔽。
80C51单片机通过中断允许控制寄存器对中断的允许(开放)实行两级控制,即以EA位作为总控制位,以各中断源的中断允许位作为分控制位。只有当总控制位EA有效(即开放中断系统)时,各分控制位才能对相应中断源分别进行开放或禁止。 .