单片机的中断系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目五 中断系统的应用
任务一 认识MCS-51单片机的中断系统
中断系统是单片机中非常重要的组成部分,它是为了使单片机能够对外部或内部随机发生的事件实时处理而设置的。中断功能的存在,在很大程度上提高了单片机实时处理能力,它也是单片机最重要的功能之一,是我们学习单片机必须掌握的重要内容。我们不但要了解单片机中断系统的资源配置情况,还要掌握通过相关的特殊功能寄存器打开和关闭中断源、设定中断优先级,掌握中断服务程序的编写方法。
一、中断的概念
为了弄懂中断的概念,下面我们先来了解一下单片机与外设之间数据的输入/输出方式。 1.单片机的输入/输出方式
CPU 与外设之间的信息交换称为输入/输出。在一个单片机系统中,输入/输出是必不可少的,CPU 与外设之间以何种方式进行信息交换,将直接影响到信息交换的可靠性和CPU 的效率。
例如:在一个与打印机相连的微机系统中,CPU 将需要打印的数据输出给打印机,打印机接收到数据后便可进行打印。CPU 是如何将要打印的数据输出给打印机的呢?如果打印机总是处于准备好的状态或者CPU 总是知道打印机的状态,那么CPU 无需查询打印机状态可直接进行输出,这种方式称为无条件传送方式。但外设的执行速度一般是很慢的,像打印机这样的外设不可能总处于准备好的状态,因此CPU 在输出数据前需要先查询打印机是否空闲,若空闲则进行输出操作,若打印机处于忙状态则继续查询,直到打印机处于空闲状态再进行输出。这种方式称为查询传送方式。与无条件传送方式相比,虽然查询传送方式能有效地与慢速外设进行信息交换,提高了信息交换的可靠性,解决了外设与CPU 速度不匹配的矛盾,但由于在外设未准备好的情况下,CPU 需要不断的查询外设状态,不能进行其他操作,这样就浪费了CPU 的资源,使CPU 的利用率大大降低。为了提高CPU 的工作效率,可将外设的“忙/闲”状态信息作为请求触发信号,这样,CPU 就可以做自己的工作,当打印机处理完上一批数据后处于空闲状态时,向CPU 提出中断请求信号,CPU 接到中断请求时,就暂停当前正在进行的工作转去为打印机输出数据,输出一批数据后又返回到刚才中断的地方继续进行原来的工作,这种方式称为中断传送方式。
综上所述,CPU 与外设之间信息交换有三种方式,其执行过程如图5-1所示。
图5-1 输入/输出方式示意图
(a)无条件传送方式
(b)查询传送方式 (c)中断传送方式
(c)中断传送方式
(1)无条件传送方式 这种方式的特点是:数据的传送取决于程序执行输入/输出指令,而与外设的状态无关。它适合于与CPU 同步的快速设备或状态已知的外设,软、硬件系统简单。
(2)查询传送方式 查询方式是一种条件传送。在传送数据前,首先读取外设状态信息,并加以测试判断,若外设“准备就绪”,则CPU 与外设进行数据交换,若外设处于“忙”状态,则CPU 不与外设交换数据,并继续查询外设状态。其特点是:在硬件上不仅要考虑数据信息的传递,而且还要考虑状态信息的输入;在查询过程中CPU 的利用率不高,适用于实时性能要求不高的场合。
(3)中断传送方式 中断方式也是一种条件传送。CPU 可以与外设同时工作,并执行与外设无关的操作,一旦外设需要进行数据交换,就主动向CPU 提出中断申请,CPU 接到中断请求后,就暂停当前的工作转去为外设服务(执行中断处理程序),处理完毕后又返回到原来暂停处继续进行原来的工作(执行原来的程序)。因此,CPU 不必浪费时间去查询外设状态,大大提高了效率。利用中断方式可以实现分时操作(使CPU 可以同时处理多件事)、实时处理(对随时发生的事件进行及时处理),应用范围较广。
2.中断的概念
为了能让大家更容易理解中断的概念,我们先来看生活中的一个事例:你正在家中看书,突然门铃响了,你放下书去开门,处理完事情后回来继续看书;突然电话铃又响起来了,你又放下书去接电话,通话完毕后你又回来继续看书。这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断了。
对于单片机来讲,中断是指CPU 在处理某一事件A 时,发生了另一事件B ,请求CPU 迅速去处理(中断发生);CPU 接到中断请求后,暂停当前正在进行的工作(中断响应),转去处理事件B (执行相应的中断服务程序),待CPU 将事件B 处理完毕后,再回到原来事件A 被中断的地方继续处理事件A (中断返回),这一过程称为中断。
中断的有关关概念总结如下:
● 中断 CPU 正在执行主程序的过程中,由于CPU 之外的某种原因,有必要暂停主程序的执行,转而去执行相应的处理(中断服务)程序。待处理程序结束之后,再返回原程序断点处继续运行的过程。
● 中断源 可以引起中断的事件称为中断源。单片机中也有一些可以引起中断的事件。MCS-51单片机中共有5种中断源:两个外部中断(0INT 、1INT )、两个定时/计数器中断(T0、T1)和一个串行口中断。
● 中断系统 实现中断过程的软、硬件系统。
● 主程序与中断服务程序 CPU 正在执行的当前程序称为主程序;中断发生后,转去对突发事件的处理程序称为中断服务程序。
● 中断优先级 当多个中断源同时申请中断时,为了使CPU 能够按照用户的规定先处理最紧急的事件,然后再处理其他事件,就需要中断系统设置优先级机制。通过设置优先级,排在前面的中断源称为高级中断,排在后面的称为低级中断。设置优先级以后,若有多个中断源同时发出中断请求时,CPU 会优先响应优先级较高的中断源。如果优先级相同,则将按照它们的自然优先级顺序响应默认优先级较高的中断源。
五个中断源默认的自然优先级是由硬件的查询顺序决定的,由高到低的顺序依次是:外部中断0、定时/计数器0中断、外部中断1、定时/计数器1中断、串行口中断。中断源的优先级需由用户在中断优先级寄存器IP 中设定,后面将会讲到这一知识点。
● 中断嵌套 当CPU 响应某一中断源请求而进入该中断服务程序中处理时,若更高级别的中断源发出中断申请,则CPU 暂停执行当前的中断服务程序,转去响应优先级更高的中断,等到更高级别的中断处理完毕后,再返回低级中断服务程序,继续原先的处理,这个过