0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机中断如何打开

h1654155282.3538 来源:小亮谈电气 作者:小亮谈电气 2021-02-07 17:35 次阅读

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

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

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

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

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

pIYBAF_-vvKARHykAAFrTejjgjs511.png

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

pIYBAF_-vviARwNFAAJM88tm71o417.png

上图中,我们可以一图览尽所有中断,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的数据手册。如果需要也可以留言或私信,我单独发送给你。

pIYBAF_-vwKAGvPcAAHkkdhtbjg601.png

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

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

o4YBAF_-vwiAIUxtAAC1A_KyE7Y017.png

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

总中断开关如何设置呢?

pIYBAF_-vw-AbbTBAAHu25jHvcY227.png

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

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

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

pIYBAF_-vxWACOPYAAK_F8XPB3A450.png

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

o4YBAF_-vxyANsrEAAGaldGZP8U591.png

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

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

pIYBAF_-vyKAbELXAAEOEoqNqG8850.png

我们使用的是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

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

    关注

    6039

    文章

    44575

    浏览量

    636384
  • 中断
    +关注

    关注

    5

    文章

    899

    浏览量

    41549
收藏 人收藏

    评论

    相关推荐

    单片机中断优先级应用案例

    单片机同时接收到几个中断请求时,单片机中断请求的响应顺序是如何确定的?实际上,单片机是通过中断
    发表于 10-31 14:42 1867次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>中断</b>优先级应用案例

    什么是中断单片机中断处理过程详解

    如果单片机没有中断,那么,单片机将失去灵魂。
    的头像 发表于 11-09 11:28 5094次阅读
    什么是<b class='flag-5'>中断</b>?<b class='flag-5'>单片机</b><b class='flag-5'>中断</b>处理过程详解

    单片机教程十七:单片机中断系统

    单片机教程十七:单片机中断系统 单片机中断系统的概念:什么是中断,我们从一个生活中的例程引入
    发表于 05-15 23:11 5017次阅读
    <b class='flag-5'>单片机</b>教程十七:<b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>系统

    51单片机定时器中断_51单片机中断系统_51单片机扩展中断的四种方法

    中断是为使单片机具有对外部或内部随机发生的事件进行处理而设置的。51单片机有5种中断源,即有5种对应的情况发生时会使单片机去处理
    发表于 12-08 10:15 1.1w次阅读
    51<b class='flag-5'>单片机</b>定时器<b class='flag-5'>中断</b>_51<b class='flag-5'>单片机</b><b class='flag-5'>中断</b>系统_51<b class='flag-5'>单片机</b>扩展<b class='flag-5'>中断</b>的四种方法

    单片机中断系统介绍_51单片机中断系统结构

    单片机中断就是当单片机正在执行程序的时候,突然某个按键按下了(产生外部中断),单片机就必须得去处理那个按键(
    发表于 01-10 17:29 1.2w次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>中断</b>系统介绍_51<b class='flag-5'>单片机</b><b class='flag-5'>中断</b>系统结构

    51单片机有几个中断单片机中断号对应的中断类型说明

    51单片机通常有5个中断,当中断发生时,程序会跳到相应的中断服务程序去执行。为了区别不同的中断,引入了
    发表于 08-06 17:34 5次下载
    51<b class='flag-5'>单片机</b>有几个<b class='flag-5'>中断</b>?<b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>号对应的<b class='flag-5'>中断</b>类型说明

    单片机--中断系统实验

    实验目的和任务目的:利用“模块化单片机教学实验平台”,加深对单片机中断系统的理解。任务:利用单片机中断系统完成程序设计。 实验内容使用A
    发表于 11-05 13:20 11次下载
    <b class='flag-5'>单片机</b>--<b class='flag-5'>中断</b>系统实验

    C51单片机学习笔记(四)——单片机中断系统及应用

    C51单片机学习笔记(四)——单片机中断系统及应用文章目录C51单片机学习笔记(四)——单片机中断
    发表于 11-14 10:21 17次下载
    C51<b class='flag-5'>单片机</b>学习笔记(四)——<b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>系统及应用

    51单片机中断

    处理事件B,对事件B处理完毕后,再回到原来被中断的地方(即断点),称为 中断返回。实现上述中断功能的部件称为中断系统(中断机构)。
    发表于 11-19 09:06 18次下载
    51<b class='flag-5'>单片机</b>—<b class='flag-5'>中断</b>

    51单片机中断

    51单片机中断(interrupt)
    发表于 11-20 16:51 13次下载
    51<b class='flag-5'>单片机</b>之<b class='flag-5'>中断</b>

    单片机:简单中断LED的设计

    摘要:单片机即是单片微型计算机。要想学好单片机,就必须学习单片机中断系统。中断
    发表于 11-23 17:51 26次下载
    <b class='flag-5'>单片机</b>:简单<b class='flag-5'>中断</b>LED的设计

    STM32单片机外部中断简介 STM32单片机外部中断的配置过程

    STM32 单片机是一款高性能、低功耗的 32 位微控制器,具有强大的计算能力、灵活的外设模块以及优秀的扩展性,开发周期短、成本低。在单片机应用中,外部中断是一种重要的硬件触发方式,本文将对 STM32
    发表于 08-15 18:21 3139次阅读

    单片机用按钮中断函数

    单片机用按钮中断函数  单片机中断是一种能够使单片机响应外部信号的机制,这种机制允许单片机在处理
    的头像 发表于 09-01 10:17 1564次阅读

    单片机中断功能及其应用

    单片机中断功能及其应用  单片机中断是指在程序执行过程中,根据特定的条件或事件自动暂时中断当前程序的执行,转而执行特定的
    的头像 发表于 01-30 14:45 5600次阅读

    单片机中断机制

    单片机中断机制是一种重要的处理方式,它允许单片机在执行主程序的过程中,能够暂停当前任务,转而处理外部或内部紧急事件。这种机制极大地提高了系统的响应速度和处理能力,使得单片机在各种应用
    的头像 发表于 10-17 18:03 817次阅读