PIC16F87X单片机中断系统应用须关注的问题

时间:2012-04-10来源:网络

三、 中断相关的寄存器

与中断功能有关的特殊功能寄存器共有5个:中断控制寄存器INTCON、第1外围设备中断标志寄存器PIR1、第1 外围设备中断屏蔽寄存器(又称中断使能寄存器)PIE1、第2外围设备中断标志寄存器PIR2和第2外围设备中断屏蔽寄存器PIE2。如表2所列,5个寄存器中共有40位,其中使用了30位。分别与图1中的中断逻辑电路的输入逻辑信号成严格对应关系,也与逻辑表达式成严格对应关系。这5个寄存器都具有在 RAM数据存储器中统一编码的地址。也就是说,PIC单片机可以把这5个特殊寄存器当作普通寄存器单元来访问(即读出或写入操作)。这样有利于减少指令集的指令类型和指令数量,也便于学习、记忆和编程。

33.jpg

四、 中断的处理

单片机复位后,由硬件自动对全局中断屏蔽位进行设置GIE=0,将屏蔽所有的中断源。中断返回指令“RETFIE” 执行后,也由硬件自动对总屏蔽位进行设置GIE=1,重新开放所有的中断源。不论各种中断屏蔽位和全局中断屏蔽位GIE处于何种状态(是开放还是禁止),当某一中断源的中断条件满足时,都会发出中断请求,相应的中断标志位都会被置位(=1)。但是,是否能够得到CPU的响应,则要根据该中断源所涉及到的中断屏蔽位的状态而定。CPU响应中断后,由硬件自动对全局中断屏蔽位进行清零(GIE=0),屏蔽所有的中断源,以免发生重复中断响应,然后,由硬件自动把当前的程序计数器PC值(即程序断点地址)压入堆栈(实际为硬件堆栈),并且把PC寄存器置以中断向量地址(0004H),从而转向并开始执行中断服务程序。进入中断服务程序后,程序中必须安排指令,检查发出请求的中断源(如果同时开放多个中断源的话)。这可以通过检查各个中断源的标志位来实现。一旦确定出发出申请的中断源,就用软件把该中断源的标志位人为地清零,否则,执行中断返回指令“RETFIE”。重开中断后,由于中断标志位仍为“1”而引起 CPU重复响应同一个中断请求。中断服务程序的末尾必须放置1条中断返回指令“RETFIE”。执行该条指令后,不仅可以重开中断,而且还可以由硬件自动将保留在堆栈顶部的断点地址弹出,并放回到程序计数器PC中,使CPU返回和继续执行被中断的主程序。

1 中断的延时响应和延时处理

1次中断过程,从中断源发出请求到得到CPU的响应必然存在一定的延迟时间。各个相关信号的时序图如图2所示。

34.jpg

1 2 3 4

关键词: 关注 问题 应用 系统 单片机 中断 PIC16F87X

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版