《单片机原理与实用技术》第6章.ppt_第1页
《单片机原理与实用技术》第6章.ppt_第2页
《单片机原理与实用技术》第6章.ppt_第3页
《单片机原理与实用技术》第6章.ppt_第4页
《单片机原理与实用技术》第6章.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

第6章 中断系统 莫海霞 付晓光制作 6.1中断系统概述 6.1.1 中断的概念 所谓中断,就是打断正在进行的工作,转而去处理 另外一种较紧急的事情,处理完毕后再转回来继续原 来的工作。 1.实时控制 利用中断技术,各被控对象可根据需要随时向CPU 发出中断申请,CPU根据情况及时处理,实现实时控 制的需要。 2.分时操作 利用中断功能,CPU可以同进为多个对象服务,只 有服务对象向CPU发出中断申请时,CPU才转而为之 服务,这样大大提高了CPU的效率。 3.进行故障处理 对难以预料的情况或故障,如掉电、运算溢出、 事故等,可以由故障向CPU请求中断。 6.1.2 中断源与为断优先级 1.中断源与中断请求信号 引发中断的原因,或向CPU发出中断请求的来源称之 为中断源。 外中断的电平方式中断请求是低电平有效。 外中断脉冲方式是脉冲的后沿负跳有效。 2.中断优先级 计算机系统中通常有多个中断源,它们的中断请求是 随机提出的,有时会出现多个中断源同时提出中断请求的 情况,即多中断源并发。 中断优先级控制原则是: 当多个中断源同时申请中断时,CPU首先响应优先 级最高的中断请求,在优先级最高的中断处理完以后 ,再响应级别较低的中断。 当CPU正在处理中断时,若出现更高级的中断请求 ,CPU暂停正进行的中断处理程序,转去处理更高优 先级的中断处理,处理完毕后再回到原中断程序。这 种现象称中断嵌套。 当CPU正在处理中断时,较低级别的或同级的中断 服务被禁止。 当同级的多个中断请求同时出现时,则按CPU查询 次序确定那个中断请求被响应。 查询次序为: 外部中断0定时中断0外部中断1定时中断1 串行中断 6.2 中断控制 向控制寄存器写入的内容称控制字,写入控制字的过 程称初始化,而这些可以通过初始化写入控制字的端 口、接口称可编程端口、接口。 定时控制寄存器、中断允许控制寄存器、中断优先控 制寄存器以及串行口控制寄存器。 6.2.1 断源请示标志与请求方式控制 1.定时器控制中断寄存器(TCON) 寄存器地址为88H,位地址8FH88H。与中断有 关的位如下: 位地址8FH8EH8DH8CH8BH8AH89H88H 位名称TF1TR1TF0TR0IE1IT1IE0IT0 各位含义下: (1) IE0、IE1为外中断请求标志位。 当CPU检测到外部引脚INT0(INT1)端存在有效的中断请 求信号时,由硬件自动使IT0(IE1)置1。当CPU响应中断请 求后,再由硬件自动将之清零。 (2)IT0和IT1为外中断请求信号方式控制位。 当IT0(IT1)0时,为电平触发方式,低电平有效。 当IT0(IT1)1时,为脉冲触发方式,后沿负跳有效。 这两位由用户用根据需要用软件编程写入“1”或“0”,进而 控制外中断请求信号方式。可以使用字节操指令,也可用位 操作指令: CLR IT0 ;定义外中断0为电平触发方式。 ORL TCON ,#05H ;定义两外中断均为脉冲触发方式 (3)TF0、TF1为计数溢出标志位。 2.串行控制寄存器(SCON) 该寄存器地址98H,位地址9FH98H。各位名称如下: 位地址9FH9EH9DH9CH9BH9AH99H98H 位名称SM0SM1SM2RENTB8RB8TIRI (1)TI为串行口发送中断请求标志位; (2)RI为串行口接收中断请求标志位 。 6.2.2 中断允许控制 MCS-51对中断请求源的开放式屏蔽是由中断允许 寄存器IE控制的。IE寄存器地址为0A8H,位地址 0AFH0A8H。 位地址 0AFH 0ACH 0ABH 0AAH 0A9H 0A8H 位名称EA/ESET1EX1ET0EX0 各位含义如下: (1)EA为中断允许总控制位。 当EA0时,中断总禁止,屏蔽所有中断请求; 当EA1时,中断总允许,CPU开放中断,对各中断的中断 申请是否允许,还要取决于各中断源的中断允许控制状态。 (2)EX0和EX1为外部中断允许控制位。 当EX0(EX1)0时,禁止外中断0(外中断0); 当EX0(EX1)1时,允许外中断0(外中断1)。 (3)ET0和ET1为定时/计数中断允许控制位。 当ET0(ET1)0时,禁止定时/计数中断; 当ET0(ET1)1时,允许定时/计数中断。 (4)ES串行中断允许控制位。 当ES0时,禁止串行中断; 当ES1时,允许串行中断。 6.2.3 中断优先级控制 MCS-51单片机中5个中断的优先级别由中断优先控 制器IP进行设定。IP寄存器地址为0BFH0B8H。 位地址0BCH0BBH 0BAH 0B9H 0B8H 位名称PSPT1PX1PT0PX0 (1)PX0和PX1外部中断0和1优先设定位 (2)PT0和PT1定时中断0和1优先设定位 (3)PS串行中断优先级设定位 当为“0”时,该位优先级低;为“1”时该位优先级 高。 图6-2 MCS-51单片机中断系统 用户在使用中断时需要先通过设置以上寄存器以确定: 中断方式、中断总允许、中断分允许、优先级等级,称中断 初始化。如我们要使用外部中断0,则需要做以下工作: SETB IT0 (CLR IT0 ) ;设外中断0为脉冲 (电平)触发方式 SETB PX0 ;设外中断0为高优先级 SETB EA ;开中断总允许 SETB EX0 ;开外中断0 6.3 中断响应 6.3.1 中断响应 中断请求被CPU接受称中断响应。 1.中断响应条件 CPU响应中断必须满足以下条件: 有中断源提出中断请求; 该中断未被屏蔽; 无同级或高一级中断正在处理中; 执行完当前指令,若当前指令为返回指令RET、IRET或访 问IE、IP的指令,CPU须在执行完当前指令后,再继续执行一 条指令,然后才响应中断。 2.中断响应过程 CPU响应中断的过程如下: 中断源发出中断申请,相应中断标志位置位; 封锁同级和低级中断,自动清除中断标志; 将程序计数器PC的内容压入堆栈,并产生长调用 指令LCALL,根据不同的中断源,把程序的执行转 到相应的中断程序入口,各中断的入口地址如下表6- 1所示; 执行中断服务程序; 当执行到RETI指令时,从堆栈中弹出栈顶的两个 字节到程序计数器PC,CPU从原来的断点处重新执 行被中断的程序,即中断返回。 2.中断响应过程 CPU响应中断的过程如下: 中断源发出中断申请,相应中断标志位置位; 封锁同级和低级中断,自动清除中断标志; 将程序计数器PC的内容压入堆栈,并产生长调用指令 LCALL,根据不同的中断源,把程序的执行转到相应的中断 程序入口,各中断的入口地址如下表所示; 执行中断服务程序; 当执行到RETI指令时,从堆栈中弹出栈顶的两个字节到程 序计数器PC,CPU从原来的断点处重新执行被中断的程序, 即中断返回。 中 断 源 入 口 地 址 外部中断0 定时器/计数器0 外部中断1 定时器/计数器1 串行口中断 0003H 000BH 0013H 001BH 0023H 3. 中断响应时间 从中断响应条件的最后一条和中断响应过程可知中断的最短 时间和最长时间。 最短时间为了3个机器周期。若在执行一条指令的最后一个周 期CPU查询到中断标志。不需等待,紧接响应中断执行长调 用指令LCALL需要2个机器周期,加上查询的一个机器周期, 共3个机器周期。 最长的时间是8个机器周期,若查询到中断标志位时正好是执 行RET、RETI或者访问IE或IP指令的第一个机器周期,则需 再执行一条指令才能响应。而若再执行的一条指令是最长时 间的机器周期MUL或DIV指令,而有的访问IE或IP指令是双机 器周期指令,再加上LCALL的两个机器周期,共8个机器周期 。 一般情况下,中断响应时间在38个机器周期,若已知单片 机晶振频率,可计算出绝对时间。 在一般情况下,中断响应时间无需考虑,只有在精确定时的 应用场合才要精确计算。 4.中断请求的撤除 (1)中断请求标志位的清除; (2)中断请求信号的撤除 。 6.3.2 中断程序设计 1.中断初始化程序 中断初始化内容主要包括:通过设置TCON、SCON 、IE、IP等特殊功能寄存器以选择中断触发方式,开 中断设置、中断优先等级。 2.中断服务程序 (1)中断处理程序的第一句常为跳转指令; (2)现场保护和现场恢复; (3)关中断和开中断; (4)中断处理程序最后一条指令必须是中断返回指 令RETI。 例6-1 某温度自动调节控制系统,当空气温度高 于指定温度(如20.50C)时,产生一脉冲,引入INT0 引脚,使单片机发生中断,制冷机工作。当空气温度 下降到指定温度(如19.50C)时,同样产生脉冲,引 入INT1引脚,制冷机停止工作。试编程实现上述功能 。 解参照图6-5,程序如下: ORG 0000H AJMP MAIN ;转主程序 ORG 0003H ;过热中断处理程序(中断0) HOT:SETB P1.6 RETI ORG 0013H ;过冷中断处理程序(中断1) COOL:CLR P1.6 RETI ORG 0100H ;主程序 MAIN:SETB IT0 ;设置中断为脉冲触发方式 SETB IT1 SETB EX0 ;开外中断 SETB EX1 SETB EA ;开总中断允许 SJMP $ END 6.4 中断系统应用实例 6.4.1 CPU与外部设备的数据传送方式 1.无条件传送方式 这种条件下,CPU总认为外设处于准备好产状态,直接向 外设输出数据,或从外设读入数据。例5-11所示的LED显示就 是无条件传送方式, 当外设的传输反应速度与CPU一样迅速时,可以直接使用 无条件传送方式。比如LED的输出。 大多数外设的速度较CPU慢得多,这时使用无条件传送方 式交换数据时,要在输入/输出程序中加入延时指令。比如当 CPU向速度较慢的外设输出数据时,每输出完一个数据,就 要延时等待。延时时间要适中,时间太短,会出现数据传输 错误;时间太长,降低效率。 2.查询传送方式 查询方式就是在数据 传送前,CPU先对外设 状态进行查询,在确定 外设准备好后才输出或 输出数据。 3.中断传送方式 所谓中断传送方式,就是CPU在外设输出或输入 数据的准备过程不理睬外设的工作,执行其它程序 。 例6-2 将例5-3的门铃控制系统改用中断控制。 解按钮触发信号改与INT0相连,电路图如6-7所示。 程序如下: 主程序: MAIN: CLR IT0 MOV IE,81H SJMP (2)水 温低时,风扇停转,水温报警灯灭;(3)燃油液面高度过低时, 燃油报警灯亮;(4)润滑油面过低时,电喇叭鸣叫,润滑油指示 灯。且该报警最优先; (5)倒车时,倒车指示灯亮。 编程如下: ORG 0000H LJMP MAIN ORG 0003H ;润滑油面过低报警 SETB P1.4 SETB P1.3 RETI ORG 0013H LJMP INT ORG 1000H ;主程序 MAIN:ORL TCON,#00H ;中断初始化 MOV IE ,#85H SETB PX1 ;省略部分为电子控制 系统的其它功能部分 ORG 1100H JB P0.0 , INT0 ;查询中断源 JB P0.1 , INT1 JB P0.2 ,INT2 JB P0.3 ,INT3 CLR EA POP ACC ;恢复现场 POP PSW SETB EA RETI INT0: CLR EA ;水温过热报警 SETB P1.0 SETB P1.5 SETB EA RETI INT1:CLR EA ;水温过冷 CLR P1.0 CLR P1.5 SETB EA RETI INT2: CLR EA ;燃油液面过低报警 SETB P1.1 SETB EA RETI INT3:CLR EA ;倒车报警 SETB P1.2 SETB EA RET END 2使用优先编码器扩展外中断源 图6-10 74LS148扩展外部中断电路图 图6-10中INT1的中断服务程序方式如下: ORG 0003H AJMP INT0 ORG 0040H INT0:ORL P1,#00000111B MOV A,P1 XRL A,#00000111B ;低3位取反 ANL A,#00000111B MOV DPTR,#1000H RL A JMP A+DPTR RETI ORG 1000H TAB:AJMP IR0 AJMP IR1 AJMP IR7 6.4.3 键盘控制LED显示电路 例6-4 设计一键盘控制LED显示电路,当有键盘输入时, 显示对应的字符10秒,键盘若无输入时,循环显示09,间隔1 秒(设对应的P0.0P0.7共8个键)。 解电路图如图6-11所示。 按下任一键均分别联动按下 INT0的触发按钮。 程序如下: ORG 0000H SJMP MAIN ORG 0003H SJMP INT0 ORG 30H MAIN:SETB EA ;总中断允许 SETB EX0 ;外中断0允许 MOV DPTR,TAB ;显示编码首址 AGAIN:CLR A MOV R7,#10 ;09共10个数 CON:MOVC A,A+DPTR ;查表取编码 MOV P1,A ACALL DELAY ;延时 INC A DJNE R7 CON ;循环显示 SJMP AGAIN ;重新循环 ORG 80H INT0:CLR EA ;关中断 PUSH A ;现场保护 PUSH R7 SETB EA ;开中断 MOV P0,#0FFH MOV A,P0 ;取数 MOV R0,#0FFH GOON: RLC A ;查询键入 INC R0 JNC GOON MOV A,R0 MOVC A,A+DPTR MOV P1,A ;显示 DEL:MOV R7

温馨提示

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

评论

0/150

提交评论