51单片机之——中断的概念

前面讲了许多51单片机的外设部分,大致有一些芯片,以及元器件。而这篇博文就走进单片机内设——中断系统。
首先,搞清楚什么是中断?
引用资料书的话:对于单片机而言,中断是指CPU在处理某一件事A时,发生了另一件事B,请求CPU迅速去处理(这个过程是“中断发生”);此时,CPU暂时停止当前的A事件(这个过程是“中断响应”),转去处理B事件(这个过程是“中断服务”);待CPU将B事件处理完毕后,再回到事件A被中断打断的地方继续处理事件A(这个过程是“中断返回”)。这一过程,称之为中断。其流程图如下所示:
这里写图片描述
其中,主程序为上述所说的A事件,中断请求由B事件发出。
再来引出一个生活中的例子:
首先,我们会知道有一个重要的人会在中午正餐的时间打电话过来。而在正餐时间中,我们主要进行的事件是“吃饭”(A事件)。在这过程中,突然有一个重要的人来了一个电话(事件),那么我们放下碗筷(停止A事件)去接电话(做B事件,也就是处理中断程序),直到我们电话打完之后,再重新去拿起碗筷(沿着没有执行完A事件的断点再执行下去)。这样的一个过程,实际上就发生了一次中断。其实,在我们吃饭的时候,有电话打过来的这个事件(B事件)是一定会发生的,只是我们不知道它会在哪个准确的时间发生而已。
这里需要留意的是:
*1、*A不是中断程序;若A是中断程序,那又会是另外的情况。
2、我们并不知道B事件是什么时候发生,但是跟据中断的概念我们知道,只要B事件发生,单片机就会停止当前的事情,马上去处理B事件。
对于第1点:因为单片机的中断源(能诱导发生B事件【或者说是中断事件】的源头)不止一个(在上述例子中,“中午一定会有电话打过来”便是事件的诱导),例如STC89C52单片机中断源就有6个,所以我们得按优先级(重要性)给它们排序。
回到上面所说,在吃饭时,假如有两个人打来电话,一个是普通的同学(B事件),一个是伴侣(C事件)。那一般情况下,我们会首先和伴侣打电话(处理C事件),其次再去和同学打电话(B事件),这种处理事件顺序的缘由是因为在中断系统中,对于不同的中断源有默认的优先级(当中断源同时产生时,先处理优先级高的中断源所诱导发生的事件):
这里写图片描述
而对于上面所提到“一般情况”,那一定会又特殊情况,假如打电话过来的普通同学有更重要的事情要告诉我们,那我们就会先处理B事件,再去处理伴侣的C事件,这就需要我们设定优先级,在哪里设定优先级?——在“中断优先级寄存器 IP ”中设中断源的优先级you,而要让程序有机会出产生中断,则要设定另一个寄存器——“中断允许寄存器 IE ”(就好比,我们要想能去接电话处理B、C等事件的前提是,我们的手机得处于开机的状态!)。
综上,中断的一些简要的概念便如上所述!

未完待续……

  • 12
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值