MCS—51系列单片机内部只有两个外部中断源输入端,当外部中断源多于两个时,就必须进行扩展,下面介绍两种简单的扩展方法:
<strong>一、采用硬件请求和软件查询的方法:</strong>
这种方法是:把各个中断源通过硬件“或非(高有效,如CD4002)”(与,低有效)门引入到单片机外部中断源输入端(INT0或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这样当外部中断时,通过“或非”(与)门引起单片机中断,在中断服务程序中再通过软件查询,进而转相应的中断服务程序。显然,这种方法的中断优先级取决于软件查询的次序。其硬件连接和软件编程如下:
Void zhongduan (void) interrupt 0 using 3 //中断函数
{
EX0=0;//关中断
If(P0_0=1) { *****}//中断查询
If(P0_1=1) { *****}//中断查询
If(P0_2=1) { *****}//中断查询
EX0=1;开中断
}