单片机原理及实用技术-第5章-中断系统及应用课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机原理及实用技术-第5章-中断系统及应用课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 实用技术 中断 系统 应用 课件
- 资源描述:
-
1、第5章 中断系统及应用 第5章 中断系统及应用 5.1 概述概述 5.2 SPCE061A中断系统中断系统 5.3 中断系统应用中断系统应用 思考思考题题 第5章 中断系统及应用 5.1 概概 述述 1.中断中断 中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因而必须终止原程序的执行,转去完成相应的处理程序,待处理结束之后再返回继续执行被终止原程序的过程。中断技术能实现CPU与外部设备的并行工作,提高CPU的利用率及数据的输入/输出效率,能及时发现计算机运行过程中的突发事件并自动处理,如计算机对外部事件、硬件故障、运算错误、定时器溢出等做出响应。触键唤醒中断能使我们通过键盘
2、发出申请,随时对运行中的CPU提出请求,转而完成一些必须马上处理的事件。第5章 中断系统及应用 2.中断源中断源 中断源是指在计算机系统中向CPU发出中断请求的事件。中断源可以是人为设定的,也可以是突发的随机事件。如定时器中断就是由定时器溢出产生的中断。第5章 中断系统及应用 3.中断优先级中断优先级 由于在实际应用系统中往往有多个中断源,且中断申请是随机的,有时还可能会有多个中断源同时提出中断申请,但CPU一次只能响应一个中断源发出的中断请求,这时CPU响应哪个中断请求,就需要用软件或硬件按中断源工作性质的轻重缓急给它们安排一个优先顺序,即所谓的优先级排队。中断优先级越高则响应优先权就越高。
3、当CPU正在执行中断服务程序时,又有中断优先级更高的中断申请产生,CPU就会暂停原来的中断处理程序而转去处理优先级更高的中断请求,处理完毕后再返回原低级中断服务程序,这一过程称为中断嵌套,具有这种功能的中断系统称为多级中断系统。没有中断嵌套功能的则称为单级中断系统。第5章 中断系统及应用 图5.1 中断嵌套示意图响应低级中断请求返回主程序相应高级中断请求返回低级中断程序继续执行主程序CPU正在执行的主程序CPU执行高级中断服务程序CPU执行低级中断服务程序第5章 中断系统及应用 4.中断响应过程中断响应过程 中断响应过程有以下几步:(1)检测中断。在每一条指令结束后,系统自动检测中断请求信号,
4、如果有中断请求且相应的中断允许位为真(允许中断)时,则响应中断。(2)保护现场。CPU一旦响应中断,中断系统会自动保存当前内容PC和SR寄存器内容(通过入栈完成),执行中断服务程序,中断服务程序还可以通过压入堆栈来保护原程序中用到的数据和寄存器的值。保护现场前一般要关中断,以防止现场保护过程中有高优先级中断发生而破坏现场保护。保护现场一般是用堆栈指令将原程序中用到的寄存器压入堆栈,现场保护之后要开中断,以便响应更高优先级的中断申请。第5章 中断系统及应用 (3)中断服务。通过执行中断服务程序完成相应的功能。(4)清除中断标志位。CPU响应中断后,要请除相应的中断请求标志位,以免CPU再次响应该
5、中断。(5)恢复现场。中断服务完成后,返回之前要用弹出堆栈指令使保护在堆栈中的数据和寄存器的值弹出,以实现恢复原有数据的目的。注意:在恢复现场前要关中断,以防止恢复现场过程中再有中断响应破坏恢复现场。现场恢复后应及时开中断。第5章 中断系统及应用 (6)中断返回。此时CPU将PC指针和SR内容弹出堆栈恢复断点,从而使CPU继续执行刚才被中断的程序。在单片机中,中断技术主要用于实时控制和及时处理外部突发事件。要求计算机能及时响应被控对象提出的分析计算和控制等请求,使被控对象保持在最佳工作状态,以达到预定的控制效果。由于这些控制参量的请求都是随机发生的,而且要求单片机必须做出快速响应并及时处理,对
6、此只有利用中断技术才能实现。第5章 中断系统及应用 5.2 SPCE061A中断系统中断系统 5.2.1 中断类型中断类型 1.软件中断软件中断 软件中断是由软件指令break 产生的中断,软件中断的向量地址为FFF5H。2.异常中断异常中断 异常中断是非常重要的事件,该中断一旦发生,CPU必须立即进行处理。目前,SPCE061A定义的异常中断只有复位一种。通常系统复位可以由以下三种情况引起:上电、看门狗计数器溢出和系统电源电压低于限值。不论什么情况引起复位,都会使复位引脚的电位变低,进而使程序指针PC指向由复位向量FFF7H所指的系统复位程序入口地址。第5章 中断系统及应用 3.事件中断事件
7、中断 事件中断简称中断,以下提到的中断均为事件中断,一般产生于片内某部件或由外设中断输入引脚引入的某个事件,这种中断的开放/屏蔽由对应位和相应的IRQ或FIQ总使能控制,由软件设置。事件中断可采用两种方式:快速中断请求(FIQ)和中断请求(IRQ),这两种中断都由相应的总使能来控制。第5章 中断系统及应用 5.2.2 中断源中断源 表表5.1 中断源列表中断源列表 中断源 中断优先级 中断向量 保留字 Fosc/1024 溢出信号 PWM INT 音频输出 FIQ/IRQ0 FFF6H/FFF8H _FIQ/_IRQ0 TimerA 溢出信号 FIQ/IRQ1 FFF6H/FFF9H _FIQ
8、/_IRQ1 TimerB 溢出信号 FIQ/IRQ2 FFF6H/FFFAH _FIQ/_IRQ2 外部信号输入 EXT2 外部信号输入 EXT1 触键唤醒信号 IRQ3 FFFBH _IRQ3 第5章 中断系统及应用 4096 Hz 时基信号 2048 Hz 时基信号 1024 Hz 时基信号 IRQ4 FFFCH _IRQ4 4 Hz 时基信号 2 Hz 时基信号 IRQ5 FFFDH _IRQ5 频选信号 TMB1 频选信号 TMB2 IRQ6 FFFEH _IRQ6 UART 串行通信中断 IRQ7 FFFFH _IRQ7 第5章 中断系统及应用 1.定时器中断定时器中断 定时器中断
9、由单片机内部定时器TimerA和TimerB产生。在定时脉冲作用下从预置数单元初值开始加1计数,当计数为0 xFFFFH时,再加1便产生溢出,向CPU提出中断请求,以表明定时器的定时时间到,定时时间可通过程序设定,通常用于需要进行定时控制的场合。第5章 中断系统及应用 2.外部中断外部中断 SPCE061A单片机有两个外部中断EXT1和EXT2。两个外部输入引脚分别与B口的IOB2和IOB3复用,即EXT1(IOB2)和EXT2(IOB3)。引入两个外部中断源的中断请求信号,外部中断以负跳沿触发方式输入中断请求信号,如图5.2所示。第5章 中断系统及应用 中断系统EXT1EXT2(负跳沿)IO
10、B2(IOB3)负跳沿触发图5.2 外部中断信号 第5章 中断系统及应用 EXT1、EXT2可以由外部单脉冲产生中断请求信号,也可以通过接入相应的阻容元件实现定时中断。在IOB2和IOB4之间以及IOB3和IOB5之间分别接入两个反馈电路,外接RC振荡器做外部定时中断使用,如图5.3所示,此时,外部中断的反馈电路使用四个管脚(B口的IOB2、IOB3、IOB4和IOB5引脚),其中IOB4和IOB5主要用来组成RC反馈电路,通过IOB2和IOB4之间(或者IOB3和IOB5之间)增加一个RC振荡电路,便可在EXT1(或EXT2)端得到振荡信号作为外中断触发信号。为使反馈电路正常工作,必须将IO
11、B2(或IOB3)设置为反相输出方式,IOB4(或IOB5)设置为输入方式。第5章 中断系统及应用 中断系统EXT1EXT2(下降沿)IOB2(IOB3)运算放大器1IOB4(IOB5)RC图5.3 IOB2、IOB4或IOB3、IOB5之间的反馈结构 第5章 中断系统及应用 3.串行通信口中断串行通信口中断 串行通信口中断由SPCE061A内部串行通信口中断源产生。串行通信口中断分为串行口发送中断和接收中断两种,共用一个中断向量。因此,在进入串行通信口中断服务程序后,需要判断是接收中断还是发送中断。第5章 中断系统及应用 当串行通信口发送/接收完一组串行数据时,自动使串行通信口控制寄存器P_
12、UART_Command2中的TxReady和RxReady中断标志置位,并向CPU发出中断请求,CPU响应串行通信口中断后,转入中断服务程序执行。因此,只要在串行通信口中断服务程序中,安排一段对P_UART_Command2寄存器的TxReady和RxReady中断标志位的状态判断程序,便可区分发生了接收中断还是发送中断请求。当然串行传输中既可以使用中断方式收发数据,也可通过查询TxReady和RxReady中断标志位的状态收发数据。串行通信口接收、发送端为B口的IOB7(RxD)和IOB10(TxD)两个复用脚。第5章 中断系统及应用 4.触键唤醒中断触键唤醒中断 当系统执行睡眠命令时,C
13、PU便关闭PLL倍频电路,停止CPU时钟,使系统进入睡眠状态。系统处于睡眠状态时,通过IOA口低八位接的键盘给出唤醒信号,使系统接通PLL倍频电路,启动CPU 时钟,将系统从睡眠状态转到工作状态,CPU从睡眠处继续执行程序。与此同时产生一个IRQ3_KEY中断请求,进入唤醒中断。一般来讲,中断系统提供的中断源FIQ(TMA)、IRQ1IRQ7均可作为系统的唤醒源,作为定时唤醒系统。第5章 中断系统及应用 5.时基信号中断时基信号中断 SPCE061A单片机提供了多组时基信号能作为中断源。时基信号来自实时时钟32 768 Hz,输出有通过选频逻辑的TMB1、TMB2信号和直接从时基计数器溢出的各
14、种实时时基信号,在开启时基信号中断的情况下,有时基信号时,便发出时基信号中断申请,CPU查询到有中断请求后,置位P_INT_Ctrl中相应的中断请求标志位,在中断服务程序中通过测试P_INT_Ctrl来确定是哪个频率的时基信号产生的中断请求。第5章 中断系统及应用 5.2.3 中断控制中断控制 1.中断控制寄存器中断控制寄存器 SPCE061A 单片机对中断源的开放和屏蔽以及每个中断源是否被允许中断,都受中断允许寄存器P_INT_Ctrl和一些中断控制指令的控制。下面分别作一介绍。1)中断控制寄存器 P_INT_Ctrl(读/写)(7010H)P_INT_Ctrl 控制单元具有读/写属性,其读
15、写时表达的意义不同。中断控制寄存器功能如表5.2所示。第5章 中断系统及应用 表表5.2 中断控制寄存器功能表中断控制寄存器功能表 中断控制位 中断向量 中断源 说明 B15 FIQ_Fosc/1024 B14 IRQ0_Fosc/1024 Fosc/1024:系统时钟 1024 分频 B13 FFF6H FIQ_ TMA B12 FFF8H IRQ1_TMA 定时器 A 溢出信号 B11 FFF9H FIQ_TMB B10 FFFAH IRQ2_TMB 定时器 B 溢出信号 第5章 中断系统及应用 B9 IRQ3_EXT2 外部信号 2 中断 B8 IRQ3_EXT1 外部信号 2 中断 B
16、7 FFFBH IRQ3_KEY 键盘唤醒中断 B6 IRQ4_4 kHz 4096 Hz 时基信号中断 B5 IRQ4_2 kHz 2048 Hz 时基信号中断 B4 FFFCH IRQ4_1 kHz 1024 Hz 时基信号中断 B3 IRQ5_4 Hz 4 Hz 时基信号中断 B2 FFFDH IRQ5_2 Hz 2 Hz 时基信号中断 B1 IRQ6_TMB1 时基发生器 1 输出选频信号中断 B0 FFFEH IRQ6_TMB2 时基发生器 2 输出选频信号中断 FFF7H RESET 复位信号 FFFFH UART IRQ 串行通信口中断 FFF5H BREAK 软中断 第5章 中
17、断系统及应用 2)清中断标志寄存器 P_INT_Clear(写)(7011H)清中断标志寄存器用于清除中断控制标志位。当CPU响应中断后中断标志仍为1,硬件并不自动清除该标志,当进入中断服务程序后,必须将其控制标志清零,否则,CPU还会响应该中断。P_INT_Clear寄存器的每一位对应一个中断源(如表5.2所示,具体位置与中断控制寄存器相同),如果想清除某个中断标志,只要将该寄存器中对应位置1,即可清除该中断标志。该寄存器只有写的属性,读该寄存器是无任何意义的。第5章 中断系统及应用 2.中断控制端口配置中断控制端口配置 P_INT_Ctrl(写)P_INT_Ctrl(读)P_INT_Cle
18、ar(写)功能 1 允许中断 0 屏蔽中断,但不清除 P_INT_Ctrl(读)单元相应的中断标志位 1 有中断事件发生 0 没有中断事件发生 1 清除中断标志 0 不改变中断源的状态 第5章 中断系统及应用 3.中断控制指令中断控制指令 表表5.4 中断控制指令一览表中断控制指令一览表 指令格式 说明 FIQ ON FIQ OFF 允许 FIQ 中断 禁止 FIQ 中断 IRQ ON IRQ OFF 允许 IRQ 中断 禁止 IRQ 中断 INT FIQ 允许 FIQ 中断,禁止 IRQ 中断 INT IRQ 允许 IRQ 中断,禁止 FIQ 中断 INT FIQ,IRQ 允许 FIQ 和
19、IRQ 中断 INT OFF 禁止 FIQ 和 IRQ 中断 第5章 中断系统及应用 (1)FIQ ON指令。功能:开放FIQ中断,是FIQ中断的总中断允许命令,其控制指令不能代替P_INT_Ctrl。也就是说,即使在程序中写了该指令,但没有将P_INT_Ctrl 寄存器的FIQ 位置1,CPU也无法响应该中断。FIQ ON与FIQ OFF配对使用。第5章 中断系统及应用 例1 FIQ ON的使用。_main:FIQ OFF r1=0 x8000H P_INT_Ctrl=r1 /在P_INT_Ctrl 开放FIQ中断 FIQ ONloop:NOP GOTO loop 第5章 中断系统及应用(2
20、)FIQ OFF指令。功能:屏蔽FIQ 中断,该指令可以屏蔽P_INT_Ctrl 控制寄存器打开的FIQ 中断。例2 快速中断的屏蔽与开放。_main:FIQ ONr1=0 x8000HP_INT_Ctrl=r1 /开放FIQ中断FIQ OFF /关闭FIQ中断FIQ ON /开放FIQ中断loop:NOP GOTO loop 第5章 中断系统及应用 (3)IRQ ON IRQ总中断允许指令。功能:开放IRQ 中断。该控制指令不能代替P_INT_Ctrl,与FIQ ON 相似,必须通过P_INT_Ctrl允许中断,与IRQ OFF配对使用。(4)IRQ OFF IRQ总中断屏蔽指令。功能:屏蔽
21、IRQ中断,与FIQ OFF相似,可以屏蔽P_INT_Ctrl开放的中断,并通过IRQ ON开放。第5章 中断系统及应用 (5)INT指令。功能:设置允许/禁止FIQ 和IRQ 中断。该控制指令与前面的指令相同,只有先通过P_INT_Ctrl 寄存器打开中断,才能完全开放中断。INT 控制指令可以细分为:INT FIQ 功能:允许FIQ中断,关闭IRQ中断。INT IRQ 功能:允许IRQ中断,关闭FIQ中断。INT FIQ IRQ功能:允许FIQ中断,允许IRQ中断。INT OFF 功能:关闭FIQ中断,关闭IRQ中断。第5章 中断系统及应用 例3 中断命令的使用。_main:r1=0 x8
22、004H/开中断IRQ5_2 Hz和FIQ_PWMP_INT_Ctrl=r1INT FIQ/允许FIQ_PWM中断,屏蔽IRQ5中断 INT IRQ/允许IRQ5中断,屏蔽FIQ_PWMNT FIQ,IRQ/允许IRQ和FIQ中断INT OFF/屏蔽IRQ和FIQ中断loop:NOP GOTO loop第5章 中断系统及应用 5.2.4 中断向量及优先级中断向量及优先级 SPCE061A单片机每一中断都对应一个向量单元,称为中断向量。在中断向量单元中存放中断服务程序的入口地址,而不是转移指令(与MCS-8051不同),如表5.5所示。在允许中断的情况下,当有中断请求时,将使程序转移至由中断向量
23、单元内容所决定的中断服务程序起始地址运行。SPCE061A单片机快速中断的优先级高于普通中断的优先级。在IRQ中断中,IRQ0的中断优先于IRQ1,IRQ1 的中断优先于IRQ2,IRQ的序号越大,中断优先级越低。串行通信口(UART)的中断优先级最低。第5章 中断系统及应用 表表5.5 SPCE061A中断的优先级中断的优先级 中断类型 中断向量 中断查询顺序 RESET FFF7 H 复位向量 0 FIQ FFF6 H 1 IRQ0 FFF8 H 2 IRQ1 FFF9 H 3 IRQ2 FFFA H 4 IRQ3 FFFB H 5 IRQ4 FFFC H 6 IRQ5 FFFD H 7
24、IRQ6 FFFE H 8 UART、IRQ FFFF H 9 第5章 中断系统及应用 在IRQ中断中,只是中断查询有先后,不能进行中断嵌套。同一中断向量内的中断源中断优先级相同。中断优先关系如下:FIQIRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6UART、IRQ同级 第5章 中断系统及应用 5.2.5 中断响应中断响应 1.中断响应过程中断响应过程 1)中断查询 把所有的中断请求都汇集到P_INT_Ctrl 和P_UART_Command2(该寄存器用于检测串行通信口中断标志位)寄存器中。外部中断时运用采样将中断请求信号锁存在P_INT_Ctrl 寄存器的相应标志位,而音频输出中
25、断、触键唤醒、定时中断、时基中断、串行通信口中断等中断请求,由于都发生在芯片的内部,可以直接去置位P_INT_Ctrl和P_UART_Command2中各自的中断请求标志位。所谓查询就是由CPU测试P_INT_Ctrl和P_UART_Command2中各标志位的状态,确定是否有中断请求发生以及是哪一个中断请求。第5章 中断系统及应用 中断查询发生在每条指令周期结束,按中断优先级顺序对中断请求进行查询,即先查询FIQ,再查询IRQ。同级中断按IRQ0、IRQ1、IRQ2、IRQ3、IRQ4、IRQ5、IRQ6、UART的顺序查询。如果查询到有标志位为1,则表明有中断请求发生。由于中断请求是随机发
展开阅读全文