单片机51,两个外部中断不能同时使用,就是这个开了,另外一个打开,之前的不能用

单片机51,两个外部中断不能同时使用,就是这个开了,另外一个打开,之前的不能用看看我编的

  同时有多个中断的话,就要考虑中断优先级的问题了。
  51单片机,默认的中断优先级是:
  外中断0>定时器0>外中断1>定时器1>串口
  由于低级中断不能打断高级中断,因此默认情况下,外中断0可以打断外中断1,从而实现中断嵌套;但外中断1不可以打断外中断0,在外中断0的中断服务没有退出之前,外中断1是进不去的。追问

怎么停止中断里面的程序,就是回到主函数

追答

刚刚仔细看了一下你的程序,中断服务里咋还能有个无限循环?那不就是让中断进去后再也不退出了吗?那个中断服务执行到底结束,就退出了,或者使用return退出(汇编的话用RETI)。

追问

我是这样的,进去中断程序,等无限闪烁,再按另外一个中断程序,这个中断会停止去另一个

追答

你这么写的话,程序稍微复杂一点,就搞不定了。
中断服务进去之后置个标志位,然后就退出,主程序中根据对应的标志位来工作

追问

你能写一个让我参考下么

标志位是tr0么

温馨提示:内容为网友见解,仅供参考
无其他回答

51单片机的两个外部中断可否同时开启
可以,只要第二次的中断优先级高于第一次就行。通过设置了中断控制寄存器IP来实现。如果不设置 默认的优先级顺序为:INT0 TO INT1 TI 串口中断。do{} while(P3^3==0);先执行一次DO里的循环 在P3.3=0(INT1中断) 如果成立继续执行循环 do{} while(P3^3==1);TR1=0;先执行一次DO里的循环...

51单片机,定时器中断和外部中断冲突了,外部中断后再也进不入定时中断...
外部中断里不要做太多事情吧。简单置个标志位之类的,在主函数里轮询标志位去执行代码。在中断里做太多事情,是一大忌。

请问51单片机 外部中断后不能继续执行原来的程序,可能是什么原因。
1、你的外部中断是电平触发,当你中断执行完毕后,电平还是没有变,就等于又中断了,建议你改为边沿触发 2、你在进入中断后,没有保存现场,内存的数据乱了,结果中断完成后就回不去了 3、中断程序有问题,这要对照具体的程序才知道

51单片机定时器中断和外部中断可不可以同时进行
当然可以同时进行了。还可以根据中断的重要程序,设置一个为优先级。就是把所有的中断都打开,也是可以同时进行的。

51单片机2个外中断的应用,这个怎么设计?
值得一提的是:单片机中断响应后不会自动关闭中断,因此在转入中断服务程序后,应由软件指令禁止中断。中断优先级控制寄存器 (IP)MCS-51的中断优先级控制比较简单,只设置了高、低两个级别的有限级,各中断源的优先级别由优先寄存器(IP)进行控制。·PX0——外中断0(INT0)优先级控制位。·PT0——定时...

51单片机中断函数两部分调用同一个函数为什么一个成功一个不成功呢
一是中断函数最好不认为调用,很容易出问题的。二是中断服务程序里面,如果是定时中断的话最好不要调用外部函数,否则定时溢出而没退出调用函数的话,也会出问题的。

你好,怎么样让51单片机几乎“同时”执行两个不相干的子程序呢
这是不可能同时执行的!楼上上说两个定时器任务~~如果两个定时器同时产生溢出中断,肯定先执行定时器优先级高的!!

51单片机外部中断疑问
若是一直让程序在外部中断0中,大家也许会想到用低电平触发方式,但也只是想罢了,是不可能实现的。因为当单片机检查到中断标志位置位后,就会进入中断函数,但中断函数语句执行完后,便会退出中断,并清除中断标志位,回到原来的地方继续执行。我们也许会想,如果中断标志位一直置位,那么程序退出中断后,...

51单片机外部中断子程序为什么会执行两次?
然而由于你用杜邦线接触P3.2口存在抖动(你感觉不到),外部中断引脚再次接受到一个下降沿,IEx又被置1,单片机又要响应中断,但此时由于上一个中断程序未执行完,单片机将等待外部中断程序执行完(你可以理解为有两个中断事件,但这两个事件优先级相同,所有按顺序响应)。在这个过程中,你的接触仍然...

51单片机,怎么用矩阵键盘中的两个按键控制外部中断0和1,在按按键的时...
让 P3.7 始终为 0,然后就是按 S12 触发外部中断 0,按 S16 触发外部中断 1。

相似回答