中易网

51单片机外部中断子程序为什么会执行两次呢(我只触发一次) 下面是我的程序代码

答案:3  悬赏:60  
解决时间 2021-01-29 03:31
51单片机外部中断子程序为什么会执行两次呢(我只触发一次) 下面是我的程序代码
最佳答案
你的外部中断应该是属于下降沿触发,当有一个下降沿到来时外部中断请求标志IE0或IE1(外部中断0或外部中断1请求中断标志,下面简称为IEx)就会置1,当进入中断程序后IEx由硬件归零。也就是说单片机当检测到IEx为1的时候就会进入到外部中断程序。
现在来分析一下为什么你的程序会执行两次中断。
当单片机外部中断引脚第一次接收到一个下降沿时,IEx被置1,进入中断程序,随即IEx被硬件清零。然而由于你用杜邦线接触P3.2口存在抖动(你感觉不到),外部中断引脚再次接受到一个下降沿,IEx又被置1,单片机又要响应中断,但此时由于上一个中断程序未执行完,单片机将等待外部中断程序执行完(你可以理解为有两个中断事件,但这两个事件优先级相同,所有按顺序响应)。在这个过程中,你的接触仍然会产生很多下降沿,但因为IEx只有响应了中断事件后才会清零,因此IEx一直为1。当第一次的中断程序执行结束后,单片机检测到IEx又是1,马上又再次进入中断。因为你的接触时间远远小于你的中断程序执行时间,因此在第二次执行中断程序前已不存在下降沿,所以进入第二次中断程序后,IEx就被清零了,这样执行完第二次中断程序后就不会再次进入中断了。
说了那么多希望你能明白吧。不明白可以翻查相关单片机外部中断相关资料。
全部回答
一次中断,循环五次,蜂鸣器响了十次,这不是很正常吗?
一般,单片机常用的都是《无源》的蜂鸣器,它只是在电压变化的时候响。
电压高电平,它不响;
电压低电平,它不响;
只是在电压上升、下降的边沿时刻,它才响一声。
如果,电压变化的很快,将听到连续的长声。
楼主的程序:
beep = 0;delay(500);
beep = 1;delay(500);
变化的时间间隔,长达几百毫秒,人,就听出来断续的声音。
先去找找按键处理的文章,搞清楚按键去抖。
按键抖动,会触发多次中断,第一次进中断后,延时期间可以多收一个中断,第二次再进,按键已经放开,所以只有两次,其实是很多次的,不过你只收到并处理了两次。
一般来说,不应该在中断处理中延时,也不要长时间的禁止中断。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
男朋友人太小心眼,做事很磨叽,就跟个女人一
框架结构 。大梁 纵向净跨5米,横向净跨4米。
长生岛5年生即时海参价格
中国历央上有名的诤臣都有那些
我一稍多跑步或跳动腹部一会右下方就有点痛,
求beyond的AMANI的谐音歌词,求齐全,求成全
怎么取消qq空间上的日历啊
DNF:韩服90史诗B套改版,光怪陆离能一跃成神
整个小区就我这一栋楼没有手机信号或极差根本
SEo搜索引擎忧化属于IT行业吗?
怎样查明星的名子,我只有照片
一个木盆在泼水猜成语
收到一个女生给自己发的红包,十一块,什么意思
陈绍基的个人经历
重耳在外而生,申生在内而亡 。有一个男生想到
推荐资讯
common 和general的区别
中石油河北邢台第四加油站地址在哪,我要去那
C#的性能到底有多差
轻微伤处罚
x+y=32,2x+4y=100 请解答
地铁6号线车公庄至潞城多长时间
笑话一则:真生气! 刚才老子/::@误加进
女歌手,什么什么的爱,什么什么等待,是什么
小学语文识字教学怎样避免写错别字课题研究
逆战专门打猎场的 有必要打天梯赛吗?
跑步几天然后就觉得左跨骨韧带痛,但摸又知在
在XP 里面 网站中鼠标右键的一些 功能怎样设
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?