我已经将PIC16F877
(datasheet)用于多个项目。对于单个外部引脚更改中断,可以使用PORTB0
中断。但是现在我需要在一个电路中支持8个独立的外部引脚更改中断。
在数据表中,它说有15个中断PIC16F877
,但是我想这些都算在内,包括定时器溢出中断等...在这种情况下没有用。
这是数据表关于INTCON
寄存器的内容。
我可以使用bit0进行4个独立的中断RBIF
吗?它代表的变化PB7:PB4
。如何通过读取中断程序中的端口值来识别哪个引脚发生了变化?
即使我得到以上肯定的答案,我也需要8次中断?当然,我仍然可以使用INTE
进行PORTB0
更改。然后4 + 1 = 5
,其他3个呢?(但是,尽管这8个中断事件都是同一类型,但4 + 1 + 3 = 8
事情看起来很难看,不是吗?)
除了监视8个引脚之外,微控制器没有其他繁重的任务。(谈论其他任务时,它必须维护一组单独的计数器变量,并经常向PC串行传输约4个字节)
欢迎任何建议。即使是为了将微控制器更改为更合适的一个(但...不要告诉我不要使用PIC
s)。