找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8723|回复: 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:167311 发表于 2017-3-2 22:47 | 只看该作者
进入中断程序后,只有在执行完delay 延时后 才会返回到主程序,还有外部中断标志位 清下 试下
回复

使用道具 举报

地板
ID:75631 发表于 2017-3-2 23:06 | 只看该作者
“为什么中断服务程序还在执行,没有立刻停止返回主程序中“
 delay(1000);
你还在延时啊!
回复

使用道具 举报

5#
ID:167806 发表于 2017-3-3 09:31 | 只看该作者
一进入中断时就要关闭中断的,把EA=0
回复

使用道具 举报

6#
ID:125378 发表于 2017-3-3 13:33 | 只看该作者
程序有优先级的问题,再看看。仔细检查
回复

使用道具 举报

7#
ID:123289 发表于 2017-3-4 02:02 | 只看该作者
中断的返回,是由程序运行“RETI"决定的,而与接口无关,接口信号只能引起进入中断,而不能引起退出中断。
回复

使用道具 举报

8#
ID:111634 发表于 2017-3-4 07:53 | 只看该作者
这句有问题,少“;”。 { for(b=100;b>0;b--)}
回复

使用道具 举报

9#
ID:134192 发表于 2017-3-4 13:54 | 只看该作者
杰杰diy 发表于 2017-3-3 09:31
一进入中断时就要关闭中断的,把EA=0

谢谢我试试
回复

使用道具 举报

10#
ID:134192 发表于 2017-3-4 13:55 | 只看该作者
yzwzfyz 发表于 2017-3-4 02:02
中断的返回,是由程序运行“RETI"决定的,而与接口无关,接口信号只能引起进入中断,而不能引起退出中断。

哦,谢谢,我先试试
回复

使用道具 举报

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

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

使用道具 举报

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

嗯嗯,我试试,谢谢
回复

使用道具 举报

13#
ID:111634 发表于 2017-3-4 21:11 | 只看该作者
TIANYUN1573 发表于 2017-3-4 13:55
哦,谢谢,我先试试

试什么啊?c程序没有RETI,不是汇编,中断返回是由c51根据正确的中断函数程序自动生成的。
回复

使用道具 举报

14#
ID:163324 发表于 2017-3-4 23:31 | 只看该作者
因为你要等待delay执行完毕才能回主函数。
可以将delay函数放到主函数中执行
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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