我知道什么是中断,只是不知道它是如何工作的,也不知道它是如何实现的。我正在使用PIC16F886,并将交换机连接到TRISB上的第5位。这样,我意识到在中断发生之前,我需要做一些设置。RB0-3为LEDS,RB4-7为中断/开关。
这样,我就知道我需要通过设置位GIE,INTF来使能INTCON中的中断,并且我相信是RBIE而不是INTE,因为RB0正在被发光二极管使用?但我不确定。
我主要关心的是:中断是如何触发的?还有,像org 0x04这样的东西。这在中断中的意义是什么?这些都是我想不到的重要细节,但没有它们我就无法继续。任何帮助都将不胜感激。
发布于 2011-03-22 09:02:17
快速查看datasheet,0x4是中断向量。因此,当中断发生时,您应该将想要跳转到的代码的地址放在0x4,就像您已经将重置时想要跳转到的代码的地址放在0x0一样。
如果设置了RBIE位并在IOCB中设置了相关位,则PORTB输入的任何更改都会触发中断。您需要读取或写入PORTB (实际上,您可能希望读取它,并检查位5的值以确保是开关发生了变化),或者清除RBIF以结束中断。
所以:如果你已经启用了相关的中断,那么当你的开关的值被检测到已经改变时,它就会被触发。此时,CPU跳转到从0x4开始的地址。
https://stackoverflow.com/questions/5385441
复制相似问题