1、5 5 中断系统中断系统数据的输入/输出传送方式查询传送方式:查询传送方式:传送前一方先查询另一方的状态,若已经准备好传送前一方先查询另一方的状态,若已经准备好就传送,否则就继续查询就传送,否则就继续查询/ /等待等待中断传送方式:中断传送方式:一方通过申请中断的方式与另一方进行数据传送一方通过申请中断的方式与另一方进行数据传送无条件传送方式:无条件传送方式:一方对另一方来说总是准备好的一方对另一方来说总是准备好的直接存储器存取方式:直接存储器存取方式:双方直接通过总线传送数据双方直接通过总线传送数据, , 不经不经CPUCPU中转中转中断系统中断系统 数据传送的双方平时各自做自己的工作,一旦
2、数据传送的双方平时各自做自己的工作,一旦甲方甲方要求与要求与乙方乙方进行数据传送,就主动进行数据传送,就主动发出信号发出信号提出申请,提出申请,乙方乙方接到申请后若接到申请后若同意同意传送,传送,安排好安排好当前的工作当前的工作,再,再响应响应与甲方发生数据传送。与甲方发生数据传送。完事完事后,回去继续后,回去继续做打断前的工作。做打断前的工作。中断功能强弱是计算机性能优劣的重要标志中断功能强弱是计算机性能优劣的重要标志提高提高CPUCPU效率效率 解决速度矛盾解决速度矛盾 实现并行工作实现并行工作 应付突发事件应付突发事件中断传送方式特点中断源中断源 中断申请中断申请中断响应中断响应保护现场
3、保护现场中断服务中断服务恢复现场恢复现场中断返回中断返回中断涉及的几个环节(前面提到的(前面提到的甲方甲方)(甲方(甲方发出信号发出信号提出申请)提出申请)(乙方乙方同意同意传送)传送)(乙方乙方安排好当前的工作安排好当前的工作)(处理甲方要求做的工作)(处理甲方要求做的工作)(完事后,回去完事后,回去)(继续继续做打断前的工作)做打断前的工作)中断请求与控制中断请求与控制单片机的中断源及TCON CPU CPU在每个机器周期的在每个机器周期的S5P2S5P2期间期间,会自动查询,会自动查询各个各个中断申请标志位中断申请标志位,若查到某标志位被置位,若查到某标志位被置位, ,将启动中断机制。将
4、启动中断机制。5151子系列允许子系列允许5 5个个(52(52子系列子系列6 6个个) )中断源:中断源: 2 2个外部中断请求:个外部中断请求:INT0INT0,INT1INT1 2 2个片内定时器个片内定时器/ /计数器计数器T0T0和和T1T1中断请求:中断请求: TF0TF0,TF1TF1,(TF2/EXF2TF2/EXF25252子系列有子系列有T2T2) 1 1个串行口中断请求:个串行口中断请求:TI/RITI/RICPUCPU识别中断申请的依据识别中断申请的依据:定时器控制寄存器TCON (88H)TF1TF1 TR1TR1 TF0TF0 TR0TR0 IE1IE1 IT1IT
5、1 IE0IE0 IT0IT0TCONTCONTF0/TF1TF0/TF1:定时器溢出中断申请标志位:定时器溢出中断申请标志位: =0=0:定时器未溢出;:定时器未溢出; =1=1:定时器溢出申请中断,进中断后由硬件自动定时器溢出申请中断,进中断后由硬件自动清零。清零。TR0/TR1TR0/TR1:定时器运行启停控制位:定时器运行启停控制位: =0=0:定时器停止运行;:定时器停止运行; =1=1:定时器启动运行。定时器启动运行。TCONTCON:TimerTimer控制寄存器控制寄存器,是管理定时,是管理定时/ /计数器工计数器工作的作的SFRSFR(其中低(其中低4 4位管外部中断)位管外
6、部中断)定时器控制寄存器TCON (88H)TF1TF1 TR1TR1 TF0TF0 TR0TR0 IE1IE1 IT1IT1 IE0IE0 IT0IT0TCONTCONIE0/IE1IE0/IE1:外部中断申请标志位:外部中断申请标志位: =0=0:没有外部中断申请;:没有外部中断申请; =1=1:有外部中断申请,由硬件自动复位。有外部中断申请,由硬件自动复位。IT0/IT1IT0/IT1:外部中断请求的触发方式选择位:外部中断请求的触发方式选择位: =0=0:在:在INT0/INT1INT0/INT1端申请中断的信号端申请中断的信号低电平低电平有效有效; ; =1 =1:在在INT0/IN
7、T1INT0/INT1端申请中断的信号端申请中断的信号负跳变负跳变有效有效. .TCONTCON:TimerTimer控制寄存器控制寄存器,低低4 4位管理外部中断位管理外部中断 EAEA ET2 ES ET1 EX1 ET0 EX0 ET2 ES ET1 EX1 ET0 EX0IEIE中断允许寄存器中断允许寄存器IE IE (0A8H)(0A8H) EX0/EX1/ET0/ET1/ES EX0/EX1/ET0/ET1/ES 位位: 分别是分别是INT0/1INT0/1,Timer0/1Timer0/1,串行口,串行口的中断允的中断允 许控制位许控制位: : =0 =0 时禁止中断;时禁止中断
8、; =1=1 时时允许允许中断。中断。ET2ET2:T2T2中断允许控制位(仅中断允许控制位(仅5252子系列子系列有)有) =0 =0 时禁止中断;时禁止中断; =1=1 时时允许允许中断。中断。EAEA:总的中断允许控制位(总开关):总的中断允许控制位(总开关): =0 =0 时禁止全部中断;时禁止全部中断;=1=1 时时允许允许中断。中断。 PT2 PS PT1PT2 PS PT1 PX1 PX1 PT0 PX0PT0 PX0IPIPPX0/PX1PX0/PX1:INTINT0/10/1优先级控制位:优先级控制位: =0=0 时属时属低低优先级;优先级; =1=1 时属时属高高优先级。优
9、先级。PT0/PT1/PT2PT0/PT1/PT2:T0/1/2T0/1/2中断优先级控制位:中断优先级控制位: =0=0 时属低优先级;时属低优先级; =1=1 时属时属高高优先级。优先级。PS1PS1:串行口中断优先级控制位:串行口中断优先级控制位: =0=0 时属时属低低优先级;优先级; =1=1 时属时属高高优先级。优先级。中断优先级控制寄存器中断优先级控制寄存器IP IP (0B8H)(0B8H)对对同时发生同时发生多个中断申请时:多个中断申请时:不同优先级的中断同时申请不同优先级的中断同时申请( (很难遇到很难遇到) ) 先高后低先高后低相同优先级的中断同时申请相同优先级的中断同时
10、申请( (很难遇到很难遇到) ) 按序执行按序执行正处理低优先级中断又接到高级别中断正处理低优先级中断又接到高级别中断 高打断低高打断低正处理高优先级中断又接到低级别中断正处理高优先级中断又接到低级别中断 高不理低高不理低中断优先级处理原则单片机的中断矢量与优先级中断矢量中断矢量: MCS-51MCS-51单片机的单片机的 5 5 个中断源分别对个中断源分别对应有各自的应有各自的中断服务程序入口地址中断服务程序入口地址中断矢量中断矢量000BH000BHTF0TF0定时定时/ /计数器计数器0(T0)0(T0)002BH002BHTF2/EXF2TF2/EXF2定时定时/ /计数器计数器2(T
11、2)2(T2)0023H0023HRI/TIRI/TI串行口接收串行口接收/ /发送发送001BH001BHTF1TF1定时定时/ /计数器计数器1(T1)1(T1)0013H0013HIE1IE1外部中断外部中断1( INT1)1( INT1)0003H0003HIE0IE0外部中断外部中断0( INT0)0( INT0)中断优先级中断优先级中断矢量中断矢量申请标志申请标志中中 断断 源源最高优先级最高优先级最低优先级最低优先级中断系统硬件结构注注: :各中断允许控制位各中断允许控制位=0,=0,开关断开开关断开; =1,=1,开关接通开关接通IE0IE0EX0EX0TF0TF0IE1IE1
12、TF1TF1TITIESESET1ET1EX1EX1ET0ET0外部中断外部中断 请求请求0 0外部中断外部中断 请求请求1 1内部内部 定时器定时器0 0内部内部 定时器定时器1 1内部内部 串行口串行口T TR RRIRIIEIE寄存器寄存器 EA EA位位IPIP寄存器寄存器各单路开关各单路开关 总开关总开关中断源标志中断源标志位查询机构位查询机构高中断级高中断级中断请求中断请求低中断级低中断级中断请求中断请求中断入口中断入口中断源中断源标志位标志位INT0INT0INT1INT1中断入口中断入口中断源中断源标志位标志位中断采样中断采样-中断查询中断查询-中断响应中断响应-中断返回中断返
13、回 l 中断采样中断采样:针对外部中断请求信号而言,在:针对外部中断请求信号而言,在 S5P2S5P2对相应引脚采样,判断其电平状态(高对相应引脚采样,判断其电平状态(高/ /低)。低)。l =IT0/1=0=IT0/1=0 则采样到引脚为低电平,表示有中断请求。引则采样到引脚为低电平,表示有中断请求。引脚的低电平状态应该保持两个机器周期脚的低电平状态应该保持两个机器周期 l =IT0/1=1=IT0/1=1 相邻机器周期采样的引脚的状态为先高后低,相邻机器周期采样的引脚的状态为先高后低,则表明中断请求,高低电平均应持续一个机器则表明中断请求,高低电平均应持续一个机器周期周期中断响应过程l中断
14、查询中断查询: 在每个机器周期的在每个机器周期的S5P2S5P2后,由硬件自动的去查询后,由硬件自动的去查询相应的中断标志位相应的中断标志位 ,若置位,则表明有中断请,若置位,则表明有中断请求,于是在下个机器周期的求,于是在下个机器周期的S1S1开始进行中断响应。开始进行中断响应。l中断响应中断响应: 执行中断处理程序的过程,由硬件自动插入一条执行中断处理程序的过程,由硬件自动插入一条LCALL LCALL 指令,每个中断对应的中断入口是固定的。指令,每个中断对应的中断入口是固定的。中断响应的条件,以下是中断响应被封锁的情中断响应的条件,以下是中断响应被封锁的情况况 :l有同级或高级中断正在响
15、应中有同级或高级中断正在响应中 l中断请求在一条指令的执行过程中(保证一条指中断请求在一条指令的执行过程中(保证一条指令的执行的完整性)令的执行的完整性) 中断响应时间中断响应时间: 从检测到中断请求标志有效到从检测到中断请求标志有效到转到中断处理程序的入口地址所需要的时间。转到中断处理程序的入口地址所需要的时间。 l马上被响应,检测周期加上马上被响应,检测周期加上LCALLLCALL 指令的执行时间,指令的执行时间,共共3 3个机器周期,是最短的时间。个机器周期,是最短的时间。 l在在RETRET等指令中被检测到,并接着执行乘除指令,等指令中被检测到,并接着执行乘除指令,那样需要那样需要 2
16、+4+2 2+4+2 共共8 8个机器周期。个机器周期。 l若有同级或高级中断在响应时,则时间要更长了。若有同级或高级中断在响应时,则时间要更长了。 l当前指令是当前指令是RETI/RETRETI/RET,或是访问,或是访问IEIE,IPIP的指令,都的指令,都要再执行一条指令后,才会被响应要再执行一条指令后,才会被响应l中断请求的撤除中断请求的撤除l低电平低电平/ /负脉冲负脉冲INT0/INT1INT0/INT1引脚引脚可触发中断可触发中断TF1 TR1 TF0 TR0 TF1 TR1 TF0 TR0 IE1 IE1 IT1 IT1 IE0 IE0 IT0 IT0TCON TCON (88
17、H)(88H)IT0/IT1IT0/IT1:INT0/1INT0/1的触发方式选择位:的触发方式选择位: IT0/IT1 IT0/IT1 =0=0 时,时,INT0/INT1INT0/INT1是是低电平低电平有效;有效; IT0/IT1 IT0/IT1 =1=1 时,时,INT0/INT1INT0/INT1是是负跳变负跳变有效。有效。l低电平触发低电平触发 引脚上的低电平须持续到中断发生。引脚上的低电平须持续到中断发生。若中断返回前仍未若中断返回前仍未及时撤除及时撤除低电平低电平, ,将再次中断。将再次中断。l负脉冲触发负脉冲触发 CPUCPU在前一机器周期采到在前一机器周期采到INT0/IN
18、T1INT0/INT1引脚为高引脚为高, ,后一机器周期采到为低才认为是一次中后一机器周期采到为低才认为是一次中断请求。断请求。CPU CPU 可可记忆申请记忆申请、可、可自动撤除中断申请自动撤除中断申请。中断应用前后要做的几项工作 中断前中断前 开中断允许:开中断允许:必须必须 选择优先级:根据需要选择,选择优先级:根据需要选择,可有可有/ /可无可无 设置控制位:设置控制位:INTxINTx触发方式触发方式(ITx(ITx) ) TxTxTCONTCON, ,TMODTMOD, ,TRxTRx, ,初值初值 RI/TIRI/TISCONSCON, ,RENREN, ,RB8RB8, ,TB
19、8TB8, ,中断后中断后进入中断服务进入中断服务后后:保护现场保护现场,关中断关中断,退出中断服务退出中断服务前前:恢复现场恢复现场, ,开中断开中断, ,设设TxTx的初的初 值值, ,清清TI/RITI/RI, ,中断服务程序的最后一条指令必是中断服务程序的最后一条指令必是 RETIRETI例:例:通过通过外部中断外部中断1 1, ,在中断服务中将在中断服务中将B B寄存器里的内容寄存器里的内容循循环环左移一位左移一位。 已知已知: (: (B B) )=01H=01H, ,要求采用要求采用边沿边沿触发触发, ,低优先级。低优先级。此例的此例的实际意义:实际意义:在在INT1INT1引脚
20、接一个引脚接一个按钮开关按钮开关到地,每到地,每按一下按钮就申请一次中断,中断服务则是:按一下按钮就申请一次中断,中断服务则是:依次点亮依次点亮八盏灯中的一盏八盏灯中的一盏。 P1.0P1.0P1.7P1.7INT1INT1300 ORG 0000HORG 0000H LJMP LJMP MAINMAIN ORG 0013H ORG 0013H ; ;中断矢量中断矢量 LJMP LJMP INTINTMAINMAIN:SETB EA ;SETB EA ;开总中断允许开总中断允许“开关开关” SETB EX1 ;SETB EX1 ;开分中断允许开分中断允许“开关开关” ” CLR PX1 ;0
21、CLR PX1 ;0 优先级(也可不要此句)优先级(也可不要此句) SETB IT1 ;SETB IT1 ;边沿触发边沿触发 MOV MOV B B,#01H ;,#01H ;给给 B B 寄存器赋初值寄存器赋初值HEREHERE:SJMP HERE ;SJMP HERE ;原地等待中断申请原地等待中断申请INTINT:PUSH APUSH A MOV A MOV A,B B ; ;自自B B寄存器中寄存器中取数取数 RL A RL A ; ;循环循环左移一次左移一次 MOV MOV B B,A ;A ;存回存回B B, ,备下次取用备下次取用 MOV P1MOV P1,A A ; ;输出到输出到P1P1口口 POP APOP A RETI ; RETI ;中断返回中断返回中断服中断服 务程序务程序
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。