大侠们,51单片机如何利用有限的外部中断控制多个子程序?谢谢啦

如题所述

单片机外部中断有限,仅有两个,在某些系统设计中可能会不够用。这里给大家推荐一个比较简单的扩展外部中断的方法。灵感来至于单片机键盘设计!

在有些键盘设计中,如果在程序中采用轮询的方法在检测按键,会花费大量的cpu资源,特别是还要进行大量的数据处理的情况下。所以很多按键设计都加入了中断,上一篇博文里的按键设计其实都可以加入中断,这样可以更好的利用cpu资源。

一般在按键设计中只会用一个中断,但是却可以控制n多的按键。每一个按键的按下都相当于产生了一个中断,所以利用这个原理,我们也可以‘无限’的扩展外部中断。一个简单的电路图如下:

这样当外部送来一个低电平的信号时,通过与非门后将产生一个中断信号,这个信号可以送到单片机的外部中断1,然后检测p00到p03的电平状态,就可以判别是根线上产生了外部中断,从而运行相应的中断服务子程序。

这个电路原理可以结合前面的按键来进行进一步的发挥(每个按键信号可以当做一个中断信号),那样可以产生跟多的中断信号。追问

电路呢、、、

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-09
你的意思是不同的外部中断来控制不同的内部程序吧
一般采用一个多输入或门电路和其他外部引脚连接 在一起同时将或门的输出连接到外部中断上
这样当有信号输入时,同时或门就改变状态输出到外部中断上触发单片机中断
在中断程序里你通过引脚来判断是那一路输入,同时调用相应子程序。处理完成后在退出中断追问

有没有例子让我看看啊,谢谢

追答

你按我说的基本就是个电路图了,你要求几路外部中断就可以用个几路输入或多1,2路也没关系
然后每一路都和51的外部IO并联,以使各路的触发信号都能给外部中断。

本回答被提问者采纳
相似回答