您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 第5章 80C51中断系统及定时计数器
80C51中断系统及定时/计数器5.1中断5.280C51的中断系统5.380C51的中断处理过程5.480C51的定时/计数器学习指导1、中断概念2、80C51中断系统的结构3、中断处理过程和中断优先级4、中断的应用5、定时/计数器的结构和工作原理返回计算机与外设之间传递信息:如何解决快速的CPU与慢速的外部设备之间传送数据的矛盾。1.程序查询控制方式输入输出操作完全在程序控制下进行的,用IN和OUT指令直接访问I/O端口。工作原理:当CPU启动外设工作后,不断地读取外设的状态信息进行测试,查询外设是否准备就绪,如外设准备好,则可以进行数据传送;否则,CPU继续读取外设的状态信息进行查询等待,直到外设准备好。2.中断控制方式当外部设备需要进行输入/输出操作时,向CPU发出中断请求信号,CPU进行中断处理。3.DMA控制方式DAM(直接存储器访问)控制方式是由DMA控制器控制存储器与高速I/O设备之间直接进行数据传送。启动外设读状态字就续否?数据传送Y查询方式:5.1中断一、中断定义中断是指当CPU在正常执行程序时(事件A),由于外部或内部事件(事件B)强迫CPU停止当前执行的程序,转去为事件服务(中断服务),服务完毕,又能自动返回到被中断的程序中继续执行。中断服务程序正常程序断点返回二、中断的优点:1、实现CPU与外设的速度匹配和并行工作;2、实现实时响应和控制;3、实现故障检测和自动处理,提高系统的可靠性。三、几个概念1、中断源:引起中断的原因或发出中断申请的来源。如:外部设备、定时时钟、数据通信设备、故障源、程序调试。2、中断的申请:中断源向CPU发出处理申请。3、中断的响应:CPU停止当前执行的程序A,转去处理中断申请的事件B。4、中断服务:对事件B的整个处理过程5、中断返回:处理结束后,CPU再回到原来被打断的程序(事件A)继续执行。6、中断系统:实现上述功能的部件。四、中断控制和中断系统的功能(1)实现中断的请求和响应中断请求信号的锁存、是否响应。(2)中断的优先级排队当有多个中断源申请中断时需判优。(3)中断现场的保护与恢复断点的压栈保护和现场信息的保护。(4)中断的嵌套方式对优先级高的中断源申请允许打断优先级低的中断处理。五、中断处理过程执行当前指令有请求否关中断保护断点和现场开中断中断服务关中断恢复现场开中断返回NY取下一条指令返回1、中断源提出申请,并建立相应的中断标志(由硬件置位标志位);2、CPU结束当前指令,响应该中断申请,同时把主程序断点处地址(程序计数器PC当前值)压入堆栈,即保护断点;3、保护现场。把断点处的有关信息(如工作寄存器、累加器、标志位的内容),压入堆栈;4、执行中断服务程序;5、恢复现场。把保存的现场内容从堆栈弹出,以恢复寄存器和存储单元的原有内容;6、返回主程序(或调用程序),执行中断返回指令,把断点处地址从栈顶弹出,从断点处继续执行主程序(或调用程序)。返回5.280C51的中断系统5.2.180C51的中断系统结构一、80C51的中断系统有5个中断源,2个优先级,可实现二级中断嵌套。与中断有关的特殊功能寄存器有4个:1、IE:中断允许寄存器,控制CPU是否响应中断请求。2、IP:中断优先级寄存器,控制中断请求的优先级。3、TCON:定时/计数器控制寄存器,存放2个外部中断和2个定时/计数器中断中断请求标志和触发方式。4、SCON:串行口控制寄存器,存放串行口中断标志。二、80C51中断系统的结构有5个中断源,2个优先级,可实现二级中断嵌套。EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS01≥1RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0INT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源5.2.280C51的中断源一、中断源INT0INT12、(P3.3)可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。1、(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。3、TF0(TCON.5)片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。4、TF1(TCON.7)片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。5、RI(SCON.0)或TI(SCON.1)串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。二、中断请求标志1、TCON(定时/计数器控制寄存器)的中断标志IT0/IT1(TCON.0/2),外部中断0/1触发方式控制位。当IT0=0时,为电平触发方式。当IT0=1时,为边沿触发方式(下降沿有效)。IE0/1(TCON.1/3),外部中断0/1中断请求标志位。TF0(TCON.5),定时/计数器T0溢出中断请求标志位。TF1(TCON.7),定时/计数器T1溢出中断请求标志位。利用中断请求标志位来向CPU请求中断!TF1—T1的溢出中断标志硬件置1,硬件清0(也可软件清0)TF0—T0的溢出中断标志。(同TF1,只是针对T0的)IE1—外部中断1(/INT1)请求标志。外部有中断请求时,硬件使IE1置1,硬件清0。IE0—外部中断0(/INT0)请求标志。IT1—外部中断1(/INT1)触发类型控制位。IT1=0,低电平触发。IT1=1,下降沿触发。IT0—外中断0(/INT0)触发类型控制位,用法同IT1。2、SCON的中断标志•RI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。•TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。一、中断允许控制CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。5.2.380C51中断的控制•EX0(IE.0),外部中断0允许位;•ET0(IE.1),定时/计数器T0中断允许位;•EX1(IE.2),外部中断0允许位;•ET1(IE.3),定时/计数器T1中断允许位;•ES(IE.4),串行口中断允许位;•EA(IE.7),CPU中断允许(总允许)位。若为“1”,开关接通,允许。例如SETBEA若为“0”,开关断开,不允许。例如CLRIE.7为什么要有中断优先级?CPU同一时间只能响应一个中断请求。若同时来了两个或两个以上中断请求,就必须有先有后。为此将5个中断源分成高级、低级两个级别,高级优先,由IP控制。二、中断优先级控制80C51单片机有两个中断优先级,可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的。•PX0(IP.0):外部中断0优先级设定位;•PT0(IP.1):定时/计数器T0优先级设定位;•PX1(IP.2):外部中断0优先级设定位;•PT1(IP.3):定时/计数器T1优先级设定位;•PS(IP.4):串行口优先级设定位。该位是“1”时,为高级优先级该位是“0”时,为低级优先级同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:80C51单片机的中断优先级有三条原则:•CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。•正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。•正在进行的低优先级中断服务,能被高优先级中断请求所中断。为了实现上述后两条原则,中断系统内部设有两个用户不能寻址的优先级状态触发器。其中一个置1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。事件1事件2子程序2子程序1中断嵌套的概念:主程序中断中断5.380C51单片机中断处理过程一、中断请求与响应条件1、IE0、IE1、TF0、TF1、TI(RI)为1时,说明中断源有中断请求信号。2、当中断允许位EX0、EX1、ET0、ET1、ES和CPU允许位EA为1时,CPU可响应中断。3、CPU在每个机器周期的S5P2采样中断请求信号,在下个机器周期对采样的中断请求进行查询,并响应优先级最高的中断请求。4、中断请求的封锁遇以下任一条件,硬件将受阻,不产生LCALL指令,中断请求被封锁:(1)当机器周期不是指令的最后一个机器周期(2)CPU正在执行同级或高优先级的中断;(3)正在执行RETI指令或对IE、IP的读/写指令,CPU将不响应中断请求。若由于上述条件的阻碍中断未能得到响应,当条件消失时该中断标志却已不再有效,那么该中断将不被响应。5、中断的响应中断请求响应后将断点(当前PC值)压栈,中断入口地址(中断服务程序的首地址)送PC,转向中断服务程序。CPU执行一条由中断系统提供的硬件LCALL指令,转向被称作中断向量的特定地址单元,进入相应的中断服务程序。二、中断优先级的控制原则1、低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优先级的中断服务,从而实现中断嵌套。2、如果一个中断请求已被响应,则同级的其他中断响应将被禁止。3、如果同级的多个请求同时出现,则按CPU查询次序确定哪个中断请求被响应。其查询次序为:外部中断0定时中断0外部中断1定时中断1串行中断。返回三、外部中断的触发方式有两种触发方式:电平触发和边沿触发1、电平触发(置TCON的ITx=0):低电平有效,要求一直保持到CPU响应中断为止,并在中断返回前变为高电平以防止再一次中断。电平触发方式适合于外部中断输入以低电平输入且中断服务程序能清除外部中断请求源的情况。例如,并行接口芯片8255的中断请求线在接受读或写操作后即被复位,以电平触发方式去请求中断比较方便。2、边沿触发(置TCON的ITx=1):在相继两个机器周期内检测到高电平变为低电平,使TCON的IEx=1,请求中断。要求负脉冲的宽度至少保持12个震荡周期,以确保检测到跳变。边沿触发方式适合于以负脉冲形式输入的外部中断请求,如ADC0809的转换结束标志信号EOC为正脉冲,经反相后就可以作为80C51的中断输入。四、中断响应过程和中断服务程序的执行1、将响应中断的优先级触发器置“1”,阻断同级和低级的中断请求2、由系统硬件提供LCALL指令,将当前PC的内容压栈保护,将相应的中断服务程序的入口地址送PC。5个中断源中断入口地址如下:INT00003HT0000BHINT10013HT1001BH串行口0023H由于中断入口地址间只有8个字节,存放中断服务程序是不够的,可在入口处使用转移指令转到对应的中断服务程序ORG0000HLJMPMAINORG0003HLJMPINT0FORG000BHLJMPT0FORG0013HLJMPINT1F……MAIN:…3、执行中断服务程序CPU执行一条由中断系统提供的硬件LCALL指令,转向被称作中断向量的特定地址单元,进入相应的中断服务程序。由于系统硬件仅提供LCALL指令将当前PC的内容压栈保护。对其它寄存器(如PSW、A等)任需在编写中断服务程序时进行保护和恢复。4、中断响应的时间至少需要3个机器周期(查询1个机器周期,最快响应2个机器周期)。最多需要8个机器周期(遇到RET、IE、IP指令需延迟1个机器周期,遇到乘除法指令延迟4个机器周期)某中断的响应时序如图:S1保护断点,长调用至入口中断服务S2S3S4S5S6S1S2S3S4S5S6S1
本文标题:第5章 80C51中断系统及定时计数器
链接地址:https://www.777doc.com/doc-4005753 .html