如何扩展单片机中的中断?
扫描二维码
随时随地手机看文章
MCS—51系列单片机内部只需两个外部接连源输入端,当外部接中断连源多于两个时,就必须进行拓宽,下面介绍几种简略的拓宽办法:
一、选用硬件央求和软件查询的办法:
这种办法是:把各个接连源通过硬件“或非(高有用,如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;开接连
}
二、用一般二极管构成接连选择
四种拓宽51单片机接连的办法
拓宽的8个外部接连源均通过二极管向I N T(x=0或I)央求接连。当某个外部接连源央求接连效能时输出低电平,单片机的I NT 经二极管接地电平,单片机满意照料外部接连(I N T)央求条件,照料接连,程序当即转向I NT 对应的接连进口地址处初步施行接连效能程序,通过软件查询PI.0~P1.7口外接连源的情况,以辨认提出央求的外扩接连源,并转向接连效能程序为其效能,其查询次第即为外部拓宽接连源的接连优先级次第。在图中,是选用PI.0~PI.7作为外扩接连源央求的情况信息输入端口。
有点相似第一种办法。
三、用定时器/计数器作外部接连
单片机的定时器/计数器是一个加一计数器,每当计数输入端有一个“1—0”的负跳变时,计数器加一,当加一计数器溢出时,就向CPU宣告接连,运用这个特性
来拓宽接连的办法是:首先把定时器/计数器设置成计数办法,并预置满值,把外部接连源输入到P3口第4引脚或第5引脚(计数器输入端),这么就可以运用
定时器/计数器作为单片机外部接连了。留神这种办法的接连效能的进口地址应
在000BH或001BH。
四、用专用接连拓宽芯片8259A
8259A是可编程接连控制接口,单片机控制八级接连。在系统中还可选用级联办法,一个主片可级联8个从片,构成64级接连处理系统。
8259A的主要功能如下:
①一片8259A可以接受并管理8级可屏蔽中断请求,通过9片8259A级联可扩展至64级可屏蔽中断优先控制。
②对每一级中断都可以通过程序来屏蔽或允许。
③在中断响应周期,8259A可为CPU提供相应的中断类型码。
④具有多种工作方式,并可通过编程来加以选择。
初始化命令字的作用是什么?如何对8259A进行初始化编程?
答案:通过初始化编程向8259A写入相应的初始化命令ICW,可以使芯片处于一个规定的基本工作方式,并在此方式下进行工作。8259A的初始化命令字共有4个ICW1-ICW4,进行初始化时要求ICW1-ICW4按一定的顺序写入。
STC15系列单片机最多有4个外部中断,有时还是觉得不够用, 如我们用它做自动机的限位保护时就需要多个中断.例如点胶机三轴限位就要6个中断.加上点胶阀操控,上料控制共十几个也不算多。外部中断扩展大致有以下几种方法:
1. 使用专用芯片,如8259A。
2. 将内部定时/计数器做计数器使用,设置使其当计数值为1时即触发中断,就可当外部中断用.
3. 用2的方法可将3路CCP/PCA当成外部中断使用。
4. 外部中断端口二极管并接输入再加软件查询定位输入源法。
4 个I/O口外加一片CD4051与8只1开关二极管将INT0由一个扩展为八个。
软件实现:首选使能中断及INT0中断,将INT0设置成下降沿触发中断,在中断函数中写出扫描触发中断源的代码,对不同的中断源,写出相应的响应代码。注意:方法4的实时性相对较差,因为输入源扫描,需要一些时间,要求高时,因谨慎选用。