好久没有上来了,这次来跟大家谈谈单片机的中断扩展的应用.任何问题方法多种,尽在人类的智慧体现. 我只说我了解和认识到的,如果有更好的参考也希望朋友们能一起分享!
这里我给大家介绍的中断扩展方法是用与门来做, 有点是扩展了外部中断,缺点是牺牲了I/O口.具体以下图为例:
上图中可以看出,那个预想扩展的外部中断经过一个与门,同时,这两个预想扩展的外部中断必须接到,两个I/O引脚上. 同时,在单片机中的外部中断处理里面要加上读引脚信号,和分别处理的程序.
比如: if(!EXTRA_INTER0)
{ 外部中断0的处理代码 };
else if(!EXTERA_INTER1)
{ 外部中断1的处理代码 };
以上我们是假设中断设置为下降沿触发.
下面我们对上面的简易接法和实现代码做简单的分析,如:我们的两个外部中断是两个按键,这个时候一个按键按下, 与门的结果就会是一个低电平,这个时候就已经产生了一个下降沿给单片机的外部中断, 这时单片机代码会进入到外部中断部分执行.这个时候就会到我们上面的判断代码中执行.
这样的中断扩展来做按键的效果还是很不错的,当然如果想让这个中断的扩展做得更完美,比如加上优先级,两个按键同时按下时,判断先做哪个中断...这就需要自己做一个中断表在单片机里,首先取得所有的预想扩展的外部中断的引脚信号.然后再选做哪个中断先做. 这需要代码里面加大工作量,当然实际的使用的时候可以根据自己对产品的需要来决定有没有必要做到那个难度!
当然我想应该还有其他的方法.这需要大家一起有兴趣去挖掘.......希望能跟各位电子设计的爱好者多谈论!探讨!