单片机MCS-51的中断系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第四章MCS-51的中断系统4.1中断的概念4.2MCS-51中断系统的结构4.3中断请求源4.4中断控制4.5中断响应4.6外部中断的响应时间4.7外部中断的触发方式选择4.8中断请求的撤销4.9中断服务程序的设计4.10多外部中断源系统设计•教学目标1.介绍MCS-51中断系统及中断控制;2.介绍中断处理的过程;3.介绍中断应用程序的编程。•重点难点1.熟悉中断、中断源、中断服务程序、保护现场、恢复现场、中断优先级、中断处理等概念;2.掌握51中断入口地址和各中断控制寄存器含义及应用:包括TCON、SCON、IE和IP;3.掌握中断初始化和中断服务程序的编制。MCS-51有很强的I/O接口扩展能力,I/O外设扩展后,单片机要与各种形式的外设相连,这些外设的结构形式、信号种类与大小、工作速度的快慢相差很大,这就需要研究单片机与外设交换数据的方法。目前CPU与外设交换信息通常有以下几种形式:输入/输出的控制方式一、无条件传送方式CPU总是认为外设在任何时刻都处于“准备好”的状态。这种传送方式不需要交换状态信息,只需在程序中加入访问外设的指令,数据传送便可以实现。此种方法很少使用。二、查询方式传送也称程序控制法,先查询I/O设备当前状态,若准备就绪,则交换数据,否则循环查询状态。优点:通用性好,可以用于各类外设和CPU间的数据传送。缺点:CPU在完成一次数据传送后要等待很长时间才能进行下一次的传送。在等待过程中,CPU不能进行其他操作,所以效率比较低。三、中断方式传送大多数时间计算机与外设并行工作,计算机不必因等待而浪费资源。当外设准备就绪,向CPU发出中断请求信号。CPU暂停当前程序,执行I/O操作。当I/O操作结束,CPU仍继续被中断的工作。4.1中断的概念执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回中断系统:实现中断功能的部件。中断服务程序:中断之后所执行的处理程序,原来运行的程序称为主程序。断点:主程序被断开的位置(地址)。中断源:向CPU发出中断请求的来源。中断请求:中断源向CPU提出的处理请求,又称中断申请。中断的相关概念实现实时控制处理。提高处理故障的能力;解决CPU和外设之间的速度匹配问题,提高CPU的效率;实现人机对话。一般由键盘、按钮等发出中断请求,当CPU响应中断后,在中断服务程序中实现人机对话。中断方式的特点4.2MCS-51中断系统的结构5个中断源;2个中断优先级,可实现两级中断嵌套;中断使能可编程控制;中断优先级可编程控制;复位后,所有中断被禁止,且为低优先级。EX0EAPX001ET0PT001EX1PX101ET1PT101ESPS01≥1RITISCONTCONIE0TF0IE1TF110101IT0IT1INT0INT1T0T1RXTXIEIP111111110硬件查询自然优先级自然优先级中断入口中断入口高级低级中断源中断源MCS-51的中断系统结构框图4.3中断请求源1.外部中断类由外部原因引起的:/INT0——外部中断0请求信号。由P3.2引脚输入,中断请求标志为IE0。/INT1——外部中断1请求信号。由P3.3引脚输入,中断请求标志为IE1。MCS-51的中断源可分为三类:外部中断、定时/计数器溢出中断和串行口中断。2.定时/计数中断类定时/计数中断是为满足定时或计数溢出处理的需要而设置的。在定时方式下,脉冲信号在单片机芯片内部发生,无需在芯片上设置引入端;但在计数方式时,中断源由单片机芯片外部引入。定时器/计数器T0溢出中断请求:中断请求标志为TF0。定时器/计数器T1溢出中断请求:中断请求标志为TF1。3.串行口中断类串行口中断为串行通信的需要而设置的。RI或TI——串行口中断请求标志。各中断源对应的中断服务程序入口地址:中断源入口地址外部中断00003H定时器T0中断000BH外部中断10013H定时器T1中断001BH串行口中断0023H中断请求标志中断源申请中断时,要将相应的中断请求标志置位。CPU查询这些中断标志位状态,以决定是否响应中断。MCS-51中断标志位锁存在定时器控制寄存器TCON和串行口控制寄存器SCON中。1.定时器控制寄存器TCONTF1TR1TF0TR0IE1IT1IE0IT08FH8EH8DH8CH8BH8AH89H88HD7D6D5D4D3D2D1D0TCON位地址字节地址:88HIT0和IT1:外部中断请求信号触发方式控制位IT0(或IT1)=0:电平触发,INT0(或INT1)低电平有效;IT0(或IT1)=1:边沿触发,引脚INT0(或INT1)上的电平由高到低负跳变有效;IT0(或IT1)位可由用户软件置1或清0。各控制位的含义IE0和IE1:外部中断请求标志位若IT0=0(或IT1=0),每个机器周期的S5P2采样INT0(或INT1),若INT0=0则IE0(或IE1)由片内硬件自动置1;当IT0=1(或IT1=1)时,第一个机器周期采样到INT0(或INT1)为高电平,第二个机器周期为低电平,则IE0(或IE1)=1。IE0(或IE1)=1表示外部中断正在向CPU申请中断,当CPU响应中断,转向中断服务程序时,由硬件自动清“0”IE0(或IE1)。TF0和TF1:定时器/计数器溢出中断请求标志位T0(或T1)启动计数后,加1计数,当最高位发生计数溢出时,TF0(或TF1)由片内硬件自动置1,向CPU请求中断;当完成中断响应,并转向中断服务程序时,由片内硬件自动清0。该标志位也可用于查询方式(非中断方式),即用户程序查询该位状态,判断是否应转向对应的处理程序段。待转入处理程序后,必须由软件清0。注意:MCS-51复位后,TCON被清0。2.串行口控制寄存器SCONSCON的字节地址为98H,可以位寻址:位地址是9FH~98H。位序D7D6D5D4D3D2D1D0位地址9FH9EH9DH9CH9BH9AH99H98H位符号SM0SM1SM2RENTB8RB8TIRISCON为串行口控制寄存器,其低2位锁存串行口的接收中断和发送中断标志RI和TI。TI(SCON.1):串行口发送中断请求标志位。当CPU通过串行口每发送完一帧数据,TI由硬件自动置1。CPU响应中断时,不能自动清除TI,在转向中断服务程序后必须由软件清0。RI(SCON.0):串行口接收中断请求标志位。当允许串行口接收数据时,每接收完一帧数据,RI由硬件自动置1。同样,RI必须在中断服务程序中用软件清0。TI和RI为何必须软件清0?因为串行口无论是发送中断还是接收中断,中断向量地址是惟一的,即0023H。待转向中断服务程序后,必须用软件查询TI或RI的状态,方可判断是串行发送中断还是串行接收中断,从而转向不同的处理程序段。这就是TI和RI不能由片内硬件自动清0,而必须由软件清0的原因。4.4中断控制1.中断允许寄存器IECPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。IE的字节地址是A8H,可位寻址,位地址为AFH~A8H。位序D7D6D5D4D3D2D1D0位地址AFHAEHADHACHABHAAHA9HA8H位符号EA——ESET1EX1ET0EX0中断允许寄存器IE的格式EA(IE.7):中断允许总控制位。EA=1,CPU开放所有中断。对各中断源的中断请求是否允许,还要取决于各中断源的中断允许控制位的状态。这就是所谓的两级控制;EA=0,屏蔽所有的中断请求。ES(IE.4):串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。ET1(IE.3):定时器1中断允许位。ET1=1,允许定时器1中断;ET1=0,禁止定时器1中断。中断允许寄存器IE各位含义:EX1(IE.2):外部中断1中断允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。ET0(IE.1):定时器0中断允许位。ET0=1,允许定时器0中断;ET0=0,禁止定时器0中断。EX0(IE.0):外部中断0中断允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。单片机响应中断后不会自动关中断,因此在转到中断服务程序后,应用软件完成关闭或打开中断操作。8051单片机系统复位后,IE中各中断允许位均被清0,即禁止所有中断。IE寄存器的设置位操作指令:SETBBITCLRBIT字节操作指令:MOVIE,#DATAANLIE,#DATAORLIE,#DATAMOVIE,A例:假设允许片内定时器/计数器中断,禁止其他中断。试根据假设条件设置IE的相应值。解:(IE)=10001010B=8AH(a)用字节操作指令MOVIE,#8AH或MOVA8H,#8AH(b)用位操作指令SETBET0;定时器/计数器0允许中断SETBET1;定时器/计数器1允许中断SETBEA;CPU开中断2.中断优先级控制寄存器IPMCS-51单片机具有高、低两个中断优先级。各中断源优先级由IP寄存器有关位设置。每个中断请求源均可编程为高优先级中断或低优先级中断。IP寄存器的字节地址为B8H,可以位寻址,位地址为BFH~B8H。位序D7D6D5D4D3D2D1D0位地址BFHBEHBDHBCHBBHBAHB9HB8H位符号———PSPT1PX1PT0PX0中断优先级控制寄存器IP的格式中断优先级寄存器IP各控制位的含义①PS—串行口中断优先级控制位②PT1—定时器/计数器T1中断优先级控制位③PX1—外部中断1中断优先级控制位④PT0—定时器/计数器T0中断优先级控制位⑤PX0—外部中断0中断优先级控制位若某控制位为1,则相应的中断源规定为高级中断;反之为0,则相应的中断源规定为低级中断。当系统复位后,IP低5位全部清“0”,将所有中断源设置为低优先级中断。中断优先级控制中的特殊情况(1)自然优先级(2)中断嵌套不同级中断源同时申请中断时:先高后低同一级的中断源同时申请中断时:事先规定处理低级中断又收到高级中断申请时:停低转高处理高级中断又收到低级中断申请时:高不睬低MCS-51对中断的处理原则为了实现上述原则,中断系统内部设有两个用户不能寻址的优先级生效触发器:高优先级生效触发器和低优先级生效触发器。例:设置IP初值,使8031的2个外部中断源为高优先级,其它中断源为低优先级。解:(IP)=00000101B=05H(a)用字节操作指令MOVIP,#05H或MOV0B8H,#05H(b)用位操作指令SETBPX0SETBPX1CLRPSCLRPT0CLRPT14.5中断响应及处理过程中止现行程序,保护断点转入中断服务程序入口保护现场中断服务恢复现场中断返回(RETI)中断处理流程图中断响应中断返回中断处理中断请求CPU响应中断中断请求一个完整的中断处理的基本过程应该包括:中断请求、中断响应、中断处理以及中断返回。中断请求是中断源向CPU发出请求中断的信号。一般单片机提供有多条中断请求线,当中断源有服务要求时,可通过中断请求线,向CPU发出信号,请求CPU中断。一、中断请求1.CPU的中断响应条件①有中断源发出中断申请;②CPU开中断,即中断总允许位EA=1;③申请中断的中断源的中断允许位为1,即此中断源可以向CPU申请中断;④无同级或更高级中断正在被服务。二、中断响应中断响应是在满足CPU的中断响应条件之后,CPU对中断源中断请求的回答。2.中断标志位的查询①单片机在每个机器周期的S5P2状态根据中断请求信号的状态置位各自的中断请求标志。②在下一个机器周期的S6状态下,按中断优先级顺序对中断请求标志位进行查询。③如果查询到有的标志位为1,则表明有中断请求发生,因此紧接着的下一个机器周期的S1状态开始进入中断响应周期。中断查询在每个机器周期都要重复执行,但如果遇到下列条件之一,虽然中断标志位为1,也不能立即产生中断:①CPU正在处理同级或高一级的中断;②查询周期不处于执行当前指令的最后一个机器周期。这样是为了使当前指令执行完毕后才响应中断,以确保

1 / 63
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功