版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章中断系统中断的基本概念MCS-51的中断系统中断源和中断标志中断的允许和优先权中断的处理过程外部中断源的扩展中断的应用无条件传送(显示器)查询传送(打印机、A/D转换器)直接数据存取(DMA)方式DirectMemoryAccess
(需DMA控制器)中断传送5.1微机的输入/输出方式日常中断的例子返回你正在专心看书,突然电话铃响,于是你记下正在看的书的页数,去接电话,接完电话后再回来接着看书。5.2中断的基本概念计算机中的中断概念返回CPU挂起正在执行的程序而转去处理特殊的事件的操作。将能引起中断的事件称为中断源。CPU现行运行的程序称为主程序。处理随机事件的程序称为中断服务子程序。
中断技术的优点分时操作
——CPU可以同多个外设“同时”工作实时处理
——CPU及时处理随机事件故障处理
——电源掉电、存储出错、运算溢出
5.389C51中断系统结构中断源中断标志中断允许中断优先级MCS-51中断系统结构中断寄存器
MCS-51的中断系统——中断源89C51单片机有5个中断请求源:单片机INT0或外部输入中断源INT0(P3.2)INT1或外部输入中断源INT1(P3.3)T0定时器T0的溢出T1定时器T1的溢出串行口串行口发送或接收中断源
MCS-51的中断系统——中断标志CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断标志位每一个中断源都有相应的中断标志位;某一个中断源申请中断,相应中断标志位置1。
MCS-51的中断系统——中断允许CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断标志位
EA——总中断允许位,EA=1开放所有中断,EA=0,禁止所有中断;某一个中断源还有相应的中断允许位,1允许相应中断源的中断,0禁止相应中断源的中断。中断允许ESET0EX0EX1ET1EA
MCS-51的中断系统——中断优先级CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TISI中断源中断标志位
单片机中有两个中断优先级,即高优先级中断和低优先级中断,前者优先权高于后者(在程序中设置,相应位=1,为高优先级);同一优先级别的中断源按照自然优先级顺序确定优先级别(硬件形成,无法改变)。中断允许ESET0EX0EX1ET1EA自然优先级高低优先控制PSPT0PX0PX1PT1IE0TCONSCONINT0IT0=0IT0=1INT1IT1=0IT1=1TF0IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然优先级矢量地址高级中断请求自然优先级矢量地址低级中断请求PX0PT0PX1PT1PSIEIPMCS-51的中断系统结构图中断标志位中断源允许总允许中断优先级作用:控制中断类型、中断的开关、中断的优先级TCON(6位)SCON(2位)IEIP
均可位寻址或字节寻址四个中断控制寄存器(都是SFR)TCON寄存器——T0和T1控制寄存器TF1
TF0
IE1IT1IE0IT0TCONT1溢出中断标志(TCON.7):
T1启动计数后,计满溢出由硬件置位TF1=1,向CPU请求中断,此标志一直保持到CPU响应中断后,才由硬件自动清0。也可用软件查询该标志,并由软件清0。76543210TF1
TF0
IE1IT1IE0IT0TCON88H外部中断INT1中断标志位(TCON.3)
:IE1=1,外部中断1向CPU申请中断
外部中断INT1触发方式控制位(TCON.2):
IT1=0,电平触发方式
IT1=1,下降沿触发方式76543210TCON寄存器——T0和T1控制寄存器注意:该寄存器可以位寻址。返回
TI(SCON.1)——串行发送中断标志。RI(SCON.0)——串行接收中断标志。
TIRISCON寄存器——串行口控制寄存器SCON98H76543210注意:该寄存器可以位寻址。IE寄存器——中断允许寄存器
IEA8H
EA
ESET1EX1ET0EX0例:允许定时器T0中断:
SETBEASETBET0
或MOVIE,#82H76543210注意:该寄存器可以位寻址。
51单片机有两个中断优先级——高级和低级专用寄存器IP为中断优先级寄存器,用户可用软件设定相应位为1,对应的中断源被设置为高优先级,相应位为0,对应的中断源被设置为低优先级系统复位时,均为低优先级该寄存器可以位寻址
PSPT1PX1PT0PX0IP寄存器——中断优先级寄存器
IPB8H
76543210
中断处理过程分为三个阶段:
中断响应中断处理(又称中断服务)中断返回中断响应中断返回5.4中断处理过程在89C51内部,中断表现为CPU的微查询操作,89C51的CPU在每个机器周期的S5P2期间顺序采样每个中断源,在下一个机器周期的S6期间按优先级查询中断标记,若查询到某个标记位为1,则在下一个机器周期的S1期间响应相对的中断,并进行中断处理。(CPU的自主操作)中断响应条件中断响应:在满足CPU的中断响应条件之后,CPU对中断源中断请求予以处理。CPU响应中断的条件:有中断源发出中断请求;中断总允许EA=1,即CPU开中断;申请中断的中断源对应的中断允许位为1,即中断没有被屏蔽;无同级或更高级中断正在被服务;当前的指令周期已经结束;若现行指令为RETI或者访问IE或IP指令,则该指令以及紧接着的另一条指令已执行完。89C51单片机的中断优先级有三条原则:CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。正在进行的低优先级中断服务,能被高优先级中断请求所中断。为了实现上述后两条原则,中断系统内部设有两个用户不能寻址的优先级状态触发器。其中一个置1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。中断响应(以外部中断0为例)中断响应过程:保护断点地址;中断响应把程序转向中断服务程序的入口地址(通常称矢量地址)。特别注意:这些工作是硬件自动完成的!
断点地址中断服务子程序的入口地址外部中断0入口地址0003ZD0AJMPORG0003HAJMPZD0ZD0中断响应中断服务子程序入口地址又称为中断矢量或中断向量。中断响应单片机中5个中断源的矢量地址是固定的,不能改动。断点地址中断服务子程序的入口地址程序存储器ROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH使用时,通常在这些入口地址处存放一条跳转指令,使程序跳转到用户安排的中断服务程序起始地址上去!程序存储器ROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH包含T0中断服务子程序的程序结构:
ORG0000H AJMPMAIN
ORG000BH AJMPINTT0
ORG0100HMAIN:...INTT0:...RETIENDAJMPMAINAJMPINTT0中断响应时间响应时间--从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。(1)最快响应时间以外部中断为例,说明中断响应最短时间。从查询中断请求信号到中断服务程序需要三个机器周期:
1个周期(查询)+2个周期(长调用LCALL)(2)最长时间若当前指令是RET、RETI和访问IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期:2个周期执行当前指令(其中含有1个周期查询)+4个周期乘除指令+2个周期长调用=8个周期。中断处理中断服务程序从中断子程序入口地址开始执行,直到返回指令RETI为止,这个过程称为中断处理(或中断服务)。中断服务子程序一般包括两部分内容,一是保护和恢复现场,二是处理中断源的请求。中断响应入口地址RETI中断处理INTT0:PUSHACC PUSHDPHPUSHDPLPUSHPSW
中断源服务
POPPSW
POPDPLPOPDPHPOPACCRETI保护现场恢复现场所谓现场是指中断发生时单片微机中存储单元、寄存器、特殊功能寄存器中的数据或标志位等。在89C51中,现场一般包括累加器A、工作寄存器R0~R7以及程序状态字PSW、DPTR等。现场保护一定要位于中断服务程序的前面。
在结束中断服务程序返回断点处之前要恢复现场,与保护现场的方法相对应。而恢复断点也是由硬件电路自动实现的,中断服务程序的最后一条指令必须是RETI指令。中断返回中断返回是指中断服务完后,计算机返回到原来暂停的位置(即断点),继续执行原来的程序。中断返回由专门的中断返回指令RETI来实现。中断响应中断返回中断返回RETI指令功能:把断点地址取出,送回到程序计数器PC中去。另外,它还通知中断系统已完成中断处理,将清除优先级状态触发器。特别注意:不能用RET指令代替RETI指令!中断响应中断返回中断处理过程示意图中断源发中断请求中断响应条件是否满足?中断是否受阻?
把PC断点地址压入堆栈
相应中断源的中断入口地址送入PC,转向中断服务程序NYYN
由硬件自动完成
关中断保护现场中断服务
开中断
关中断恢复现场
开中断中断返回断点地址由堆栈弹入PC保护现场和恢复现场的过程中不允许中断,以免现场遭到破坏。保护和恢复现场之后的开中断是为了允许有更高级中断打断此中断服务程序。中断服务程序硬件自动完成中断请求的撤除
CPU响应某中断请求后,在中断返回前,应该撤除该中断请求,否则会引起另一次中断。
定时器0或1溢出:CPU在响应中断后,硬件清除了有关的中断请求标志TFO或TF1,即中断请求是自动撤除的。
边沿激活的外部中断:CPU在响应中断后,也是用硬件自动清除有关的中断请求标志IE0或IE1。
串行口中断:CPU响应中断后,没有用硬件清除T1、R1,故这些中断不能自动撤除,而要靠软件来清除相应的标志。电平触发外部中断撤除方法较复杂。因为在电平触发方式中,CPU响应中断时不会自动清除IE1或IE0标志,所以在响应中断后应立即撤除INT0或INT1引脚上的低电平。
CPU对INT0和INT1引脚的信号不能控制,需在引脚外加硬件(如D触发器)使其自动撤销外部中断请求。电平激活的外部中断源中断标志的撤除 电平触发方式适合于外部中断输入以低电平输入且中断服务程序能清除外部中断请求源的情况。例如,并行接口芯片8255的中断请求线在接受读或写操作后即被复位,因此,以其去请求电平触发方式的中断比较方便。 边沿触发方式适合于以负脉冲形式输入的外部中断请求,如ADC0809的转换结束标志信号EOC为正脉冲,经反相后就可以作为80C51的中断输入。外部中断源的中断触发方式适用范围编写中断服务程序的技巧在中断服务程序入口处置一条无条件转移指令软件保护现场,以免现场信息丢失CPU响应完中断后,硬件自动清0中断请求标志,但串行口中断除外程序中可以禁止高级中断PUSH和POP应成对使用以RETI结尾中断系统初始化对IE、IP、TCON、SCON中的控制位进行赋值开相应中断源的中断允许位设定所有中断源的优先级若为外部中断,应规定中断触发方式练习:请写出外部中断1为低电平的中断系统初始化程序。解:采用位操作指令:SETBEA
SETBEX1
;开外部中断1SETBPX1
;令外部中断1高优先级CLRIT1;令外部中断1为电平触发采用字节操作指令:MOVIE,#84H
;开外部中断1ORLIP,#04H
;令外部中断1高优先级ANLTCON,#0FBH
;令外部中断1为电平触发89C51的外部中断源仅有两个,需要时可以扩展。扩展方法:利用定时器扩展中断加软件查询5.5外部中断扩展方法1、利用定时器扩展外部中断源方法:(1)把89C51的T0/T1做计数器使用;(2)计数初值设为FFFFH;(3)外部中断请求信号从P3.4或P3.5输入。当外部中断请求信号有效时,使计数器加1而溢出,向CPU发出中断请求。设某用户系统中已使用了两个外部中断源,并置定时器T1工作在模式2,作串行口波特率发生器用。现要求再增加一个外部中断源,并由P1.0输出一个5KHz的方波。Fosc=12MHz。分析:目的:1)增加一个外部中断;2)使P1.0输出一个方波。条件:1)两个外部中断源已被使用2)定时器T1已用于串行口波特率发生器因此:可利用定时/计数器T0,使之工作在模式3,1)利用TL0扩展外部中断源2)利用TH0作定时器使用,输出方波
设置初值:1)TL0=0FFH2)因为输出方波f=5kHz,故方波周期为200us,用TH0产生100us的定时,故TH0的初值X=256–(定时时间/机器周期)=256-(100us*晶振频率/12)=156设定T0工作方式,TMOD,TCON.程序:
MOVTMOD,#27H;T0:模式3,计数方式;T1:模式2,定时方式
MOVTL0,#0FFH;一旦加1,马上溢出,申请中断
MOVTH0,#156;TH0初值
MOVTH1,#data;根据波特率要求而定
MOVTL1,#data
MOVTCON,#55H;01010101MOVIE,#9FH;开放全部中断TL0INT:MOVTL0,#0FFH;TL0重新赋值…..
RETITH0INT:MOVTH0,#156;TH0重新赋值
CPLP1.0RETI
2、中断加查询扩展外部中断源各个外中断经过“线或”接入到INT0或INT1上,高产生中断请求。
P1.0~P1.3用于查询。例
如右图所示的中断电路可实现系统的故障显示。当系统的各部分正常工作时,4个故障源的输入均为低电平,显示灯全不亮。当有某个部分出故障时,则相应的输入线由低电平变为高电平,相应的发光二极管点亮。程序如下:
ORG0000HSJMPMAINORG0003HSJMPINTERORG0030HMAIN:ANLP1,#55HSETBEX0SETBI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电话用耳机市场发展现状调查及供需格局分析预测报告
- 纸牌游戏器具市场环境与对策分析
- 滑雪板专用袋产业深度调研及未来发展现状趋势
- 矫形护具用衬垫产业深度调研及未来发展现状趋势
- 电力业扩报装课件
- 登山套具产业规划专项研究报告
- 煤气机产业规划专项研究报告
- 眼袋修护霜市场洞察报告
- 电子烟用充电器市场洞察报告
- 第六单元 【A卷·提升卷】(含答案解析)(安徽专用)
- 马克思主义新闻观教程 第二版 课件 第七章 列宁论社会主义新闻政策与苏维埃传媒
- 安徽省江南十校2023-2024学年高一上学期12月分科诊断模拟联考数学试题
- 2024年02月辽宁大连理工大学会计核算中心自聘人员招考聘用笔试历年难、易错点荟萃答案带详解附后
- 2024年快递员技能竞赛理论知识考试题库(500题)
- 生物统计与试验设计课件
- 2024年高级经济师之工商管理题库(历年真题)
- 《linux操作系统应用》课程标准
- 《公务员回避制度》课件
- 全市体育中考成绩分析报告
- 四川省凉山州西昌市2023-2024学年四年级上学期期末数学试卷
- 康复护理的历史发展
评论
0/150
提交评论