历史上的今天
今天是:2025年01月19日(星期日)
2021年01月19日 | 51单片机扩展中断的方法
2021-01-19 来源: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的情况,就可以用一片单片机实现了,而不需要用两片单片机控制,还要进行单片机点对点通讯。
史海拾趣
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:58 编辑 在中国,京东方科技集团(BOE Technology Group)及华星光电技术(Shenzhen China Star Optoelectronics Technology)等本土企业将从2011年下半年开始利用第7.5代(底板尺寸为1950mm×2250mm) ...… 查看全部问答> |
|
VirtualAlloc,分配的空间大小可以超过32MB吗? 我的开发板有128M的内存。 OS分配32MB RAM分配32MB 显存分配64MB 这样可以吗? 显存的空间需要用VirtualAlloc来做,我的bsp里是这么做的,但是它限制大小为小于32M。… 查看全部问答> |
|
大家在开发windows CE应用程序时候. 一般是用SDK还是用MFC? 用MFC是否比SDK生成的代码量大很多. 实时性能也会比SDK的差? … 查看全部问答> |
|
还有我这里有一个 泓格PISO-730 PCI总线开关量输入/输出卡 买的时候有光盘,但怎么也装不上去 发现新硬件“网络控制器”但是安装驱动以后怎么也装不上 估计我装的方法有问题或者有别的什么问题 请教达人指点,小弟在这 ...… 查看全部问答> |
|
用IAR调试一段程序,出现如下状况,请问是什么意思? PS:我没设置断点 [ 本帖最后由 zzbaizhi 于 2012-2-24 14:57 编辑 ]… 查看全部问答> |
|
╮(╯▽╰)╭学了好久的课程,不过已经第四批了,还没有轮上我。好想用用那个触摸板啊。难过之余,发给各位同学一份资料。这是我们培训时,官方给的培训光盘里面的资料。希望对大家的学习有帮助。所以求人品,,,,,,希望下一批的名单里面有我啊 ...… 查看全部问答> |




