《特殊功能寄存器中的标志幻灯片.ppt》由会员分享,可在线阅读,更多相关《特殊功能寄存器中的标志幻灯片.ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章 MCS-51单片机的中断 特殊功能寄存器中的标志第1页,共26页,编辑于2022年,星期日5.1 中中 断断 的的 概概 述述 1.中断中断 中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因,而必须中止原程序的执行,转去执行相应的处理程序,待处理结束之后,再回来继续执行被中止的原程序的过程。采用了中断技术后的计算机,可以解决CPU与外设之间速度匹配的问题,使计算机可以及时处理系统中许多随机的参数和信息,同时,它也提高了计算机处理故障与应变的能力。第2页,共26页,编辑于2022年,星期日 2.中断源中断源 中断源是指在计算机系统中向CPU发出中断请求的来源,中断可以
2、人为设定,也可以是为响应突发性随机事件而设置。通常有I/O设备、实时控制系统中的随机参数和信息故障源等。第3页,共26页,编辑于2022年,星期日 3.中断优先级中断优先级 中断优先级越高,则响应优先权就越高。当CPU正在执行中断服务程序时,又有中断优先级更高的中断申请产生,这时CPU就会暂停当前的中断服务转而处理高级中断申请,待高级中断处理程序完毕再返回原中断程序断点处继续执行,这一过程称为中断嵌套。http:/第4页,共26页,编辑于2022年,星期日 4.中断响应的过程中断响应的过程 (1)在每条指令结束后,系统都自动检测中断请求信号,如果有中断请求,且CPU处于开中断状态下,则响应中断
3、。(2)保护现场,在保护现场前,一般要关中断,以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。(3)中断服务,即为相应的中断源服务。(4)恢复现场,用堆栈指令将保护在堆栈中的数据弹出来,在恢复现场前要关中断,以防止现场被破坏。在恢复现场后应及时开中断。(5)返回,此时 CPU将推入到堆栈的断点地址弹回到程序计数器,从而使CPU继续执行刚才被中断的程序。第5页,共26页,编辑于2022年,星期日5.2 MCS-51中断系统中断系统图图5.1 MCS-51中断系统结构框图中断系统结构框图 第6页,共26页,编辑于2022年,星期日5.2.1 中断源中断源 表表 5.1 8
4、051 中中 断断 源源第7页,共26页,编辑于2022年,星期日1.特殊功能寄存器特殊功能寄存器TCON中的标志中的标志 TF1TR1TF0TR0IE1IT1IE0IT0(MSB)(LSB)图 5.2 TCON格式 第8页,共26页,编辑于2022年,星期日2.特殊功能寄存器特殊功能寄存器SCON 图图 5.3 SCON格式 SM0SM1SM2RENTB0RB0TIRI(MSB)LSB第9页,共26页,编辑于2022年,星期日5.2.2 中断控制中断控制 1.中断允许控制中断允许控制 MCS-51单片机有 5个(8052有 6个)中断源,为了使每个中断源都能独立地被允许或禁止,以便用户能灵活
5、使用,它在每个中断信号的通道中设置了一个中断屏蔽触发器。只有该触发器无效,它所对应的中断请求信号才能进入CPU,即此类型中断开放。否则,即使其对应的中断标志位置1,CPU也不会响应中断,即此类型中断被屏蔽了。同时CPU内还设置了一个中断允许触发器,它控制CPU能否响应中断。第10页,共26页,编辑于2022年,星期日图 5.4 IE格式 EAXET2ESET1EX1ET0EX0(MSB)(LSB)第11页,共26页,编辑于2022年,星期日2.中断优先级中断优先级 XXPT2PSPT1PX1PT0PX0(MSB)(LSB)图 5.5 IP的格式 第12页,共26页,编辑于2022年,星期日表
6、5.2 同级内第二优先级次序 第13页,共26页,编辑于2022年,星期日 例如,某软件中对寄存器IE、IP设置如下:MOV IE,8FH MOV IP,06H 则此时该系统中:CPU中断允许;允许外部中断 0、外部中断 1、定时器 /计数器 0、定时器 /计数器1提出的中断申请;允许中断源的中断优先次序为:定时器 /计数器 0外部中断 1外部中断 0定时器/计数器 1。第14页,共26页,编辑于2022年,星期日5.2.3 中断响应中断响应 1.中断响应的条件中断响应的条件 (1)同级或高优先级的中断已在进行中;(2)当前的机器周期还不是正在执行指令的最后一个机器周期(换言之,正在执行的指令
7、完成前,任何中断请求都得不到响应);(3)正在执行的是一条 RETI或者访问特殊功能寄存器 IE或 IP的指令(换言之,在 RETI或读写 IE或 IP之后,不会马上响应中断请求,而至少执行一条其它指令之后才会响应)。第15页,共26页,编辑于2022年,星期日 2.中断响应过程中断响应过程 单片机一旦响应中断请求,就由硬件完成以下功能:(1)根据响应的中断源的中断优先级,使相应的优先级状态触发器置 1;(2)执行硬件中断服务子程序调用,并把当前程序计数器PC的内容压入堆栈;(3)清除相应的中断请求标志位(串行口中断请求标志 RI和 TI除外);http:/ (4)把被响应的中断源所对应的中断
8、服务程序的入口地址(中断矢量)送入PC,从而转入相应的中断服务程序。第16页,共26页,编辑于2022年,星期日表 5.3 中断服务程序入口地址表 第17页,共26页,编辑于2022年,星期日 例如,现有外部中断 1 提出申请,且主程序中有R0、R1、DPTR、累加器A需保护,则编制程序应为:ORG 0000H AJMP MAIN ORG 0013H LJMP INT1 ORG 0100H MAIN:;主程序 ORG 1000H 第18页,共26页,编辑于2022年,星期日INT1:PUSH ACC ;中断服务程序 PUSH DPH PUSH DPL PUSH 0 PUSH 1 POP 1 P
9、OP 0 POP DPL POP DPH POP ACC RETI 第19页,共26页,编辑于2022年,星期日 编程中应注意:(1)在 0000H放一条跳转到主程序的跳转指令,这是因为 MCS-51单片机复位后,PC的内容变为 0000H,程序从 0000H 开始执行,紧接着 0003H是中断程序入口地址,故在此中间只能插入一条转移指令;(2)响应中断时,先自动执行一条隐指令“LCALL 0013H”,而 0013H至 001BH(定时器 1 溢出中断入口地址)之间可利用的存储单元不够,故放一条无条件转移指令。(3)在中断服务程序的末尾,必须安排一条中断返回指令RETI,使程序自动返回主程序
10、。http:/ 第20页,共26页,编辑于2022年,星期日5.3 中断系统的应用中断系统的应用 例例 1 单步操作的中断实现。把一个外部中断(设为INT0)设置为电平激活方式。其中断服务程序的末尾写上如下几条指令:JNB P3.2,$;在INT0变高前原地等待(死循环)JB P3.2,$;在 INT0变低前原地等待(死循环)RETI ;返回并执行一条指令 第21页,共26页,编辑于2022年,星期日 现在,若INT0保持低电平,且允许INT0中断,则CPU就进入外部中断 0 服务程序,由于有上述几条指令,它就会停在 JNB处,原地等待。当INT0 端出现一个正脉冲(由低到高,再到低)时,程序
11、就会往下执行,执行RETI后,将返回主程序,往下执行一条指令,然后又立即响应中断,以等待INT0端出现的下一个正脉冲。这样在INT0端每出现一个正脉冲,主程序就执行一条指令,实现了单步执行的目的,要注意的是,这个正脉冲的高电平持续时间不小于 3个周期,以确保 CPU能采集到高电平值。第22页,共26页,编辑于2022年,星期日 例例 2 多中断源。多中断源。MCS-51 单片机有两个外部中断输入端,当有 2 个以上中断源时,它的中断输入端就不够了。此时,可以采用中断与查询相结合的方法来实现。可以使每个中断源都接在同一个外部中断输入端上,同时利用输入口线作为多中断源情况下各中断源的识别线。第23
12、页,共26页,编辑于2022年,星期日 图 5.6 多中断源 第24页,共26页,编辑于2022年,星期日ORG 0003H LJMP INT0INT0:PUSH PSW PUSH ACC JB P0.7,DV1 JB P0.6,DV2 JB P0.5,DV3 JB P0.4,DV4GOBACK:POP ACC POP PSW RETI DV1:http:/ ;装置1中断服务程序 第25页,共26页,编辑于2022年,星期日 AJMP GOBACKDV2:;装置2中断服务程序 AJMP GOBACKDV3:;装置3中断服务程序 AJMP GOBACKDV4:;装置4中断服务程序 AJMP GOBACK 第26页,共26页,编辑于2022年,星期日