首页 > 编程知识 正文

中断的例子(外部中断的触发方式)

时间:2023-05-06 16:47:43 阅读:86032 作者:2083

在这一节中,缘分给我们讲了单片机的有趣的事情。 那是中断

从图中可以看到,中断源连接到P3端口。 那么,中断是什么,中断是如何发挥作用的,原理是什么? 请放心。 不要紧张。 和缘分一起看看这些有趣的问题吧。 为了很好地说明这个晦涩难懂的概念,缘分用腹泻来说明这件事。 请相信你看了会吃饱的。 那么,家长们在看到这个之前深呼吸,闭上眼睛,小心。 感觉好些了吧? 那么,回去贴吧,你可以大声笑了。 为了防止看到后笑,请贴上。

首先,让我们考虑一下什么是中断。 比如,缘分在这里写帖子,突然缘分肚子痛得不得了,必须去厕所。 回来之后必须继续投稿。 那么,在这里写帖子是正常事件,肚子疼是信号,上厕所是另一个事件。

在这里,如果写帖子是执行程序的话,肚子痛是中断的源头,上厕所是中断的程序。 看看这个就明白了吧? 其实中断是指插入当前任务,或者进行其他任务,结束后又返回到当前状态的过程。 关于中断的名词解释,缘分自不必说,可以去看相关资料。

所以,我们每个人的生活都在无数的中断中度过。 这样,我们的生活就足够丰富多彩了。 假设人的一生只有睡觉,不中断的话,会怎么样呢? 呵呵,效果可以想象。 可以那么打断吗? 有一天,我在写帖子很生气,就厕所中断事件去了n次。 结果,缘分又进入了另一个中断之中。 也就是说,要打鱼钩。 结束后回来,发现自己很虚弱,又进行了另一次中断事件,煮了米粥,喝了才感觉好了一点,于是继续投稿。

在以上过程中发现了几个特征:

1、一切中断都有原因。 我们称之为中断源。 也就是说,中断会因某种情况或条件而发生。 如上所述,腹痛是中断的原因。 没有这个原因就没有中断。 有人可能会说即使肚子不痛也要去厕所,那去厕所的理由是什么呢? 尿液一膨胀,尿液就膨胀,这就是中断源。

2、一有中断源,就立即执行中断应答。 也就是说,执行中断的事件在事件执行完成后将恢复为原始任务。 如果程序的执行被中断,则在原程序的处理被中断时被标记,处理完成时也被标记。 例如,假设在写帖子时发生了上厕所的中断事件。 我去了厕所马上就回来了。 缘分在中断事件中不能去——厕所。 谁想一直在那里面? 中断事件完成后,即使中断关闭,也会标记一个中断的开始和结束。 的过程中边缘写帖子的过程是常规事件,离开键盘就是上厕所插队的开始。 那么,过来,再次触摸键盘,这就是中断的结束。

3、不仅仅是中断。 也就是说,中断中可以有多个中断。 但是,如果发生多次中断,时间上一定会有延迟。 在上面,缘分让我肚子痛,我去了洗手间。 上厕所的时候,正好有人打来了重要的电话。 那时,缘分必须接电话。 无论如何,接不完电话是不能出厕所的。 这样,接完电话后,从厕所里继续写帖子。 但是这个时间比单纯上厕所的时间要长得多。 在这里,你会发现接电话是另一个中断事件。 这件事发生在上厕所的中断中。 这称为中断嵌套。

4、所有的中断都与一个事件相应,并不是一起运行的。 有先后顺序的是,它很着急。 那个被放在最前面。 例如,去厕所的时候正好打来了电话。 那么,你是先接电话还是先上厕所? 关于缘分,如果生气受不了的话,必须先去厕所。 这在当时是非常仓促的中断事件。 放在后面的话,马上就到后面的洗手间就变成第一级了,接电话就是第二级了。 如果这个时候,电话从国家某检查组打来,上厕所还能忍一会儿。 这个时候,接电话成为了第一选择,水平也成为了第一水平。

5、中断事件中,既有外部造成的,也有内部造成的。 外部中断称为外部中断,内部中断称为内部中断。 在上述情况下,由腹痛引起的上厕所的中断称为内部中断。 因为这决定了我们自己是否进行上厕所的中断应答,接电话是外部中断。 电话是因为别人给你打的,不是你自己的错。 但是有人

了解这一点,看看我们在单片机上的中断是怎么回事:

在我们的单片机中,只有P3口具备与中断相关的第二种节能。 大致情况如下图。

我们看到这些图真的很混乱,感觉不知道发生了什么,看看他们在做什么:

看到这里我觉得还不太明白,这些东西到底是什么? 那么,让我们再来看看缘分的另一张图。

看这个,大概有影响吧。 让我们来看看他们的关系:

g.com/origin/e900001fc06ba6ab838?from=pc">

看了这些,是不是很迷糊呢,呵呵,不迷糊才怪呢,这里缘缘就给你们一一说明这些乱七八糟的东西,看看它们是怎么工作的,亲们,一定好记好哦:

1、从第一张图上我们看到,我们的P3口有6个管脚是关于中断的,两个是外部中断接口,两个是内部中断接口,两个是串行口的接口:

这里我们要知道一个情况,那么就是所有的这些管脚都是有特殊功能的寄存器控制的,那些寄存器的功能是干什么的,缘缘常把它们看成是一组开关,用来管理这些接口的工作状态的。我们看到外部与内部中断占用了一个寄存器TCON,而串行口占用了一个寄存器SCON,我们看到它的说明是中断标志,我们在前面说过,中断标志就是中断开始的标志了,这里我们把它与中断源归为一类,也就是有中断源时,会产生中断,当进行中断时,肯定会从标志处进行中断事件的。

2、从所有的图中我们看到这样一种情况,就是外部中断是两个,内部中断也是两个,串行中断是一个,其实外部中断的两个的工作原理是一样的,两个内部中断工作原理也是一样的,口行口的工作原理是另一回事,这样,我们要了解的中断只有三种,外部、内部、串行口,那么我们把它们的工作分开说是不是就很明了,我们在后面对它们分别说明吧:

3、在第一张图中,有个IE,中断充许位,我们再来看看IE是干什么的,在了解这个之前,缘缘先来给亲们讲个故事吧:

记得那是很久很久以前,那是一个风急夜黑的夜晚,没有月亮,也没有太阳,更没有星星,黑得不见五指……

刚才缘缘说了什么——废话!下面,故事才真正开始:

在一个安宁的夜晚,11点了,你瞌睡得不行了,就睡下了,这时你的一个鲜艳的纸鹤要来了,有重要的事情找你,在楼下按动了门铃,然后你起床了,打开了灯,开了门,然后在一起聊天,这时,客人说有点渴了,所以你又用电水炉炖了一炉水,然后接着聊天,聊了一会,客人把事说完了就走了,完了你把门关了,把灯关了,然后再回上床上睡觉。

在这里,你的睡觉是一个正常的事情,而这中间却有许多的中断事件产生,我们可以看到,在这一系列事件中,有种条件会惯穿始终,那就是电,为了更明确点,我们看看下图:

在这里,我们看到,不管怎么样,我们得让总开关开启,这样,后面的开关才会产生作用,如果总开关开启了,那么下面四个一组的开关就会控制每一条线路的动作,假设门铃的一个开关关了,那么你在睡觉时,有人按门铃你也听不到,这样就进不了你起来开门的中断事件了,而门铃是在房子外面的,我们就称为外部中断,如果我们按照第二张图的说明,把它们都连到一起会是怎么样的情况呢:

通过这张图(因为串中比较特殊些,所以没有画),我们更明确地知道这些寄存器是怎么回事了,原来它们就跟开关一样,来控制中断的产生与执行的,其实它们就是三个类别,我们把它们分开来一个个地去说:

那么这些中断在程序中是怎么产生的呢,在程序中怎样去执行的呢,缘缘跟你们一一去了解吧,我们就先看看外部中断吧,串行口中断和内部中断我们放到后面再讲:

我们了知道了外部中断有两个,缘缘上面说过,说它们的工作方法是一样的,那么我们就先操作一个,把一个学会了,那我们就把与外部中断有关的这些开关先归纳到一起,我们就以外部中断0,也称INT0(P3.2)来说说吧:

首先,我们要让INT0工作,先得打开总开关,就是EA,那么就是EA=1有效,打开了这个,我们就得打开分开关,我们通过前面的图得知,控制INT0的分开关是EX0,这里当然是打开了,那么EX0=1有效,完了我们还可以看到,控制INT0的工作方式是IT0,工作方式中,设置为0即为电平触发有效,即当接触到低电平0时,它就会产生中断,设置成1时,为负跳变有效,什么时负跳变呢,就是它原来设置的是高电平,当检测到电平从高瞬间变低,就产生中断,在产生中断后,电平还是高的,等待下次中断产生。

这样,我们通过上面的分析,得知了外部中断0在应用时总共就这么几个开关,是其它的对这个中断是没有用的,所以我们只要管好这几个有关的开关就行了:

这里,我们看到,我们就控制了这么三个开关,就完成了对外部中断0的操作,是不是很简单呢,其实,把这一大堆的开关分开,一个个地去分析就会很简单的,至于优先级的意思是如果这个程序中包含多个中断,应该先执行那一个,而为了区分,所以在中断函数中用了数字代替它们了,但不管程序中是一个还是多个,中断的代号是定死的,如果程序中只有一个中断,不写代号中断也是无法进行的。

下面缘缘就写一个关于外部中断的程序吧,亲们可要记下了,中断函数是单独的函数,要写在主函数外面,中断函数是不用声明的:

我们先做一个流水灯的程序,然后在流水灯的程序中加入中断就行了

看看是不是很简单,其实我们明白了它的控制方式,是很容易理解的,完了我们烧进去发现,当P3.2口接触到低电平时,缘缘用P2.0接的继电器就会吸合,但吸合了不会停止,这时我们在主程序中加入关闭的处理即可:

看了以上的介绍,中断是不是很简单的,你只要找到它们对应的开关控制,然后管理这些开关就行了,在程序中是,要那个中断,就把中断的序号写上就行了,刚才用到的是外部中断0,外部中断1也一样的,亲们可以把那个程序改改,改成外部中断1来玩玩,只要把开关找对就行了,对于外部中断的内容,就算是说完了,具体的应用在以后的其它程序中都会用到,这里先明白它是怎么回事就行了,当以后用到时,就会慢慢明白的,为了让大家更方便地提问解答,缘缘建议加入 本论坛的群222951503,那里有缘缘和群中的jzdxm们联合为你排忧解难。

通过这一节,我们明白了中断与外部中断是怎么回事,下节,我们就看看内部中断中的定时器/计数器是怎么回事了(缘缘学单片经验手记:中断,想说爱你并不是很容易的事)

了解全系列缘缘单片机系列教程,请关注微信公众号ickeybbs,回复“缘缘”。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。