资源预览内容
第1页 / 共146页
第2页 / 共146页
第3页 / 共146页
第4页 / 共146页
第5页 / 共146页
第6页 / 共146页
第7页 / 共146页
第8页 / 共146页
第9页 / 共146页
第10页 / 共146页
亲,该文档总共146页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Welcome to study,物理系,第四章 MSC-51系统的功能部件,第五章 中断与定时,内容提要:,4-1 中断,4-2 定时 / 计数器,4-3 串行通信接口,4-1 中断,一、概述,与上对比,单片机中也有同样的问题。 CPU暂停正在执行的程序的执行,转而为紧急事件服务(执行中断服务子程序),并在服务完后自动返回原程序继续执行的过程就叫,1、中断的定义 举例:某同学正在教室写作业,忽然被人叫出去,回来 后,继续写作业。这就是生活中中断的例子。,中断的过程: 中断申请:CPU正常执行某一程序时,突然发生了紧急事件。则此紧急事件产生一个电信号,向CPU提出“中断请求”(Interrupt Request)。 中断响应:CPU一旦检测到并响应该申请,便自动将“断点”地址入栈保护,然后转入对应的中断服务程序执行。(Interrupt Acknowledge) 中断返回:中断服务子程序执行完毕,从堆栈中取出“断点”到PC中,程序又转回原先执行的程序继续往下正常执行。(Interrupt Return),1) 对突发事故,做出紧急处理。 2) 根据现场随时变化的各种参数、信息,做出实时监控。 3) CPU与外部设备并行工作,以中断方式相联系,提高工作效率。 4) 解决快速CPU与慢速外设之间的矛盾 5) 在多项外部设备同时提出中断请求情况下,CPU能根据轻重缓急响应外设的中断请求。,2、中断的作用:,对于MCS-51单片机中断系统的组成可以用一句话来讲, 叫做:“五源中断,两级管理”,中断源通常有以下几种: 、外部设备中断源: 用于外部I/O设备和CPU之间的实时数据传送。 要求外部设备在输入/输出完一个数据时能自动产生一个“中断请求”电信号。如:串行中断、键盘中断、打印机中断等。 、控制对象中断源:用于实时控制系统。 被控对象用作中断源,要求CPU及时采集系统的控制参量、越限参数以及要求发送或接收数据。 、故障中断源:用于出错、故障等紧急处理。如除数为0、掉电处理等。 、定时脉冲中断源:定时/计数器的溢出中断。用于定时或计数外部事件的发生次数。,3、中断请求源(“五源中断”),中断源是指起中断原因的设备或部件,或发出中断请求信号的源泉。 通常有I/O设备、实时控制系统中的随机参数和信息故障源等。,五个中断源: 入口地址 外部中断0(/INT0) 0003H T0溢出中断 000BH 外部中断1(/INT1) 0013H T1溢出中断 001BH 串口中断 0023H,、可屏蔽中断: 是指CPU可以控制的一类中断。CPU对INT中断请求输入线上输入的中断请求可以响应,也可以屏蔽掉。这种控制可以通过中断控制指令来实现。MCS-51具有可屏蔽中断功能。 、非屏蔽中断: CPU对NMI中断输入线上来的中断请求是不可屏蔽(或控制)的,一旦发生,CPU必须响应。如:Z80系列。 、软件中断: 软件中断是指人们可以通过相应的中断指令使CPU响应中断,CPU只要执行这种指令就转入相应中断服务程序执行,以完成相应的中断功能。即中断源为软件指令。如:Intel 80888086等CPU。,4、中断分类,5、中断嵌套,、中断优先级: 一个CPU总会有若干中断源,可以接收若干个中断源发出的中断请求。但在同一瞬间,CPU只能响应一个中断请求,CPU为了避免在同一瞬间因响应若干个中断源的中断请求而带来的混乱,就必须给每个中断源的中断请求赋一个特定的中断优先级,以便CPU先响应优先级高的中断请求,然后再逐个响应中断优先级次高和次低的中断请求。 、中断嵌套: 在某一瞬间,CPU因响应某一中断源的中断请求而正在执行它的中断服务程序时,若CPU此时的中断是开放的,那它必然可以把正在执行的中断服务程序暂停下来转而响应和处理中断优先权更高的中断源的中断请求,等到处理完后再转回来继续执行原来的中断服务程序。这就是中断嵌套。 、中断嵌套的先决条件: 在被嵌套的中断服务程序中,中断是开放的。 又发生了中断优先级更高的中断源的中断请求。,6、中断系统的功能,中断系统是指能够实现中断功能的那部分硬件电路和软件程序。 中断系统的功能: 、进行中断优先级排队:中断优先权排队电路。决定各个中断源的优先顺序、轻重缓急。当多个中断源同时请求中断时,决定先响应哪一个。 、实现中断嵌套:使CPU可以暂停低优先级中断源的中断服务程序的执行,转而为更紧急的事件服务。 、自动响应中断:CPU必须不断检测中断输入线上的中断请求信号,以及时响应随机发生的中断请求。CPU总是在每条指令的最后状态对中断请求进行一次检测。CPU在响应中断时自动做三件事:关闭中断、保护断点;按中断源提供的中断矢量自动转入相应的中断服务程序;撤消本次中断请求,以避免再次响应本次中断的请求。 、实现中断返回:在执行到中断服务程序末尾的中断返回指令时,能自动到堆栈中取出断点地址,返回中断前的原程序继续执行。,中断源的中断请求,如何通知CPU?,利用中断请求标志位来通知!,二、MCS-51中断系统,1、MCS-51系列单片机的中断源和中断标志,在MCS-51系列单片机中,单片机的型号不同,其中断源的个数也不同,8051的中断系统有5个中断源。 8051中断系统的相关操作: 五个中断源、六个中断标志位和外部中断触发方式。 中断允许和中断优先级。 保护断点、堆栈应用及中断向量。 中断服务子程序和中断嵌套。 中断申请的撤消与恢复断点。 对中断申请是否予以响应,由硬件和软件共同决定。 所有的中断申请标志位都可以位寻址,可以由软件置位或清零。 五个中断源:两个外部中断、两个定时器溢出中断和一个串行口中断。 六个中断标志位: TCON中4个,SCON中2个。,、外部中断源:外部中断0和外部中断1。,8051有INT0和INT1两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或下降沿两种中断触发方式来输入中断请求信号。 外部中断源的触发方式由TCON中的IT0和IT1两位的状态来设定。 CPU在每个机器周期的S5P2时对INT0/INT1线上的中断请求信号进行一次采样检测。低电平触发时,检测到低电平有效;下降沿触发时,连续两次检测的结果为前高后低有效。 中断标志位为TCON中的IE0和IE1两位。当INT0/INT1引脚上的信号符合触发条件时,IE0/IE1置位,申请中断。 如果CPU响应了这个中断,则对沿触发方式,硬件自动清零IE0/IE1位; 对电平触发方式,只有等外申请信号变成高电平时,才自动清IE0/IE1位。 如果CPU暂时不响应该中断,IE0/IE1始终为1,表示中断申请有效。,、定时/计数器溢出中断源:T0、T1。,当定时/计数器T0/T1在定时脉冲作用下从全“1”变为全“0”时,可以自动向CPU提出溢出中断请求,以表明定时时间或计数次数已到。 定时/计数器有两种工作状态: 定时:计数内部脉冲(机器周期数),溢出中断定时。 计数:计数外部脉冲(外部事件),溢出中断计数。 定时/计数器的工作状态由TMOD决定。 定时/计数器的启停由TCON中的TR0/TR1两位控制。 当TR0/TR1=1时,启动定时/计数器开始计数;当TR9/TR1=0时,停止计数。 定时/计数器的中断标志位为TCON中的TF0/TF1两位。 当定时/计数器计数溢出(从全“1”变为全“0”)时,TF0/TF1置1,向CPU申请中断。 CPU响应中断后,硬件会自动清0标志位TF0/TF1。 定时/计数器溢出中断通常用于需要进行定时/定量控制的场合。,、串行中断:SBUF,串行口中断分为串行口发送中断和接收中断两种。传送完一帧数据,引起发送中断。接收完一帧数据,引起接收中断。其中断标志位分别为SCON中的TI和RI位。但两者公用一个中断矢量(或称中断入口地址)。 只要在串行口中断服务程序开头安排一段对SCON中RI和TI位状态的判断程序,便可区分发生了串行口接收中断请求还是发送中断请求。 TI和RI必须由软件清0。,、中断标志位,中断标志位:中断事件发生后,在单片机内部的表示方式,或者说各个中断源的状态标志寄存位。 每个中断源都有一个中断申请标志位,串行口两个,所以共6个。分布在两个SFR中,TCON中4个,SCON中2个。 中断标志位为0:相应的中断源没有提出中断申请; 中断标志位为1:表示相应中断源已经提出了中断申请。,TCON,、定时器控制寄存器TCON:,SCON,、串行口控制寄存器SCON:,MCS-51单片机的中断源都是可屏蔽中断。其中断的开放和关闭是通过IE进行两级控制的。所谓两级控制是指有一个中断允许总控制位EA,配合各个中断源的中断允许控制位共同实现对中断请求的控制。,2、中断控制(两级管理) 1)、对中断允许的控制(第一级管理),IE,若为“1”,开关接通,允许 例如 SETB EA 若为“0”,开关断开,不允许 例如 CLR IE.7,例:如果允许片内定时器、计数器中断,禁止其他中断,试根据假设条件设置IE的相应值。 解:1)用字节操作指令 MOV IE , #8AH 或 MOV A8H , #8AH 2)用位操作指令 SETB ET0 SETB ET1 SETB EA,2)、对中断优先级的控制(第二级管理),中断优先级分两个层次: 中断优先权:由单片机和CPU自身硬件决定的(固定不变): (最低)SBUF、T1、INT1、T0、INT0(最高) 中断优先级:由IP编程决定(可以编程改变)。 MCS-51系列单片机的中断系统只有高、低两个中断优先级,且任意一个中断源都可设定为高或低优先级。所以MCS-51系列CPU只能实现两级中断嵌套。,P S 串口的中断优先级别 PT1 定时 / 计数器T1的中断优先级别 PX1 外部中断1 的中断优先级别 PT0 定时 / 计数器T0的中断优先级别 PX0 外部中断0 的中断优先级别,该位是“1”时,为高级优先级 该位是“ 0”时,为低级优先级,同一级中的5个中断源的优先顺序是:,中断优先原则:(概括为四句话) 1、低级不打断高级 2、高级不睬低级 3、同级不能打断 4、同级、同时中断,事先约定。,例:设8031的片外中断为高优先级,片内中断为低优先级,试设置IP相应值。 解:1)用字节操作指令 MOV IP , #05H 或 MOV 0B8H , #05H 2)用位操作指令 SETB PX0 SETB PX1 CLR PS CLR PT0 CLR PT1,三、MCS-51系列单片机对中断的响应,、响应中断申请的四个条件: 该中断被允许(IE);当前正在执行的程序不是中断服务程序或其对应中断源比该中断源的优先级低(IP);执行完当前指令;如果是下述四类指令,则执行完该指令后再执行一条指令,才能响应该中断(RETI、RET、IE操作、IP操作)。 、CPU响应一个中断之后的操作: 自动操作:保护断点; 中断入口地址,并转入响应中断服务程序; 清中断标志位: 人为操作:保护现场; 修改IE,关闭某些不希望发生的中断。,3、MCS-51系列单片机的中断向量表及中断请求的撤除,、中断向量表: 象复位入口一样,每个中断源都有一个中断入口。当CPU响应该中断时,流程立即转到该地址执行。 中断向量表:INT0:0003H T0: 000BH INT1:0013H T1: 001BH SBUF:0023H 、中断请求的撤除: TF0/TF1:当CPU响应该中断时,由硬件自动清除。 IE0/IE1:下降沿触发方式时,在CPU响应中断时,由硬件自动清除。 电平触发方式时,由外部事件清除。 R
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号