找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8861|回复: 13
打印 上一主题 下一主题
收起左侧

51单片机外部中断0当P3.2口断开后,中断程序为什么还在执行

[复制链接]
跳转到指定楼层
楼主
ID:134192 发表于 2017-3-2 21:40 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
50黑币
我用外部中断0写了一个程序,用低电平触发,当p3.2松开后,为什么中断服务程序还在执行,没有立刻停止返回主程序中;
中断程序是
void exte0()  interrupt0
{
      P1=0X03;
      delay(1000);
}
void delay(unsigned c)
{
     unsigned int a,b;
     for(a=c;a>0;a--)
     {
             for(b=100;b>0;b--)
      }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:134192 发表于 2017-3-2 22:02 | 显示全部楼层
不写delay(1000)这个程序就没问题了,但是如果换做别的带时间的中断程序就又有这个问题了,比如中断写成流水灯,
回复

使用道具 举报

板凳
ID:134192 发表于 2017-3-4 13:54 | 显示全部楼层
杰杰diy 发表于 2017-3-3 09:31
一进入中断时就要关闭中断的,把EA=0

谢谢我试试
回复

使用道具 举报

地板
ID:134192 发表于 2017-3-4 13:55 | 显示全部楼层
yzwzfyz 发表于 2017-3-4 02:02
中断的返回,是由程序运行“RETI"决定的,而与接口无关,接口信号只能引起进入中断,而不能引起退出中断。

哦,谢谢,我先试试
回复

使用道具 举报

5#
ID:134192 发表于 2017-3-4 13:56 | 显示全部楼层
TIANYUN1573 发表于 2017-3-2 22:02
不写delay(1000)这个程序就没问题了,但是如果换做别的带时间的中断程序就又有这个问题了,比如中断写成 ...

谢谢,就是不写就成了
回复

使用道具 举报

6#
ID:134192 发表于 2017-3-4 13:56 | 显示全部楼层
hse 发表于 2017-3-2 22:47
进入中断程序后,只有在执行完delay 延时后 才会返回到主程序,还有外部中断标志位 清下 试下

嗯嗯,我试试,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表