4.5 外部中断扩展方法
利用单片机的中断功能可以提高CPU效率、提高事件的实时处理能力,但MCS-51单片机的外部中断源只有两个,如果需要中断处理的外部事件超过两个,就需要考虑扩展外部中断源,通常扩展方法有以下两种。
4.5.1 利用定时/计数器扩展
基本原理是:将定时/计数器设置成计数器,通过外部引脚P3.4(T0)及P3.5(T1)对外部脉冲计数,初始化时设置为工作方式2,且计数初值设置为0FFH,这样在中断允许并启动计数器后,只要引脚出现一个下降沿信号,计数器加1后便产生定时/计数器溢出中断。因此可以将引脚P3.4及P3.5作为外部中断引入端。其使用我们在下章进行讲解。
(https://www.daowen.com)
图4-7 扩展三个外部中断
4.5.2 利用中断、查询相结合扩展法
如图4-7所示,3个外部中断引入端通过一个与门连接至80C51的
,当WZD1、WZD2、WZD3全部为高时,与门输出高,没有中断申请,当WZD1、WZD2、WZD3中任何一个由高变低时,与门输出将由高变低,产生中断申请信号,CPU即可以响应中断,在中断服务程序中,首先就要判断是WZD1、WZD2、WZD3中的哪个引起的中断,确定中断源。电路上WZD1、WZD2、WZD3分别连接至P1.0、P1.1、P1.2,所以通过查询P1.0、P1.1、P1.2三个引脚,就可以找到中断源。
利用定时/计数器扩展外部中断源,硬件结构和软件编程都很简单,但前提是T0、T1未被使用,且最多只能扩展两个外部中断源。中断、查询相结合的扩展法,原则上可以处理任意多个中断源。但是,当所要处理的外部中断源的数目较多,而其响应速度又要求很快时,采用这种方法有可能满足不了时间上的要求。在需要扩展的中断源数较多,且对响应时间有要求时,可以采用外加中断扩展芯片的方法,如芯片8259A、74LS148,但这样将增加电路及编程的复杂程度。