您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 单片机原理与应用第七章
第5章中断系统CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、DMA和中断。中断技术主要用于实时监测与控制,要求单片机能及时地响应中断请求源提出的服务请求,并作出快速响应、及时处理。这是由片内的中断系统来实现的。第5章中断系统第5章中断系统内容概要理解和中断有关的几个概念。了解中断系统的硬件结构和工作原理。掌握与中断系统有关的特殊功能寄存器以及中断系统的应用特性。能熟练地进行中断系统的初始化编程以及中断服务子程序的设计。第5章中断系统目录5.1中断概述5.289C51中断系统第5章中断系统某人看书电话铃响暂停看书书中作记号电话谈话继续看书5.1中断概述主程序中断服务程序返回主程序主程序断点RETI响应中断请求第5章中断系统某人看书电话铃响暂停看书书中作记号电话谈话继续看书5.1中断概述执行主程序中断源申请中断暂停执行主程序当前PC入栈执行中断服务程序返回主程序日常事务中断请求中断响应保护断点中断服务中断返回第5章中断系统5.1中断概述1、中断的定义:中断是指如下过程:CPU与外设同时工作,CPU执行主程序,外设做准备工作,当外设准备好时向CPU发中断请求信号,若条件满足,则CPU终止主程序的执行,转去执行中断服务程序,在中断服务程序中CPU与外设交换信息,待中断服务程序执行完后,CPU再返回刚才终止的主程序继续执行。2、中断源:⑴中断源的定义:中断源是指引起中断请求的来源。⑵中断源的分类:①软中断和②硬中断通过指令引起的中断。可以发中断请求信号的外设或过程。如打印机、驱动器、故障源和A/D转换器等。第5章中断系统3、中断嵌套与中断优先级⑴当系统中有多个设备提出中断请求时,多个外设的申请信号要通过门电路送到CPU的申请输入端,使CPU能收到多个外设提出的申请。⑵CPU在收到多个外设的请求后,按中断处理原则处理中断。⑶确定优先级的方法解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法。4、中断处理的全过程中断处理的全过程分成3个阶段:中断响应、中断处理和中断返回。返回第5章中断系统第5章中断系统中断入口地址第5章中断系统中断响应1.中断响应定义中断源向CPU发出中断请求,若其优先级别最高,CPU在满足一定的条件下,可以中断当前程序的运行,保护好被中断的主程序的断点及现场信息。然后,根据中断源提供的信息,找到中断服务子程序的入口地址,转去执行新的程序段,这就是中断响应。2.中断响应条件CPU响应中断是有条件的,如内部允许中断、中断未被屏蔽、当前指令执行完等。第5章中断系统3.任何CPU在中断响应阶段一定做如下工作:(1)保护断点(2)给出中断服务程序入口地址(将中断服务程序的首地址送给PC,为CPU执行装段服务程序创造条件);有的CPU还会做自动关中断等操作4.给出中断服务程序入口地址的方法有2种:⑴固定入口式(中断服务程序的首地址固定,直接将此规定地址送给PC)⑵矢量式。返回第5章中断系统中断请求1.CPU的开、关中断。CPU内有1个中断允许寄存器IE,当EA=1时,称CPU开中断,此时CPU可以处理收到的可屏蔽申请;当EA=0时,称CPU关中断,虽然CPU收到了可屏蔽申请,但不处理(响应)它。2.CPU内有中断请求检测电路。CPU每执行一条指令,其内的中断请求检测电路都要检测中断请求输入端的状态。返回第5章中断系统中断处理(服务)从中断服务程序的第一条指令开始到返回指令为止,这个过程称为中断处理或中断服务。中断服务子程序是由用户根据自己的需要编制的,编制时要注意如下问题:1.保护现场:由一系列的PUSH指令完成。目的是为了保护那些与主程序中有冲突的寄存器,(如A,PSW,工作寄存器等),如果中断服务子程序中所使用的寄存器与主程序中所使用的寄存器等没有冲突的话,这一步骤可以省略。2.开/关中断:由SETB或CLR指令实现。目的是为了能控制中断,不使现场信息受到破坏。3.中断服务:与中断源实现信息交换。4.恢复现场:是与保护现场对应的,但要注意数据恢复的次序,以免混乱。中断服务子程序结构图第5章中断系统中断服务子程序结构图返回保护现场开中断与外设交换信息恢复现场中断返回关中断第5章中断系统中断返回:使用中断返回指令RETI。不能使用一般的子程序返回指令RET,因为RETI指令除了能恢复断点地址外,还能恢复中断响应时的标志寄存器的值,而这后一个动作是RET指令不能完成的。CPU执行此指令时一方面清除中断响应时所置位的“优先级生效”触发器,一方面从当前栈顶弹出断点地址送入程序计数器PC,从而返回主程序。第5章中断系统中断处理原则:1.当多个中断源同时提出中请时,CPU按优先级的高低有高到低依次为外设服务。中断优先级(有高低两级,由IP控制):(1)当同时有多个中断请求信号,先响应优先级别高的中断请求。(2)高优先级中断请求信号可中断低优先级中断服务(中断嵌套)。2.当CPU正为某外设服务又有新外设提出申请时,⑴若新外设级别高则CPU终止为原外设服务转去为新外设服务,为新外设服务完后,再为原外设服务。⑵若新外设级别低或与原外设同级,则CPU继续为原外设服务,为原外设服务完后,再为新外设服务。第5章中断系统CPU在响应某一中断源中断请求而进行中断处理时,若有中断优先级更高的中断源发出中断请求,CPU会暂停正在执行的中断服务程序,转向执行中断优先级更高的中断源的中断服务程序,等处理完这个高优先级的中断请求后,再返回来继续执行被暂停的中断服务程序。这个过程称为中断嵌套。主程序主程序断点响应低级中断请求高级中断服务程序断点RETIRETI返回主程序响应高级中断请求返回低级中断程序低级中断程序低级中断程序返回第5章中断系统第5章中断系统5.2MCS-51中断系统5.2.1MCS-51中断系统结构5.2.2MCS-51中断系统应用返回第5章中断系统5.2.1MCS-51中断系统结构MCS51系列单片机上集成有中断系统,从使用者的角度出发,MCS51的中断系统就是一些SFR,如TCON、SCON、IE、IP。返回INT0定时器1串行口外设外设0INT10IE0IE1TF0TF1定时器0TCONRITISCONEX0EX1ET0ET1ES&IEEAPX001PX101PT001PT101PS01IP0003H000BH0013H001BH0023H0003H000BH0013H001BH0023HPC高低中断源第5章中断系统中断标志(TCON和SCON)5个中断源分为2种:2个外中断(由P3.2和P3.3引入)和3个内中断(T0、T1和串口)。每个中断源对应一个中断标志位,当某个中断源有中请时,相应的中断标志位置1,各个中断源的中断标志位在TCON和SCON中。TCON:88H可以按字节操作,也可以按位操作。(定时器控制寄存器)SCON:98H可以按字节操作,也可以按位操作。(串行口控制寄存器)返回TF1TR1TF0TR0IE1IT1IE0IT0TIRI第5章中断系统定时器控制寄存器TCON定时器控制寄存器TCON的作用是控制定时器的启动与停止,并保存T0、T1的溢出中断标志和外部中断的中断标志。TCON的格式:TCON8FH8EH8DH8CH8BH8AH89H88H(88H)各位的功能说明:(1)TF1(TCON.7):定时器1溢出标志位。定时器1被启动计数后,从初值开始进行加1计数,当定时器1计满溢出时,由硬件自动使TF1置1,并申请中断。该标志一直保持到CPU响应中断后,才由硬件自动清0。也可用软件查询该标志,并由软件清0。TF1TR1TF0TR0IE1IT1IE0IT0第5章中断系统(2)TF0(TCON.5):定时器0溢出标志位。其功能同TF1。(3)IE1(TCON.3):外部中断1请求标志位。IEl=1表示外部中断1向CPU申请中断。当CPU响应外部中断1的中断请求时,由硬件自动使IE1清0(边沿触发方式)。(4)IT1(TCON.2):外部中断1触发方式选择位。当ITl=0时,外部中断1为电平触发方式。在这种方式下,CPU在每个机器周期的S5P2期间对INT1(P3.3)引脚采样,若采到低电平,则认为有中断申请,硬件自动使IEl置1;若为高电平,认为无中断申请或中断申请已撤除,硬件自动使IEl清0。在电平触发方式中,CPU响应中断后硬件不能自动使IEl清0,也不能由软件使IEl清0,所以在中断返回前必须撤消INT1引脚上的低电平,否则将再次响应中断造成出错。第5章中断系统当ITl=1时,外部中断1为边沿触发方式。CPU在每个机器周期的S5P2期间采样INT1(P3.3)引脚。若在连续两个机器周期采样到先高电平后低电平,则认为有中断申请,硬件自动使IEl置1,此标志一直保持到CPU响应中断时,才由硬件自动清0。在边沿触发方式下,为保证CPU在两个机器周期内检测到先高后低的负跳变,输入高低电平的持续时间至少要保持12个时钟周期。(5)IE0(TCON.1):外部中断0请求标志位。其功能同IE1。(6)IT0(TCON.0):外部中断0触发方式选择位。其功能同IT1。第5章中断系统串行口控制寄存器SCON串行口控制寄存器SCON的低2位TI和RI保存串行口的接收中断和发送中断标志。SCON的格式:SCON9FH9EH9DH9CH9BH9AH99H98H(98H)各位的功能说明:(1)TI(SCON.1):串行发送中断请求标志。CPU将一个字节数据写入发送缓冲器SBUF后启动发送,每发送完一帧数据,硬件自动使TI置1。但CPU响应中断后,硬件并不能自动使TI清0,必须由软件使TI清0。(2)RI(SCON.0):串行接收中断请求标志。在串行口允许接收时,每接收完一帧数据,硬件自动使RI置1。但CPU响应中断后,硬件并不能自动使RI清0,必须由软件使RI清0。SM0SM1SM2RENTB8RB8TIRI第5章中断系统中断开放与中断允许控制寄存器IEMCS-51单片机的5个中断源都是可屏蔽中断,也就是说用户可以通过软件方法来控制是否允许CPU去响应中断。CPU对中断源的中断开放(也称中断允许)或中断屏蔽(也称中断禁止)的控制是通过中断允许控制寄存器IE来实现的。IE:A8H可以按字节操作,也可以按位操作。AFHACHABHAAHA9HA8HEA:当EA=0时,称CPU关中断。当EA=1时,称CPU开中断。EX0:当EX0=0时,禁止INT0申请中断;当EX0=1时,允许INT0申请中断。EX1:当EX1=0时,禁止INT1申请中断;当EX1=1时,允许INT1申请中断。ET0:当ET0=0时,禁止T0中断;当ET0=1时,允许T0中断。ET1:当ET1=0时,禁止T1中断;当ET1=1时,允许T1中断。ES:当ES=0时,禁止串行口中断;当ES=1时,允许串行口中断8051复位后IE=00H,说明CPU和各个中断源都关中断。EX0ET0EX1ET1ESEA返回第5章中断系统注意:单片机在响应中断后不会自动关中断,因此,如果在转入中断服务处理程序后,如果想禁止更高级的中断源的中断申请,可以用软件方式关闭中断。例如:假定要开放外中断1和T1的溢出中断,屏蔽其他中断,则对应的中断允许控制寄存器内容应为()。①使用字节操作指令,可用一条指令完成。②使用位操作指令,则需三条指令实现。10001100BMOVIE,#8CHSETBEX1;SETBET1;SETBEA第5章中断系统中断优先级与中断优先级寄存器IPMCS-51单片机的中断系统对优先级的控制比较简单,只规定了两个中断优先级,对于每一个中断源均可编程为高优先级中断或低优先级中断,各中断源的优先级由中断优先级控制寄存器IP设定。IP:B8H可以按字节操作,也可以按位操作。BCHBBHBAHB9HB8HPX0:当PX0=0时,INT0处于低级;当PX0=1时,INT0处于高级。PX1:当PX1=0时,INT1处于低级;当PX1=1时,INT1处于高级。PT
本文标题:单片机原理与应用第七章
链接地址:https://www.777doc.com/doc-5833593 .html