您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第5章 80C51的中断与定时系统
第5章80C51的中断与定时系统主要内容中断的概念80C51的中断系统80C51的定时/计数器80C51定时/中断应用举例重点内容介绍5.280C51的中断系统5.380C51的定时/计数器5.1中断的概念5.480C51定时/中断应用举例一般性介绍教学目的通过本章学习,使学生了解:•中断的基本概念•中断源的名称•入口地址;5.1中断的概念中断:•就是某个事件想打断CPU正在执行的程序,而让其转去执行另外一段特殊的事先已经写好的程序,执行完这段特定程序之后能返回到原来的程序上继续运行,这个过程称之为中断。主程序:•最开始被中断的程序图5.1中断示意图5.1中断概念某人看书执行主程序日常事务电话铃响中断信号INT=0中断请求暂停看书暂停执行主程序中断响应书中作记号当前PC入栈保护断点电话谈话执行I/O程序中断服务继续看书返回主程序中断返回5.1中断的概念(续)断点:在主程序中被中断的地方它是主程序中当前指令(执行完之后进入中断)下面一条指令的存放地址。中断子程序:引起中断的程序中断源:引发中断产生的某个事件中断的主要功能同步工作提高了CPU的工作效率实时处理同步工作采用中断后,使得CPU与外部设备之间不再是串行工作,而是分时并行操作;CPU启动外设后,就继续执行主程序,而外设要和CPU进行数据交换时,就发出中断请求信号,CPU响应中断后,就去执行中断处理;中断程序执行完后,CPU继续执行原来的主程序,使CPU和外设同步工作。提高了CPU的工作效率采用中断后,CPU可以同时和多种外设打交道,并同时处理内部数据,从而大大提高了CPU的工作效率。实时处理在实时控制中,计算机的故障检测、自动处理、人机联系、客机系统,多道程序分时操作和实时信息处理等均要求CPU具有中断功能,能够立即响应加以处理。这样的及时处理在查询的工作方式下是做不到的。一个完整的中断过程包括以下5个阶段:①中断请求②中断优先级判别③中断响应④中断处理⑤中断返回①“中断请求”阶段是中断源向CPU发出请求中断的要求,这是产生中断过程的前提条件②“中断优先级判别”是在有多个中断源发出中断请求时,需要通过适当的办法(软件的,硬件的,软、硬件结合的)决定究竟先处理哪个中断请求③“中断响应”指CPU中止现行程序转至中断服务程序的阶段这个阶段包括判读响应条件(现行指令是否执行完、是否允许中断)、把断点处PC的内容自动压入堆栈保护。④“中断处理”是指CPU执行中断服务子程序的阶段⑤“中断返回”是在执行完中断服务程序后,返回到原先被中断的程序即主程序上的阶段。一般单片机中有专门的指令对应这个环节5.280C51的中断系统主要内容80C51的中断系统结构中断源及其入口地址5.2.1中断系统结构5.2.1中断系统结构图5.2中断系统内部结构图2个外部中断源信号:INT0、INT12个定时器T0、T1溢出中断请求:TF0、TF11个串行口数据发送、接收结束中断请求:TI、RIMCS-51中断系统内部结构中断源信号中断允许控制2级中断优先级控制总允许开关:EA源允许开关:ES、ET1、EX1、ET0、EX0优先级选择开关:PS、PT1、PX1、PT0、PX05.2.2中断源及其入口地址主要内容中断源的名称中断源的分类和特点中断源的入口地址1.中断源的名称外部中断源0:由P3.2引脚的第2功能提供外部事件的中断申请输入端T0中断:由片内定时/计数器T0引发该中断外部中断源1:由P3.3引脚的第2功能提供外部事件的中断申请输入端T1中断:由片内定时/计数器T1引发该中断串行口中断:由片内串行通信接口在收发数据结束时引发本中断2.中断源的分类和特点分类:根据中断源产生的位置•片内中断(定时器T0和T1中断、串行口中断)•片外中断(外部中断0和外部中断1)根据中断源的引发是由硬件产生还是软件•软件中断(定时器T0、T1中断)•硬件中断(外部中断0、外部中断1、串行口中断)根据中断源的性质可以把中断系统分成以下3类中断:外部中断类定时器中断类串行口中断类①外部中断类外部中断源的中断请求有两种触发方式•电平触发方式:低电平有效•边沿触发方式:脉冲的下降沿这种触发方式下,在相邻两个周期对中断请求引入端进行的采样中,如前次为高、后一次为低,即为有效中断请求。因此在这种中断请求信号方式下,中断请求信号的高电平状态和低电平的状态都应至少维持一个机器周期,以确保电平变化能被单片机采样到可通过特殊功能寄存器TCON的IT0位和IT1位,进行编程自定义选择合适的触发方式。②定时器中断类产生本类中断的原因:•硬件结构发生计数溢出中断的标志:•在软件的标志位TF0和TF1上用“1”体现出来③串行口中断类每当串行口接收或发送完一组串行数据时,就产生一个中断请求3.中断源的入口地址单片机的中断为固定入口式中断,即一响应中断就转入固定入口地址执行中断服务程序。中断源的入口地址见表5-1表5-1中断源的入口地址中断源名称固定的入口地址外部中断源00003H定时器T0中断000BH外部中断源10013H定时器T1中断001BH串行口中断0023H3.中断源的入口地址(续)在这些单元中往往是一些跳转指令,跳到真正的中断服务程序,这是因为给每个中断源安排的空间只有8个单元。例如:编写中断服务程序的格式一般如下:ORG0000HSJMPMAINORG0003HAJMPINJERRVPMAIN:···HERE:SJMPHEREINJERRVP:···;中断响应程序RETI5.2.3中断过程中断申请中断响应中断服务中断返回1.外部中断请求的采样中断请求采样实质:就是如何识别外部中断请求信号,并把它锁定在定时器控制寄存器TCON的相应标志位中采用时刻:单片机CPU在每个机器周期的S5P2(第五状态第2拍节)对中断请求引脚(P3.2)和(P3.3)进行采样。2.中断查询与响应中断查询响应条件响应过程中断响应时间中断查询实质:通过CPU对中断请求标志位的查询具体操作:80C51在每一个机器周期的最后一个状态(S6),按前述优先级顺序对中断请求标志位进行查询。标志位为1,则表明有中断请求发生,CPU就从紧接着的下一个机器周期的S1状态开始进行中断响应。标志位是0,则无中断申请响应条件当查询到有中断请求后,CPU要响应中断还有下列条件:①无同级或高级中断正在服务;②当前指令周期结束,如果查询中断请求的机器周期不是当前指令的最后一个周期,则不行;③若现行指令是RETI、RET或访问IE、IP指令,则需要执行到当前指令及下一条指令方可响应。满足上述条件,就在下一个机器周期响应中断;否则,丢失中断查询结果。响应过程80C51单片机响应中断后,自动执行下列操作:①置位中断优先级有效触发器,即关闭同级和低级中断:②自动转入相应的中断子程序入口地址,断点处PC内容自动入栈,相当于LCALL指令;③进入中断服务程序。④RETI指令将清除“优先级激活”触发器(响应时被置位),然后由堆栈产生的2个字节装入到PC中。中断响应时间是指从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。①最快响应时间•以外部中断的电平触发为最快。•从查询中断请求信号到中断服务程序要三个机器周期:•1个周期(查询)+2个周期(长调用LCALL)②最长时间•2个周期执行当前指令(其中含有1个周期查询)+4个周期乘除指令+2个周期长调用=8个周期。•若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期3.中断返回在中断服务程序的最末尾要用,RETI指令完成下面的具体操作①恢复中断逻辑,打开同级和低级中断:②从堆栈的栈顶取出2个字节的地址还给PC;③返回主程序。5.380C51单片机的中断控制与编程主要内容中断控制中断控制的编程方法5.3.1中断控制中断源触发方式选择中断识别的标志中断使能控制中断优先级控制中断控制的编程方法源码源码0INT1INT0TF1TFTIRI0IE1IE0EX0ET1EX1ETESEAIP优先级查询电路高优先级中断请求低优先级中断请求中断程序入口中断程序入口源允许总允许图5.2中断系统内部结构图1.中断控制寄存器与中断控制有关的控制寄存器有四个:①TCON:定时控制寄存器。设置外部中断触发方式和记录中断请求标志;②IE:中断允许控制寄存器。设置中断总开关和各中断源的中断允许或禁止③IP:中断优先级控制寄存器。设置各中断源的中断优先级④SCON:串行口控制寄存器。记录串行中断请求标志设置方法:•利用定时器控制寄存器TCON中的IT0和IT1这两个可编程位,进行编程控制定时器控制寄存器TCON的格式:2.外部中断触发方式由INT0(或INT1)引入的中断有两种触发方式:•低电平触发方式•下降沿触发方式位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0表5-2定时器控制寄存器TCON格式表5-2定时器控制寄存器TCON位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0*当IT0(或IT1)设定成“1”:下将沿触发方式*当IT0(或IT1)设定成“0”,低电平触发方式例设置外部中断源边沿触发,可由下面指令来实现:SETB88H;IT0置1SETBIT1;IT1置1例设置外部中断源电平触发,可由下面指令来实现:CLRIT0H;IT0清0CLR8AH;IT1清03.中断识别的标志在TCON中的IE0和IE1两个标志位就是外部中断源请求标志位。IE0和IE1是否为“1”来判断识别如果外部中断源有中断请求,则中断系统的硬件自动将这两个标志位置“1”如果对应中断源的申请得到CPU的响应之后,IE0和IE1会自动由硬件清零。①外部中断源0和外部中断源1的识别标志表5-2定时器控制寄存器TCON位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0*IE0(IE1):外部中断请求标志当INT0(INT1)引脚有中断信号时,IE0(IE1)被置1;当CPU响应对应中断后,IE0(IE1)会自动由硬件清零。*TF0(TF1):定时器计数满溢出的标志位。当计数器产生计数溢出时,此位由硬件自动置1。当转向中断服务时,再由硬件自动清0②定时器T0和定时器T1中断的识别标志在TCON中的TF0和TF1两个标志位就是定时器计数满溢出的标志位。当计数器产生计数溢出时,此位由硬件自动置1。当转向中断服务时,再由硬件自动清0计数溢出位的使用有两种情况:•采用中断方式编程时用作中断请求识别的标志位;•采用查询方式编程时用作查询状态位使用,常用“JNBTF0,$”的指令进行非中断的查询方式编程;如果不采用中断方式编程,而采用查询的方式处理计数满的结果,这两个标志位要用手动清0。③串行口中断的识别标志当串行口中把一个数据收发成功之后,硬件自动将串行口控制寄存器SCON的RI和TI置“1”。无论用中断的方式处理还是用查询的方式处理,都要用单独的指令手动对RI和TI清零。4.中断使能控制中断使能控制是通过对中断允许控制寄存器IE中的相应位的设置实现EA:中断允许总控制位。是所有中断源的软件“总开关”。•EA=0,中断总禁止,禁止所有中断,软件设置。•EA=1,中断总允许,总允许后各中断的禁止或允许由各中断源的中断允许控制位进行设置。EX0(EX1):外部中断允许控制位•EX0(EX1)=0,禁止外中断0(1)•EX0(EX1)=1,允许外中断0(1)4.中断使能控制(续)ET0(ET1):定时/计数中断允许控制位;•ET0(ET1)=0,禁止定时(或计数)中断0(1)•ET0(ET1)=1,允许定时(或计数)中断0(1)ES:串行中断允许控制位•ES=0
本文标题:第5章 80C51的中断与定时系统
链接地址:https://www.777doc.com/doc-3176856 .html