第四章 中断与定时(新)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Welcometostudy物理系第四章MSC-51系统的功能部件第五章中断与定时内容提要:§4-1中断§4-2定时/计数器§4-3串行通信接口§4-1中断一、概述与上对比,单片机中也有同样的问题。CPU暂停正在执行的程序的执行,转而为紧急事件服务(执行中断服务子程序),并在服务完后自动返回原程序继续执行的过程就叫中断1、中断的定义举例:某同学正在教室写作业,忽然被人叫出去,回来后,继续写作业。这就是生活中中断的例子。中断的过程:中断申请:CPU正常执行某一程序时,突然发生了紧急事件。则此紧急事件产生一个电信号,向CPU提出“中断请求”(InterruptRequest)。中断响应:CPU一旦检测到并响应该申请,便自动将“断点”地址入栈保护,然后转入对应的中断服务程序执行。(InterruptAcknowledge)中断返回:中断服务子程序执行完毕,从堆栈中取出“断点”到PC中,程序又转回原先执行的程序继续往下正常执行。(InterruptReturn)1)对突发事故,做出紧急处理。2)根据现场随时变化的各种参数、信息,做出实时监控。3)CPU与外部设备并行工作,以中断方式相联系,提高工作效率。4)解决快速CPU与慢速外设之间的矛盾5)在多项外部设备同时提出中断请求情况下,CPU能根据轻重缓急响应外设的中断请求。2、中断的作用:对于MCS-51单片机中断系统的组成可以用一句话来讲,叫做:“五源中断,两级管理”中断源通常有以下几种:①、外部设备中断源:用于外部I/O设备和CPU之间的实时数据传送。要求外部设备在输入/输出完一个数据时能自动产生一个“中断请求”电信号。如:串行中断、键盘中断、打印机中断等。②、控制对象中断源:用于实时控制系统。被控对象用作中断源,要求CPU及时采集系统的控制参量、越限参数以及要求发送或接收数据。③、故障中断源:用于出错、故障等紧急处理。如除数为0、掉电处理等。④、定时脉冲中断源:定时/计数器的溢出中断。用于定时或计数外部事件的发生次数。3、中断请求源(“五源中断”)中断源是指起中断原因的设备或部件,或发出中断请求信号的源泉。通常有I/O设备、实时控制系统中的随机参数和信息故障源等。五个中断源:入口地址外部中断0(/INT0)0003HT0溢出中断000BH外部中断1(/INT1)0013HT1溢出中断001BH串口中断0023H①、可屏蔽中断:是指CPU可以控制的一类中断。CPU对INT中断请求输入线上输入的中断请求可以响应,也可以屏蔽掉。这种控制可以通过中断控制指令来实现。MCS-51具有可屏蔽中断功能。②、非屏蔽中断:CPU对NMI中断输入线上来的中断请求是不可屏蔽(或控制)的,一旦发生,CPU必须响应。如:Z80系列。③、软件中断:软件中断是指人们可以通过相应的中断指令使CPU响应中断,CPU只要执行这种指令就转入相应中断服务程序执行,以完成相应的中断功能。即中断源为软件指令。如:Intel8088\8086等CPU。4、中断分类5、中断嵌套①、中断优先级:一个CPU总会有若干中断源,可以接收若干个中断源发出的中断请求。但在同一瞬间,CPU只能响应一个中断请求,CPU为了避免在同一瞬间因响应若干个中断源的中断请求而带来的混乱,就必须给每个中断源的中断请求赋一个特定的中断优先级,以便CPU先响应优先级高的中断请求,然后再逐个响应中断优先级次高和次低的中断请求。②、中断嵌套:在某一瞬间,CPU因响应某一中断源的中断请求而正在执行它的中断服务程序时,若CPU此时的中断是开放的,那它必然可以把正在执行的中断服务程序暂停下来转而响应和处理中断优先权更高的中断源的中断请求,等到处理完后再转回来继续执行原来的中断服务程序。这就是中断嵌套。③、中断嵌套的先决条件:在被嵌套的中断服务程序中,中断是开放的。又发生了中断优先级更高的中断源的中断请求。6、中断系统的功能中断系统是指能够实现中断功能的那部分硬件电路和软件程序。中断系统的功能:①、进行中断优先级排队:中断优先权排队电路。决定各个中断源的优先顺序、轻重缓急。当多个中断源同时请求中断时,决定先响应哪一个。②、实现中断嵌套:使CPU可以暂停低优先级中断源的中断服务程序的执行,转而为更紧急的事件服务。③、自动响应中断:CPU必须不断检测中断输入线上的中断请求信号,以及时响应随机发生的中断请求。CPU总是在每条指令的最后状态对中断请求进行一次检测。CPU在响应中断时自动做三件事:关闭中断、保护断点;按中断源提供的中断矢量自动转入相应的中断服务程序;撤消本次中断请求,以避免再次响应本次中断的请求。④、实现中断返回:在执行到中断服务程序末尾的中断返回指令时,能自动到堆栈中取出断点地址,返回中断前的原程序继续执行。中断源的中断请求,如何通知CPU?利用中断请求标志位来通知!!!二、MCS-51中断系统1、MCS-51系列单片机的中断源和中断标志在MCS-51系列单片机中,单片机的型号不同,其中断源的个数也不同,8051的中断系统有5个中断源。8051中断系统的相关操作:五个中断源、六个中断标志位和外部中断触发方式。中断允许和中断优先级。保护断点、堆栈应用及中断向量。中断服务子程序和中断嵌套。中断申请的撤消与恢复断点。对中断申请是否予以响应,由硬件和软件共同决定。所有的中断申请标志位都可以位寻址,可以由软件置位或清零。五个中断源:两个外部中断、两个定时器溢出中断和一个串行口中断。六个中断标志位:TCON中4个,SCON中2个。①、外部中断源:外部中断0和外部中断1。8051有INT0和INT1两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或下降沿两种中断触发方式来输入中断请求信号。外部中断源的触发方式由TCON中的IT0和IT1两位的状态来设定。CPU在每个机器周期的S5P2时对INT0/INT1线上的中断请求信号进行一次采样检测。低电平触发时,检测到低电平有效;下降沿触发时,连续两次检测的结果为前高后低有效。中断标志位为TCON中的IE0和IE1两位。当INT0/INT1引脚上的信号符合触发条件时,IE0/IE1置位,申请中断。如果CPU响应了这个中断,则对沿触发方式,硬件自动清零IE0/IE1位;对电平触发方式,只有等外申请信号变成高电平时,才自动清IE0/IE1位。如果CPU暂时不响应该中断,IE0/IE1始终为1,表示中断申请有效。②、定时/计数器溢出中断源:T0、T1。当定时/计数器T0/T1在定时脉冲作用下从全“1”变为全“0”时,可以自动向CPU提出溢出中断请求,以表明定时时间或计数次数已到。定时/计数器有两种工作状态:定时:计数内部脉冲(机器周期数),溢出中断定时。计数:计数外部脉冲(外部事件),溢出中断计数。定时/计数器的工作状态由TMOD决定。定时/计数器的启停由TCON中的TR0/TR1两位控制。当TR0/TR1=1时,启动定时/计数器开始计数;当TR9/TR1=0时,停止计数。定时/计数器的中断标志位为TCON中的TF0/TF1两位。当定时/计数器计数溢出(从全“1”变为全“0”)时,TF0/TF1置1,向CPU申请中断。CPU响应中断后,硬件会自动清0标志位TF0/TF1。定时/计数器溢出中断通常用于需要进行定时/定量控制的场合。③、串行中断:SBUF串行口中断分为串行口发送中断和接收中断两种。传送完一帧数据,引起发送中断。接收完一帧数据,引起接收中断。其中断标志位分别为SCON中的TI和RI位。但两者公用一个中断矢量(或称中断入口地址)。只要在串行口中断服务程序开头安排一段对SCON中RI和TI位状态的判断程序,便可区分发生了串行口接收中断请求还是发送中断请求。TI和RI必须由软件清0。④、中断标志位中断标志位:中断事件发生后,在单片机内部的表示方式,或者说各个中断源的状态标志寄存位。每个中断源都有一个中断申请标志位,串行口两个,所以共6个。分布在两个SFR中,TCON中4个,SCON中2个。中断标志位为0:相应的中断源没有提出中断申请;中断标志位为1:表示相应中断源已经提出了中断申请。TCONIT0IE0IT1IE1TR0TF0TR1TF1TF1——T1的溢出中断标志硬件置1,硬件清0(也可软件清0)TF0——T0的溢出中断标志。(同TF1,只是针对T0的)IE1——外部中断1(/INT1)请求标志。外部有中断请求时,硬件使IE1置1,硬件清0。IE0——外部中断0(/INT0)请求标志。IT1——外部中断1(/INT1)触发类型控制位。IT1=0,低电平触发。IT1=1,下降沿触发。IT0——外中断0(/INT0)触发类型控制位,用法同IT1。⑤、定时器控制寄存器TCON:SCONRITIRB8TB8RENSM2SM1SM0TI——串口发送中断标志位。发送完数据,硬件使TI置1,软件清0(CLRTI)RI——串行口接收中断标志位。硬件置1,软件清0。⑥、串行口控制寄存器SCON:MCS-51单片机的中断源都是可屏蔽中断。其中断的开放和关闭是通过IE进行两级控制的。所谓两级控制是指有一个中断允许总控制位EA,配合各个中断源的中断允许控制位共同实现对中断请求的控制。2、中断控制(两级管理)1)、对中断允许的控制(第一级管理)IEEX0ET0EX1ET1ES————EAEA——总控制位“—”——未定义位ES——串口控制位ET1——T1中断控制位EX1——/INT1控制位ET0——T0中断控制位EX0——/INT0控制位若为“1”,开关接通,允许例如SETBEA若为“0”,开关断开,不允许例如CLRIE.7例:如果允许片内定时器、计数器中断,禁止其他中断,试根据假设条件设置IE的相应值。解:1)用字节操作指令MOVIE,#8AH或MOVA8H,#8AH2)用位操作指令SETBET0SETBET1SETBEA2)、对中断优先级的控制(第二级管理)中断优先级分两个层次:中断优先权:由单片机和CPU自身硬件决定的(固定不变):(最低)SBUF、T1、INT1、T0、INT0(最高)中断优先级:由IP编程决定(可以编程改变)。MCS-51系列单片机的中断系统只有高、低两个中断优先级,且任意一个中断源都可设定为高或低优先级。所以MCS-51系列CPU只能实现两级中断嵌套。CPU同一时间只能响应一个中断请求。若同时来了两个或两个以上中断请求,就必须有先有后。!!!为此将5个中断源分成高级、低级两个级别,高级优先,各个中断源的优先级由中断优先级寄存器IP设定:IPPX0PT0PX1PT1PS———PS——串口的中断优先级别PT1——定时/计数器T1的中断优先级别PX1——外部中断1的中断优先级别PT0——定时/计数器T0的中断优先级别PX0——外部中断0的中断优先级别该位是“1”时,为高级优先级该位是“0”时,为低级优先级同一级中的5个中断源的优先顺序是:/INT0中断T0溢出中断/INT1中断T1溢出中断串口中断高低出厂前已由厂家固化顺序——事先约定中断优先原则:(概括为四句话)1、低级不打断高级2、高级不睬低级3、同级不能打断4、同级、同时中断,事先约定。例:设8031的片外中断为高优先级,片内中断为低优先级,试设置IP相应值。解:1)用字节操作指令MOVIP,#05H或MOV0B8H,#05H2)用位操作指令SETBPX0SETBPX1CLRPSCLRPT0CLRPT1三、MCS-51系列单片机对中断的响应①、响应中断申请的四个条件:该中断被允许(IE);当前正在执行的程序不是中断服务程序或其对应中断源比该中断源的优先级低(IP);执行完当前指令;如果是下述四类指令,则执行完该指令后再执行一条指令,才能响应该中断(RETI、RET、IE操作、IP操作)。②、CPU响应一个中断之后的操作:自动操作:保护断点;中断入口地址,并转入响应中断服务程序;清中断标志位:人为操作:保护现场;修改IE,关闭某些不希望发生的中断。3、MCS-51系列单片机的中断向量表及中断请求的撤除①、中断向量表:象

1 / 146
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功