了解中断/中断处理程序,PIC

时间:2011-03-22 00:40:43

标签: assembly microcontroller interrupt

我理解中断是什么,不知道它是如何工作的或如何实现的。 我正在使用PIC16F886并将我的开关连接到TRISB上的第5位。 有了这个,我意识到我需要在中断发生之前进行一些设置。 RB0-3是LEDS,RB4-7用于中断/开关。

有了这个,我知道我需要在INTCON中启用中断 设置位GIE,INTF,我认为RBIE而不是INTE因为LED正在使用RB0?但我不确定。

我主要担心的是:中断是如何触发的?还有像组织0x04这样的东西。在中断中有什么意义?这些是重要的细节,但我没有,我无法继续。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

快速查看datasheet,0x4是中断向量。因此,当地址0x4发生中断时,您应该将要跳转的代码的地址放入,就像您可能在重置为0x0时已经将要跳转的代码的地址放在一起。

如果您设置了RBIE位且IOCB中的相关位,则PORTB输入的任何更改都可以触发中断。您需要读取或写入PORTB(实际上,您可能希望读取它,并检查第5位的值以确保它是更改的开关),或清除RBIF以结束中断。

所以:如果您启用了相关的中断,则会在发现交换机的值发生变化时触发。此时,CPU跳转到位于0x4的地址。