单片机中断如何打开

电子说

1.3w人已加入

描述

知道了什么是中断,就好比知道了如何去打开门锁,接下来就是找到钥匙即可。

在51单片机中,有五种比较常见的中断源,分别是INT0、INT1、T0、T1、串口中断。

这五个中断就像是五把钥匙,我们要熟练运用他们,才能让单片机发挥它该有的意义。对于这五个中断源来说,最简单的就是INT0/INT1这两个了,他们两个只干中断这一个活儿,比较实在,相比于T0/T1就比较能干了,身兼数职。然后是串口中断,属于精神分裂型,包含两个中断控制一个中断源,不过,他仅仅只干通讯的活儿,其他不管。

所以柿子要挑软的捏,就先搞这个INT0/INT1。

我们之前说了一个生活中的案例,就是看电视,然后水滚了,去关水,再回来看电视,这个水滚了的声音就是一个触发我们暂停电视的信号。那么在程序中,什么条件是我们暂停主程序,进入中断的信号呢?

单片机

首先看下单片机的端口,在端口上,可以发现,有两个针脚,定义就是INT0/INT1。

单片机

上图中,我们可以一图览尽所有中断,P3.0/RXD,是通讯写入端口,内部对应是写入中断RX,P3.1/TXD,是通讯发出端口,内部对应是发出中断TX,P3.2/INT0,外部中断0,P3.3/INT1,外部中断1,P3.4/T0,中断0,P3.5/T1,中断1,既然有针脚,就意味着,这个针脚是有用的,很显然。

通过手册我们可以知道,当P3.2/INT0针脚,处于低电位时,就会触发INT0中断程序,事实果真如此吗?真相只有一个,那就是,哪有那么简单。尽管我们找到了触发的端口,也可以给他一个触发的低电位,但是程序的响应,还需要很多工作要做,这就是中断的难点所在了,需要对中断进行配置。就好比我听到水开了,可以至于怎么让水停止沸腾,这还需要我之前有人教过,不然我只能站在水壶边看着它开,无可奈何。

那么我们怎么才能使用这个中断呢?

关于外部中断的使用,要遵守以下步骤,不然还真使用不了。我们先说下使用步骤,然后再详细介绍每个步骤的设置方法。

INT0的使用:

1,打开总中断开关。

2,打开INT0中断开关。

3,配置INT0中断的触发方式。

4,设置中断响应程序。

开始前,我们要先了解一些中断的配置信息,需要依据数据手册。通过STC官网可以直接下载89C52的数据手册。如果需要也可以留言或私信,我单独发送给你。

单片机

这个是关于中断的优先级,就是说,我们在处理中断的时候,是有先后顺序的,不然在水开的同时门铃响了,一个人怎么可能既开门又关水?程序也是一样,为了避免出现中断同时发生时的尴尬场面,就给每个中断设置了优先级,INT0和INT1同时触发了中断,那么就会先处理INT0的程序,灯处理完再处理INT1的程序。这样就保证了程序的稳定有序。

光有这个还不行,首先,需要打开中断的总开关,我们可以这么理解中断的运行过程。我用一个电路图来解释一下。

单片机

中断信号要想触发中断程序,那么就需要先打开总开关,还要打开INT0专用开关,还要设置触发方式,然后才会正确进入中断程序,完成中断。

总中断开关如何设置呢?

单片机

查表可以看到,总开关是EA,打开总开关是EA=1。

然后打开外部中断0(INT0)的开关是EX0,EX0=1。

中断开了,还要设置触发方式,触发方式在另一个表中,继续查表。

单片机

查表可以知道,需要IT0设置,当设置为0时,引脚为低电平时会触发中断,就是说当电位变成0V时,才会进入中断响应。当设置为1时,引脚输入电平从高电位到低电位的过程中,就触发中断,这个为什么有两种方式呢?其实都是可以的,不过需要知道的是,当我们采用一个稳定的信号作为触发信号时,就会有这样一个情况,就是当高电位变成低电位时,下降沿只有一次,但是低电位却有很长时间,如果我们的触发源没有退出,就会在下一个检测周期,持续触发中断。如下图。

单片机

所以对于一些具有保持信号的触发源,采用下降沿触发还是比较好的。当然如果处理得当,低电位触发也是可以很稳定的。

最后是触发中断后,需要进入中断函数,中断函数,是专门的函数,不在主函数中。需要单独写出来。

单片机

我们使用的是INT0的中断,于是就需要用第一个:void into_Routine(void) interrupt 0。

这个中断的名字into_Routine可以自己任意取,但是后边的interrupt 0必须要一致,因为程序就是靠这个来知道你这个是不是INT0的中断程序,写错了,就会出现响应不了或者出错。到这一步,就算结束了。整个中断流程也就结束了。

总结下之前的步骤:

1,开总中断:EA=1;

2,开INT0中断:EX0=1;

3,设置触发方式:IT0=1/0;

4,设置中断程序:void INT0(void) interrupt 0 {执行程序}。
责任编辑人:CC

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分