版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第07讲 51单片机的中断系统,电气信息实验教学中心 仝迪,一、中断的基本概念,所谓中断是指CPU对系统中或系统外发生的某个事件的一种响应过程,即CPU暂时停止现行程序的执行,而自动转去执行预先安排好的处理该事件的服务子程序。当处理结束后,再返回到被暂停程序的断点处,继续执行原来的程序。实现这种中断功能的硬件系统和软件系统统称为中断系统。 中断系统是计算机的重要组成部分。实时控制、故障自动处理时往往用到中断系统,计算机与外部设备间传送数据及实现人机联系也常常采用中断方式。,一、中断的基本概念,中断系统需要解决以下基本问题: (1)中断源:中断请求信号的来源。 包括中断请求信号的产生及该信号怎样
2、被CPU有效地识别。而且要求中断请求信号产生一次,只能被CPU接收处理一次,即不能一次中断申请被CPU多次响应。这就涉及到中断请求信号的及时撤除问题。 (2) 中断响应与返回: CPU采集到中断请求信号后,怎样转向特定的中断服务子程序及执行完中断服务子程序怎样返回被中断的程序继续正确地执行。中断响应与返回的过程中涉及到CPU响应中断的条件、现场保护等问题。,一、中断的基本概念,(3)优先级控制: 一个计算机应用系统,特别是计算机实时测控应用系统,往往有多个中断源,各中断源所要求的处理具有不同的轻重、缓急程度。与人处理问题的思路一样,希望重要紧急的事件先处理,而且如果当前处于正在处理某个事件的过
3、程中,有更重要、更紧急的事件到来,就应当暂停当前事件的处理,转去处理新事件。这就是中断系统优先级控制所要解决的问题。中断优先级的控制形成了中断嵌套。,一、中断的基本概念,MCS51中断系统,一、中断的基本概念,中断的响应过程 (1) 在每条指令结束后, 系统都自动检测中断请求信号, 如果有中断请求,且CPU处于开中断状态下, 则响应中断。 (2) 保护现场, 在保护现场前, 一般要关中断, 以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。 (3) 中断服务, 即为相应的中断源服务。 (4) 恢复现场, 用堆栈指令将保护在堆栈中的数据弹出来, 在恢复现场前要关中断, 以
4、防止现场被破坏。在恢复现场后应及时开中断。 (5) 返回, 此时 CPU将推入到堆栈的断点地址弹回到程序计数器, 从而使CPU继续执行刚才被中断的程序。,二、中断源,MCS51单片机的中断源,二、中断源(外部中断),1外部中断 外部中断是指从单片机外部引脚INT0、INT1输入中断请求信号的中断,即外部中断源有两个。输入/输出的中断请求、实时事件的中断请求、掉电和设备故障的中断请求都可以作为外部中断源。 外部中断请求INT0、 INT1有两种触发方式:电平触发及跳变(边沿)触发。这两种触发方式可以通过对特殊功能寄存器TCON编程来选择。下面再给出TCON的位定义格式,并对与中断有关的定义位予以
5、说明。,二、中断源(外部中断),IT0(IT1):外部中断0(或1)触发方式控制位。 IT0(或IT1)被设置为0,则选择外部中断为电平触发方式;IT0(或IT1)被设置为1,则选择外部中断为跳变触发方式。,D7 D6 D5 D4 D3 D2 D1 D0,TCON,字节 地址 98H,二、中断源(外部中断),IE0(IE1):外部中断0(或1)的中断请求标志位。 当IE0(IE1)=1时说明外部触发条件成立 当Itx=0时,外触发工作于“电平触发”模式,当单片机对应引脚上出现低电平时,系统将被触发。 当Itx=1时,外触发工作于“边缘触发”模式,当单片机对应引脚上出现由“高”到“低”的一次跳变
6、时,系统将被触发。,D7 D6 D5 D4 D3 D2 D1 D0,TCON,字节 地址 98H,二、中断源(内部中断),内部中断是单片机芯片内部产生的中断。 MCS-51单片机(51子系列)的内部中断有定时器/计数器T0、T1的溢出中断,串行口的发送/接收中断。 前已述及,当定时器/计数器T0、T1的定时或计数到由硬件自动置位TCON的TF0或TF1,便向CPU申请中断。,三、中断的控制,1、中断允许控制: MCS-51单片机中没有专设的开中断和关中断指令,对各中断源的中断开放或关闭是由内部的中断允许寄存器IE的各位来控制的。IE各位的定义如下:,D7 D6 D5 D4 D3 D2 D1 D
7、0,IE,字节 地址 A8H,三、中断的控制,EA:中断允许总控位。EA=0,屏蔽所有的中断请求;EA=1,开放中断。EA的作用是使中断允许形成两级控制。即各中断源首先受EA位的控制;其次还要受各中断源自己的中断允许总控位控制。 EA=1;/总中断启动 EA=0;/总中断关闭,D7 D6 D5 D4 D3 D2 D1 D0,IE,字节 地址 A8H,三、中断的控制,ET2:定时器/计数器T2的溢出中断允许位,只用于52子系列,51子系列无此位。 ET2=0,禁止T2中断;ET2=1,允许T2中断。,D7 D6 D5 D4 D3 D2 D1 D0,IE,字节 地址 A8H,三、中断的控制,ES:
8、串行口中断允许位。ES=0,禁止串行口中断;ES=1允许串行口中断。,D7 D6 D5 D4 D3 D2 D1 D0,IE,字节 地址 A8H,三、中断的控制,ET1:定时器/计数器T1的溢出中断允许位。ET1=0,禁止T1中断;ET1=1,允许T1中断。,D7 D6 D5 D4 D3 D2 D1 D0,IE,字节 地址 A8H,三、中断的控制,EX1:外部中断1( INT1)的中断允许位。EX1=0,禁止外部中断1中断;EX1=1,允许外部中断1中断。,D7 D6 D5 D4 D3 D2 D1 D0,IE,字节 地址 A8H,三、中断的控制,ET0:定时器/计数器T0的溢出中断允许位。ET0
9、=0,禁止T0中断;ET0=1,允许T0中断。,D7 D6 D5 D4 D3 D2 D1 D0,IE,字节 地址 A8H,三、中断的控制,EX0:外部中断0(INT0)的中断允许位。EX0=0,禁止外部中断0中断;EX0=1允许外部中断0中断。,D7 D6 D5 D4 D3 D2 D1 D0,IE,字节 地址 A8H,三、中断的控制,2、中断优先级控制 在单片机系统程序的设计中,往往使用不止一个中断服务子程序。于是就涉及到这样一些问题: 如果有多个满足条件的中断发生,那么哪一个中断服务子程序将被首先触发? 当一个中断服务子程序正在被执行的时候,又有中断发生了,正在被执行的中断服务子程序又该怎样
10、运行?,三、中断的控制,MCS-51单片机的中断源有两个用户可控的中断优先级,从而可实现二级中断嵌套。中断系统遵循如下三条规则: (1) 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断,一直到该中断服务程序结束,返回了主程序且执行了主程序中的一条指令后,CPU才响应新的中断请求。 (2) 正在进行的低优先级中断服务程序能被高优先级中断请求所中断,实现两级中断嵌套。 (3) CPU同时接收到几个中断请求时,首先响应优先级最高的中断请求。,三、中断的控制,中断优先级控制寄存器 PT2:定时器/计数器T2的中断优先级控制位,只用于具有Timer2的子系列。 PS:串行口的中断优先级控制位
11、。 PT1:定时器/计数器T1的中断优先级控制位。 PX1:外部中断INT1的中断优先级控制位。 PT0:定时器/计数器T0的中断优先级控制位。 PX0:外部中断INT0的中断优先级控制位。,IP,三、中断的控制,默认的中断优先级,三、中断的控制,三、中断响应的条件、过程与时间,1、中断响应的条件 相关中断源的使能被启用。 总中断IE被使能。 满足各中断的物理事件发生。 单片机处于能够响应中断的状态: (1) 无同级或高级中断正在处理。 (2) 现行指令执行到最后1个机器周期且已结束。 (3) 若现行指令为RETI或访问IE、IP的指令时,执行完该指令且紧随其后的另一条指令也已执行完毕。,三、
12、中断的控制,2、中断响应过程 CPU响应中断后,由硬件自动执行如下的功能操作: (1) 根据中断请求源的优先级高低,对相应的优先级状态触发器置1。 (2) 保护断点,即把程序计数器PC的内容压入堆栈保存。 (3) 清内部硬件可清除的中断请求标志位(IE0、IE1、TF0、TF1)。 (4) 把被响应的中断服务程序入口地址送入PC,从而转入相应的中断服务程序执行。,三、中断的控制,3、中断响应时间 所谓中断响应时间是指CPU检测到中断请求信号到转入中断服务程序入口所需要的机器周期数。了解中断响应时间对设计实时测控应用系统有重要指导意义。 MCS-51单片机响应中断的最短时间为3个机器周期。若CP
13、U检测到中断请求信号时间正好是一条指令的最后一个机器周期,则不需等待就可以立即响应。所谓响应中断就是由内部硬件执行一条长调用指令,需要2个机器周期,加上检测需要1个机器周期,一共需要3个机器周期才开始执行中断服务程序。,四、中断的使用,中断的使用一般需要考虑以下几个步骤: 1、使用哪些中断源 2、这些中断源的中断触发方式 3、中断源的优先级 4、使能中断源 5、使能全局中断,四、中断的使用,当中断发生后,中断服务子程序需要做的工作 1、清中断标志位 2、禁止全局中断(如果需要) 3、禁止本中断源的中断使能 4、运行自定的中断服务子程序 5、重新启用本中断源的中断使能 6、启用全局中断,如果有,
14、四、中断的使用,例1,利用中断的方法,让LED灯熄灭 分析: sbit led=P14; sbit K1=P32; void main (void) IE0=0; /clear int0 interrupt flag IT0=1; /falling edge trigger interrupt EX0=1; /int0 interrupt enable EA=1; /system interrupt enable led=0; /led on while(1); ,四、中断的使用,void EXT0_int() interrupt 0 IE0=0; /clear int0 interrupt flag EX0=0; /int0 interrupt disable led=1; /led off EX0=1; /int0 interrupt enable ,四、中断的使用,在定时器一节的学习中,我们了解到,当定时器溢出后会产生一个“溢出”标志,这个“溢出”标志其实就是timer的中断标志位TF0/TF1,四、中断的使用,例2:利用定时器中断的方法让L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件开发服务项目-需求规格说明书-模板
- 放射卫生医师专题考试复习题库(附答案)
- ICU内分泌系统疾病护理
- 产科护理诊断的伦理考量
- 2026年高考物理三轮冲刺:力学实验 题型讲义+练习题(含答案解析)
- 老年消化系统疾病护理知识考试复习题库及解析(附答案)
- ICU疼痛评估与管理策略
- 山西省阳泉市2025年数学四年级第二学期期末教学质量检测试题含答案
- 山西省运城市夏县2025年数学三年级第二学期期末学业水平测试模拟试题含解析
- 危重患者疼痛管理与舒适护理
- 牙周病病人护理
- 2025年安徽滁州市工安机动车辆技术检测有限公司招聘笔试参考题库含答案解析
- 江苏无锡市小升初数学易错真题重组卷(苏教版)
- 口腔根管治疗护理
- 输电线路污秽度监测与评估
- 批发药品管理法培训课件
- 偏瘫患者抗痉挛体位摆放技术评分标准
- GB/T 25849-2024移动式升降工作平台设计、计算、安全要求和试验方法
- 2023年广州番禺区小升初六年级英语期末试卷及答案(含听力原文)
- 绿色食品生产记录表黄瓜
- 课本剧林教头风雪山神庙剧本
评论
0/150
提交评论