登录
首页 单片机论坛
回帖 发帖
正文

主题:AT89S51的外部中断问题

点击:2113 回复:6

请问各位大侠,我的AT89S51的INT0、INT1均设置为下降沿触发,当INT0来了一个下降沿并且一直保持低电平,运行完INT0的中断服务程序后,系统进入掉电模式,然后INT1来一个下降沿将AT89S51唤醒,但是我发现唤醒后不仅INT1的中断服务程序被执行了,INT0的中断服务程序竟然也执行了,这是怎么回事?谢谢!
09-02-25 15:06
你检查一下程序,这样看来多半是程序的问题,重点是INT1的中断服务程序被执行完后那一段。
09-02-25 20:25
看看检测后的电平是否保持为低,必须要避开!
09-02-25 21:42
本来是这样的:AT89S51平时是掉电的,INT0或INT1的下降沿唤醒CPU。当INT0出现下降沿之后恢复为高电平时,CPU被唤醒,执行完INT0的中断服务程序后,CPU进入掉电状态,这时INT1的下降沿唤醒CPU时,只执行INT1的中断服务程序,这时很正常。
    而如果是INT0出现下降沿后保持为低电平时,CPU被唤醒,执行完INT0的中断服务程序后,CPU进入掉电状态,这时INT1的下降沿唤醒CPU时,先执行INT0的中断服务程序,然后才执行INT1的中断服务程序,这样就太奇怪了,请各位帮我分析一下,谢谢!
09-02-25 23:50
dddddd
09-04-08 20:04
当中断请求同时到达时,通常默认INT0优先于INT1。
        INT0低电平不解除,INT0的请求仍然保持,但并不连续激活,一旦INT1下降沿到来,激活中断请求,这时等同于2个中断同时有效,所以按默认优先次序,先执行INT0后执行INT1。
       解决办法:
       1)及时解除INT0的低电平。
       2) INT0执行中断服务程序之后关闭中断,在INT1中断服务程序结束再开启INT0(这个可以实验一下)。
       3) 建立标志,使INT0不重复执行。
09-04-19 12:54
掉电模式下,只有低电平中断能唤醒CPU,下降沿不能唤醒吧
09-04-19 20:43

工控新闻

更多新闻资讯