历史上的今天
今天是:2025年03月08日(星期六)
2021年03月08日 | 51单片机中断源的扩展方法
2021-03-08 来源:eefocus
一、采用硬件请求和软件查询的方法:
这种方法是:把各个中断源通过硬件“或非(高有效,如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;开中断
}
二、用普通二极管构成中断选择

扩展的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级中断处理系统。
这样在程序小于8K的情况,就可以用一片单片机实现了,而不需要用两片单片机控制,还要进行单片机点对点通讯。
下一篇:51单片机IIC通信底层程序
史海拾趣
|
引 言 SMS(Short Message Service)短信息服务是GSM(Global System for Mobile Communication)系统中提供的一种GSM终端(手机)之间,通过服务中心(Service Center)进行文本信息收发的应用服务,其中服务中心完成信息的存储和转发功能。短 ...… 查看全部问答> |
|
在DM9000所给的web例子中,设定DM9000的IP地址为: 172,20,24,42,然后将对接的PC的IP也设在该网段就行了,我想问的是,是不是DM9000的IP可以任意设置,只要保证同和它连接的PC的IP在一个网段就行了?… 查看全部问答> |
|
我用了max232cpe做了个串口烧录器,主要烧录STC51单片机,但是就是不行,我在max232里看到max232周围的电容用的是1u的,max232A用的电容是0.1U的,我想问一下max232可以用0.1u的电容吗?我的就是无法烧录,你们谁有完整的线路图给我个,谢谢。… 查看全部问答> |
|
我的dsp里设置HPIC寄存器为0x0B0B,即产生HINT中断,但用表测HINT脚一直是高电平。难道是要在HPI_CSR里的Interrupt Event Register和Interrupt Mask Register这两个寄存器进行相关设置?还是其他什么要设置?我调了一个礼拜了,还是老样子,现在快疯 ...… 查看全部问答> |
|
我的开发环境是VS2005,用的是PocketPC2003, 代码如下: #include \"ddraw.h\" #pragma comment(lib,\"ddraw.lib\") ...... IDirectDraw* pclDirectDraw; if (FAILED(DirectDrawCreate(NULL, &pclDirectDraw, N ...… 查看全部问答> |
|
初学FPGA (4)不完整条件语句与时序电路(EEFPGA学习计划) …… BEGIN IF CLK’EVENT AND CLK=’1’ THEN Q1<=D; END IF; 不完整的条件语句:即在条件语句中,没有将所有可能发生的情况给出对应的处理方式。对于这种现象,VHDL综合器理解为:对于不满足的条件,跳过Q1<=D不执行,但是需要保 ...… 查看全部问答> |




