【教学课件】第6章中断系统.ppt
《【教学课件】第6章中断系统.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第6章中断系统.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第6 6 6 6章章章章 中断系统中断系统中断系统中断系统6.1 6.1 中断的一般概念中断的一般概念CPUCPU对突发事件响应方式对突发事件响应方式中断源及中断申请中断源及中断申请开中断与关中断开中断与关中断中断优先级及中断嵌套中断优先级及中断嵌套中断向量与中断处理中断向量与中断处理一个应用系统,面对处理一个应用系统,面对处理器众多的中,是根据应用来选器众多的中,是根据应用来选取允许中断的事件与不允许中取允许中断的事件与不允许中断的事件。断的事件。中断向量,是中断源提供的处理程序中断向量,是中断源提供的处理程序的入口,其入口处,是由系统统一划拨存的入口,其入口处,是由系统统一划拨存储空
2、间,给各中断源存放中断处理程序的储空间,给各中断源存放中断处理程序的入口,即中断向量表。入口,即中断向量表。中断响应过程:申请中断响应过程:申请-响应(响应(终止当前程终止当前程序序-保护断点保护断点-转到处理程序。转到处理程序。)-中断处中断处理(理(保护现场保护现场-处理处理-清该标志、恢复现场清该标志、恢复现场-返回。软件返回。软件)。)。硬件实现硬件实现软件完成软件完成6.2 6.2 6.2 6.2 SPCE061ASPCE061A中断系统中断系统中断系统中断系统中断类型与中断源中断类型与中断源异常中断异常中断-RESET,向量地址为向量地址为FFF7H。优先级最高。优先级最高。软中断
3、软中断-执行指令执行指令BREAK,向量地址为向量地址为FFF5H。优先级最低。优先级最低。事件中断事件中断-外部与片内外部与片内I/O事件。快速中事件。快速中断断FIQ与中断与中断IRQ。FIQ优先级高于优先级高于IRQ。中断源中断源中断源中断源(事件)(事件)(事件)(事件)优先级优先级优先级优先级向量向量向量向量(通道)(通道)(通道)(通道)保留字保留字保留字保留字PWMPWM音频中断音频中断音频中断音频中断FIQFIQ/IRQ0IRQ0FFF6HFFF6H/FFF8HFFF8H_FIQ_FIQ/_IRQ0_IRQ0TimerATimerA溢出信号溢出信号溢出信号溢出信号FIQFIQ/
4、IRQ1IRQ1FFF6HFFF6H/FFF9HFFF9H_FIQ_FIQ/_IRQ1_IRQ1TimerBTimerB溢出信号溢出信号溢出信号溢出信号FIQFIQ/IRQ2IRQ2FFF6HFFF6H/FFFAHFFFAH_FIQ_FIQ/_IRQ2_IRQ2EXT2EXT2IRQ3IRQ3FFFBHFFFBH_IRQ3_IRQ3EXT1EXT1键唤醒键唤醒键唤醒键唤醒4096Hz4096Hz时基信号时基信号时基信号时基信号IRQ4IRQ4FFFCHFFFCH_IRQ4_IRQ42048Hz2048Hz时基信号时基信号时基信号时基信号1024Hz1024Hz时基信号时基信号时基信号时基信号4
5、Hz4Hz时基信号时基信号时基信号时基信号IRQ5IRQ5FFFDHFFFDH_IRQ5_IRQ52Hz2Hz时基信号时基信号时基信号时基信号TMB1TMB1选频信号选频信号选频信号选频信号IRQ6IRQ6FFFEHFFFEH_IRQ6_IRQ6TMB2TMB2选频信号选频信号选频信号选频信号UARTUARTIRQ7IRQ7FFFFHFFFFH_IRQ7_IRQ7如果同时有两个以上的如果同时有两个以上的IRQ中断时,按此优先级中断时,按此优先级响应响应。但较。但较“高级别高级别”IRQ中断不能中断中断不能中断“较较低级别低级别”IRQ中断。即在中断。即在IRQ中中断中不允许中断嵌套。断中不允许
6、中断嵌套。事事件件中中断断 中断服务中断服务程序以此取名。程序以此取名。中断控制寄存器中断控制寄存器P_INT_Ctrl(7010H)读读/写写 读,中断标志字,用于判别产生中断的读,中断标志字,用于判别产生中断的源。写,选择允许中断的源。源。写,选择允许中断的源。P_INT_Clear(7011H)写写 清中断标志。选择的源与中断标志字对清中断标志。选择的源与中断标志字对应。写应。写“1”清该中断标志。清该中断标志。P_INT_Ctrl_New(702DH)读读/写写 激活与屏蔽中断。读,了解哪些中断源被激活与屏蔽中断。读,了解哪些中断源被屏蔽。写,对应屏蔽。写,对应0的中断源被屏蔽。对应的
7、中断源被屏蔽。对应1的中的中断源被激活。断源被激活。中断控中断控中断控中断控制制制制 字字字字事事事事 件件件件说说说说 明明明明b15b15FIQ FIQ PWMPWM音频中断音频中断音频中断音频中断 b14b14IRQ0 IRQ0 PWMPWM音频中断音频中断音频中断音频中断b12b12FIQ_TMAFIQ_TMAb13b13IRQ1_TMAIRQ1_TMAb11b11FIQ_TMBFIQ_TMBb10b10IRQ2_TMBIRQ2_TMBb9b9IRQ3_ EXT2IRQ3_ EXT2b8b8IRQ3_ EXT1IRQ3_ EXT1b7b7IRQ3_KEYIRQ3_KEYb6b6IRQ4
8、_ 4KHzIRQ4_ 4KHzb5b5IRQ4_ 2KHzIRQ4_ 2KHzb4b4IRQ4_ 1KHzIRQ4_ 1KHzb3b3IRQ5_ 4HzIRQ5_ 4Hzb2b2IRQ5_ 2HzIRQ5_ 2Hzb1b1IRQ6_ TMB1IRQ6_ TMB1b0b0IRQ6_ TMB2IRQ6_ TMB2UART IRQUART IRQ写写写写 P_UART_Command2P_UART_Command2 b7b7、b6b6中中断断控控制制字字 每一位对应一个事件,每一位对应一个事件,每一位对应一个事件,每一位对应一个事件,如果通过如果通过如果通过如果通过P_INT_CtrlP_INT_
9、Ctrl向某向某向某向某位位位位写写写写1 1,则允许该事件向,则允许该事件向,则允许该事件向,则允许该事件向CPUCPU申请中断。申请中断。申请中断。申请中断。如果通过如果通过如果通过如果通过P_INT_CtrlP_INT_Ctrl读读读读,是读中断标志,是读中断标志,是读中断标志,是读中断标志,置置置置1 1的的的的位,说明该事件已向位,说明该事件已向位,说明该事件已向位,说明该事件已向CPUCPU申申申申请了中断。请了中断。请了中断。请了中断。P_INT_Ctrl_NewP_INT_Ctrl_New端口端口端口端口的每一位,也对应表中的事的每一位,也对应表中的事的每一位,也对应表中的事的
10、每一位,也对应表中的事件。件。件。件。如果通过如果通过如果通过如果通过P_INT_ClearP_INT_Clear向某位写向某位写向某位写向某位写1 1,则清除该事件的中断标志。则清除该事件的中断标志。则清除该事件的中断标志。则清除该事件的中断标志。注意:只有在注意:只有在P_INT_Ctrl中设中设置了中断源允许位为置了中断源允许位为“1”,相应开相应开/关中断指令才有意义。关中断指令才有意义。中断控制指令中断控制指令例例6.1IRQ5有有2个中断源,个中断源,2Hz和和4Hz。TIME2对对2Hz中断计数,中断计数,TIME4对对4Hz中中断计数。断计数。2Hz中断控制中断控制A口口0LE
11、D以以2S速率闪烁,速率闪烁,4Hz中断控制中断控制B口口0LED以以1S速率闪烁。速率闪烁。Y否,就是否,就是2Hz中断。中断。.DEFINE P_IOA_DATA 0 x7000.DEFINE P_IOA_DATA 0 x7000.DEFINE P_IOA_DIR 0 x7002.DEFINE P_IOA_DIR 0 x7002.DEFINE P_IOA_ATTRI 0 x7003.DEFINE P_IOA_ATTRI 0 x7003.DEFINE P_IOB_DATA 0 x7005.DEFINE P_IOB_DATA 0 x7005.DEFINE P_IOB_DIR 0 x7007.D
12、EFINE P_IOB_DIR 0 x7007.DEFINE P_IOB_ATTRI 0 x7008.DEFINE P_IOB_ATTRI 0 x7008.DEFINE P_INT_Ctrl 0 x7010.DEFINE P_INT_Ctrl 0 x7010.DEFINE P_INT_CLEAR 0 x7011.DEFINE P_INT_CLEAR 0 x7011.DEFINE P_INT_CTRL_New 0 x702D.DEFINE P_INT_CTRL_New 0 x702D.RAM.RAM.VAR TIME2 /2Hz.VAR TIME2 /2Hz计数器计数器计数器计数器.VAR TI
13、ME4 /4Hz.VAR TIME4 /4Hz计数器计数器计数器计数器.CODE.CODE.PUBLIC _main/.PUBLIC _main/主程序主程序主程序主程序 _main:_main:INT offINT offR1=0 xffff /r1R1=0 xffff /r1的值为的值为的值为的值为0 xffff 0 xffff P_IOA_ATTRI=r1/IOAP_IOA_ATTRI=r1/IOA口设置为同相高电平输出口设置为同相高电平输出口设置为同相高电平输出口设置为同相高电平输出P_IOA_DIR=r1 P_IOA_DIR=r1 P_IOA_DATA=r1;P_IOA_DATA=r
14、1;P_IOB_ATTRI=r1/IOBP_IOB_ATTRI=r1/IOB口设置为同相高电平输出口口设置为同相高电平输出口口设置为同相高电平输出口口设置为同相高电平输出口 P_IOB_DIR=r1 P_IOB_DIR=r1 P_IOB_DATA=r1;P_IOB_DATA=r1;R1=0 x000CR1=0 x000CP_INT_Ctrl=R1P_INT_Ctrl=R1P_INT_CTRL_New=R1P_INT_CTRL_New=R1R1=0R1=0TIME2=R1TIME2=R1TIME4=R1TIME4=R1INT IRQINT IRQLoopLoop:NOPNOPNOPNOPJMP
15、JMP LoopLoop/=/=.TEXT.TEXT.TEXT.TEXT.PUBLIC _IRQ5.PUBLIC _IRQ5.PUBLIC _IRQ5.PUBLIC _IRQ5_IRQ5:_IRQ5:_IRQ5:_IRQ5:PUSH R1,R5 TO SPPUSH R1,R5 TO SPPUSH R1,R5 TO SPPUSH R1,R5 TO SPR1=0 x0008;R1=0 x0008;R1=0 x0008;R1=0 x0008;TEST R1,P_INT_Ctrl;/TEST R1,P_INT_Ctrl;/TEST R1,P_INT_Ctrl;/TEST R1,P_INT_Ctrl;/
16、中断识别中断识别中断识别中断识别JNZ JNZ JNZ JNZ L_IRQ5_4HzL_IRQ5_4HzL_IRQ5_4HzL_IRQ5_4Hz;L_IRQ5_2Hz:L_IRQ5_2Hz:L_IRQ5_2Hz:L_IRQ5_2Hz:R1=0 x0004R1=0 x0004R1=0 x0004R1=0 x0004P_INT_Clear=R1;/P_INT_Clear=R1;/P_INT_Clear=R1;/P_INT_Clear=R1;/清中断清中断清中断清中断R2=R2=R2=R2=TIME2TIME2TIME2TIME2 /计数器计数器计数器计数器+1+1+1+1R2+=1R2+=1R2+
17、=1R2+=1 TIME2TIME2TIME2TIME2=R2=R2=R2=R2CMP R2CMP R2CMP R2CMP R2,2 2 2 2/是否是否是否是否1S?1S?1S?1S?JBE JBE JBE JBE LED2Hz_OFF LED2Hz_OFF LED2Hz_OFF LED2Hz_OFF/否否否否,LED,LED,LED,LED灭灭灭灭R1=0 xFFF0 R1=0 xFFF0 R1=0 xFFF0 R1=0 xFFF0/是是是是,LED,LED,LED,LED亮亮亮亮P_IOA_DATA=R1P_IOA_DATA=R1P_IOA_DATA=R1P_IOA_DATA=R1CMP
18、 R2,4 CMP R2,4 CMP R2,4 CMP R2,4/是否是否是否是否2S?2S?2S?2S?JBE JBE JBE JBE LED2Hz_RET LED2Hz_RET LED2Hz_RET LED2Hz_RET/否否否否,中断返回中断返回中断返回中断返回R2=0 R2=0 R2=0 R2=0/是是是是,清清清清TIME2TIME2TIME2TIME2TIME2=R2TIME2=R2TIME2=R2TIME2=R2JMP LED2Hz_RETJMP LED2Hz_RETJMP LED2Hz_RETJMP LED2Hz_RETLED2Hz_OFF:LED2Hz_OFF:LED2Hz_
19、OFF:LED2Hz_OFF:R1=0 xFFFFR1=0 xFFFFR1=0 xFFFFR1=0 xFFFFP_IOA_DATA=R1P_IOA_DATA=R1P_IOA_DATA=R1P_IOA_DATA=R1LED2Hz_RETLED2Hz_RETLED2Hz_RETLED2Hz_RETPOP R1,R5 FROM SP;POP R1,R5 FROM SP;POP R1,R5 FROM SP;POP R1,R5 FROM SP;RETI;RETI;RETI;RETI;L_IRQ5_4Hz:L_IRQ5_4Hz:L_IRQ5_4Hz:L_IRQ5_4Hz:R1=0 x0008R1=0 x0
20、008R1=0 x0008R1=0 x0008P_INT_Clear=R1;/P_INT_Clear=R1;/P_INT_Clear=R1;/P_INT_Clear=R1;/清中断清中断清中断清中断R2=R2=R2=R2=TIME4TIME4TIME4TIME4 /计数器计数器计数器计数器+1+1+1+1R2+=1R2+=1R2+=1R2+=1 TIME4TIME4TIME4TIME4=R2=R2=R2=R2CMP R2CMP R2CMP R2CMP R2,2 2 2 2/是否是否是否是否0.5S?0.5S?0.5S?0.5S?JBE JBE JBE JBE LED4Hz_OFFLED4Hz_
21、OFFLED4Hz_OFFLED4Hz_OFF/否否否否,LED,LED,LED,LED灭灭灭灭R1=0 xFFF0R1=0 xFFF0R1=0 xFFF0R1=0 xFFF0/是是是是,LED,LED,LED,LED亮亮亮亮P_IOB_DATA=R1P_IOB_DATA=R1P_IOB_DATA=R1P_IOB_DATA=R1CMP R2,4CMP R2,4CMP R2,4CMP R2,4/是否是否是否是否1S?1S?1S?1S?JBE JBE JBE JBE LED4Hz_RETLED4Hz_RETLED4Hz_RETLED4Hz_RET/否否否否,中断返回中断返回中断返回中断返回R2=0
22、R2=0R2=0R2=0/是是是是,清清清清TIME4TIME4TIME4TIME4TIME4=R2TIME4=R2TIME4=R2TIME4=R2JMP LED4Hz_RETJMP LED4Hz_RETJMP LED4Hz_RETJMP LED4Hz_RETLED4Hz_OFF:LED4Hz_OFF:LED4Hz_OFF:LED4Hz_OFF:R1=0 xFFFFR1=0 xFFFFR1=0 xFFFFR1=0 xFFFFP_IOA_DATA=R1P_IOA_DATA=R1P_IOA_DATA=R1P_IOA_DATA=R1LED4Hz_RETLED4Hz_RETLED4Hz_RETLED4
23、Hz_RETPOP R1,R5 FROM SP;POP R1,R5 FROM SP;POP R1,R5 FROM SP;POP R1,R5 FROM SP;RETI;RETI;RETI;RETI;例例6.2键唤醒,键唤醒,A口键盘输入,口键盘输入,B口口LED输出。输出。.include Hardwore.inc/.include Hardwore.inc/硬件资源接口硬件资源接口硬件资源接口硬件资源接口.define P_IOA_RL 0 x7004.define P_IOA_RL 0 x7004/P_IOA_LatchP_IOA_Latch .CODE.CODE.PUBLIC _main.
24、PUBLIC _main_main:_main:r1=0 r1=0 /IOA /IOA为带下拉电阻输入。为带下拉电阻输入。为带下拉电阻输入。为带下拉电阻输入。P_IOA_Dir=r1 P_IOA_Dir=r1 P_IOA_Attr=r1 P_IOA_Attr=r1 P_IOA_Data=r1 P_IOA_Data=r1 r1=0 xFFFF /IOB r1=0 xFFFF /IOB低电平输出低电平输出低电平输出低电平输出 P_IOB_Dir=r1 P_IOB_Dir=r1 P_IOB_Attrib=r1 P_IOB_Attrib=r1 r1=0 r1=0 P_IOA_Data=r1 P_IOA
25、_Data=r1 INT OFF INT OFFKeydown:Keydown:R1=P_IOA_Data R1=P_IOA_Data CMP R1,0 x0001 CMP R1,0 x0001 JNE JNE KeydownKeydownKeyup:Keyup:R1=P_IOA_Data R1=P_IOA_Data CMP R1,0 x0000 CMP R1,0 x0000 JNE JNE KeyupKeyup R1=0 xFFFF R1=0 xFFFF P_IOA_Data=R1 P_IOA_Data=R1/LED/LED灭灭灭灭?R1=0 x0080 R1=0 x0080 P_INT_C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 中断 系统
限制150内