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

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

3天内不再提示

51单片机入门之中断

天才小狸花 来源:Sigle_chip 作者:Sigle_chip 2022-09-06 08:52 次阅读

前言

单片机其本质上还是一个计算机,当前一条指令执行完毕,CPU再根据PC取出下一条指令的地址,并再得到再下条指令地址,依次执行每一条指令。这听着不错,所有的任务在有条不紊的按照顺序执行,作为一个单核处理器的单片机,需要等待上一个任务结束才能进行下一个任务,但外界或内部发生更加重要的事情,我们不能再去等着上一个任务去执行完毕,单片机需要马上去运行相应的程序以保证实时性,如当延时时间太长时(比如10s),相应的按键检测便会失灵。但在大多数的控制场合,需要单片机立即做出反应,保证可靠性。通过引入中断机制,使CPU具有对外界紧急事件的实时处理能力。

中断这个概念可以说是所有微机的基础,甚至可以说微机就是一条条执行指令+中断。

中断

当CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。

实现这种功能的部件称为中断系统,请示CPU中断的请求源称为中断源。中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,存在CPU优先响应哪一个中断源请求的问题。通常规定每一个中断源有一个优先级别。CPU总是先响应优先级别最高的中断请求。

而中断存在中断嵌套的问题,当处理低优先级中断时发生高优先级中断,系统也会保存低优先级的状态,去执行高优先级的程序,处理完以后,再回到原来被中断的地方,继续原来的工作。这样的过程称为中断嵌套,不能嵌套的称为单级中断系统,反之为高级中断系统。

STC89C51RCRD+系列单片机

IP寄存器和IE寄存器都可以支持位寻址,即可以单独配置相应位的值如

EA = 1;
EX0 = 1;

STC89C51RCRD+系列单片机提供了8个中断请求源,它们分别是:

  1. 外部中断0(INT0)、
  2. 定时器0中断、
  3. 外部中断1(INT1)、
  4. 定时器1中断、
  5. 串口(UART)中断、
  6. 定时器2中断、
  7. 外部中断 2(INT2)、
  8. 外部中断3(INT3)

中断优先级 IP(B8H)

STC89C51RCRD+系列所有的中断都具有4个中断优先级,传统的8051则只有两个中断优先级,这里我们按照两个配置,不配置按照默认中断查询顺序号查询。配置方法为配置IP寄存器,八位寄存器,“1”表示高级中断,“0”表示低级中断。四级中断可查看STC89C51RCRD+系列单片机数据手册。

IP(B8H)
说明
位地址

高优先级的中断请求可以打断低优先级的中断,反之,低优先级的中断请求不可以打断高优先级及同优先级的中断。当两个相同优先级的中断同时产生时,将由查询次序来决定系统先响应哪个中断。下图为中断查询次序表。

pYYBAGMV-nOAH0H-AAD7NaxP7Jc721.png

中断允许 IE(A8H)

通过软件设置IE寄存器的值可以去屏蔽一些中断和运行中断,只有中断运行被打开才能发生中断。更像是中断的开关,为1可以中断。复位后IE中各中断位均被清“0”,禁止所有中断。

各个中断除相应的中断允许位,还有个“总闸”EA。

IE(A8H)
说明
位地址

其他中断

其具体的中断需要查看配置相应的寄存器,下面以外部中断为例进行配置,在学习单片机,嵌入式的路上,如果有元器件购买需求,可以去唯样商城,学生还有优惠。

外部中断

先对优先级及中断运行配置

EA=1;
EX0=1;
//不配置优先级按照默认中断查询次序

其次对外部中断的东西进行配置,比如说当外部中断0引脚收到下降沿时,就触发中断。相应的配置(定时器/计数器及外部中断控制寄存器 TCON)

TCON

我们只用到了IE0,IT0两位,而IE0更多的时候去读取,而不是写。因此IT0才是主要位置。当IT0=0,为低电平触发方式;当IT0=1,为下降沿触发方式。

因此我们配置

IT0 = 1;

至于低电平中断和下降沿中断的区别,在数据手册中写道

由于系统每个时钟对外部中断引脚采样1次,所以为了确保被检测到,输入信号应该至少维持2个系统时钟。如果外部中断是仅下降沿触发,要求必须在相应的引脚维持高电平至少1个系统时钟,而且低电平也要持续至少一个系统时钟,才能确保该下降沿被CPU检测到。同样,如果外部中断是低电平可触发,则要求必须在相应的引脚维持低电平至少2个系统时钟,这样才能确保CPU能够检测到该低电平信号。

个人感觉就是低电平中断更慢一些。

这样我们就可以在中断函数中写相应的控制逻辑。

void exint0() interrupt0{
//控制逻辑
}

ps:中断十分好用!!!

审核编辑:汤梓红

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

    关注

    6030

    文章

    44500

    浏览量

    632235
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10813

    浏览量

    210899
  • 中断
    +关注

    关注

    5

    文章

    895

    浏览量

    41354
收藏 人收藏

    评论

    相关推荐

    单片机之中断部分部分

    带您从零学单片机之中断部分部分 课程简介1 51单片机中断2 中断简介3
    发表于 02-10 14:22 43次下载

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

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

    51单片机教程之51单片机中断系统的详细资料概述

    本文档的主要内容详细介绍的是51单片机教程之51单片机中断系统的详细资料概述主要内容介绍的是中断
    发表于 11-19 09:56 17次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>教程之<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>中断</b>系统的详细资料概述

    51、stm32单片机入门的一些经验

    51单片机作为最经典的一款单片机,已在各大高校的电子、通信专业的入门单片机课程,想学单片机这是最
    发表于 04-20 09:04 3265次阅读

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

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

    51单片机是什么_51单片机入门自学

    单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51
    发表于 09-09 15:36 1.1w次阅读

    51单片机入门教程(5)——定时器中断

    51单片机入门教程(5)——定时器中断一、中断的概念二、定时器中断2.1 软件延时的不足2.2
    发表于 11-11 14:51 11次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>入门</b>教程(5)——定时器<b class='flag-5'>中断</b>

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

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

    51单片机编程之中断函数using关键字的作用

    51单片机编程之中断函数using关键字的作用
    发表于 11-20 16:36 7次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>编程<b class='flag-5'>之中断</b>函数using关键字的作用

    51单片机之中断

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

    51单片机入门-2-中断与定时

    51单片机入门-1-中断与定时文章目录51单片机入门
    发表于 11-21 21:06 5次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>入门</b>-2-<b class='flag-5'>中断</b>与定时

    51单片机中断系统

    文章目录1 51单片机中断系统1.1 中断的固有优先级和抢占优先级1 51单片机
    发表于 11-22 13:36 8次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>系统

    51单片机中断系统

    文章目录1 51单片机中断系统1.1 中断的固有优先级和抢占优先级1 51单片机
    发表于 11-23 16:51 14次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>系统

    51单片机中断程序示例

    51单片机中断程序示例
    发表于 05-17 18:03 0次下载

    51单片机中断系统介绍

    51单片机中断系统介绍与运用外部中断系统触发数码管显示数字的代码实验
    发表于 12-05 09:10 2次下载