单元二 GP32中断概念及外部中断使用_第1页
单元二 GP32中断概念及外部中断使用_第2页
单元二 GP32中断概念及外部中断使用_第3页
单元二 GP32中断概念及外部中断使用_第4页
全文预览已结束

下载本文档

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

文档简介

1、单元二 GP32中断概念及外部中断使用一、中断的基本概念1生活中的中断现象什么是中断,我们从一个生活中的例子引入。你正在家中看书,突然电话铃响了,你放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书。这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断了。 仔细研究一下生活中的中断,对于我们学习单片机的中断也很有好处。第一、什么可以引起中断,生活中很多事件可以引起中断:有人按了门铃了,电话铃响了,你的闹钟闹响了,你烧的水开了.等等诸如此类的事件,我们把可以引起中断的称之为中断源。第二、中断的嵌套与优先级处理:设想一下,我们正在看书,电话铃响了,同时又有人按了门铃,

2、你该先做那样呢?如果你正是在等一个很重要的电话,你一般不会去理会门铃的,而反之,你正在等一个重要的客人,则可能就不会去理会电话了。这里存在一个优先级的问题, 第三、中断的响应过程:当有事件产生,进入中断之前我们必须先记住现在看书的第几页了,或拿一个书签放在当前页的位置,然后去处理不同的事情(因为处理完了,我们还要回来继续看书):电话铃响我们要到放电话的地方去,门铃响我们要到门那边去,也说是不同的中断,我们要在不同的地点处理,而这个地点通常还是固定的。2计算机系统中的中断计算机系统的“中断”是指中央处理器CPU正在处理某件事情的时候,发生了异常事件(如定时器溢出等)产生一个中断请求信号,请求CP

3、U迅速去处理。CPU暂时中断当前的工作,转入处理所发生的事件,处理完以后,再回到原来被中断的地方继续原来的工作,这样的过程称为中断,实现这种功能的部件称为中断系统,产生中断的部件或设备称为中断源。 一个计算机系统一般有多个中断请求源。当多个中断源同时向CPU请求中断时,就存在CPU优先响应哪一个中断请求源的问题。一般根据中断源(所发生的事件)的轻重缓急,规定中断源的优先级,CPU优先响应中断优先级高的中断源请求。 当CPU正在处理一个中断请求时,又发生了另外的中断请求,如果CPU能暂时中止对原中断的处理,转去处理优先级更高的中断请求,待处理完以后,再继续处理原来的中断事件,这样的过程称为中断嵌

4、套。 这样的中断系统称为多级中断系统。而没有中断嵌套功能的系统称为单级中断系统。 二、M68HC08中断系统 M68HC08的中断源数量也是随产品型号不同而不同的。一般随功能模块的增加而增加,中断源的数量反映了一个微控制器中断处理功能的强弱。 1GP32的中断源 GP32中断系统有24个中断源,每个中断源都有一个中断标志位、中断允许位、17个中断向量,下表列出了GP32的中断源。 MC68HC908GP32中断源 中断源 标志 屏蔽 INT寄存器标志 优先级 向量地址 执行SWI软件中断 None None None 0 $FFFC-$FFFD 外部中断IRQ IRQF IMASK1 IF1

5、1 $FFFA-$FFFB CGM中断 PLLF PLLIE IF2 2 $FFF8-$FFF9 TIM1通道0 CHOF CH0IE IF3 3 $FFF6-$FFF7 TIM1通道1 CHIF CH1IE IF4 4 $FFF4-$FFF5 TIM1溢出 TOF TOIE IF5 5 $FFF2-$FFF3 TIM2通道1 CHOF CH0IE IF6 6 $FFF0-$FFF1 TIM2溢出 CHIF CH1IE IF7 7 $FFEE-$FFEF SPI接收器满 TOF TOIE IF8 8 $FFFC-$FFED SPI溢出 SPRF SPRIE IF9 9 $FFFA-$FFFB

6、SPI方式错 OVRF ERRIE SPI发送器空 MODF ERRIE SCI接收器溢出 SPTE SPTIE IF10 10 $FFF8-$FFF9 SCI噪声溢出 OR ORIE IF11 11 $FFE6-$FFE7 SCI噪声标志 NF NEIE SCI格式错 FE FEIE SCI奇偶错 PE PEIE SCI接收器满 SCRF SCRIE IF12 12 $FFE4-$FFE5 SCI输入空闲 IDLE ILIE SCI发送器空 SCTE SCTIE IF13 13 $FFE2-$FFE3 SCI发送完成 TC TCIE 键盘输入中断 KEYF IMASKK IF14 14 $F

7、FE0-$FFE1 ADC转换完成 COCO AIEN IF15 15 $FFDE-$FFDF 时基中断 TBIF TBIE IF16 16 $FFDC-FFDD 2中断响应过程 CPU每执行完一条指令,如果条件码寄存器CCR中的中断屏蔽位I=0,按中断优先级次序查询所有的中断标志位,如果查到允许的中断请求源标志为“1”,则响应该中断请求。中断过程如下: CPU寄存器PCL、PCH、X、A、CCR依次进栈; 置位中断屏蔽位I(关中); 从所响应的中断请求源相对应的中断向量地址中取出中断向量(即中断服务程序入口地址)送入PC; CPU从中断入口地址开始执行中断服务程序,直至碰到近回指令RTI为止

8、,RTI指令从堆栈中依次弹出CLR、A、X、PCH、PCL,使CPU回到原来被 中断地方继续执行原来的的程序; CPU响应中断执行中断服务程序时,I=1,因此不能响应其他中断请求。如果需要,在执行中断服务程序过程中执行清零I(CLI)指令,就可以响应其他中断请求以实现中断嵌套。 3、中断标志位和中断屏蔽位 HC08的中断源标志位和屏蔽位分布在各个功能模块的控制状态寄存器中。对于TIM1、TIM2中断、SCI中断、SPI中断的标志位和屏蔽位,在以后章节中作详细介绍。本章仅对外部中断和键盘中断进一步说明。三、外部中断IRQ 外部中断模块产生的中断请求信号是可以屏蔽的中断请求信号。l MODE:IR

9、Q触发方式选择位: MODE=1:IRQ输入负跳变或低电平时产生中断(1IRQF); MODE=0:IRQ输入仅负跳变时产生中断(1IRQF)。 l IMASK:外部IRQ中断屏蔽位: IMASK=1:禁止IRQ中断; IMASK=0:允许IRQ中断。 l IRQF:IRQ中断标志位: IRQF=1正在向CPU请求中断: IRQF=0未向CPU请求中断。 l ACK:外部中断请求响应位: 负跳变触发方式时(MODE=0)当IRQF=1软件置“1”ACK时清零IRQF; 负跳变及低电平触发方式时(MODE=1)当IRQF=1,并且IRQ引脚为高电平时,软件置位ACR才清零IRQF。 在外部中断服务程序中必须有置“1”ACK的指令,用以清零中断标志IRQF。四、如何写中断程序1方法1:利用关键字interrupt:CodeWarrior 编译器提供了一种非ANSI标准的方式来实现。在C 源文件中,中

温馨提示

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

评论

0/150

提交评论