中断处理过程示意图_单片机中的中断处理解析

“中断”与“轮询”

“中断”处理并非单片机控制系统所特有的现象,在我们的日常生活中“中断”的例子也随处可见。让我们来看看身边的例子吧。比如尽管您知道今天有快递送到,但却不知道快递送来的具体时间,在这种情况下,也许您会选择坐在客厅里边看书,边等快递送来。在您看书其间,门铃响的时候就表明快递到了(有事件发生)。这就是“中断”的例子。

图1:“中断”处理示意图

如果不用“中断”处理等待方式的话,在看书的过程中,您就不得不经常走到门口去确认快递是否到了。像这样频繁地确认是否有“事件”发生的现象,在单片机控制中是通过软件编程完成的。我们把这种处理方式称为“轮询”(图2)。

图2:“轮询”处理示意图

单片机中的中断处理

实际上单片机的中断处理更加复杂,还是以上述事例(边看书边等待快递送来)进行说明。

现在,相信大家对“中断”已经有所了解了。下面我们来看看在实际的“中断”处理中,单片机内部是怎样进行的。

在单片机中,通知事件发生的中断信号一般来自于外部INT引脚的输入信号,或是来自定时器、串行I/F等内部的外围功能电路的信号。接收中断信号的是中断控制器。中断控制器根据产生的中断信号的优先级,按优先级顺序发送给CPU。当然,被设定为无效的设备所传送来的中断信号是不会传给CPU的,您也可以屏蔽或忽略它们。CPU根据从中断控制器接收到的指示,执行相应的程序(中断处理)。

实时处理中断

“中断”与“轮询”看起来好象可以进行同样的处理,实际上它们有很大的区别。区别在于当事件发生时,中断方式可以立刻执行对应事件的处理。中断的这种处理方式被称为是实时处理。

而在“轮询”方式中,如果对发生事件的监视周期较短的话也可以实现实时处理,但是在通常情况下,总是有多个事件发生,有时主程序也不允许太短的循环,所以,难以实现实时处理。

当“中断”发生时,由于从检测到事件发生到切换到中断处理只需要几十至几百个时钟,所以可以在短时间内对应事件进行处理。

例如,在键输入或开关输入的情况下,对于单片机来说开关何时将被按下是不可预测的事件。所以,如果在主程序中以“轮询”的方式监视的话,将会无端浪费CPU的处理时间,而且,如果要进行多个“轮询”处理,则“轮询”的周期将会变长。

如果不具备单片机的硬件知识,是很难理解和应用“中断”的。“中断”的内容也确实有些难度,但是它却是单片机系统控制中无法避开的一种处理。所以,大家一定要加深对单片机知识的理解,并熟练掌握“中断”的基本知识和使用方法!

责任编辑人:CC

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

意博思诺意大利留学

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值