单片机DAT2 中断知识_第1页
单片机DAT2 中断知识_第2页
单片机DAT2 中断知识_第3页
单片机DAT2 中断知识_第4页
单片机DAT2 中断知识_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练C51C51中断系统中断系统一一、中断、中断概述概述二、中断源和中断控制寄存器二、中断源和中断控制寄存器三、中断处理过程三、中断处理过程四、中断优先控制与中断嵌套四、中断优先控制与中断嵌套五、五、C51C51中断实中断实训训C51C51定时定时/ /计数器计数器一、定时一、定时/ /计数器计数器概述概述二、定时二、定时/ /计数器的计数器的控制控制三、定时三、定时/ /计数器实计数器实训训华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术

2、强化训练 什么叫中断什么叫中断? CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序, 叫做中断中断。 为什么要设置中断为什么要设置中断?(1)提高CPU工作效率(2)具有实时处理功能(3)具有故障处理功能(4)实现分时操作一、中断概述一、中断概述华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练3. 3. 中断中断响应过程流程图响应过程流程图(1)在每条指令结束后, 系统都自动自动检测中断请求信号检测中断请求信号, 如果有中断请求,且CPU处于开中断状态开中断状态下, 则响

3、应中断。 (2)保护保护现场现场, 在保护现场前, 一般要关中断, 以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。一、中断概述一、中断概述中断响应过程中断响应过程主程序断点继续主程序响应中断请求中断服务程序返回主程序华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练C51C51系列单片机的中断系统如图所示。系列单片机的中断系统如图所示。二、中断系统结构和二、中断系统结构和中断中断控制控制华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练1. 1. 中断

4、源中断源 中断源是指能发出中断请求,引起中断的装置或事件装置或事件。 80C51单片机的中断源共有5 5个,其中2 2个外部中断个外部中断源源,2 2个定时器个定时器/ /计数计数器中断源,器中断源,1 1个串行中断源个串行中断源:(1 1)INT0INT0: :外部中断外部中断0 0(2 2)INT1INT1: :外部中断外部中断1 1(3 3)T0T0: :定时定时/ /计数器计数器0 0溢出中断溢出中断(4 4)T1T1: :定时定时/ /计数器计数器1 1溢出中断溢出中断(5 5)串行)串行中断中断: :包括包括串行接收中断串行接收中断RIRI和和串行发送中断串行发送中断TITI。二、

5、中断系统结构和二、中断系统结构和中断中断控制控制各个中断源对应的各个中断源对应的I/OI/O引脚是什么?引脚是什么?华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练2. 2. 中断控制寄存器中断控制寄存器 C51 C51单片机单片机中涉及中断控制的有中涉及中断控制的有3 3个方面个方面4 4个特殊功能寄存器个特殊功能寄存器: 中断请求:定时和外中断控制寄存器中断请求:定时和外中断控制寄存器TCON;TCON; 串行串行控制寄存器控制寄存器SCON;SCON; 中断允许控制寄存器中断允许控制寄存器IE;IE; 中断优先级控制寄存器中断优

6、先级控制寄存器IPIP。 二、中断系统结构和二、中断系统结构和中断中断控制控制华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练(1 1)中断允许控制寄存器中断允许控制寄存器IEIE 80C5180C51对中断源的开放或关闭由中断允许控制寄存器对中断源的开放或关闭由中断允许控制寄存器IEIE控制。控制。中断允中断允许寄存器许寄存器IEIE各位的定义如图所各位的定义如图所示示u EA:中断总开关;u ET0/ET1(ET2特殊的,可不理会):定时器的中断开关;u EX0/EX1:外部中断开关;u ES:串口中断开关;使用说明使用说明: :

7、 80C5180C51对中断实行两级控制,总控制位是对中断实行两级控制,总控制位是EAEA,每一中断源还有各自,每一中断源还有各自的控制位的控制位。通过编程的方式来设置各自的通过编程的方式来设置各自的值,值为值,值为1 1时有效。首先时有效。首先要要EA=1EA=1,其次还要自身的控制位置,其次还要自身的控制位置“1”1”。华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练(2 2)中断优先级寄存器)中断优先级寄存器IPIP 80C51 80C51中断优先控制首先根据中断优先级,此外还规定了同一中断优先中断优先控制首先根据中断优先级,此

8、外还规定了同一中断优先级之间的中断优先权。级之间的中断优先权。中断优先级中断优先级寄存器寄存器IPIP各位的定义如图所示。各位的定义如图所示。u PSPS:串行口中断优先级控制位。:串行口中断优先级控制位。PS=1,串行口为高优先级中断级; PS=0,串行口为低优先级。u PT1/PT0PT1/PT0:为:为T1/T0T1/T0的中断优先级控制位。的中断优先级控制位。u PX1/PX0PX1/PX0:为外部中断:为外部中断1/1/外部中断外部中断0 0的中断优先级控制位的中断优先级控制位。 以上各位,数值为数值为 1 1的的时,时,为高优先级;数值为为高优先级;数值为0 0的的时,时,为低优先

9、级为低优先级。并且各位的数值,都是在程序中编写定义的。复位后,各数值都被清零。华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练(3 3)中断请求信号寄存器中断请求信号寄存器TCONTCON TCONTCON寄存器是定时器寄存器是定时器1 1和和0 0的控制寄存器,同时也用来锁存的控制寄存器,同时也用来锁存T0T0、T1T1的溢出中的溢出中断请求标志和外部中断请求标志断请求标志和外部中断请求标志。寄存器寄存器TCONTCON各位各位的定义如图所示。的定义如图所示。华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化

10、工业自动化技术强化训练技术强化训练华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练u TF0-TF0-定时器定时器/ /计数器计数器T0T0溢出中断请求标志位溢出中断请求标志位 当启动T0计数后,定时器/计数器T0从初值开始加1或减1计数,当产生溢出时,由当产生溢出时,由硬件置硬件置TF0=1TF0=1,向,向CPUCPU申请中断申请中断,CPU响应TF0中断时,由硬件清零,TF0也可以由软件清零。u TF1-TF1-定时器定时器/ /计数器计数器T1T1的溢出中断请求标志的溢出中断请求标志位位。功能与TF0类似。u TR1TR1、T

11、R0-TR0-计数计数运行控制位运行控制位。TR1(TR0)=1,启动定时器/计数器工作;TR1(TR0)=0,停止定时器/计数器工作。该位可由软件置1或清0.华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练(3 3)串口中断寄存器串口中断寄存器SCONSCON SCONSCON是串行口控制寄存器,其中的低两位用作串行口中断请求标志是串行口控制寄存器,其中的低两位用作串行口中断请求标志,寄存寄存器器SCONSCON低两位低两位定义定义如图所示。如图所示。u RI-RI-串行口接收中断请求标志串行口接收中断请求标志。 在串行方式0中,每

12、当接收到第8位数据时,由硬件置位由硬件置位RIRI;其他方式下,当接收到停止位的中间位置时候置位RI。应注意,当CPU执行串口中断服务程序时,RI不复位,必须必须由由软件软件将将RIRI清零清零。u TI-TI-串行口发送中断请求串行口发送中断请求标志。标志。 在串口方式0中,每当发送完8位数据时,由硬件置位TI;其他方式中,在停止位开始的时候置位。TITI必须由软件复位必须由软件复位。注意:串行口的接收中断注意:串行口的接收中断RIRI和发送中断和发送中断TITI是经逻辑是经逻辑“或或”以后作为内部的一个中断源。以后作为内部的一个中断源。华南理工大学广州学院机械实验中心华南理工大学广州学院机

13、械实验中心工业自动化工业自动化技术强化训练技术强化训练中断处理中断处理过程大致可分为四步过程大致可分为四步:中断请求中断请求、中断响应、中断服务、中断、中断响应、中断服务、中断返回返回1 1、中断请求、中断请求 中断源发出中断请求信号,相应的中断请求标志位(在中断允许控制寄存器IE中)置“1”。2 2、中断响应、中断响应 CPU查询(检测)到某中断标志为“1”,在满足中断响应条件下,响应中断。CPU响应中断后,进行下列操作: 保护断点地址; 撤除该中断源的中断请求标志; 关闭同级中断; 将相应中断的入口地址送入PC。三三、中断处理过程、中断处理过程5个中断源的入口个中断源的入口地址地址:外部中

14、断0(INT0) :中断入口地址0003H定时/计数器0(T0):中断入口地址000BH外部中断1(INT1) :中断入口地址0013H定时/计数器1(T1):中断入口地址001BH串行口中断(RI/TI):中断入口地址0023H华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练3 3、执行中断服务程序执行中断服务程序 中断服务程序应包含以下几部分: (1)保护现场 (2)执行中断服务程序主体,完成相应操作 (3)恢复现场4 4、中断返回中断返回 在中断服务程序最后,必须安排一条中断返回指令RETI,当CPU执行RETI指令后,自动完成

15、下列操作: (1)恢复断点地址。 (2)开放同级中断,以便允许同级中断源请求中断。三三、中断处理过程、中断处理过程华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练1 1、中断优先控制、中断优先控制 C51中断优先控制首先根据中断优先级,此外还规定了同一中断优先级之间的中断优先权。其 中断优先级中断优先级是可编程是可编程的,的,而而中断优先权是固定的中断优先权是固定的,不能设置,仅用于同级中,不能设置,仅用于同级中断源同时请求中断时的优先次序。断源同时请求中断时的优先次序。四四、中断优先控制与中断嵌套、中断优先控制与中断嵌套中断源中断号

16、自然优先级外部中断00最高 最低 定时器/计数器01外部中断12定时器/计数器13串行口4表:自然优先级华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练80C51中断优先控制,应该遵循以下的基本准则:基本准则:1 1) 低优先级中断低优先级中断可可被被高高优先级中断请求中断,高优先级中断不能被低优先级中断所中断。优先级中断请求中断,高优先级中断不能被低优先级中断所中断。2 2) 同级的中断请求不能打断已经执行的同级中断同级的中断请求不能打断已经执行的同级中断。3 3) 同同一中断优先级中,若有多个中断源同时请求中断,一中断优先级中,若

17、有多个中断源同时请求中断,CPUCPU将先响应优先权高的中断,后响将先响应优先权高的中断,后响应优先权低的中断应优先权低的中断。当用户所设计的系统中存在多个中断应急处理要求时,则要设置中断的先后当用户所设计的系统中存在多个中断应急处理要求时,则要设置中断的先后顺序。顺序。1.1.未设置先后顺序,却有多个中断:未设置先后顺序,却有多个中断:则程序会根据中断的自然优先级顺序执行处理;自然优先级顺序执行处理;2.2.部分设置:部分设置:程序会先执行优先级高的中断,再执行低级的(按自然优先级顺序);3.3.全部设置:全部设置:程序会回归到没有设置的情况下执行中断,即按自然优先级顺序执行。华南理工大学广

18、州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练2 2、中断嵌套、中断嵌套 当当CPU正在执行某个中断服务程序时,如果发生更高一级的中断源请求中断,正在执行某个中断服务程序时,如果发生更高一级的中断源请求中断,CPU可以可以“中断中断”正在执行的低优先级中断正在执行的低优先级中断,转而响应更高一级的中断,这就是中转而响应更高一级的中断,这就是中断嵌套。断嵌套。 中断嵌套只能高中断嵌套只能高优先级优先级“中断中断”低优先级,低优先级不能低优先级,低优先级不能“中断中断”高优先级高优先级,同一优先级也不能相互,同一优先级也不能相互“中断中断”。四四、中

19、断优先控制与中断嵌套、中断优先控制与中断嵌套中断嵌套华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练1 1、外部中断电路设计、外部中断电路设计五五、C51C51中断实训中断实训外部中断外部中断0和外部中断和外部中断1实训实训1:外部中断:外部中断0控制控制LED的闪烁,在闪烁的期间其他按钮或操作均无效。的闪烁,在闪烁的期间其他按钮或操作均无效。说明: P3.2端口连接按键,实现外部中断0信号输入;P2端口连接LED灯。 在中断处理程序中,将P2端口信号取反。作业作业:按键:按键1控制控制8个个LED实现流水灯,在流水灯期间期间,按下按

20、键实现流水灯,在流水灯期间期间,按下按键2,报,报警灯闪烁警灯闪烁10次,暂停流水灯,次,暂停流水灯,报警灯报警灯响完后,继续流水灯。响完后,继续流水灯。说明: P3.2端口连接按键1,实现外部中断0信号输入;P3.3端口连接按键2;P2端口连接LED灯,P1接报警灯。在外部中断0处理程序实现流水灯;外部中断1实现报警灯闪烁。设置中断优先级IP。华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练1 1、外部中断电路设计、外部中断电路设计五五、C51C51中断实训中断实训利用外部中断利用外部中断0实现实现LED灯闪烁灯闪烁华南理工大学广州

21、学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练外部中断程序设计流程外部中断程序设计流程五五、C51C51中断实训中断实训文件应用预设置主函数中初始化各端口设置中断各个参数(触发方式、打开中断等)等待中断(可以是原地等待,也可以是执行某程序)响应中断程序中断请求中断处理完毕华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练外部中断外部中断程序设计程序设计使用外部中断时主要有两种方法:使用外部中断时主要有两种方法:u 中断处理方式u 标志位查询方式(1)设置外部中断触发方式(设置TCON)(2)

22、允许外部中断中断(设置IE,或单独设置EA及EX0、IP)(3)启动外部中断(设置TCON或单独设置TR0)(4)中断服务函数(1)(2)同中断方式的(1)(2);(4)判断外部中断标志位IE0为0或1,以确定程序流程。使用中断处理方式时,中断服务函数的定义如下:使用中断处理方式时,中断服务函数的定义如下:void EX_INT0() interrupt 0 /中断函数代码中断函数代码中断函数名中断号华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练一、定时一、定时/ /计数器概述计数器概述 C51 C51片内有片内有2 2个个1616

23、位的定时位的定时/ /计数器计数器(T0(T0,T1)T1),并能以其定时或计数的结果,并能以其定时或计数的结果对系统进行对系统进行控制控制u T0T0(或(或T1T1)用作用作内部定时器内部定时器时,时,输入的时钟脉冲是由晶体振荡器输入的时钟脉冲是由晶体振荡器的输出经的输出经1212分频后得到的,所以分频后得到的,所以定时器可看做是对单片机机器周定时器可看做是对单片机机器周期的计数器期的计数器。u T0T0(或(或T1T1)用作)用作外部计数器外部计数器时,时,相应的外部计数信号相应的外部计数信号输入端为输入端为P3.4P3.4(或(或P3.5P3.5)。)。定时器控制寄存器主要用于控制定时

24、器的启动与停止,并保存T0、T1的溢出和中断标志定时器方式寄存器主要用于设定定时器的工作方式定时计数器结构和工作原理定时计数器结构和工作原理TH1TH1、TL1TL1是是T1T1计数器,计数器,TH0TH0、TL0TL0是是T0T0计数器。计数器。 TH1TH1和和TL1TL1( 或或TH0TH0和和TL0 TL0 )构成)构成1616位计数器位计数器。定时寄存器华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练二、定时二、定时/ /计数器的控制计数器的控制1 1、工作模式:、工作模式:定时器定时器有有4种工作模式,由种工作模式,由TM

25、OD寄存器寄存器设置设置并由并由TCON寄存器寄存器控制控制。工作方式寄存器TMOD:地址89H,不可以位寻址,编程时一次写入,TMOD寄存器各位定义如图所示。华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练M1M0模式说明可定时长度(12MHZ)00013位定时/计数器,(TH高8位与TL的低5位)213us819201116位定时/计数器,(8位TH与8位TL)216us655361028位自动重装入初值的8位定时/计数器(8位TL,溢出时TH的值自动载入TL)28us256113T0分成两个独立的8位计数器,T1没有模式3 28

26、us256二、定时二、定时/ /计数器的控制计数器的控制u M1M1、M0M0工作方式选择工作方式选择位位TMOD(89H)华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练二、定时二、定时/ /计数器的控制计数器的控制2 2、定时定时/ /计数器初值设置计数器初值设置 加法计数器的是加1计满溢出时才申请中断,所以在给计数器赋初值时不能直接输入所需的计数值,而应该输入计数器计数的最大值与这一计数值的差值输入计数器计数的最大值与这一计数值的差值。 对于模式0、1、3,如果希望定时器能按设定的某固定时间间隔不断出发,还需要在定时中断例程内再

27、次设置定时寄存器初值(TH0/TL0或TH1/TL1),对于模式2则不需要,因为该模式下定时寄存器低字节(TLO或TL1)独立完成计数工作,在定时中断发生时,定时寄存器高字节(TH0或TH1)的值会自动重新赋给低字节,高字节的值在整个过程中保持不变。 如果仅在主程序中设置了定时寄存器初值,中断例程中未重新给定时寄存器如果仅在主程序中设置了定时寄存器初值,中断例程中未重新给定时寄存器赋值,中断程序将以该模式下的最大定时值工作,例如,模式赋值,中断程序将以该模式下的最大定时值工作,例如,模式0 0位位1313位最大值为位最大值为81928192;模式;模式1 1为为1616位,最大值为位,最大值为

28、6553665536。华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练二、定时二、定时/ /计数器的控制计数器的控制设最大值为设最大值为M M,计数值为,计数值为N N,初值为,初值为X,X,则则X X的计算方法如下:的计算方法如下:u 计数方式方式时初值:X=M-Nu 定时工作方式时初值:X=M-定时时间/T ,其中,T=12/晶振振荡器频率。2 2、定时定时/ /计数器初值设置计数器初值设置本例设置TIMER0工作在模式0,主程序中用TMOD=0 x00完成该设置,实现5ms(5000s)的定时: 对于对于12MHz12MHz振荡

29、器,定时器初值应为振荡器,定时器初值应为8192-50008192-500012/12=8192-500012/12=8192-5000; 对于对于11.0592MHz11.0592MHz振荡器,初值应为振荡器,初值应为8192-50008192-500011.0592/1211.0592/128192-46078192-4607。在设置本例的定时初值8192-5000=3192,(3192=0 x0C78=110001111000)右移5位可得高8位(1100011),将0 x0C78和0 x1F进行与运算,可得低5位(11000),故有 TH0=(8192-5000)5; TL0=(819

30、2-5000)&0 x1F;TH0=(8192-5000)5; TL0=(8192-5000)&0 x1F; 等价于 TH0TH0=(8192-5000=(8192-5000)/32; )/32; TL0=(8192-5000TL0=(8192-5000) % 32;) % 32;华南理工大学广州学院机械实验中心华南理工大学广州学院机械实验中心工业自动化工业自动化技术强化训练技术强化训练二、定时二、定时/ /计数器的控制计数器的控制u TF0TF0、TF1TF1:是是T0T0、T1T1的溢出标志位,加的溢出标志位,加1 1计满溢出时置计满溢出时置1 1,并,并申请中断,在申请中断,在中断响应后自动中断响应后自动清清零零。u TRTR0 0、TR1TR1:是是T0T0、T1T1的运行控制位,通过软件置的运行控制位,通过软件置1 1后,定时器后,定时器/ /计数器才开计数器才开始工作始工作,在,在系统复位时系统复位时清清零零。3 3、TCON TCON 定时器定时器/ /计数器控制计数器控制寄存器寄存器华南理工

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论