PIC18F2420/2520/4420/4520
9.0
中断
在PIC18F2420 / 2520 /四千五百二十○分之四千四百二十○设备有
多个中断源及中断优先级
功能,可以让大多数中断源
分配高优先级或低优先级。该
高优先级中断向量地址为0008h,低
优先级的中断向量地址为0018h 。高优先级
中断事件将中断所有低优先级中断
这可以是正在进行中。
有10个寄存器,用于控制
中断操作。这些寄存器是:
•
•
•
•
•
•
•
RCON
INTCON
INTCON2
INTCON3
PIR1 , PIR2
PIE1 , PIE2
IPR1 , IPR2
当IPEN位清零(默认状态)时,
中断优先级功能被禁用,并且中断
与PIC兼容
®
中档器件。在Compati-
相容性模式,中断优先级位的每个源
没有任何效果。 INTCON<6>是PEIE位,
允许/禁止所有外设中断源。
INTCON<7>是GIE位,用于允许/禁止所有
中断源。所有中断均跳转到地址
0008H在兼容模式下。
当响应中断时,全局中断
使能位被清零以禁止其它中断响应。如果
IPEN位清零,这就是GIE位。如果中断优先级
水平使用,这将是GIEH或GIEL位。
高优先级中断源会中断低
优先级的中断。低优先级的中断是不
而处理高优先级中断正在进行中。
返回地址被压入堆栈,
PC装入中断向量地址(0008h
或0018h ) 。只要在中断服务程序中,
中断源极(S )可以通过查询确定
中断标志位。中断标志位必须是
软件清零,然后再重新启用的中断
避免重复中断。
在“中断返回”指令,
RETFIE ,
退出
中断服务程序,同时将GIE位( GIEH或GIEL
如果优先级使用) ,从而重新允许中断。
对于外部中断事件,如INTx引脚或
PORTB输入电平变化中断,中断响应延时
将三到四个指令周期。确切的
等待时间是相同的一个或两个周期的指令。
各中断标志位被置位的,不管
其对应的使能位或GIE位的状态。
注意:
不要使用
MOVFF
指令修改
任何的中断控制寄存器,而
任何
中断被使能。这样做可能
导致单片机操作出错。
所以建议的Microchip头文件支持一
合股与MPLAB
®
IDE中用于符号位
名字在这些寄存器中。这使得汇编器/
编译器能够自动放置的护理
指定寄存器内的这些位。
一般情况下,中断源有3个位来控制
它们的操作。他们是:
•
标志位
以指示一个中断事件
发生
•
使能位
它允许程序执行
跳转到中断向量地址时,
标志位被置位
•
优先级位
选择高优先级或低优先级
中断优先级功能是通过设置启用
IPEN位( RCON<7> ) 。当中断优先级
使能时,有2位可允许中断
全球范围内。将GIEH位( INTCON<7> )使所有
所有优先级位置1(高优先级)的中断。
将GIEL位( INTCON<6> )使所有
所有优先级位清零(低优先级)的中断。
当中断标志位,允许位及相应
全局中断使能位被置位,中断向量会
器立即到地址0008h或0018h ,这取决于
优先级位的设置。单个中断可以
通过设置相应的使能位禁用。
©
2008 Microchip的技术公司
DS39631E第91页