《第5章中断技术ppt课件.ppt》由会员分享,可在线阅读,更多相关《第5章中断技术ppt课件.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、在此输入您的封面副标题第5章中断技术26.1 中断概述 6.1.1 中断的概念 中断的概念中断的概念计算机理论中中断技术的含义:资源共享技术资源共享技术中断的功能中断的功能:实现CPU与外部设备的速度配合;实现实时控制;实现故障及时发现;中断演示3中断处理:中断处理:现场保护,恢复现场;开中断,关中断;执行中断服务程序;中断返回。46.1.3 计算机的中断源外部中断0;中断请求信号来自引脚 (P3.2)外部中断1;中断请求信号来自引脚 (P3.3)定时中断0;定时中断1;串行口中断。向CPU发出中断请求的地方,称之为中断源中断源。MCS-51单片机中断源:3类共5个。56.2 MCS-51中断
2、系统 6.2.1 MCS-51中断系统的结构 66.2 MCS-51中断系统 外部中断0;中断请求信号来自引脚 (P3.2)外部中断1;中断请求信号来自引脚 (P3.3)定时中断0;定时中断1;串行口中断。6.2.2 中断源和中断控制中断源和中断控制1、MCS-51中断源的功能中断源的功能7外部中断请求信号外部中断请求信号来自引脚 (P3.2)和 ( P3.3)0INT1INT请求方式请求方式有两种:电平方式;脉冲方式。通过TCON的IT0、IT1选择,电平方式(IT0(IT1)=0):低电平有效脉冲方式(IT0(IT1)=1):脉冲负跳变有效定时中断定时中断(内部中断)(内部中断):满足定时
3、、计数的需要。定时状态,计数状态定时状态,计数状态两个两个16位寄存器。对应位寄存器。对应T0、T1(专用寄存器(专用寄存器8AH、8BH,8CH、8DH)寄存器溢出作为有效寄存器溢出作为有效中断请求信号中断请求信号8串行中断串行中断(内部中断):用于串行数据传送(内部中断):用于串行数据传送串行口缓冲器串行口缓冲器SBUF(8位专用寄存器位专用寄存器99H),),不能进行位寻址不能进行位寻址MOV A, SBUF;接收MOV SBUF,A;发送92、中断控制的相关寄存器定时器控制寄存器(定时器控制寄存器(TCON)字节地址字节地址88H位地址位地址位符号位符号F8E8D8C8B8A88988
4、1TF1TR0TF0TR1IE1IT0IE0IT功能:定时器/计数器控制功能;中断控制功能。10IE0(IE1)外中断请求标志位硬件置位硬件置位当CPU采样到 出现有效中断请求时。中断响应完成,转向中断服务程序时,硬件自动清零自动清零。)INT(INT10IT0(IT1)外中断请求信号方式控制位IT0(IT1)=1 脉冲方式脉冲方式(负跳变有效);IT0(IT1)=0 电平方式电平方式(低电平有效)。TF0(IF1)计数溢出标志硬件置位硬件置位当计数器产生计数溢出时。转向中断服务程序时,硬件清零硬件清零。11位地址位地址位符号位符号F9E9D9C9B9A999981SM0SM2SMREN8TB
5、8RBTIRI串行口控制寄存器(串行口控制寄存器(SCON)字节地址98HTI串行口发送中断请求标志位串行口发送中断请求标志位当发送完一帧串行数据后,硬件置位硬件置位;在转向中断服务程序后,用软件清零软件清零。RI串行口接收中断请求标志位串行口接收中断请求标志位当接收完一帧串行数据后,硬件置位硬件置位;在转向中断服务程序后,用软件清零软件清零。12位地址位地址位符号位符号AFAEADACABAA9A8A/EA/ES1ET1EX0ET0EX中断允许控制寄存器(中断允许控制寄存器(IE)字节地址字节地址A8HEA中断允许总控制位中断允许总控制位EA=0 中断总禁止;EA=1 中断总允许EX0(EX
6、1)外部中断允许控制位外部中断允许控制位EX0(EX1)=0 禁止外中断;EX0(EX1)=1 允许外中断13ET0(ET1)定时定时/计数中断允许控制位计数中断允许控制位ET0(ET1)=0 禁止定时(计数)中断;ET0(ET1)=1 允许定时(计数)中断ES串行中断允许控制位串行中断允许控制位ES=0 禁止串行中断;ES=1 允许串行中断14位地址位地址位符号位符号BFBEBDBCBBBA9B8B/PS1PT1PX0PT0PX中断优先级控制寄存器(中断优先级控制寄存器(IE)字节地址字节地址B8HPS串行中断优先级设定位;PT1定时中断1优先级设定位PT0定时中断0优先级设定位PX1外部中
7、断1优先级设定位PX0外部中断0优先级设定位0:优先级低1:优先级高15中断优先级控制原则:中断优先级控制原则:1)低优先级中断请求不能打断高优先级中断请求;高优先级中断请求可以打断低优先级中断请求。2)如果一个中断请求已被响应,则同级的其他中断响应将被禁止。3)如果同级的多个中断请求同时出现,则按CPU查询次序确定哪个中断请求被响应。查询次序: 外部中断0定时中断0外部中断1定时中断1串行中断。166.2.3 中断处理过程)INT(INT10)IE(IE10外部中断请求采样外部中断请求采样:(S5P2对中断请求引脚采样)采样 引脚电平方式电平方式:采样到低电平,中断请求有效,IE0(IE1)
8、置1脉冲方式脉冲方式:在两个相邻机器周期采样到先高电平后低电平,则中断请求有效,IE0(IE1)置1。)3 . 3P(INT),2 . 3P(INT1017内部中断请求内部中断请求:(定时/计数器中断,串行中断)中断请求发生在单片机芯片内部,不存在中断请求采样问题直接置位相应的中断请求标志位。定时/计数器0定时/计数器1)TF(TF10串行发送串行接收TIRI 18中断查询中断查询当中断源有了有效的中断请求信号,并将其锁定在相应的中断请求标志位中,CPU通过对这些标志位的查询查询,感知中断请求。MCS-51单片机在每个机器周期的S6状态状态按中断优先级次序对中断请求标志位进行查询。查询有标志位
9、为1,在紧接的下一个机器周期开始中断响应。中断查询与响应中断查询与响应19由硬件自动生成一条LCALL长调用指令。LCALL addr16(指向相应中断入口地址)对于外部中断对于外部中断0响应响应LCALL 0003H存在下列情况之一,中断响应无法进行存在下列情况之一,中断响应无法进行1)CPU正在处于一个同级或高级的中断服务中;2)查询中断请求的机器周期不是当前执行指令的最后一个机器周期;3)当前指令是返回指令(RET,RET1)或访问IE,IP指令。中断响应时间中断响应时间:38个机器周期中断响应中断响应20中断请求的撤消1)定时器/计数器中断硬件撤除;中断响应后自动清TF0(TF1)标志
10、位。2)外部中断自动与强制撤除;中断响应后硬件自动清IE0(IE1)标志位脉冲请求方式,自动撤除;电平请求方式强制撤除。21QSDDCP0 . 1P0INT请求信号请求信号外部中断外部中断电平方式外部中断请求撤除电路电平方式外部中断请求信号的真正撤除,是通过软件实现的电平方式外部中断请求信号的真正撤除,是通过软件实现的3)串行中断软件撤除标志位TI,RI不能通过硬件清零。只能在中断响应后用软件清除。226.2.4 外部中断源的扩展236.3 中断应用举例6.3.1 【实训十三】多信号彩灯的中断实现【实训十三】多信号彩灯的中断实现一、实训目的1.学习单片机中断系统的基本原理及应用。2.学会利用汇
11、编语言实现中断的初始化及中断处理的编程方法。246.3 中断应用举例6.3.2 【实训十四】方波信号发生器的中断实现【实训十四】方波信号发生器的中断实现实训目的实训目的1学习单片机中断系统的基本原理及应用。学习单片机中断系统的基本原理及应用。2学会利用学会利用C语言实现中断的初始化及中断处理的编语言实现中断的初始化及中断处理的编程方法。程方法。 256.3 中断应用举例6.3.1 【实训十三】多信号彩灯的中断实现【实训十三】多信号彩灯的中断实现一、实训目的1.学习单片机中断系统的基本原理及应用。2.学会利用汇编语言实现中断的初始化及中断处理的编程方法。264-2 MCS-51单片机的定时器/计
12、数器4-2-1 定时方法概述软件定时软件定时:执行一个循环程序进行时间延迟。定时准确,不需要外加硬件电路,但增加CPU开销。硬件定时硬件定时:通过硬件电路实现定时,不占用CPU时间,但使用不够方便。可编程定时器定时可编程定时器定时:通过对系统时钟脉冲时钟脉冲的计数实现定时。计数值通过程序设定,定时准确,使用方便灵活。274-2-2 定时器/计数器的定时和计数功能MCS-51系列单片机有两个可编程定时器/计数器:T0、T1,16位寄存器,加法计数结构,地址为:T0(TH0,TL0):8CH,8AHT1(TH1,TL0):8DH,8BH特殊功能寄存器特殊功能寄存器每个寄存器(T0,T1)都具有定时
13、和计数功能定时器原理演示定时器原理演示28MCS-51定时/计数器核心是一个16位计数器(寄存器)。加加1 1信号来源信号来源:外部计数脉冲外部计数脉冲、内部时钟脉冲内部时钟脉冲。信号来源方式:由特殊功能寄存器TMOD设置位C/T确定。 ,计数方式(外部); ,定时方式(内部)。0T/C 1T/C 4-2-2 定时器定时器/计数器的定时和计数功能计数器的定时和计数功能29定时方式:定时方式:MCS-51典型的指令周期(执行一条指令的时间)为一个机器周期。一个机器周期是时钟振荡的12分频,定时计数的速率(机器周期)是振荡频率的1/12。主频为12MHz,机器周期为1s,也就是说12M晶振时,每1
14、s定时寄存器完成加1操作。一旦振荡周期确定,机器周期亦确定一旦振荡周期确定,机器周期亦确定。30计数方式计数方式计数脉冲来源于T0(P3.4)、T1(P3.5)口。当检测到输入引脚的电平由高跳变到低时,计数器加1。采样(S5P2)、加1(S3P1)操作。发生在两个机器周期,因此需要2个机器周期才能识别一个从“1”到“0”的跳变。最高计数频率为振荡频率1/24,计数频率周期必须大于2s才能满足作为计数脉冲。314-2-3 MCS-514-2-3 MCS-51定时/ /计数器控制与状态寄存器工作方式控制寄存器工作方式控制寄存器TMOD(状态寄存器)(状态寄存器)GATETC/1M0M0M1MTC/
15、GATE0计数器计数器定时定时 /1计计数数器器定定时时 /76543210字节地址字节地址89H(不可以位寻址)(不可以位寻址)32M1M0为操作方式选择位为操作方式选择位111001003210方方式式方方式式方方式式方方式式无效无效位计数器,位计数器,分成两个分成两个位计数器位计数器自动再装入自动再装入位计数器位计数器位计数器位计数器1T80T816130M1M操作方式操作方式功能说明功能说明 :选择定时:选择定时/计数器模式计数器模式 ,计数模式; ,定时模式GATE:选通控制:选通控制GATE=0,选通, 通过TRX启动定时器。GATE=1, 端口高电平,通过TRX启动定时器。XIN
16、T0T/C 1T/C T/C33启停与中断控制寄存器启停与中断控制寄存器TCON(控制寄存器)(控制寄存器) 字节地址88H1TF1TR0TF0TR0IT0IE1IT1IE76543210TCON由定时/计数器和中断系统合用。TR0:定时:定时/计数器计数器0启停控制位启停控制位由软件控制定时/计数器0的启动/停止。TR1:定时:定时/计数器计数器1启停控制位启停控制位由软件控制定时/计数器1的启动/停止。34TF0:定时:定时/计数器计数器0中断请求标志位中断请求标志位当定时/计数器0计数回0时,由内部硬件置位TF0(TF0=1),请求中断。中断服务程序一旦执行,硬件自动清0(TF0=0)。
17、TF1:定时:定时/计数器计数器1中断请求标志位中断请求标志位当定时/计数器1计数回0时,由内部硬件置位TF1(TF1=1),请求中断。中断服务程序一旦执行,硬件自动清0(TF1=0)。35IE0:外部中断:外部中断0中断请求标志中断请求标志IT0=1, 负跳变触发中断,硬件置IE0=1,当转向中断服务程序后,硬件自动清IE0=0。IT0=0, 低电平触发中断。硬件置IE0=1,当转向中断服务程序后,硬件自动清IE0=0。IE1:外部中断:外部中断1中断请求标志中断请求标志IT1=1, 负跳变触发中断,硬件置IE1=1,当转向中断服务程序后,硬件自动清IE1=0。IT1=0, 低电平触发中断。
18、硬件置IE1=1,当转向中断服务程序后,硬件自动清IE1=0。0INT0INT1INT1INT36IT0:外部中断:外部中断0触发方式控制位触发方式控制位软件设置。IT0=1,外部中断 ,发生10跳变,产生中断请求,向主机申请中断。IT0=0,则 端口低电平触发中断。IT1:外部中断:外部中断1触发方式控制位触发方式控制位软件设置。IT1=1,外部中断 ,发生10跳变,产生中断请求,向主机申请中断。IT1=0,则 端口低电平触发中断。以上后四项用于中断系统。TCON可位寻址,其位地址为可位寻址,其位地址为88H8FH。1INT0INT0INT1INT37位地址位地址位符号位符号AFAEADAC
19、ABAA9A8A/EA/ES1ET1EX0ET0EX中断允许控制寄存器(中断允许控制寄存器(IE)字节地址字节地址A8HEA中断允许总控制位中断允许总控制位EA=0 中断总禁止; EA=1 中断总允许ET0(ET1)定时定时/计数中断允许控制位计数中断允许控制位ET0(ET1)=0 禁止定时(计数)中断;ET0(ET1)=1 允许定时(计数)中断384-3 定时定时/计数器的工作方式计数器的工作方式设置 (TMOD寄存器)选择定时模式还是计数模式;对M1M0的设置,用于选择T0、T1的四种操作(工作)方式。TL0、TL1,TH0、TH1两对定时/计数器T/C39(1)定时)定时/计数方式计数方
20、式0 (13位计数器)以定时/计数器0(T0)为例TH0全部8位,TL0低5位构成13位定时/计数器。当 时(定时方式),开关接至振荡12分频输出;当 时(计数方式),开关接通T0(P3.4)当计数脉冲发生负跳变计数器加1。0T/C 1T/C 40)( bit80TH)( bit50TL0TF&1 1分分频频120=TC/1=TC/).(43P0T0TRGATE0INT).(23POSC控制控制中中断断请请求求计数示意图方式计数示意图方式位定时位定时/13041定时定时/计数方式计数方式1 (16位计数器)逻辑结构和方式0完全一样,只是TL是8位计数器。计数范围165536如晶振6MHz,最小
21、定时时间为:2s(机器周期)最大定时时间为:131ms。42定时定时/计数方式计数方式2 (自动再装入8位计数器)THx,TLx相互独立(x=0,1)。TLx作为8位计数器,THx是初值寄存器。TLx溢出后,置TFx申请中断。THx初值重新装入TLx。只需通过软件设置一次,启动后无限次定时/计数运行。(自动进行下一次)43定时定时/计数方式计数方式3 (T0分成两个8位计数器,T1无效)将T0分成两个独立的8位计数器。TL0组成完整的8位定时/计数器;既能定时,又能计数。TH0只能组成8位定时器(内部脉冲)。只能定时。TL0占用T0全部控制信号及中断请求标志位(TR0、TF0等)TH0只能借用
22、TR1和TF1。P3.5口(T1外部计数脉冲输入口)不能占用。444-4 4-4 定时定时/ /计数器应用计数器应用基本步骤:基本步骤:工作方式控制字(TMOD)的设置;计数初值的计算并装入THx、TLx;中断允许位Etx、EA的设置,使主机开放中断;启/停位TRx的设置。45定时应用有定时应用有查询查询、中断中断两种方式。两种方式。计数初值的确定计数初值的确定在方式0下,当为计数方式时,计数值范围18192(213 )在方式1下,当为计数方式时,计数值范围165536(216 )在方式2下,当为计数方式时,计数值范围1256(28 )定时计数器初值的计算46当为定时方式时,定时时间:(2n
23、计数初值)*机器周期晶晶振振周周期期机机器器周周期期12=机机器器周周期期定定时时时时间间计计数数初初值值-n2=47在方式0下最小定时时间为:2s最大定时时间为:16384s(8192*2)在方式1下最小定时时间为:2s最大定时时间为:131ms(65536*2)如晶振周期6MHz,机器周期为2s。48例题例题:生成周期为500 s的等宽正方波。机器晶振6MHz。使用T1以方式0工作,由P1.0输出500 s机器周期:2 s。定时时间250 s。以250 s为周期在P1.0端交替输出高低电平。49机机器器周周期期定定时时时时间间计计数数初初值值-n2=8067125819222502X13
24、8067-4096=3971 13971-2048=1923 11923-1024=899 1899-512=387 1387-256=131 1131-128=3 164 032 016 08 04 0二进制表示:二进制表示:H035FCH8位位低低位位高高H031TL,H035FCH1TH,FCH8 位位低低位位高高50程序设计程序设计(查询方式)(查询方式): MOV TMOD,#00H;设置T1 MOV TH1,#0FCH;计数初值 MOV TL1,#03H; MOV IE,#00H;禁止中断 SETB TR1;启动定时LOOP: JBC TF1,LOOP1;查询计数溢出 AJMP L
25、OOPLOOP1: MOV TH1,#FCH;重新设置计数初值 MOV TL1,#03H; CLR TF1;清溢出标志 CPL P1.0;输出 AJMP LOOP;重复循环51定时工作方式1(16位计数器)T1,通过中断方式完成654111256553622502X16 H1A1TL,H1A8FFH1TH,FFH8 位位低低位位高高0001,1010,1111,111152 MOV TMOD,#10H;设置T1 MOV TH1,#0FFH;计数初值 MOV TL1,#0A1H; SETB EA;开中断 SETB ET1;T1允许中断LOOP: SETB TR1;定时开始HERE: SJMP HEREINIT: MOV TH1,#0FFH;重新设置计数初值 MOV TL1,#0A1H; CPL P1.0;输出 RET1;中断返回程序设计(中断方式):53使用T1,以工作方式1,定时5秒定时500ms,循环5次,进入中断服务程序。计数器应用演示定时器应用演示54具体实例:具体实例:定时器实例(跑马灯)定时器实例(电子钟)波形发生器(带示波器),修改波宽
限制150内