本节书摘来自异步社区《51单片机应用开发从入门到精通》一书中的第2章,第2.6节,作者 张华杰,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.6 中断控制功能的作用

2.6.1 什么是中断

所谓中断,就是打断正在进行的工作,转而去做另外一件事情。

比如说,会计正在记账,桌面上摆着摊开的账本和正在使用的计数器,这时候有人敲门叫他去办另一件事情,他暂时放下手头工作,并保存好账本和计数器以免被弄乱或丢失(在中断中称“保护现场”);等处理完事情后返回办公桌前再拿出帐本和计数器(在中断中称“恢复现场”),继续记账。这一过程就是中断以及中断处理的过程。

单片机的中断过程与上述过程类似,如图2-4所示。

2.6.2 实现中断的好处

1.提高了CPU的效率

CPU是计算机系统的指挥中心,它与外围设备(如按键、显示器等)联系沟通的方法有轮询和中断两种。

轮询的方法是指无论外围设备I/O是否需要服务,CPU每隔一段时间都要依次询问一遍,此种方法CPU需要花费一些时间来做询问服务工作。

而中断方法是指当外围设备需要服务时,外设会主动告诉CPU,CPU得知有外围设备需要服务时,才去执行中断处理子程序,所以省去了依次查询的时间,提高了CPU的利用率。

2.可实现实时处理

在实时控制中,利用中断技术,外围设备在任何时刻都可以发出中断请求,CPU接到请求后就能及时处理,以满足实时控制要求。

3.可及时处理故障

计算机系统在运行过程中难免会出现一些事先无法预料的故障,如电源掉电、存储器出错、外围设备工作不正常等,这时可以通过中断系统由故障源向CPU发送中断请求,由CPU及时转到相应的故障处理程序进行处理,提高了计算机的可靠性。

2.6.3 中断处理过程

中断处理过程如图2-5所示。

1.中断当前程序并保护断点

CPU响应中断后,把被中断程序的断点(即PC值)压入堆栈保存,以备中断处理完毕后能返回被中断的程序。

2.转入中断服务入口

给出中断入口地址,转入被响应的中断处理程序。

3.保护现场

为了使被中断的程序及其所使用的寄存器内容不被破坏,以免在中断返回后影响被中断程序的执行,要将被中断程序的有关信息及其所使用的寄存器内容保护起来,压入堆栈保存,这就是保护现场。

4.执行中断服务程序

中断服务程序是中断处理的具体内容。

5.恢复现场

把保护现场时所保存的中断程序的有关信息及其所使用的寄存器内容恢复原样,以便返回被中断的程序后能够正常执行。

6.中断返回

中断返回是把程序运行从中断处理程序转回到被中断的程序中去。中断返回是通过中断返回指令RETI完成的。

2.6.4 中断源及入口地址

1.中断源

80C51是一个多中断源的单片机,共有3类5个中断源,分别是两个外部中断、两个定时中断和一个串行中断,如表2-8所示。

在3类中断源中,外部中断类是指由外部原因引起的中断,共有两个中断源,即外部中断0(INT0)和外部中断1(INT1)。它们的中断请求信号分别由引脚INT0(P3.2)和INT1(P3.3)引入。

外部中断请求有两种信号方式:电平方式和脉冲方式。

电平方式是低电平有效。只要单片机在中断请求引入端(INT0和INT1)上采样到有效的低电平时,就激活外部中断。

脉冲方式是脉冲的下降沿有效。如在中断请求引入端采样到前一次为高,后一次为低,即为有效中断请求。上述两种信号方式可通过有关控制位进行设置。

定时中断类和串行中断类将在有关章节中介绍。

2.中断源入口地址

每一个中断源都有一个固定的中断处理程序入口,它们的地址如表2-9所示。

从表2-9可见,各中断源入口地址间只相隔8个单元。一些简单的中断处理程序可以直接安排在这些单元之内;复杂的中断处理程,则可在各中断入口地址处设置一条无条件转移指令,跳转到其他地址安排中断处理程序。

《51单片机应用开发从入门到精通》——2.6 中断控制功能的作用相关推荐

  1. 《51单片机应用开发从入门到精通》——2.2 跑马灯实例

    本节书摘来自异步社区<51单片机应用开发从入门到精通>一书中的第2章,第2.2节,作者 张华杰,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.2 跑马灯实例 ...

  2. 《51单片机应用开发从入门到精通》——1.1 单片机开发流程

    本节书摘来异步社区<51单片机应用开发从入门到精通>一书中的第1章,第1.1节,作者:张华杰 ,更多章节内容可以访问云栖社区"异步社区"公众号查看 1.1 单片机开发流 ...

  3. 《51单片机应用开发从入门到精通》——2.11 歌曲演奏实例

    本节书摘来异步社区<51单片机应用开发从入门到精通>一书中的第2章,第2.11节,作者:张华杰 ,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.11 歌曲演奏 ...

  4. 51单片机程序开发入门知识

    51单片机在我的理解上来说,就是遵循51指令集工作的芯片.他就像一台超微型的电脑,里面有内存.硬盘.CPU等基本配备. 而他所谓的CPU使用的就是51指令集,他的硬盘就是内置的Flash,他的内存也是 ...

  5. pythonweb开发-Python Web开发从入门到精通

    Python Web开发从入门到精通循序渐进地讲解了Python Web开发的核心知识,并通过具体实例的实现过程演示了Web开发程序的流程.Python Web开发从入门到精通共15章,内容包括Pyt ...

  6. Mac版下实现51单片机进行开发的环境搭建

    目录 前言 简单介绍一下51单片机吧 一.安装homebrew 二.内核编译器 sdcc 安装 三.安装CH341驱动 四.烧录程序stcgal的安装 1.python3下载安装并配置环境 2.验证是 ...

  7. [分享] 新书推荐 -《黑莓(BlackBerry)开发从入门到精通》 | 黑莓时光

    今天看到一本刚出版不久的书,<黑莓(BlackBerry)开发从入门到精通>,属于技术类书籍,通过 18 章的内容,介绍了BlackBerry 开发平台简介.BlackBerry 开发平台 ...

  8. python web 开发教程下载_Python Web开发从入门到精通

    Python Web开发从入门到精通循序渐进地讲解了Python Web开发的核心知识,并通过具体实例的实现过程演示了Web开发程序的流程.Python Web开发从入门到精通共15章,内容包括Pyt ...

  9. python web开发-Python Web开发从入门到精通

    Python Web开发从入门到精通循序渐进地讲解了Python Web开发的核心知识,并通过具体实例的实现过程演示了Web开发程序的流程.Python Web开发从入门到精通共15章,内容包括Pyt ...

最新文章

  1. 【Nginx入门系列】第六章 Nginx+tomcat集群负载均衡部署
  2. 实战应对三种因素引起的交换故障
  3. 【数据结构与算法】之深入解析“复原IP地址”的求解思路与算法示例
  4. log4j记录不同的日志_使用log4j将不同类型的日志信息记录到不同的文件中
  5. dialog能提交数据吗_你的数据库,能撑起多少并发,有数吗?
  6. 线性代数 —— 矩阵与矩阵运算
  7. MySQL下实现先排序后分组查询(问题记录)
  8. Maven项目POM文件错误,提示“Plugin execution not covered by lifecycle configuration”的解决方案...
  9. linux 备份文件时加上日期
  10. html 图片的缩略图,纯CSS制作缩略图片
  11. 软件开发部分文档说明
  12. 从零开始学习音视频编程技术(41) H.264播放器
  13. SpringBoot实现发送电子邮件
  14. 滴滴裁员2000人,员工竟然被裁出幸福感,获得员工的一致好评?
  15. Wangle源码分析:Service
  16. mysql purge master logs_PURGE MASTER LOGS语法--MySql数据库
  17. docker-compose 部署jmeter+grafana+prometheus/influxdb,构建性能测试可视化实时监控(二)...
  18. 基于 python 的单细胞转录因子分析
  19. 清理注册表 php,win10系统如何清理自带注册表
  20. 前端-Vuejs2.5开发去哪儿网

热门文章

  1. /usr/lib/deepin-wine/wine: error while loading shared libraries: libwine.so.1
  2. 解决 from torch._C import *ImportError: DLL load failed: 找不到指定的程序。
  3. hadoop集群崩溃恢复记录
  4. php正则判断字符串是否含有中文
  5. stream的filter用法
  6. [Hadoop]-YARN-伪分布式部署-hadoop-2.6.0-cdh5.7.0
  7. POJ 327820493083
  8. Javascript设计模式理论与实战:适配器模式
  9. views display a summary count number
  10. Clustering by density peaks and distance