版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章中断系统
5.1微机的输入/输出方式5.2中断的概念5.389C51中断系统结构及中断控制5.4中断处理过程5.5外部中断扩展方法5.6中断程序举例1
5.1微机的输入/输出方式
单片机系统的运行同其他微机系统一样,CPU不断地与外部输入/输出设备交换信息。CPU与外部设备交换信息通常有以下几种方式:
①
程序控制传送方式,指用输入/输出指令,来控制信息传输的方式,是一种软件控制方式。根据程序控制的方法,分为无条件传送方式和查询(条件)传送方式。
②
中断传送方式。
③
直接存储器存取(DMA)方式。什么是外部设备?25.1.1无条件传送方式
这种数据传送方式有些类似于CPU和存储器之间的数据传送,即CPU总是认为外设在任何时刻都是处于“准备好”的状态。因此,这种传送方式不需要交换状态信息,只需在程序中加入访问外设的指令,数据传送便可以实现,但此种方法很少使用。适用于那些能随时读写的设备。
3输入状态信息准备好?传送数据5.1.2查询(条件)传送方式查询传送方式:通过查询外设的状态信息,确信外设已处于“准备好”,计算机才发出访问外设的指令,实现数据的传送。在输入时,需要查询外设的输入数据是否准备好;当数据准备好后,发出一个选通信号,一边把数据送入锁存器,一边使D触发器为“1”,给出“准备好”的状态信号。而数据与状态必须由不同的端口输至CPU数据总线。45.1.2查询(条件)传送方式在输出时,在输出时CPU也必须了解外设的状态,看外设是否有空查询方式下CPU利用率低(程序循环等待),接口需向CPU提供查询状态。适用于CPU不太忙,传送速度要求不高的场合。55.1.3直接存储器存取(DMA)方式
DMA:DirectMemoryAccess外设利用专用的接口(DMA控制器)直接与存储器进行高速数据传送,并不经过CPU(CPU不参与数据传送工作),总线控制权不在CPU处,而由DMA控制器控制。其特点是接口电路复杂,硬件开销大。大批量数据传送速度极快。适用于存储器与存储器之间、存储器与外设之间的大批量数据传送的场合。同其他计算机系统一样,单片机系统还有另一种非常重要的数据输入/输出方式——中断方式。
6
5.2中断的概念CPU正在执行主程序,突然,被意外事情打断,转去执行新程序。CPU执行新程序结束后,又回到主程序中继续执行。这样的过程就叫中断某人看书 执行主程序
中断过程电话铃响
中断信号INTx=0 中断请求暂停看书 暂停执行主程序中断响应书中作记号当前PC值入栈 保护断点电话谈话
执行中断程序 中断服务继续看书 返回主程序 中断返回7中断系统中的几个基本概念:中断源:能引起中断的事件主程序:中断发生前CPU正在执行的的程序代码断点:中断发生时,主程序被断开的位置中断服务子程序:处理随机事件的程序中断系统:在微处理器中,能够实现中断响应、中断处理中断返回的功能部件8中断流程图执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回9
对突发事故,做出紧急处理。根据现场随时变化的各种参数、信息,做出实时监控。
CPU与外部设备并行工作,以中断方式相联系,提高工作效率。解决快速CPU与慢速外设之间的矛盾。在多项外部设备同时提出中断请求情况下,CPU能根据轻重缓急(优先级)响应外设的中断请求。中断的作用:10
5.389C51中断结构及中断控制
89C51有5个中断源(89C52有6个),4个中断控制寄存器,2个优先级,可实现二级中断嵌套。11中断是计算机的一个重要功能。采用中断技术能实现以下的功能:
①
分时操作 可以使CPU和多个外设同时工作,并分时为各外设提供服务,从而提高了CPU的利用率和输入和输出的速度②
实时处理 当计算机用于实时控制时,请求CPU提供服务时随机发生的。有了中断系统,CPU就可以立即响应并加以处理③
故障处理。 有了中断系统,当出现故障时,CPU可及时转去执行故障处理程序,自行处理故障而不必停机。12中断源:能发出中断请求信号的各种事件89C51中断系统的五个中断源为:外部中断2个:①INT0:外部中断0请求,由P3.2引脚输入②INT1:外部中断1请求,由P3.3引脚输入内部中断3个:③T0:定时器/计数器0溢出中断请求,无引入端。④T1:定时器/计数器1溢出中断请求,无引入端。⑤TXD/RXD:串行口中断请求,当串行口完成一帧数据的发送或接收时,便请求中断,无引入端。每个中断源都对应一个中断请求标志位,他们设置在特殊功能寄存器TCON和SCON中。5.3.189C51中断源1389C51中断系统有以下四个特殊功能寄存器:1)中断请求标志
定时控制寄存器TCON(用六位)串行口控制寄存器SCON(用二位)2)中断允许控制
中断允许寄存器IE3)中断优先级控制中断优先级寄存器IP
其中,TCON和SCON只有一部分位用于中断控制。通过对以上各特殊功能寄存器的各位进行置位或复位等操作,可实现各种中断控制功能。
5.3.2中断控制
14TF1——定时器/计数器T1的溢出中断请求标志位。当CPU响应中断时,硬件将自动对TF1清0。TF0——(TimeoverflowFlag)定时器/计数器T0的溢出中断请求标志位。含义与TF1相同。IE1——(InterruptEdgeflag)外部中断1的中断请求标志。当CPU响应该中断请求时,由硬件使IE1清0。IT1——外部中断1的中断触发方式控制位。
IE0——外部中断0的中断请求标志。其含义与IE1相同。
IT0——(InterruptTypeControl)外部中断0的中断触发方式控制位。其含义与IT1同。1、TCON中的中断标志位TF1TF0IE1IT1IE0IT0TCON(88H)15IT1/0(InterruptTypeControlbit)IT1/0=0:电平触发方式,CPU每个机器周期S5P2期间采样外部中断请求引脚,若引脚为低电平,则使IE1置1;为高电平使IE1清0。IT1/0=1:边沿触发方式,在连续的2个机器周期内,若外部中断1/0的中断请求为先高后低(下降沿),则使IE1置1。当CPU响应该中断时,由硬件使IE1清0。16SCON为串行口控制寄存器,其低2位锁存串行口的接收中断和发送中断标志RI和TI。
①TI——串行口发送中断请求标志。CPU将一个数据写入发送缓冲器SBUF时,就启动发送。每发送完一帧串行数据后,硬件置位TI。但CPU响应中断时,并不清除TI,必须在中断服务程序中由软件对TI清0。
②RI——串行口接收中断请求标志。在串行口允许接收时,每接收完一个串行帧,硬件置位RI。同样,CPU响应中断时不会清除RI,必须用软件对其清0。
2.SCON中的中断标志位
TIRISCON98H172)中断允许控制
89C51对中断源的开放或屏蔽是由中断允许寄存器IE控制的。中断允许寄存器IE对中断的开放和关闭实现两级控制。所谓两级控制,就是有一个总的开关中断控制位EA(IE.7),当EA=0时,屏蔽所有的中断申请,即任何中断申请都不接受;当EA=1时,CPU开放中断,但五个中断源还要由IE的低5位的各对应控制位的状态进行中断允许控制。18
IE中各位的含义如下:
①
EA——(EnableAllInterrupt)中断允许总控制位②
ES——(EnabletheSerialPort)串行口中断允许位。③
ET1—(EnabletheTimer)定时器/计数器T1的溢出中断允许位。④
EX1——(EnabletheExternalInterrupt)外部中断1中断允许位。⑤ET0——定时器/计数器T0的溢出中断允许位。⑥
EX0——外部中断0中断允许位。该位是“1”时,为允许中断,该位是“0”时,为禁止中断EAESET1EX1ET0EX0IE
A8H19例5-1:假设允许片内定时器/计数器中断,禁止其他中断。试根据假设条件设置IE的相应值。
解:(a)用字节操作指令MOVIE,#8AH或MOVA8H,#8AH;#8AH=10001010B(b)用位操作指令SETBET0;定时器/计数器0允许中断SETBET1;定时器/计数器1允许中断SETBEA;CPU开中断2089C51有两个中断优先级。每一个中断请求源均可编程为高优先级中断或低优先级中断。各位的含义如下:①
PS——串行口中断优先级控制位。②
PT1——定时器/计数器T1中断优先级控制位。③
PX1——外部中断1中断优先级控制位。④
PT0——定时器/计数器T0中断优先级控制位。⑤
PX0——外部中断0中断优先级控制位。
IP
B8H该位是“1”时,为高级优先级,该位是“0”时,为低级优先级3)中断优先级(priority)控制PSPT1PX1PT0PX021/INT0中断
T0溢出中断
/INT1中断
T1溢出中断串口中断
高低出厂前已由厂家固化顺序——事先约定同一级中的5个中断源的优先顺序是:22中断优先原则:(概括为四句话)1、低级不打断高级2、高级不睬低级3、同级不能打断4、同级、同时中断,事先约定。23低级中断请求响低应中级断响高应中级断序主回返程回返低中级断
CPU执行CPU执行低级CPU执行高级主程序中断服务程序中断服务程序图5-9二级中断嵌套24例5-2:设89C51的片外中断为高优先级,片内中断为低优先级。试设置IP相应值。
解:(a)用字节操作指令MOVIP,#05H或MOV0B8H,#05H;#05H=00000101B(b)用位操作指令SETBPX0SETBPX1CLRPSCLRPT0CLRPT125中断源触发方式中断请求标志位中断允许中断优先级外部中断0(INT0)IT0电平/边沿IE0硬件置1,边沿-硬件清0EX0PX0外部中断1(INT1)IT1电平/边沿IE1硬件置1,硬件清0EX1PX1定时器/计数器0(T0)无TF0硬件置1,硬件清0ET0PT0定时器/计数器1(T1)无TF1硬件置1,硬件清0ET1PT1串行口中断TXD无TI硬件置1,软件清0ESPSRXD无RI硬件置1,软件清026中断处理过程可分为三个阶段,即中断响应、中断处理和中断返回。在中断响应时,首先应在堆栈中保护主程序的断点地址,以便中断返回时,执行RETI指令能将断点地址从堆栈中弹出到PC,正确返回。由此可见,CPU执行的中断服务程序如同子程序一样,因此又被称作中断服务子程序。但两者的区别在于,子程序是用LCALL指令来调用的,而中断服务子程序是通过中断请求实现的。所以,在中断服务子程序中也存在保护现场、恢复现场的问题。
5.4中断处理过程
27图5-10中断处理的大致流程保护现场为外设服务恢复现场主程序NKN+mK+1返回中断处理28
一、中断响应条件
CPU响应中断的条件有:
①
有中断源发出中断请求。
②
中断总允许位EA=1,即CPU开中断。
③
申请中断的中断源的中断允许位为1,即中断没有被屏蔽。
④
无同级或更高级中断正在被服务。
⑤
当前的指令周期已经结束。
⑥
若现行指令为RETI或者是访问IE或IP指令时,该指令以及紧接着的另一条指令已经执行完。
5.4.1中断响应
29
二、中断响应操作过程(假设已使某中断请求标志置1)
(1)先使相应优先级状态触发器置1;(2)执行一个硬件子程序的调用(LCALL),1)硬件清零相应中断请求标志(TI、RI除外)2)将当前PC内容压入堆栈——保护断点;3)将中断服务子程序入口地址送PC——转移。
30各中断源与对应的矢量地址中断源中断矢量外部中断0(INT0)0003H定时器T0中断000BH外部中断1(INT1)0013H定时器T1中断001BH串行口中断0023H31三、中断响应时间若M1周期的S5P2前某中断生效,在S5P2期间置位相应的中断标志位;M2恰逢指令的最后一个机器周期,且该指令不是RETI或访问IE、IP的指令,M2的S6查询中断标志。于是,M3的S1开始中断处理,M3和M4便可以执行硬件LCALL指令,M5周期将进入了中断服务程序。80C51的中断响应时间(从标志置1到进入相应的中断服务),至少要3个完整的机器周期,只有一个中断源时响应时间3~8周期
3T:中断请求标志查询:1T产生、执行LCALL:2T8T:执行RET/RETI(访问IP/IE):2T主程序中MUL/DIV指令:4T执行LCALL指令:2T321.定时器/计数器中断请求的撤销
定时器/计数器中断请求被响应后,硬件会自动把中断请求标志位(TF0或TF1)清0,所以定时器/计数器中断请求是自动撤销的。2.外部中断请求的撤销
(1)边沿触发方式外部中断请求的撤销包括中断标志位清0和外部中断信号的撤销。中断标志位(IE0或IE1)在中断请求被响应后,硬件会自动清0;外部中断请求信号由于边沿信号过后也就消失。所以边沿触发方式外部中断请求是自动撤销的。四、中断请求的撤销33包括中断标志位清0和外部中断信号的撤销。中断标志位(IE0或IE1)在中断请求被响应后,硬件会自动清0,所以外部中断请求标志位是自动撤销的。但中断请求信号可能继续存在,在中断服务之后,又会引起新的中断。可以采用下图解决。D触发器的直接置位端SD:ORLP1,#01H;P1输出高电平ANLP1,#0FEH;P1输出低电平直接置位端(2)电平触发方式外部中断请求的撤销34中断标志位(RI或TI)在中断请求被响应后,CPU无法知道是发送中断还是接收中断,还需要测试这两个中断标志位的状态,以判定是发送还是接收中断,所以串行口中断请求只能使用软件方式撤销,即用指令清除串行口中断标志位。
CLRTICLTRI3.串行口中断请求的撤销35从中断服务程序的第一条指令开始到返回指令为止,这个过程称为中断处理或中断服务。中断处理包括两部分内容:保护现场
现场通常有PSW、工作寄存器和SFR等。如果在中断服务程序中要用这些寄存器,则在进入中断服务之前应将它们的内容保护起来(保护现场),在中断结束、执行RETI指令前恢复现场。中断源服务中断服务针对中断源的具体要求进行相应的处理。
5.4.2中断处理
36各中断源的入口矢量地址之间只隔8个单元,一般的中断服务程序是容纳不下的,因而最常用的方法是在中断入口地址单元处存放一条无条件转移指令,转至存储器其他的任何空间。若在执行当前中断程序时禁止更高优先级中断,应用软件关闭CPU中断或屏蔽更高级中断源的中断,在中断返回前再开放中断。在保护现场和恢复现场时,为了不使现场信息受到破坏或造成混乱,一般应关闭CPU中断,使CPU暂不响应新的中断请求。这样,在编写中断服务程序时,应注意在保护现场之前要关闭中断,在保护现场之后若允许高优先级中断嵌套,则应开中断。同样,在恢复现场之前应关闭中断,恢复后再开中断。编写中断程序时应注意:375.4.3中断返回(RETI)(1)使相应优先级状态触发器清0。(2)从堆栈中弹出栈顶的两个字节内容送PC——恢复断点。(3)CPU接着中断处继续执行原程序。
注意:不能用RET指令代替RETI指令。在中断服务程序中PUSH指令与POP指令必须成对使用,否则不能正确返回断点。38在实际应用中,若外部中断源有两个以上时,就需要扩展外部中断源。本章介绍两种扩展外部中断源的方法。5.5.1利用定时器扩展外部中断源
89C51单片机有两个定时器,都具有两个内部中断标志和外部计数输入引脚。当定时器设置为计数方式时,计数初值设置为满量程FFH。一旦外部信号从计数器引脚输入一个负跳变信号,计数器加1产生溢出中断,从而可以转去处理该外部中断源的请求。因此,我们可以把外部中断源作为边沿触发输入信号,接至定时器的T0(P3.4)或T1(P3.5)引脚上;该定时器的溢出中断标志及中断服务程序作为扩充外部中断源的标志和中断服务程序。5.5外部中断扩展方法
39在实际应用中,若外部中断源有两个以上时,就需要扩展外部中断源。介绍两种扩展外部中断源的方法。5.5.1利用定时器扩展外部中断源
解:将定时器T0设定为方式2(自动恢复计数初值),TH0和TF0的初值均设置为FFH,允许T0中断,CPU开放中断MOV TMOD,#06H MOV TH0,#0FFH MOV TL0,#0FFH SETB TR0 SETB ET0 SETB EAT0引脚每输入一个负跳变,TF0都会置1,向CPU请求中断,T0脚相当于边沿触发的外部中断源输入线。5.5外部中断扩展方法
405.5.2中断加查询扩展中断源
应把INTx设置为电平触发方式;在中断服务程序中进行扩展中断源的查询;查询顺序就是扩展中断源的优先级顺序。80C5141有关中断服务程序的片断如下:ORG0003HLJMPINTRP;中断服务程序入口┇ORG0100HINTRP:CLREA PUSHPSW; PUSHASETBEAJBP1.0,DV1JBP1.1,DV2JBP1.2,DV3JBP1.3,DV4EXIT:POPAPOPPSWRETIDV1:…
装置1的中断服务程序AJMPEXTI
DV2:…装置2的中断服务程序AJMPEXTIDV3:…装置3的中断服务程序AJMPEXTIDV4:…装置4的中断服务程序AJMPEXTI
本程序是否有错?42
5.6.1主程序
1.主程序的起始地址
89C51系列单片机复位后,(PC)=0000H,而0003H~002BH分别为各中断源的入口地址。所以,编程时应在0000H处写一跳转指令(一般为长条跳转指令),使CPU在执行程序时,从0000H跳过各中断源的入口地址。主程序则是以跳转的目标地址作为起始地址开始编写,一般从0030H开始。0000HLJMP00300030H主程序5.6中断程序举例43
2.主程序初始化内容
所谓初始化,是对将要用到的89C51系列单片机内部部件或扩展芯片进行初始工作状态设定。89C51系列单片机复位后,特殊功能寄存器IE,IP的内容均为00H,所以应对IE,IP进行初始化编程,以开放CPU中断,允许某些中断源中断和设置中断优先级等。441、中断服务程序的起始地址
当CPU接收到中断请求信号并予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入相应的中断服务程序入口处执行。89C51系列单片机各中断入口地址相距很近(仅8个字节),如果中断服务程序的指令代码少于8个字节,则可从规定的中断服务程序入口地址开始,直接编写中断服务程序;若中断服务程序的指令代码大于8个字节,则应在相应的入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的起始地址进行编程。5.6.2中断服务程序
45
2.中断服务程序编制中的注意事项
①视需要确定是否保护现场。②及时清除那些不能被硬件自动清除的中断请求标志,以免产生错误的中断。③中断服务程序中的压栈(PUSH)与弹栈(POP)指令必须成对使用,以确保中断服务程序的正确返回。④主程序和中断服务程序之间的参数传递与主程序和子程序的参数传递方式相同。46例:设计中断程序要求每次按动按键,使外接发光二极管LED改变一次亮灭状态。解:1、跳变触发:每次跳变引起一次中断请求。 ORG 0000H AJMPMAIN ORG 0003H;中断入口 AJMP PINT0 ORG 0100H ;主程序MAIN:MOVSP,#40;设栈底 SETB EA ;开总允许开关 SETB EX0 ;开INT0中断 SETB IT0 ;负跳变触发中断H: SJMP H;执行其它任务 ORG 0200H;中断服务程序PINT0:CPLP1.0 ;改变LED RETI ;返回主程序单片机INT0P1.01+5V47(1)软件等待按键释放(撤消低电平);(2)硬件清除中断信号(标志位)。 ORG 0000H;复位入口
AJMPMAIN ORG 0003H ;中断入口
AJMP PINT0 ORG 0100H ;主程序MAIN:MOVSP,#40H;设栈底 SETB EA ;开总允许开关 SETB EX0 ;开INT0中断
CLR IT0 ;低电平触发中断H: SJMP H ;执行其它任务 ORG 0200H;中断服务程序PINT0:CPLP1.0 ;改变LEDWAIT:JNB P3.2,WA;等按键释放 RETI ;返回主程序单片机INT0P1.01+5V2、电平触发:可避免一次按键引起多次中断响应。48ORG 0000H ;复位地址LJMP STAT ;转初始化ORG 0003H ;中断入口地址LJMP INT ;转中断服务程序ORG0100H ;初始化程序首地址STAT:MOVSP,#60HSETBIT0 ;置边沿触发方式MOVIP,#01H ;置高优先级MOVIE,#81H ;开中MOV30H,#0 ;里程计数器清0MOV31H,#0 ;MOV32H,#0 ;SJMP$ ;转主程序ORG0200H ;中断服务子程序首地址INT:PUSHAcc ;保护现场 PUSHPSW ; MOVA,30H ;读低8位计数器 ADDA,#2 ;低8位计数器加2m MOV30H,A ;回存 CLRA ; ADDCA,31H ;中8位计数器加进位 MOV31H,A ;回存 CLRA ; ADDCA,32H ;高8位计数器加进位 MOV32H,A ;回存 PUSHPSW ;恢复现场 PUSHAcc ; RETI ;中断返回【例】出租车计价器计程方法是车轮每运转一圈产生一个负脉冲,从外中断(P3.2)引脚输入,行驶里程为轮胎周长×运转圈数,设轮胎周长为2m,试实时计算出租车行驶里程(单位米),数据存32H、31H、30H。49
例5-3:如图5-12所示,将P1口的P1.4~P1.7作为输入位,P1.0~P1.3作为输出位。要求利用89C51将开关所设的数据读入单片机内,并依次通过P1.0~P1.3输出,驱动发光二极管,以检查P1.4~P1.7输入的电平情况(若输入为高电平则相应的LED亮)。现要求采用中断边沿触发方式,每中断一次,完成一次读/写操作。
解:如图所示,采用外部中断0,中断申请从INT0输入,并采用了去抖动电路。当P1.0~P1.3的任何一位输出0时,相应的发光二极管就会发光。当开关S1来回拨动一次,将产生一个下降沿,发出中断请求。中断服务程序的矢量地址为0003H。50图5-12外部中断实验51源程序如下:
ORG0000HAJMPMAIN;上电,转向主程序ORG0003H;外部中断0入口地址AJMPINSER;转向中断服务程序ORG0030H;主程序MAIN:SETBEX0;允许外部中断0中断SETBIT0;选择边沿触发方式SETBEA;CPU开中断HERE:SJMPHERE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 05J909《工程做法》(标准图集)
- 阳江2024年广东阳江市消防救援支队第十三批政府专职消防员(江城)招录笔试历年典型考点(频考版试卷)附带答案详解版
- 酱油品牌营销案例分析考核试卷
- 水资源优化配置策略-第1篇-洞察分析
- 微生物资源利用-洞察分析
- 物体残留与口腔癌风险-洞察分析
- 异步寄存器研究进展-洞察分析
- 音乐制作产业链分析-洞察分析
- 财务部门职能职责
- 移动宽带设备批发动态-洞察分析
- 2025年林权抵押合同范本
- 智能检测与监测技术-智能建造技术专02课件讲解
- 2025蛇年一年级寒假作业创意与寓意齐【高清可打印】
- 多系统萎缩鉴别及治疗
- 设备的使用和维护管理制度模版(3篇)
- 浙江省宁波市慈溪市2023-2024学年高三上学期语文期末测试试卷
- 2024年广东省公务员录用考试《行测》真题及解析
- 辅导员年度述职报告
- 七年级历史试卷上册可打印
- 2024-2030年全球及中国洞察引擎行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 《东南亚经济与贸易》习题集、案例、答案、参考书目
评论
0/150
提交评论