您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > MCS-51单片机的中断系统
课程主讲:訾学博第1章:微机原理概述第2章:单片机概述第3章:MCS-51单片机的硬件结构(*)第4章:MCS-51单片机指令系统(*)第5章:MCS-51单片机程序设计(*)第7章:MCS-51的定时器/计数器(*)第6章:MCS-51的中断系统(*)第8章:MCS-51的串行口(*)第9章:系统扩展技术第10章:模拟接口第11章:人机交互接口课程内容2•8051单片机的中断系统•8051单片机的中断处理过程•8051单片机的中断服务程序设计•8051的多中断源系统设计本讲主要内容3某人看书——某人正在处理一件事A手机铃响——出现另一件须立即解决的事B暂停看书——中止A书中作记号——记录断点,便于接续电话谈话——处理B继续看书——继续A的工作保护断点中断响应中断请求中断返回(1)现实生活中的中断:6.1.1中断的概念6.18051单片机的中断系统4中断原因:一个人不可能同时完成两项任务。单片机只有一个CPU,一旦面临多任务,它也会中断吗?先接电话,然后再继续看书,这样效率最高!5(2)单片机的中断CPU进行工作A时发生了事件B,请求CPU马上处理CPU暂时中断当前工作A,转去处理事件B事件B处理完后,回到工作A被中断的地方继续处理A工作主程序A响应返回断点RETI……中断服务程序B中断源中断请求中断服务中断返回中断系统中断的优点利用率高实时性强可靠性好中断◦当CPU正在处理某件事情时,单片机外部或内部发生的某一紧急事件请求CPU立即去处理,于是,CPU暂时中止当前的工作,转去处理这个紧急事件,待处理完毕后,再回到原来被中止的地方,继续原来的工作。中断系统◦能够实现中断处理功能的部件中断处理过程◦①中断请求◦②中断响应◦③中断服务◦④中断返回7主程序中断请求→中断服务程序继续执行主程序中断源◦引起中断的原因,或者是能发出中断申请的来源◦又被称作“中断请求源”中断请求◦中断源向CPU提出的处理请求外部中断0和1(INT0、INT1)◦采集到低电平或者脉冲下降沿时,产生中断请求。INT0来自P3.2引脚INT1来自P3.3引脚定时/计数器0和1(T0、T1)◦定时功能时,计数脉冲来自片内◦计数功能时,计数脉冲来自片外T0来自P3.4引脚T1来自P3.5引脚◦计数值由8个1变成8个0时,产生中断请求。串行中断◦发送或接收完一个字节数据时,产生中断请求发送来自P3.0引脚接收来自P3.1引脚8MCS-51的中断源并行处理CPU可以与多台外设并行工作,并分时与他们进行信息交换,提高了CPU的工作效率。实时控制单片机应用系统可能随机请求CPU提供服务。有了中断系统,CPU就可以立即响应并予以处理。故障处理单片机系统在工作时可能会出现一些突发故障,如电源断电,存储器出错,程序执行错误(如除数为0)等,一旦出现故障,CPU就可及时转去执行故障处理程序,而不必停机。9为实现中断功能而配置的硬件和编写的软件就是中断系统。中断由谁来实施?中断功能由中断系统来执行。10110INT1INTIT0=0IT0=1IE0TF0IE1TF1TIRIT0T1TXRX+ESET1EX1ET0EX010PT010PT110PX110PS10PX0矢量地址自然优先级矢量地址自然优先级低级中断请求PC高级中断请求PCIEIPIT1=0IT1=1硬件查询硬件查询源允许总允许优先级中断请求标记中断触发方式中断源中断请求中断允许中断优先级中断响应8051中断系统的结构5个中断源、2个中断优先级8051单片机有5个中断源。见下表哪些部件可以向CPU申请中断呢?中断源说明外部中断从P3.2引脚引入的外部中断申请定时器T0中断定时器T0溢出时引发中断申请外部中断从P3.3引脚引入的外部中断申请定时器T1中断定时器T1溢出时引发中断申请串行口中断一次串行发送或接收完成后,发出中断申请0INT1INT能够向CPU发出中断申请的部件称为中断源。中断允许寄存器IE中断优先级寄存器IP定时/计数器及外部中断控制寄存器TCON串口控制寄存器SCON单片机通过对4个特殊功能寄存器实施中断控制:13触发方式设置及中断标志76543210TCONTF1TR1TF0TR0IE1IT1IE0IT0字节地址:88H外部中断触发方式位IT1、IT0(用ITx表示)电平方式(ITx=0),INTx引脚低电平时IEx=1,响应中断后IEx不自动清0(INTx引脚状态)。边沿方式(ITx=1),INTx引脚负跳变时IEx=1,响应中断后IEx自动清0。外部中断标志IE1、IE0(用IEx表示)两种触发方式比较:电平方式时,INTx低电平必须保持到响应时,否则就会漏掉;在中断服务结束前,INTx低电平必须撤除,否则中断返回之后将再次产生中断。例,8255的中断请求线在接受读或写操作后即被复位,因此以其去请求电平触发方式的中断比较方便。边沿方式时,采样到有效下降沿后,在IEx中将锁存一个1。若CPU暂时不能响应,申请标志也不会丢失,直到响应时才清0。例,ADC0809的转换结束信号EOC为正脉冲,经反相后就可以作为8051的INTx信号。溢出中断标志TF1、TF0(用TFx表示)溢出中断请求标志TFx,Tx启动后就开始由初值进行加1计数,直至最高位产生溢出使TFx=1向CPU请求中断。CPU响应中断后TFx自动清0。SCON的中断标志76543210SCONTIRI字节地址:98HRI:串口接收中断标志,响应中断时不能自动清除TI:串口发送中断标志,响应中断时不能自动清除外部中断INTi(i=0,1)◦电平方式触发中断ITi设置为0CPU在每个机器周期的S5P2采样INTi引脚,若INTi引脚为低电平时,则置IEi为1,产生中断请求。◦跳沿方式触发中断ITi设置为1加到INT0上的信号电平从高跳变到低时,触发中断当CPU响应中断后,IEi由硬件自动复位定时/计数器中断Ti(i=0,1)◦Ti产生溢出(计数值由8个1变成8个0)时,TFi由0变成1,向CPU发出中断请求。◦中断响应后,TFi自动复位。串行中断◦发送(TX)发送完一个字节数据时,TI由0置1,向CPU发出中断请求。中断响应后,必须用指令复位TI。◦接收(RX)接收完一个字节数据时,RI由0置1,向CPU发出中断请求。中断响应后,必须用指令复位RI。17S1S2S3S4S5S6P1P2P1P2P1P2P1P2P1P2P1P218位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0•TF1TF0:当定时/计数器产生溢出时,由硬件置“1”,并申请中断。当转向中断服务时,再由硬件自动清“0”。•IE1IE0:当CPU采样到外部中断请求时,由硬件置“1”。当转向中断服务时,再由硬件自动清“0”。•IT1IT0:为1时,脉冲触发方式,下降沿有效为0时,电平触发方式,低电平有效位地址9FH9EH9DH9CH9BH9AH99H98H位符号SM0SM1SM2RENTB8RB8TIRI•TI:当串行口发送完一帧串行数据后,由硬件置“1”;在转向中断服务程序后,用软件清“0”•RI:当串行口接收完一帧串行数据后,由硬件置“1”;在转向中断服务程序后,用软件清“0”中断请求所影响到的位地址中断允许控制中断源的开放和屏蔽由IE控制(1,开放;0,禁止)76543210IEEAESET1EX1ET0EX0字节地址:A8HEX0:外中断0允许ET0:T0中断允许EX1:外中断1允许ET1:T1中断允许ES:串口中断允许EA:CPU中断允许20位地址AFHAEHADHACHABHAAHA9HA8H位符号EA--ESET1EX1ET0EX0•EA:中断允许总控制位。0禁止,1允许。•ES:串行中断允许控制位。0禁止,1允许。•ET1:定时计数器1中断允许控制位。0禁止,1允许。•EX1外部中断1允许控制位。0禁止,1允许。•ET0定时计数器0中断允许控制位。0禁止,1允许。•EX0外部中断0允许控制位。0禁止,1允许。中断允许21【例】若允许片内2个定时/计数器中断,禁止其他中断源的中断请求,试编写出设置IE的程序段。CLRES;ES=0,禁止串行口中断CLREX0;EX0=0,禁止外部中断0CLREX1;EX1=0,禁止外部中断1SETBET0;ET0=1,允许定时/计数中断0SETBET1;ET1=1,允许定时/计数中断0SETBEA;CPU开中断(方法1)用位操作指令(方法2)用字节操作指令MOVIE,#10001010BIE位地址AFHAEHADHACHABHAAHA9HA8H位符号EA--ESET1EX1ET0EX010001010中断优先级控制中断优先级由IP控制(1,高级;0,低级)76543210IPPSPT1PX1PT0PX0字节地址:B8HPX0:外中断0优先级PT0:T0中断优先级PX1:外中断1优先级PT1:T1中断优先级PS:串口中断优先级同一优先级的自然顺序:自高至低:INT0、T0、INT1、T1、串口。23位地址BFHBEHBDHBCHBBHBAHB9HB8H位符号---PSPT1PX1PT0PX0•PX0:外部中断0的优先级设定位,1为高,0为低•PT0:定时中断0的优先级设定位,1为高,0为低•PX1:外部中断1的优先级设定位,1为高,0为低•PT0:定时中断0的优先级设定位,1为高,0为低•PX:串行中断的优先级设定位,1为高,0为低中断优先级中断优先级遵循的原则几个中断同时申请,先响应高级的中断正进行的中断服务,同级或低级中断不能对其中断,但可以被高级中断所中断。为此,中断系统内设有对应高、低2个优先级状态触发器(用户不能寻址)。状态触发器的复位由中断返回指令RETI控制。25【例】设置IP寄存器的初始值,使得MCS-51系统的2个外中断请求为高优先级,其他中断请求为低优先级SETBPX0;PX0=1,外中断0为高优先级SETBPX1;PX1=1,外中断1为高优先级CLRPT0;PT0=0,定时中断0为低优先级CLRPT1;PT1=0,定时中断1为低优先级CLRPS;PS=0,串行中断为低优先级(方法1)用位操作指令(方法2)用字节操作指令MOVIP,#00000101B位地址BFHBEHBDHBCHBBHBAHB9HB8H位符号---PSPT1PX1PT0PX000000101IP6.2.1中断响应条件和时间中断响应条件①CPU开中断②中断源发出中断请求③中断源的中断允许位为1④无同级或更高级中断正在被服务6.28051单片机中断处理过程中断响应的过程◦①由硬件根据中断源的类型自动生成一条长调用指令LCALLaddr16。Addr16为程序存储器中相应的中断入口地址◦②CPU执行LCALLaddr16(1)将PC的内容压入堆栈,以保护断点(2)将中断入口地址装入PC,使程序转向响应中断请求的中断入口地址。27中断源入口地址外部中断00003H定时/计数器T0000BH外部中断10013H定时/计数器T1001BH串行中断0023H两个中断入口间隔只有8个字节,一般情况下难以安排下一个完整的中断服务程序,通常只是在中断入口地址处放置一条无条件转移指令,使程序执行转向在其他地址存放的中断服务程序。中断响应被封锁的三种情况◦①CPU正在处理同级的或更高优先级的中断。一个中断被响应时,要把中断优先级状态触发器设置为“1”(该触发器指出CPU处理的中断优先级别),从而封锁低级中断和同级中断请求。◦②查询到中断请求的机器周期不是当前正在执行指令的最后一个机器周期。只有当前指令执行完毕后,才能响应中断请求,以确保当前指令完整的执行。◦③正在执行的指令是RETI或是访问IE或IP的指令。MCS-51中断系统规定,在执行完上述指令后,需要再去执行完一条指令,才能响应新的中断请求。28中断响应时间中断响应至少需要3个完整的机器周期(3~8个)!S1保护断点,长调用至入口中断服务S2S3S4S5S6S1S2
本文标题:MCS-51单片机的中断系统
链接地址:https://www.777doc.com/doc-4646939 .html