您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 80C51的中断系统及定时计数器
2020/3/171第5章80C51的中断系统及定时/计数器80C51单片机的中断系统5.180C51单片机的中断处理过程5.280C51单片机的定时/计数器5.32020/3/172在我们的日常生活经常会遇到中断现象,例如:你在看书——电话铃响了——你在书上做个记号,走到电话旁——你拿起电话和对方通话——门铃响了——你让打电话的人稍等一下——你去开门,并在门旁与来访者交谈,谈话结束,关好门——回到电话机旁,拿起电话,继续通话——通话完毕,挂上电话——从作记号的地方继续看书。这是一个很典型的中断现象。从看书到接电话,是一次中断过程,而从打电话到与门外来访者交谈,则是在中断过程中发生的又一次中断,即所谓中断嵌套。为什么会发生上述的中断现象呢?就是因为你在同一时刻,面对三项任务:看书、打电话和接待来访者。但一个人不能同时完成三项任务,因此你只好采用中断办法,穿插着去做。2020/3/173这种现象同样也会出现在计算机中,因为通常计算机只有一个CPU。CPU在执行正常程序过程中,发生随机事件或特殊请求时,CPU就暂时中断正在执行的正常程序,而转去执行随机事件或特殊请求的处理程序。当处理完毕后,CPU再回到被暂时中断的程序,接着往下继续执行。这个过程称为程序中断。程序中断与调用子程序相似,但却有本质的区别:调用子程序是事先知道某种需要,在程序中插入一条调用指令,它是预先安排好的。中断则是由外部原因随机产生的。一般程序中断由中断源向CPU提出中断请求,在一定的条件下,CPU响应中断请求后,程序就转至中断处理子程序,执行完中断处理程序后返回源程序,继续执行。中断过程如图5.1所示。2020/3/174源程序中断请求CPU响应中断中断返回中断处理程序·········2020/3/1755.180C51单片机的中断系统5.1.180C51中断系统的结构CPU进行工作A时发生了事件B,请求CPU马上处理CPU暂时中断当前工作A,转去处理事件B事件B处理完后,回到工作A被中断的地方继续处理A工作中断的概念主程序A响应返回断点RETI……中断服务程序B中断源中断请求中断服务中断返回中断系统中断的优点利用率高实时性强可靠性好2020/3/176中断是用以提高计算机效率的一种重要手段,它可以较好地发挥CPU的能力。中断技术主要有如下功能:①可以采用“分时”处理办法使CPU与外设并行工作,从而大大提高CPU的使用效率。由于许多外部设备速度很慢,无法与CPU进行直接的同步数据交换,因此可通过中断技术来实现CPU和外设的协调工作。在CPU执行程序过程中,如需进行数据输入/输出时,先启动外设,然后CPU继续执行程序。与此同时,外设在为数据输入/输出传送做准备。当准备完成后,外设发出中断请求,请求CPU暂停正在执行的程序,转去完成数据的输入/输出传送。传送结束后,CPU再返回继续执行源程序,而外设则为下次传送做准备。这种以中断方法完成的数据输入/输出操作,在宏观上看来似乎是CPU与外设同时工作。2020/3/177②可以进行“实时”控制此时外设可以处于主动地位,随时请求CPU进行处理操作。所谓实时控制就是计算机能及时完成被控对象随机提出的任务,以便使被控对象能保持在最佳工作状态,达到预定的控制要求。在自动控制系统中,各种控制参数可能随机地在任何时刻向计算机发出请求,要求进行处理。对此,CPU必须做出快速响应和及时处理。这种实时处理功能只能靠中断技术才能实现。③对紧急事件进行中断处理计算机在运行过程中,常常会发生一些事先无法预料的故障,如:硬件故障、电源掉电、运算错误、程序故障等。有了中断技术,计算机就能对这些故障及时发现并进行自动处理。状态正常后,计算机再继续执行程序。2020/3/17880C51中断系统的结构5个中断源、2个优先级EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS01≥1RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0INT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源2020/3/179中断源5.1.280C51的中断源外部中断0(INT0)外部中断1(INT1)T0溢出中断(TF0)T1溢出中断(TF1)串行口中断(RI或TI)向CPU发出中断请求的来源称之为中断源。MCS-51是一个多中断源的单片机,以80C51为例,有5个中断源,分别为外部中断2个、定时中断2个和串行中断1个。2020/3/17101.外部中断、INT0、INT1外部中断是由外部信号引起的。外部中断0和外部中断1的信号分别由P3.2和P3.3引脚输入。低电平或负跳变有效,由IT0和IT1设置,一旦输入信号有效,则将TCON中的IE0或IE1标志位置1,可向CPU申请中断。2.定时中断T0、T1定时中断为定时器/计数器0和定时器/计数器1溢出中断,这属于内部中断。当定时器/计数器加1计数产生溢出时,则将TCON中的TF0、TF1标志位置1,向CPU申请中断。3.串行中断TI/RI串行中断即为串行口的接收和发送中断。当串行口接收或发完一帧数据时,将TCON的RI或TI位置1,向CPU申请中断。2020/3/17115.1.3中断控制MCS-51单片机中断控制部分由4个专用寄存器组成,它们的功能分述如下:1.定时器控制寄存器TCON该寄存器用于控制定时器的启、停及定时器的溢出标志和外部中断的触发方式及外部中断的请求标志。寄存器地址88H,位地址88H~8FH。寄存器的内容及位地址表示如下:76543210TF1TR1TF0TR0IE1IT1IE0IT0字节地址:88H这个寄存器既有定时器/计数器功能又有中断控制功能,其中与中断有关的控制位共有6位:2020/3/1712TF1和TF0:分别为定时器1和定时器0的计数溢出标志位。当定时器计数满产生溢出时,由硬件自动置1,并申请中断。转向中断服务程序后,由硬件自动清0。这两位也可作为程序查询的标志位,在查询方式下应由软件来清0。IE1和IE0:分别为外部中断1和外部中断0的中断请求标志位。当CPU采样到(或)端出现有效中断请求时,IE1(或IE0)位由硬件置1,在中断响应完成后转向中断服务时,再由硬件自动清0。IT1和IT0:分别为外部中断1和外部中断0的触发方式选择位。IT1(IT0)=1边沿触发方式,下降沿有效。IT1(IT0)=0电平触发方式,低电平有效。2020/3/1713两种触发方式比较:电平方式时,INTx低电平必须保持到响应时,否则就会漏掉;在中断服务结束前,INTx低电平必须撤除,否则中断返回之后将再次产生中断。例,8255的中断请求线在接受读或写操作后即被复位,因此以请求电平触发方式的中断比较方便。边沿方式时,采样到有效下降沿后,在IEx中将锁存一个1。若CPU暂时不能响应,申请标志也不会丢失,直到响应时才清0。例,ADC0809的转换结束信号EOC为正脉冲,经反相后就可以作为80C51的INTx信号。2020/3/17142.串行口控制寄存器SCON该寄存器的地址98H,位地址98H~9FH。寄存器的内容及位地址表示如下:其中与中断有关的控制位共2位:TI:串行口发送中断请求标志位。当发送完一帧串行数据后,由硬件置1,在转向中断服务后,由软件清0。RI:串行口接收中断请求标志位。当接收完一帧串行数据后,由硬件置1,在转向中断服务后,由软件清0。76543210TIRI字节地址:98H2020/3/17155.1.380C51中断的控制中断允许控制中断源的开放和屏蔽由IE控制(1,开放;0,禁止)76543210IEEAESET1EX1ET0EX0字节地址:A8HEX0:外中断0允许ET0:T0中断允许EX1:外中断1允许ET1:T1中断允许ES:串口中断允许EA:CPU中断允许(总允许位)2020/3/1716系统复位后,IE=00H,因此中断系统处于禁止状态,根据需要设置中断允许。例如:外中断0允许,则可使用字节操作指令:MOVIE,#81H也可使用位操作指令:SETBEASETBEX0CPU在中断响应后不会自动关闭中断,所以在转入中断服务子程序后,应根据需要使用有关指令禁止中断,即以软件方式关闭中断。如关闭外中断0,则使用指令:CLREX02020/3/1717中断优先级控制中断优先级由IP控制(1,高级;0,低级)76543210IPPSPT1PX1PT0PX0字节地址:B8HPX0:外中断0优先级PT0:T0中断优先级PX1:外中断1优先级PT1:T1中断优先级PS:串口中断优先级同一优先级的自然顺序:自高至低:INT0、TO、INT1、T1、串口。2020/3/1718中断优先级遵循的原则几个中断同时申请,先响应高级的中断正进行的中断服务,同级或低级中断不能对其中断,但可以被高级中断所中断。为此,中断系统内设有对应高、低2个优先级状态触发器(用户不能寻址)。状态触发器的复位由中断返回指令RETI控制。2020/3/1719中断处理过程可分为三个阶段:即中断响应、中断服务和中断返回。由于各计算机系统的中断系统硬件结构不同,中断响应方式就有所不同。下面介绍MCS-51单片机的中断处理过程。5.280C51单片机中断处理过程2020/3/17205.2.1中断响应条件和时间中断响应条件有中断请求相应的中断允许位为1CPU开中断(即EA=1)遇下面情况之一将不被响应(此间中断条件失效,中断丢失)正在处理同级或高级中断当前查询周期不是所执行指令的最后一个机器周期正在执行RETI或访问IE或IP的指令2020/3/1721中断响应时间中断响应至少需要3个完整的机器周期(3~8个)!S1保护断点,长调用至入口中断服务S2S3S4S5S6S1S2S3S4S5S6S1S2S3S4S5S6S1S2S3S4S5S6S1S2S3S4S5S6标志查询ε中断有效M1M2M3M4M5受阻时要附加3~5个机器周期(无同级或高级中断正进行)查询周期不是当前指令的最后机器周期(如MUL,+3)查询周期恰逢RETI类指令(且后跟MUL指令+5)2020/3/17225.2.2中断响应过程CPU响应中断过程将相应优先级状态触发器置1(阻断后来同级或低级中断)执行硬件LCALL指令(PC入栈,中断服务程序入口址送PC)执行中断服务程序编写中断服务程序注意中断服务程序入口存放指令LJMP或AJMP现场保护与现场恢复2020/3/1723(1)外部中断请求采样对于外部中断,首先必须对外中断请求信号进行采样。而其他中断源的中断请求都发生在单片机芯片的内部,可以直接置位相应的中断请求标志位,因此不存在中断请求采样问题。2020/3/1724当外部中断为电平触发方式时,CPU在每一个机器周期的S5P2期间对和引脚进行采样。若测得为低电平,则认为有中断请求,将外部中断请求标志位IE0或IE1置1;若测得为高电平,则认为没有中断请求或中断请求已撤除,将IE0或IE1清0。当外部中断为边沿触发方式。CPU在每一个机器周期的S5P2期间对和引脚进行采样,若在连续两个机器周期采样到先高后低的电平变化,则认为有中断请求,将IE0或IE1置1;否则认为没有中断请求,IE0或IE1继续为0。可见,为保证CPU在两个机器周期内检测到由高到低的负跳变,输入高电平和低电平的持续时间起码要保持12个振荡周期即一个机器周期的时间。2020/3/1725(2)中断查询与响应中断查询是指CPU测试各中断请求标志位的状态,以确定有没有中断请求发生以及是哪一个中断请求。在每一个机器周期的最后一个状态S6,按优先级顺序对中断请求标志位进行查询。如果查询到有标志位1,则表明有中断请求发生,接着就从下一个机器周期开始进行中断响应。当中断请求被响应时,由硬件生成长调用指令(LCALL),将当前的PC值自动压栈保护,但PSW寄存器的内容不压栈,然后将对应的中断入口地址装入PC,程序转向中断服务子程序,处理被响应的中断。各中断源的入口地址如下:2020
本文标题:80C51的中断系统及定时计数器
链接地址:https://www.777doc.com/doc-4417633 .html