第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理

Slides:



Advertisements
Similar presentations
5.1 中断的概述 5.2 MCS - 51中断系统 5.3 中断系统的应用
Advertisements

主讲人:刘利 交通大学网络控制课程系列 上海交通大学机电控制研究所 交通大学网络控制课程系列 考试课、专业基础课、必修课
第7章 AT89S51单片机的 串行口 1.
6 单片机的中断与定时系统 I/O设备必须通过I/O接口与计算机连接。 I/O接口的功能: 1.速度匹配: 锁存数据、传送联络信号。
项目二 中断应用系统设计 本项目学习目标: (1)制作一个单片机控制的彩灯电路。 (2) 理解中断的基本概念;
KEIL C单片机设计与项目实践 课程主讲: 孙福成 张小义   王晓静 杨至辉 课件制作: 亢娟娜 王 淏.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
邵阳学院 信息工程系电子实践教学中心 江世明
第四章 指令系统及汇编语言程序设计.
8051 指令.
單晶片MCS-51 C語言入門實習 第1章 微電腦與單晶片MCS-51架構 作者:董勝源.
万达会议管理平台普通用户使用介绍手册 全时培训组
第四章 指令系统及汇编语言程序设计.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
单片机原理与应用.
第9章 串行扩展技术 (课时:6学时).
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
第2章 MCS-51单片机指令系统与汇编语言程序设计
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
第8章 模拟接口 8.1 模拟接口概述 8.2 DAC及其接口 8.3 ADC及其接口.
第二部分 微机原理 第3章 MCS-51的 指令系统 主讲教师:喻红.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第二部分 微机原理 第8章 单片机的 定时/计数器 主讲教师:喻红.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
本章分为三节,主要介绍: 6.1 计算机串行通信基础 C51的串行口 6.3 单片机串行口应用举例.
第十一章 复位、时钟和省电方式控制.
第八章 80C51单片机的串行通信 主要内容:本章主要介绍80C51串行通信相关知识,包括串行通信基本概念,80C51单片机的串行口及其工作方式,以及单片机在双机或多机通信中的应用。
单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.
8051's UART mode0 output 通訊二甲 B 洪紹凱.
单片机原理及应用 ——基于Proteus与Keil C 哈工大出版社
第2章 单片机的结构原理与 简单应用 (课时:10学时).
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第七章 定时/计数器.
第八章 数据通信.
第三章 指令系统.
第10章 综合实训 课题一 水温控制系统设计 一、实训目的 二、课题要求 熟悉常用温度传感器AD590的特性及接口电路的设计方法;
第8章 MCS-51串行口 8.1 串行口及其通信方式 8.2 IBM-PC系列机与 单片机 的通信技术.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第四章 指令系统及汇编语言程序设计.
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
第九章 MCS-51串行接口 9.1 串行数据通信概述 通 信 并行 一、并行通信和串行通信 串行 串行通信 数据是一位一位传送的
数码管数字时钟电路的设计 1. 系统硬件电路的设计
第3章 MCS-51指令系统 介绍MCS—51系列单片机的寻址方式 介绍MCS—51系列单片机的指令系统
第4章 80C51系列指令系统 教学目的:熟悉80C51系列单片机的寻址方式及 每一种寻址方式对应的寻址空间;掌 握每一条指令功能。
本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
CPU中的专用寄存器(SFR) 一、累加器Acc 二、通用寄存器B 三、程序计数器PC 四、堆栈指针SP 五、数据指针DPTR
第五讲:AT89C51单片机存储器结构 一、半导体存储器 二、存储器空间划分方法 三、数据存储器(RAM) 四、程序存储器(ROM)
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
单片机原理及应用 实践部分 主讲人:刘 强 四川工商学院单片机教学团队 单片机原理及应用 实践部分 主讲人:刘 强
单片机原理与应用.
单片机应用技术 (C语言版) 第8章 串行通信接口
简单芯片扩展I/O接口 8155可编程接口芯片及其使用 键盘及显示器接口设计 A/D和D/A转换接口技术
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
用按鈕控制動作狀態 單晶片微電腦控制實習 輸入埠基礎實習 國立大甲高工 電機科 2019年9月10日
第1章 微型计算机基础.
Presentation transcript:

第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理 第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理 5.4 中断程序编程举例

5.1 中断的概念 当CPU正在处理某事件的时候,外部发生的某一事件请求CPU迅速去处理,于是CPU暂时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件后,再返回到原来被中止的地方继续原来的工作,这样的过程称为中断。

5.2 MCS-51单片机的中断流程

5.2.1 MCS-51单片机中断系统结构

89C51中断系统的五个中断源 1、INT0——外部中断0请求,低电平有效。通过P3.2引脚输入。 5、TX/RX——串行口中断请求。当串行口完成一帧数据的发送或接收时,便请求中断。

5.2.2 中断请求标志寄存器 如同生活中的中断请求标志一样,如果你家仅有电话,但电话线路不通,这时你家电话便是聋子耳朵—摆设,即使有人打电话,你也不知道,也无从谈起去接听电话。如果是个聋子在家,即使电话响起来,他也不会知道,所以想要接听电话必须有两个条件:电话铃必须响;能识别铃声响的耳朵。 对于51单片机同样如此,光有中断源是不够的,如何具有人耳的功能呢?51单片机采用设置中断请求标志寄存器TCON和串行控制寄存器SCON。MCS-51单片机工作时,在每个机器周期中都会去查询中断标志寄存器,看它们相应位是否是1,如果是1,就说明有中断请求。

1、TCON中的中断标志位 TCON为定时器/计数器T0和T1的控制器,同时也锁存T0和T1的溢出中断标志及外部中断0和1的中断标志等。 TF1 TF0 IE1 IT1 IE0 IT0 TCON (88H) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H

各控制位的含义 TF1:定时器/计数器T1溢出中断请求标志位。 当启动T1计数后,T1从初值开始加1计数,计数器最高位产生溢出时,由硬件使TF1置1,并向CPU发出中断请求。当CPU响应中断时,硬件将自动对TF1清0。 TF0:定时器/计数器T0溢出中断请求标志位。 含义与TF1类同。 IE1:外部中断1的中断请求标志。当检测到外部中断引脚INT1(P3.3)上存在有效的中断请求信号时,由硬件使IE1置1。当CPU响应中断请求时,由硬件使IE1清0 IE0:外部中断0的中断请求标志。INT0(P3.2)。其含义与IE1类同

IT1:外部中断1的中断触发方式控制位。 IT1=0时,外部中断1程控为电平触发方式。 CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平。若外部中断1请求为低电平,则使IE1置1;若为高电平,则使IE1清0。 IT1=1时,外部中断1程控为边沿触发方式。 CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断1请求引脚为高电平,接着的下一个机器周期采样到为低电平,则使IE1置1。直到CPU响应该中断时,才由硬件使IE1清0。 IT0:外部中断0的中断触发方式控制位。其含义与IT1类同。

2、串行口控制寄存器SCON中的中断标志位 SCON为串行口控制寄存器,其低2位锁存串行口的接收中断和发送中断标志RI和TI。 SCON中TI和RI的格式如所示 TI RI SCON (98H) 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H

SCON中控制位的含义 TI:串行口发送中断请求标志 CPU将一个数据写入发送缓冲器SBUF时,就启动发送。每发送完一帧串行数据后,硬件置位TI。但CPU响应中断时,并不清除TI,必须在中断服务程序中由软件对TI清0 RI:串行口接收中断请求标志 在串行口允许接收时,每接收完一个串行帧,硬件置位RI。同样,CPU响应中断时不会清除RI,必须在中断服务程序中由软件对RI清0

5.2.3 中断允许控制寄存器 EA—中断允许总控制位。 EA=0,屏蔽所有的中断请求; 5.2.3 中断允许控制寄存器 EA ES ET1 EX1 ET0 EX0 IE (A8H) AFH AEH ADH ACH ABH AAH A9H A8H EA—中断允许总控制位。 EA=0,屏蔽所有的中断请求; EA=1,CPU开放中断。对各中断源的中断请求是否允许,还要取决于各中断源的中断允许控制位的状态。这就是所谓的两级控制。

ES—串行口中断允许位 ES=0,禁止串行口中断; ES=1,允许串行口中断 ET1—定时器/计数器T1的溢出中断允许位 ET1=0,禁止T1中断; ET1=1,允许T1中断 EX1—外部中断1的溢出中断允许位 EX1=0,禁止外部中断1中断; EX1=1,允许外部中断1中断 ET0—定时器/计数器T0的溢出中断允许位 ET0=0,禁止T0中断; ET0=1,允许T0中断 EX0—外部中断0的溢出中断允许位。 EX0=0,禁止外部中断0中断; EX0=1,允许外部中断0中断

例5.1:假设允许外部中断0中断,禁止其他中断。试设置IE的相应值。 解:对于51单片机采用两级中断控制,所以(IE)=10000001B=81H,对IE的设置可以用如下方式实现。 (a)用字节操作指令 MOV IE,#81H; (b)用位操作指令 SETB EX0 ;外部中断0允许中断 SETB EA ;CPU开中断 一般情况下,建议使用位操作方式设置IE的值,这样可以增加程序的可读性

5.2.4 中断优先级寄存器IP 中断优先级寄存器IP的格式 PS —串行口中断优先级控制位 PT1—定时器/计数器T1中断优先级控制位 PX1 PT0 PX0 IP (B8H) BCH BBH BAH B9H B8H PS —串行口中断优先级控制位 PT1—定时器/计数器T1中断优先级控制位 PX1—外部中断1中断优先级控制位 PT0—定时器/计数器T0中断优先级控制位 PX0—外部中断0中断优先级控制位 若某控制位为1,则相应的中断源规定为高级中断;反之,为0,则相应的中断源规定为低级中断。

中断优先级排列顺序 当同时接收到几个同一优先级的中断请求时,响应哪个中断源则取决于内部硬件查询顺序。其优先级排列顺序如下图所示 中断源 同级内的中断优先级 外部中断0中断 高级 定时器/计数器T0溢出中断 外部中断1 定时器/计数器T1溢出中断 串行口中断 低级

例5.4:单片机有5个中断源,但只能设置两个中断优先级,因此在中断优先级安排上受到一定的限制,试问以下几种中断的优先级排列(级别从高到低)是否可能?若可能,则应如何设置中断源的中断级别? (1) 定时器0,定时器1,外中断0,外中断1,串行口中断。 (2) 串行口中断,定时器0,外中断0,外中断1,定时器1。 解:(1)从自然优先级顺序可以看出,定时器0,定时器1的优先级要低于外中断0,外中断1,如何使定时器0,定时器1优先级高于外中断0,外中断1呢?只有采取编程设置IP的优先级,将定时器0,定时器1设置为高优先级,那么定时器0,定时器1优先级高于外中断0,外中断1,串行口中断,同级中断按照自然优先级排列,定时器0的优先级要高于定时器1,外中断0,外中断1,串行口中断也满足自然优先级排列顺序,所以当设置定时器0,定时器1为高优先级后,满足中断优先级从高到低的排列顺序。

5.2.5 中断嵌套 若在中断处理过程中,又有新的优先级更高的外设请求中断,那么应该暂停正在执行的中断处理,转向执行中断优先级较高的中断服务子程序,处理完后在回来处理中断优先权低的中断服务,最后再返回主程序继续执行,这种情况称为中断嵌套。 如果用户设置五个中断源同时为低优先级或同时为高优先级,如果定时器/计数器T0发出中断请求后,单片机执行定时器T0中断程序过程中,外部中断0发出中断请求,这时还会出现中断嵌套吗?当同级中有多个中断源同时发出中断请求,CPU按照自然优先级顺序响应自然优先级高的一个中断请求。当一个中断被响应后,所有与之同级中断源的中断请求都被禁止。

从上述分析可以看出,由于51单片机只有两个优先级设置,故只存在两级中断嵌套结构,两级中断嵌套的中断过程如图5-8所示。第一级中断必须同时设置IP为低级中断请求,第二级中断设置为高级中断请求 图5-8 两级中断嵌套

5.3 MCS-51的中断响应条件和中断处理 中断响应的条件 中断处理过程

5.3.1 中断响应的条件 MCS-51单片机响应中断条件有以下三条: 如果有下列三种情况之一时,CPU将封锁对中断的响应: 5.3.1 中断响应的条件 MCS-51单片机响应中断条件有以下三条: ◆ 有中断源发出中断请求。 ◆ 中断允许位EA=1,即CPU开放中断。 ◆ 申请中断的中断源的允许位为1,即对应的中断源开放中断 如果有下列三种情况之一时,CPU将封锁对中断的响应: ◆ CPU正在处理一个同级或更高级别的中断请求,只有在同级或更高级别中断执行完毕,才会响应新的中断请求。 ◆ 现行的机器周期不是当前正在执行指令的最后一个周期CPU收到中断请求信号,必须等到本条指令执行完毕,才能中断主程序的执行并能够保存断点地址,然后才能响应中断。 ◆ 当前正执行的指令是返回指令(RETI)或访问IP、IE寄存器的指令,则CPU至少再执行一条指令才会中断。

5.3.2 中断处理过程 中断处理过程可以分为以下几个步骤: 5.3.2 中断处理过程 中断处理过程可以分为以下几个步骤: (1)把当前PC值压入堆栈,保护断点。CPU响应中断后,把当前指令的下一条指令(就是中断返回后将要执行的指令)的地址送入堆栈。 (2)将相应的中断服务程序的入口地址送入PC。根据中断标志,将相应的中断入口地址送入PC,CPU根据PC中的值到相应的程序存储器地址取指令,即程序就会跳转到中断入口处继续执行。这些工作都是由硬件来完成的,用户不必考虑。MCS-51单片机的中断源及其对应的中断入口地址如图5-9所示。

图5-9 中断源及其对应的中断入口地址

(3)对有些中断源,CPU会自动清除中断标志位。CPU响应中断后,自动清除中断标志,如TF1、TF0、IE1、IE0,但不能清除RI、TI、IT1、IT0标志位。 (4)执行中断服务程序。用户设置中断的目的是执行用户中断服务程序,当由硬件完成清除中断标志位,同时将程序跳转到中断入口处去执行中断服务程序,但是每个中断向量地址之间隔了8个单元,如0003-000BH,在如此少的空间中如何完成用户中断程序呢?很简单,在中断处安排一个LJMP指令,就可以把中断程序跳转到任何地方。当然如果用户中断程序小于8字节,则不必安排跳转指令。建议读者即使中断服务程序小于8字节,也采用跳转指令方式,以便养成规范的编程风格。 (5)中断服务子程序执行完返回指令RETI,中断服务程序结束,将堆栈内容弹出到PC,返回到原来断点继续执行。

5.4 中断程序编程举例 例5.5 假设某消防队坐落在道路的一边,正常情况下,交通红绿灯以1s的间隔轮流点亮,当有消防任务时,消防官兵只需要按一下设置在路边的消防紧急按钮,则道路交通灯就会变成红灯并持续1s时间,禁止其他车辆通行,使消防车可以顺利通过,试用51单片机来模拟实现上述功能 解:电路如图5-10所示,将P1口的P1.1~P1.0分别接红和绿色发光二极管D1~D0模拟道路交通等,P3.2(INT0)引脚接一按键以模拟消防紧急按钮,源程序中DELAY1S为延时1s子程序。

图5-10 AT89C51单片机模拟交通灯电路原理图

例5.5 源程序如下: ORG 0000H LJMP MAIN ORG 0003H LJMP INT_EX0 ORG 0030H MAIN: SETB EX0 ;单片机中断允许控制 SETB EA ;单片机中断允许控制 LOOP: SETB P1.0 ;绿灯被点亮 LCALL DELAY1S CLR P1.0 ;绿灯熄灭 SETB P1.1 ;红灯被点亮 CLR P1.1 ;红灯熄灭 LJMP LOOP INT_EX0: SETB P1.1 ;红灯被点亮 RETI

例5.6 在工业应用场合经常利用中断电路来实现系统的故障显示,假设有四个终端设备和主控室相连接,主控室可以采用报警或指示灯等方式表示终端设备是否正常工作。当终端设备正常工作时,主控室指示灯灭,当终端设备工作异常时,主控室指示灯亮,试用单片机中断电路来实现。 分析:单片机只有两个中断源,但是现在有四个外部中断请求,那么必然存在中断扩展,单片机如何实现中断扩展呢?一般情况下中断加查询扩展外部中断源,即每一根中断输入线可以通过“线或”的关系连接多个外部中断源,同时利用输入端口线作为各个中断源的识别线。电路如图5-11所示。

图5-11 利用中断电路来实现系统的故障显示电路原理图

例5.6 源程序: ORG 0000H LJMP MAIN ORG 0003H LJMP INT_EX0 ORG 0030H MAIN: SETB EX0 ;单片机中断允许控制 SETB EA ;单片机中断允许控制 SJMP $ ;等待中断到来 INT_EX0: JNB P1.0,NEXT1 SETB P1.4 LJMP INT_EX0_END NEXT1: JNB P1.1,NEXT2 SETB P1.5 NEXT2: JNB P1.2,NEXT3 SETB P1.6 NEXT3: JNB P1.3, INT_EX0_END SETB P1.7 INT_EX0_END: RETI