华南理工大学广州学院机械实验中心工业自动化技术强化训练C51中断系统一、中断概述二、中断源和中断控制寄存器三、中断处理过程四、中断优先控制与中断嵌套五、C51中断实训C51定时/计数器一、定时/计数器概述二、定时/计数器的控制三、定时/计数器实训华南理工大学广州学院机械实验中心工业自动化技术强化训练⒈什么叫中断?CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序,叫做中断。⒉为什么要设置中断?(1)提高CPU工作效率(2)具有实时处理功能(3)具有故障处理功能(4)实现分时操作一、中断概述华南理工大学广州学院机械实验中心工业自动化技术强化训练3.中断响应过程流程图(1)在每条指令结束后,系统都自动检测中断请求信号,如果有中断请求,且CPU处于开中断状态下,则响应中断。(2)保护现场,在保护现场前,一般要关中断,以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。一、中断概述中断响应过程主程序断点继续主程序响应中断请求中断服务程序返回主程序华南理工大学广州学院机械实验中心工业自动化技术强化训练C51系列单片机的中断系统如图所示。二、中断系统结构和中断控制华南理工大学广州学院机械实验中心工业自动化技术强化训练1.中断源中断源是指能发出中断请求,引起中断的装置或事件。80C51单片机的中断源共有5个,其中2个外部中断源,2个定时器/计数器中断源,1个串行中断源:(1)INT0:外部中断0(2)INT1:外部中断1(3)T0:定时/计数器0溢出中断(4)T1:定时/计数器1溢出中断(5)串行中断:包括串行接收中断RI和串行发送中断TI。二、中断系统结构和中断控制各个中断源对应的I/O引脚是什么?华南理工大学广州学院机械实验中心工业自动化技术强化训练2.中断控制寄存器C51单片机中涉及中断控制的有3个方面4个特殊功能寄存器:①中断请求:定时和外中断控制寄存器TCON;串行控制寄存器SCON;②中断允许控制寄存器IE;③中断优先级控制寄存器IP。二、中断系统结构和中断控制华南理工大学广州学院机械实验中心工业自动化技术强化训练(1)中断允许控制寄存器IE80C51对中断源的开放或关闭由中断允许控制寄存器IE控制。中断允许寄存器IE各位的定义如图所示EA:中断总开关;ET0/ET1(ET2特殊的,可不理会):定时器的中断开关;EX0/EX1:外部中断开关;ES:串口中断开关;使用说明:80C51对中断实行两级控制,总控制位是EA,每一中断源还有各自的控制位。通过编程的方式来设置各自的值,值为1时有效。首先要EA=1,其次还要自身的控制位置“1”。华南理工大学广州学院机械实验中心工业自动化技术强化训练(2)中断优先级寄存器IP80C51中断优先控制首先根据中断优先级,此外还规定了同一中断优先级之间的中断优先权。中断优先级寄存器IP各位的定义如图所示。PS:串行口中断优先级控制位。PS=1,串行口为高优先级中断级;PS=0,串行口为低优先级。PT1/PT0:为T1/T0的中断优先级控制位。PX1/PX0:为外部中断1/外部中断0的中断优先级控制位。以上各位,数值为1的时,为高优先级;数值为0的时,为低优先级。并且各位的数值,都是在程序中编写定义的。复位后,各数值都被清零。华南理工大学广州学院机械实验中心工业自动化技术强化训练(3)中断请求信号寄存器TCONTCON寄存器是定时器1和0的控制寄存器,同时也用来锁存T0、T1的溢出中断请求标志和外部中断请求标志。寄存器TCON各位的定义如图所示。ITO-外部中断0触发方式控制位。IT0=0为电平触发方式,加到引脚𝑰𝑵𝑻𝟎上的外部中断请求输入信号为低电平有效。IT0=1为边沿触发方式,加到引脚𝑰𝑵𝑻𝟎上面的外部中断请求输入信号电平从高到低的负跳变有效。IT0可以由软件置1或清0。IT1-外部中断0触发方式控制位。IT0=0为电平触发方式IT0=1为边沿触发方式。其意义与IT0类似。华南理工大学广州学院机械实验中心工业自动化技术强化训练IE0-外部中断𝟎请求标志位。当IT0=0,为电平触发方式,CUP在每个机器周期采样𝑰𝑵𝑻𝟎引脚的输入,若𝑰𝑵𝑻𝟎引脚为低电平,则置IE0=1,请求中断,否则清零。采用电平触发方式时,外部中断源必须保持低电平有效,直到该中断被CPU响应。同时,在该中断服务子程序完成之前,外部中断源有效低电平必须被撤销,否则将产生另一次中断。当IT0=1,为边沿触发方式,CUP在每个机器周期采样𝑰𝑵𝑻𝟎引脚的输入。如果相继的两次采样,前一个周期采样到𝑰𝑵𝑻𝟎为高电平,后一个周期采样到𝑰𝑵𝑻𝟎为低电平时,则置IE0=1,表示外部中断0正向CPU请求中断。当CPU响应该中断,转向中断服务程序时,由硬件将IEO清零。IE1-外部中断1请求标志位。其意义与IE0类似。华南理工大学广州学院机械实验中心工业自动化技术强化训练TF0-定时器/计数器T0溢出中断请求标志位当启动T0计数后,定时器/计数器T0从初值开始加1或减1计数,当产生溢出时,由硬件置TF0=1,向CPU申请中断,CPU响应TF0中断时,由硬件清零,TF0也可以由软件清零。TF1-定时器/计数器T1的溢出中断请求标志位。功能与TF0类似。TR1、TR0-计数运行控制位。TR1(TR0)=1,启动定时器/计数器工作;TR1(TR0)=0,停止定时器/计数器工作。该位可由软件置1或清0.华南理工大学广州学院机械实验中心工业自动化技术强化训练(3)串口中断寄存器SCONSCON是串行口控制寄存器,其中的低两位用作串行口中断请求标志,寄存器SCON低两位定义如图所示。RI-串行口接收中断请求标志。在串行方式0中,每当接收到第8位数据时,由硬件置位RI;其他方式下,当接收到停止位的中间位置时候置位RI。应注意,当CPU执行串口中断服务程序时,RI不复位,必须由软件将RI清零。TI-串行口发送中断请求标志。在串口方式0中,每当发送完8位数据时,由硬件置位TI;其他方式中,在停止位开始的时候置位。TI必须由软件复位。注意:串行口的接收中断RI和发送中断TI是经逻辑“或”以后作为内部的一个中断源。华南理工大学广州学院机械实验中心工业自动化技术强化训练中断处理过程大致可分为四步:中断请求、中断响应、中断服务、中断返回1、中断请求中断源发出中断请求信号,相应的中断请求标志位(在中断允许控制寄存器IE中)置“1”。2、中断响应CPU查询(检测)到某中断标志为“1”,在满足中断响应条件下,响应中断。CPU响应中断后,进行下列操作:①保护断点地址;②撤除该中断源的中断请求标志;③关闭同级中断;④将相应中断的入口地址送入PC。三、中断处理过程5个中断源的入口地址:外部中断0(INT0):中断入口地址0003H定时/计数器0(T0):中断入口地址000BH外部中断1(INT1):中断入口地址0013H定时/计数器1(T1):中断入口地址001BH串行口中断(RI/TI):中断入口地址0023H华南理工大学广州学院机械实验中心工业自动化技术强化训练3、执行中断服务程序中断服务程序应包含以下几部分:(1)保护现场(2)执行中断服务程序主体,完成相应操作(3)恢复现场4、中断返回在中断服务程序最后,必须安排一条中断返回指令RETI,当CPU执行RETI指令后,自动完成下列操作:(1)恢复断点地址。(2)开放同级中断,以便允许同级中断源请求中断。三、中断处理过程华南理工大学广州学院机械实验中心工业自动化技术强化训练1、中断优先控制C51中断优先控制首先根据中断优先级,此外还规定了同一中断优先级之间的中断优先权。其从高到低的顺序为:INT0、T0、INT1、T1、串行口。中断优先级是可编程的,而中断优先权是固定的,不能设置,仅用于同级中断源同时请求中断时的优先次序。四、中断优先控制与中断嵌套中断源中断号自然优先级外部中断00最高最低定时器/计数器01外部中断12定时器/计数器13串行口4表:自然优先级华南理工大学广州学院机械实验中心工业自动化技术强化训练80C51中断优先控制,应该遵循以下的基本准则:1)低优先级中断可被高优先级中断请求中断,高优先级中断不能被低优先级中断所中断。2)同级的中断请求不能打断已经执行的同级中断。3)同一中断优先级中,若有多个中断源同时请求中断,CPU将先响应优先权高的中断,后响应优先权低的中断。当用户所设计的系统中存在多个中断应急处理要求时,则要设置中断的先后顺序。1.未设置先后顺序,却有多个中断:则程序会根据中断的自然优先级顺序执行处理;2.部分设置:程序会先执行优先级高的中断,再执行低级的(按自然优先级顺序);3.全部设置:程序会回归到没有设置的情况下执行中断,即按自然优先级顺序执行。华南理工大学广州学院机械实验中心工业自动化技术强化训练2、中断嵌套当CPU正在执行某个中断服务程序时,如果发生更高一级的中断源请求中断,CPU可以“中断”正在执行的低优先级中断,转而响应更高一级的中断,这就是中断嵌套。中断嵌套只能高优先级“中断”低优先级,低优先级不能“中断”高优先级,同一优先级也不能相互“中断”。四、中断优先控制与中断嵌套中断嵌套华南理工大学广州学院机械实验中心工业自动化技术强化训练1、外部中断电路设计五、C51中断实训外部中断0和外部中断1实训1:外部中断0控制LED的闪烁,在闪烁的期间其他按钮或操作均无效。说明:P3.2端口连接按键,实现外部中断0信号输入;P2端口连接LED灯。在中断处理程序中,将P2端口信号取反。作业:按键1控制8个LED实现流水灯,在流水灯期间期间,按下按键2,报警灯闪烁10次,暂停流水灯,报警灯响完后,继续流水灯。说明:P3.2端口连接按键1,实现外部中断0信号输入;P3.3端口连接按键2;P2端口连接LED灯,P1接报警灯。在外部中断0处理程序实现流水灯;外部中断1实现报警灯闪烁。设置中断优先级IP。华南理工大学广州学院机械实验中心工业自动化技术强化训练1、外部中断电路设计五、C51中断实训利用外部中断0实现LED灯闪烁华南理工大学广州学院机械实验中心工业自动化技术强化训练外部中断程序设计流程五、C51中断实训文件应用预设置主函数中初始化各端口设置中断各个参数(触发方式、打开中断等)等待中断(可以是原地等待,也可以是执行某程序)响应中断程序中断请求中断处理完毕华南理工大学广州学院机械实验中心工业自动化技术强化训练外部中断程序设计使用外部中断时主要有两种方法:中断处理方式标志位查询方式(1)设置外部中断触发方式(设置TCON)(2)允许外部中断中断(设置IE,或单独设置EA及EX0、IP)(3)启动外部中断(设置TCON或单独设置TR0)(4)中断服务函数(1)~(2)同中断方式的(1)~(2);(4)判断外部中断标志位IE0为0或1,以确定程序流程。使用中断处理方式时,中断服务函数的定义如下:voidEX_INT0()interrupt0{//中断函数代码}中断函数名中断号华南理工大学广州学院机械实验中心工业自动化技术强化训练一、定时/计数器概述C51片内有2个16位的定时/计数器(T0,T1),并能以其定时或计数的结果对系统进行控制T0(或T1)用作内部定时器时,输入的时钟脉冲是由晶体振荡器的输出经12分频后得到的,所以定时器可看做是对单片机机器周期的计数器。T0(或T1)用作外部计数器时,相应的外部计数信号输入端为P3.4(或P3.5)。定时器控制寄存器主要用于控制定时器的启动与停止,并保存T0、T1的溢出和中断标志定时器方式寄存器主要用于设定定时器的工作方式定时计数器结构和工作原理TH1、TL1是T1计数器,TH0、TL0是T0计数器。TH1和TL1(或TH0和TL0)构成16位计数器。定时寄存器华南理工大学广州学院机械实验中心工业自动化技术强化训练二、定时/计数器的控制GATE-门控位(可以不设置)GATE=0