第5章 中断系统与定时计数器_第1页
第5章 中断系统与定时计数器_第2页
第5章 中断系统与定时计数器_第3页
第5章 中断系统与定时计数器_第4页
第5章 中断系统与定时计数器_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、中断的基本概念80C51中断源中断控制寄存器中断处理过程中断优先控制和中断子中断系统的应用80C51定时/计数器定时/计数器控制寄存器定时/计数器操作方式定时/计数器的应用,第本章要点:5-180C51中断系统、CPU暂时中止其执行中的程序,转移到请求中断的外围设备和事件的服务程序,处理完成后执行原来中止的程序称为中断。 为什么要设定中断? 提高CPU生产率的具有实时处理功能的故障处理功能的时分操作,5.1.1中断的概要,中断是什么?中断功能的强弱是计算机性能优劣的重要标志,中断源中断申请是开放的中断保护现场中断服务恢复了现场中断而返回, 在与中断有关的几个环节中,CPU在每台机器周期的S5P

2、2期间,自动查询各中断申请标志位,当某个标志位位于位置时,启动中断机构。 CPU识别出中断请求的根据: INT0:外部中断0,并且从P3.2输入中断请求信号。 INT1:外部中断1、中断请求信号从P3.3输入。 T0:定时/计数器0溢出中断,对外部脉冲的计数从P3.4开始输入。 T1:定时/计数器1溢出被中断,对外部脉冲的计数从P3.5开始输入。 串行中断:包括串行接收中断RI和串行传输中断TI。 5.1.2中断源和中断控制寄存器、中断源和中断源能够发出中断请求,是引起中断的装置或事件。 80C51单片机的中断源共计5个,其中2个是外部中断源,3个是内部中断源:中断请求:定时和外部中断控制寄存

3、器TCON; 串行控制寄存器SCON中断允许控制寄存器IE中断优先级控制寄存器IP。 中断控制寄存器、80C51单片机中涉及中断控制有三个方面的4个特殊功能寄存器: INT0、INT1、T0、T1中断请求标志设置在TCON上,串行中断请求标志设置在SCON上。 另外,中断请求控制寄存器、TCON的构成、比特名、比特地址和功能如下:TCON比特功能:TF1T1溢出中断请求标志T1计数溢出后,TF1=1TF0T0溢出中断请求标志T0计数=1:定时器超时申请被中断,被中断后自动清除。 IE1外部中断请求标志P3.3管脚信号有效时,IE1=1IE0外部中断请求标志P3.2管脚信号有效时,IE0=1IE

4、0/IE1 :外部中断请求标志位:=0:无外部中断请求;=1:有外部中断申请。 IT1外中断触发方式控制位IT1=1、边缘触发方式IT1=0、电平触发方式。 IT0外中断触发方式控制位的意义和功能与IT1相似。 IT0/IT1 :外部中断请求的触发方式选择位:=0:在IT0/IT1侧申请中断的信号的低电平有效=1:在IT0/IT1侧申请中断的信号负跳跃有效,串行控制寄存器SCON, TI串行端口发送中断请求标志RI串行端口接收中断请求标志、向80C51中断源的打开或关闭由中断许可控制寄存器IE控制。 中断许可控制寄存器IE、IE的结构、位名称和位地址如下: EACPU中断许可控制位(总交换机)

5、 EA=1,CPU打开中; EA=0,在CPU函数中,屏蔽所有五个中断源。 EX0外部中断INT0中断许可控制位EX0=1,INT0开放EX0=0,INT0函数中。 EX1外部中断INT1中断许可控制位EX1=1,INT1开放EX1=0,INT1函数中。 ET0定时/计数器T0中断许可控制位ET0=1,T0开放中ET0=0,T0函数中。 ET1定时/计数器T1中断许可控制位ET1=1,T1开启中ET1=0,T1函数中。 ES串行端口中断(包括串行、串行接收)许可控制位ES=1、串行端口开放中ES=0、串行门中。 此外,80C51说明对中断执行两个阶段的控制,总控制位为EA,每个中断源有自己的控

6、制位。 首先EA=1,然后需要自己的控制位置“1”。例如:为了使INT0开路,MOVIE,#1000000lB; 或者SETBEA; SETBEX0; 中断许可控制寄存器IE、PX0:INT0中断优先级控制位。PX0=1,高优先级PX0=0,低优先级PX1:INT1中断优先级控制比特。 控制方法同上。 PT0:T0中断优先级控制位。 控制方法同上。 PT1:T1中断优先级控制比特。 控制方法同上。 PS :串行端口中断优先级控制位。 控制方法同上。 中断优先级控制寄存器IP80C51有五个中断源,并且被分成两种中断优先级:高优先级和低优先级。 IP的结构、位名、位地址如下:例如:int1,将串

7、行端口设定为高优先级,将剩馀的中断源设定为低优先级,MOVIP,#00010100B; 如果5个中断源都为高优先级,则不考虑优先级。 中断优先级控制寄存器IP、5.1.3中断处理过程从中断请求、中断应答、中断服务、中断返回请求中断源发出中断请求信号,从相应的中断请求标志位(在中断许可控制寄存器IE中中断响应CPU查询(检测)某个中断标志为“1”,当满足中断响应条件时,对中断进行响应。 中断响应条件:该中断是“开放中”。CPU现在没有响应等级以上的中断,处于当前执行中的指令的最后的机器周期中。执行中的命令不是RETI,或者是访问IE、IP的命令。 否则,要响应,需要执行其他命令。 中断响应操作C

8、PU响应中断后,进行以下操作:保护中断点地址; 删除该中断源中断请求标志,关闭兄弟中断,将对应的中断的入口地址发送到PC,发送80C51个中断入口地址: INT0:0003H; T0:000BH; PK1: 0013 h; T1:001BH; 串行端口: 0023H,执行中断服务程序的中断服务程序应该包含以下部分:在现场执行中断服务程序主体,完成对应的操作,在现场恢复中断,返回到中断服务程序的最后,中断CPU执行RETI指令后,自动完成以下操作:重新开始中断点地址。 打开兄弟中断,允许兄弟中断源请求中断。 5.1.4中断响应等待时间如果排除CPU应答同等以上的中断的状况,则中断响应等待时间从:

9、38设备周期5.1.5中断请求的撤除源发出中断请求,中断请求标志相应地设置为“1”。 CPU应答中断后,需要清除中断请求“1”标志。 如果返回中断响应,则再次进入该中断,发生死周期错误。 定时/计数器T0、T1中断,对于中断边缘触发方式,CPU响应中断时,通过硬件自动清除相应的中断请求标志。 外部中断级别的触发方式需要通过硬件和软件的结合方法去除结果。 对于串行端口的中断,用户必须通过串行中断服务程序通过软件清除TI或RI。 例如、硬件电路如图所示。 当从外部装置发出中断请求时,中断请求信号被反转,并且被作为CP脉冲施加到锁存器CP端子。 因为d侧接地为0,q侧输出为低电平,所以触发INT0的

10、中断。 CPU应答中断后,在该中断服务程序中,请并排CLRP10:SETBP10这两个指令,取消引起反复中断的INT0低电平信号。 因此,一般要对外地中断INT0、INTl,尽量采用边缘触发方式,简化硬件电路和软件程序。 5.1.6中断优先控制和中断嵌套中断优先控制80C51中断优先控制首先基于中断优先级,并且规定了相同的中断优先级间的中断优先级。 按从高到低的顺序,INT0、T0、INT1、T1、串行端口。 中断优先级是可编程的,中断优先级是固定的,无法设置,仅用于兄弟中断源同时请求中断时的优先级。 80C51中断优先控制的基本原则:高优先级中断可以中断响应中的低优先级中断,不能反过来。 同

11、样的优先级的中断不能互相中断。 如果多个中断源以相同的中断优先级同时请求中断,则CPU会响应高优先级的中断,并响应低优先级的中断。、中断嵌套、CPU在运行中断服务程序时,如果发生高级中断源请求中断,则CPU可以“中断”正在运行的低优先级中断,并对高级中断作出响应。 这就是中断嵌套。 中断嵌套仅具有高优先级的“中断”低优先级,低优先级不是“中断”高优先级,相同优先级也不是“中断”。 中断嵌套结构与调用子程序嵌套相似,但子程序嵌套在程序中是预先确定的,中断嵌套是随机发生的。 子程序的嵌套没有顺序限制,中断嵌套只允许高优先级的“中断”低优先级。 5.1.7中断系统的应用程序中断初始化设定堆栈指针SP

12、定义中断优先级定义外中断触发方式开放中断调度在中断发生之前主程序应完成的操作内容。 中断服务主程序中断服务子程序的内容请求:在中断服务入口地址中设定跳跃命令,移动到中断服务程序的实际入口。 根据需要保护现场。 请求中断源中断服务请求的操作。 夺回现场。 应对保护现场,注意先进的后出、后出的操作原则。 中断返回,最后一个命令必须是RETI。 中断初始化、堆栈指针SP的设定中断必须保护中断点的PC地址和现场数据,用堆栈保护,因此要设定适当的堆栈深度。 如果深度要求不高,且工作寄存器组13未被使用,则可以维持复位时的状态: SP=07H、深度24B(20H2FH是位地址区域)。 如果需要恒定深度,则

13、SP=60H或50H,并且深度分别为32B和48B。 要定义中断优先级,请根据中断源的优先级区分高优先级和低优先级。 通过MOVIP、#XXH或SETBXX指令进行设定。 最好定义外部中断触发方式的一般状况,定义边缘触发方式。 在外部中断信号不能适用边缘触发方式的情况下,如果必须采用电平触发方式,则采取在硬件电路上和中断服务程序中去除中断请求信号的措施。 开放中断注意开放中断必须同时开放同时位置EA和需要开放中断的中断许可控制位这样的二次控制。 可以通过MOVIE、#XXH命令进行设定,也可以通过bea和SETBXX位操作命令进行设定。 在等待中断或中断之前安排主程序应该完成的操作内容。 中断

14、服务主程序中断服务子程序的内容请求:在中断服务入口地址中设定跳跃命令,移动到中断服务程序的实际入口。 由于在80C51的相邻的两个中断入口地址之间只有8-b个空间,所以8-b可以包含具有38个指令的极短的程序,通常,中断服务程序大大超过8-b的长度。 因此,必须跳至其他合适的地址空间。 因为跳命令可以使用SJMP、AJMP或ljp命令,并且SJMP和AJMP受跳范围的影响,所以只要提出ljp命令,就可以在64KB中的任何地方配置真正的中断服务程序。 必要时保护现场。 现场保护并不是中断服务流程所必需的。的。 一般保护Acc、PSW、DPTR等特殊功能寄存器的内容。 如果中断服务程序不包括Acc

15、、PSW和DPTR,就不需要保护和恢复。 例如,累加器a是最常用的特殊功能寄存器,在主程序中不可使用a。 发生中断是随机的,正好操作a,a中的数据有用的时候有可能发生中断。 中断服务程序包含a,改变了a的内容的情况下,在进入中断服务程序之前保护a中的数据,在中断返回后恢复a中的原始数据是必要的,保护现场的数据越少,数据保护越多,堆栈越多。 中断源请求中断服务请求的操作。 如果是外部中断电平触发方式,则需要进行中断信号的解除操作。 串行收发中断时,必须对RI、TI清除0命令。 夺回现场。 应对保护现场,注意先进的后出、后出的操作原则。 (6)中断复位,最后的命令必须是RETI。【例5-1】出租车

16、仪表的仪表方法,车轮每转一圈就产生负脉冲,从外面中断INT0(P3.2 )销的输入,将行驶距离设为轮胎周长的转速,轮胎周长设为2m,实时计算出租车行驶距离(单位米) 数据是32H、31H和30H。 中断系统应用实例,解:编程如下: ORG0000H; 复位地址LJMPSTAT; 传输初始化ORG0003H; 中断入口地址LJMPINT,中断服务程序,ORG0100H; 初始化程序的开头地址STAT:MOVSP、#60H; 堆栈指针SETBIT0边缘触发方式MOVIP、#01H; 设定高优先级MOVIE、#81H; 开中MOV30H、#0; 里程计数器清0MOV31H、#0; MOV32H、#0

17、; LJMPMAIN; 转动主程序,等待中断ORG0200H的中断服务子例程的开头地址INT:PUSHAcc; 保护现场推压PSW mova、30H; 用于读取低位8位计数器ADDA、#2的低位8位计数器2mMOV30H、a; 保存CLRA的ADDCA、31H; 中8位计数器加法MOV31H、a; 保存CLRA的ADDCA、32H; 高位8位计数器加法MOV32H、a; 保存推压电源; 恢复现场推ACC的RETI; 中断返回、MAIN主程序可以处理循环显示等任务。 【例5-3】现有的五个外部中断源EX1、EX20、EX21、EX22和EX23在高水平时请求中断,请求执行适当的中断服务程序,并试

18、制程序。 解: ORG0000H; 复位地址LJMPMAIN; 主程序ORG0003H中断入口地址LJMPPINT0; 中断中断服务程序ORG0013H入口地址LJMPPINT1,中断服务程序,ORG0100H; 主程序的开头地址MAIN:MOVSP、#60H; 堆栈指针ORLTCON,#05H; 将INT0、INT1设为边缘触发方式SETBPX0的高优先级MOVIE、#0FFH; 全开中主程序内容ORG1000H中断服务程序的起始地址PINT0:PUSHAcc; 中断,调用现场LCALLWORK1的保护EX1服务子程序POPAcc恢复现场RETI的中断返回ORG2000H中断服务程序的起始地址PINT1:CLREA CPU禁止PUSHAcc; 中断现场PUSHDPH的保护的PUSHDPL; SETBEA; CPU打开中,JBP1.0,LWK20; P1.0=1,EX20是JBP1.1,请求LWK21的中断的P1.1=1,EX21是JBP1.2,请求LWK22的中断的P1.2=1,EX22是请求LCALLWORK23的中断的P1.3=1,EX23服务子lret 恢复现场的POPDPH的POPAcc; SETBEA; CPU开放RETI; 中断恢复LWK20:LCALLWORK20 P1.0=1,调用EX20

温馨提示

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

评论

0/150

提交评论