资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,专题六 输入输出和中断系统,第五章,主讲教师,赵晓安,计算机科学与软件学院计算机基础教学部,主讲教师,赵晓安,计算机硬件技术基础,1,输入,/,输出的基本概念,2,输入,/,输出数据的传送方式,3,中断技术,MCS-51,的中断系统,学会,MCS-51,中断程序设计及应用,学会与中断有关的硬件连线,本章重点及要求,5.1,输入,/,输出的基本概念,5.2,输入,/,输出数据的传送方式,5.3,中断技术,5.4,MCS-51,的中断系统,5.5,MCS-51,对外部中断源的扩展,第五章,输入,/,输出和中断,5,1,1,输入,/,输出设备,5,1,2,输入,/,输出传送的信息,5,1,3,输入,/,输出接口的作用及其类型,5,1,4,I/O,端口的编址方式,5,1,输入,/,输出的基本概念,5,2,1,无条件传送方式,(又称,同步传送,),5,2,2,查询式传送方式,(又称条件传送,异步传送,),5.2,输入,/,输出数据的传送方式,5,2,3,中断传送,方式,5,2,4,DMA,传送,方式,5.5.1,借用定时器,/,计时器溢出中断扩展外部中断源,(,P160,利用计数溢出,扩展中断源),来自,P3.4(T0),或,P3.5(T1),引脚的,外部输入计数脉冲相当于中断请求信号,5.5.2,使用硬件申请软件查询法扩展外部中断源,(,P161,硬件申请,软件查询的方法),5,5 MCS-51,对外部中断源的扩展,5,1,1,输入,/,输出设备,输入设备:,定义:,往主机传送信息的设备,常用的输入设备:,键盘、鼠标、扫描仪、读卡机等,输出设备,定义:,接收主机信息并送出信息呈现给人们的设备,常用的输出设备:,显示器、打印机、绘图仪等,外设与,CPU,是通过接口连接,CPU,接 口,接 口,外设,1,外设,2,地址总线,AB,数据总线,DB,控制总线,CB,5,1,2,输入,/,输出传送的信息,数据信息,数字量,模拟量,开关量,状态信息,表征外设状态,控制信息,控制外设启停,在输入时,输入装置的信息是否准备好(,Ready,);,在输出时,输出装置是否有空(,Empty,),若输出装置正在输出信息,则以,Busy,指示。,二进制形式表示的数或以,ASC,码表示的数或字符。,模拟量必须先经过,A/D,转换才能输入计算机,计算机的控制输出也必须先经过,D/A,转换才能控制执行机构。,只要用一位二进制数即可表示的量,如电机的运转与停止,开关的合与断,阀门的打开和关闭等。,5,1,3,输入,/,输出接口的作用及其,类型,接口电路的作用,锁存作用,防止由于,CPU,速度快,外设慢而产生的丢数现象,隔离作用,防止,DB,上的信息重叠,变换作用,在,CPU,与外设之间进行信息类型、电平、传送接收方式变换,联络作用,在,CPU,与外设之间进行联络,,Ready,Busy,输出接口电路,锁存作用,输出接口中必须含锁存器,接口电路,(,锁存器,),.,锁存信号,写选通,输出数据,DB,来自,CPU,速度匹配,输入接口电路,隔离作用,输入接口中必须含三态门,接口电路,(,三态门,),.,读选通信号,输入允许,输入数据,接口电路,(,三态门,),.,输入数据,DB,防止信息重叠,1,、,I/O,接口的种类很多,有两种基本类型,串行,I/O,接口,并行,I/O,接口,2,、不可编程接口,例:,74LS273,、,74LS373,、,74LS138,、,74LS244,3,、可编程接口,例:,8155,、,8255,、,8250,、,8253,I/O,接口的类型,5,1,4 I/O,端口的编址方式,统一编址,I/O,端口与内存储器采用一套地址,完全象存储器单元一样处理,使用访问存储器的指令。,如:,movx,类指令,独立编址,采用一套与存储器不同的地址,利用,/MREQ,(存储器请求)和,/IORQ,(输入输出请求),,CPU,有专门的,I/O,指令 如:,IN,,,OUT,MCS51,系列采用统一编址,片内,RAM,与,P0P3,均用,MOV,指令,片外,RAM,与外扩口,I/O,口均用,MOVX,指令,接口与端口,接口:,由一个或多个端口组成。,端口:,可被独立选通的,I/O,接口电路,简称口。,端口地址:,端口在系统中被分配的惟一地址,简称口地址。,端口可分为:,输入端口,CPU,从中读取外设的状态或数据信息,输出端口,CPU,通过它输出控制信号或数据信息,状态端口,CPU,从中读取外设的状态信息,控制端口,由,CPU,控制输出控制信号,数据端口,可以是输入数据端口或输出数据端口,I/O,信息都是通过,数据总线,传递的。,5,2,1,无条件传送方式(又称同步传送),应用于定时为已知的且 固定不变的低速,I/O,无需等待的高速,I/O,movx A,DPTR,movx DPTR,A,DB,三态门,锁存器,地址译码器,地址译码器,来自外设,至外设,AB,RD,WR,无条件输入输出举例,MCS-51,单片机内部的,I/O,口,6.1.2 P1,口,功能:,P1,口作通用,I/O,口,P1,口也是一个“准双向”口,作输入口时要先将输出驱动管截止。,即先执行一条指令,MOV P1,#0FFH,内部结构:,如图所示,1,、无条件传送方式,2,、查询方式,3,、中断方式,利用,P1,口实现三种,I/O,传送方式,1,、无条件传送方式,1,)无条件输出,ORG 8000H,LJMP Main,ORG 80F0H,Main:MOV R7,#0,Loop:MOV R6,#0,DJNZ R6,$,DJNZ R6,$,DJNZ R6,$,DJNZ R6,$,DJNZ R7,Loop,CPL P1.0,CPL P1.1,CPL P1.2,CPL P1.3,CPL P1.4,CPLP1.5,CPL P1.6,CPL P1.7,SJMP Main,END,8,个发光二极管闪亮,“,0”,亮,“,1”,灭,思考题,若使,8,个,LED,循环点亮如何修改程序?,1,、无条件传送方式,2,)无条件输入,/,输出,ORG 8000H,AJMP MAIN,ORG 8100H,MAIN:MOV A,#0FFH,MOV P1,A,MOV A,P1,SWAP A,MOV P1,A,HERE,:,SJMP HERE,END,5,2,2,查询式传送方式,(又称条件传送,异步传送),CPU,查询外设状态信息,(Ready,Busy),,条件 满足时,进行数据传送,程序简单,高速,CPU,查询低速外设,浪费,CPU,时间,效率低,输入接口原理图,输出接口原理图,程序流程图,查询方式举例,输入接口原理图,地址译码器,Q,R,D,三态,缓冲器,锁存器,输入设备,5V,选通信号,RD,口地址,PORTD,译码,PORTS,译码,D6,Ready,状态信号,DB,外设准备好,置入状态信号,Q=1,CPU,读数据口时清掉状态信号,输出接口原理图,外设收到,CPU,数据后以,“,应答信号,”,清掉状态信号,CPU,写入数据后,置入状态信号,Q=1,口地址,地址译码器,Q,R,D,5V,应答信号,WR,锁存器,输出设备,PORTD,译码,PORTS,译码,状态线,Busy,状态信息,D6,RD,DB,条件传送方式程序举例,Test:mov DPTR,#PORT,S,movx A,DPTR,anl A,#40H,jz Test,;,(jnz Test),mov DPTR,#PORT,D,movx A,DPTR,;,输入,(movx DPTR,A,;输出,),0/1,状态信号,D6,输入端口状态,准备好?,传送信息,YES,NO,Ready=1,Busy=0,(A),查询举例,2,、查询输出,ORG 8000H,LJMP Main,ORG 8,100H,Main:JBP1.7,SETLED,CLRLED:CLR P1.0,CLR P1.1,CLR P1.2,CLR P1.3,CLR P1.4,CLRP1.5,CLR P1.6,SJMP Main,SETLED:SETBP1.0,SETBP1.1,SETBP1.2,SETBP1.3,SETBP1.4,SETBP1.5,SETBP1.6,SJMP Main,END,思考题,若当,P1.7=0,时使,7,个,LED,向左,/,右两个两个的循环点亮,如何修改程序?,若当,P1.7=1,时,使,7,个,LED,从中间向左右方向逐个点亮,如何修改程序?,5,2,3,中断传送方式,中断:,要求进行输入、输出的外设,发出就绪信号给,CPU,,作为中断请求,打断,CPU,正在进行的工作,即中断,CPU,正在执行的程序。,中断过程,中断方式与查询方式比较,提高了,CPU,的效率,CPU,与外设可并行工作,CPU,可及时响应外部事件,中断过程,外设发出中断请求信号,CPU(,有条件,),响应中断,进行中断服务,(,执行中断服务程序,执行响应,I/O,操作,),中断返回,(,继续执行原程序,),中断方式与查询方式,CPU,占用时间比较,打印机打印时间,数据传输时间,查询等待时间,数据传输时间,执行主程序,中断服务时间,中断方式,查询方式,外设工作,利用,DMAC(DMA,控制器,),实现成组、大批量的数据在内存和外设之间的快速传送。,DMA,过程,:,优点:速度快,缺点:硬件复杂,成本增加,5,2,4,DMA,传送方式,DMA,过程,外设向,DMAC,发,DMA,申请,DMAC,向,CPU,发,BUSRQ,CPU,发,BUSAK,响应,DMAC,发存储器地址和读写信号,DMA,控制结束,恢复,CPU,对总线控制,BUS,外 设,接 口,DMAC,CPU,存储器,存储器,CPU,I/O,接口,外 设,DMA,控制器,5,3,1,中断的定义及必要性,定义:,所谓中断是指中央处理器,CPU,正在处理某件事的时候,外部发生了某一事件,请求,CPU,迅速处理,,CPU,暂时中断当前的工作,转入处理所发生的事件,处理完后,再回到原来被中断的地方,继续原来的工作。这样的过程称为中断。,必要性及应用,中断功能便于实现,1,分时操作,2,实时处理,3,故障处理,4.,主机与外设之间的速度匹配,CPU,和外设同时工作;,CPU,可以通过分时操作启动多个外设同时工作,统一管理。大大提高了,CPU,的利用率,也提高了输入、输出的速度。,当计算机用于实时控制时,中断是一个十分重要的功能。现场的各个参数、信息,需要的话可在任何时候发出中断申请,要求,CPU,处理;,CPU,就可以马上响应(若中断是开放的话)加以处理。这样的及时处理在查询的工作方式是做不到的。,计算机在运行过程中,往往会出现事先预料不到的情况,或出现一些故障:如电源突跳,存储出错,运算溢出等等。计算机就可以利用中断系统自行处理,而不必停机或报告工作人员。,外设中断请求,实时时钟中断请求,控制对象中断源,故障引起的中断,人为设置的中断,5,3,2,中断源,人为设置的中断,不是随机的,故称为自愿中断。,强迫中断,引起的中断都是,随机,。,5,3,3,中断的分类,1.,可屏蔽中断(,Maskable Interrupt,),2.,非屏蔽中断,(,Non Maskable Interrupt,),3.,软件中断(,Software Interrupt,),INT,NMI,MCS-51,就是具有可屏蔽中断功能的一类,CPU,。,中断类型 中断请求信号,可屏蔽中断,INT,中断请求输入线上输入,非屏蔽中断,NMI,中断请求输入线上输入,软件中断 用中断指令使,CPU,响应中断,中断类型,CPU,响应中断的方式,可屏蔽中断 开中断指令 响应,关中断指令 屏蔽,INT,上来的低电平中断请求,非屏蔽中断,CPU,必须予以响应,不能由软件指令屏蔽,软件中断,CPU,只要执行这种指令,完成相应的中断功能,5,3,4,中断系统的功能,中断系统,包括中断源的产生、,中断判优,、,中断查询,、,中断处理,等实现这一全过程的硬件和软件。,中断技术,对中断全过程的分析、研究及实现的方法,中断判优,多中断源同时发出中断请求,,CPU,根据中断的优先级判断优先执行的中断请求。,中断嵌套,CPU,正在执行主程序,CPU,正在执行低级中断服务程序,CPU,正在执行高级中断服务程序,挂起的中断,中断查询,软件查询,硬件查询,中断优先级链式电路,中断优先级编码电路,三态门,DB,+,中断请求,A L,mov DPTR,#PortI,movx A,DPTR,RLC A,JC ASV,RLC A,JC BSV,ASV:,BSV:,先查询的优先级高,硬件申请,软件查询,中断处理,中断响应条件,CPU,处于开中断状态:,51,内部有中断允许触发器,EA,EA=0,禁止中断;,EA=1,开放中断。,中断响应过程,中断响应:停止现行程序,,转向中断处理程序入口地址,关中断 (,MCS-51,响应中断后,不自动关中断,),保护断点 (自动将断点地址压入堆栈),执行中断处理程序,执行中断处理程序,保护现场,保护中断服务程序中用到的寄存器和状态标志的内容,中断服务,相应的中断源服务,完成一定的,I/O,操作,恢复现场,完成中断服务后,将保存在堆栈中的现场数据恢复,开中断和中断返回,RETI,(,中断返回指令),push PSW,push ACC,push DPH,push DPL,pop DPL,pop DPH,pop ACC,pop PSW,请看,P159,图,5-22,(,1,)设置中断请求触发器,(,又称中断标志触发器,),每个中断源需有一个中断请求触发器,保持中断请求信号 ,直至,CPU,响应这个中断后,才可清除中断请求,。,当中断请求触发器为“,1”,状态时(,Q=1,),表示有中断产生;,Q=0,表示没有中断产生。,中断响应条件,CPU,响应中断的条件主要有以下几点:,设置中断请求的情况,CPU,中也要有中断标志触发器,有中断请求则置,1,。,(,2,)需设置中断屏蔽触发器,(,又称中断允许触发器),每一个中断源的接口电路中需增加一个中断屏蔽触发器,,只有当此触发器为“,1”,时,中断源的中断请求才能被送出至,CPU,。,具有中断屏蔽的接口电路,(,3,)中断是开放的,在,CPU,内部有一个中断允许触发器,EA,。只有当,EA,为“,1”,时(即中断开放时),,CPU,才能响应中断;若,EA,为“,0”,(即中断是关闭的),这时外部有中断请求,,CPU,不会响应,,EA,的状态是可以用指令来控制的(称为可编程的)。,(,4,)需设中断优先级触发器,在,CPU,内部要设置中断优先级触发器,以实现嵌套;,在,各中断源中也要设一个中断优先级触发器,,由指令置位,/,复位,以表示本中断源在中断系统中的优先级。,(,5,),CPU,在现行指令结束后响应中断,在开中断情况下,若中断源有中断请求,,CPU,也并不是立即响应,只是当正在执行的指令运行到最后一个机器周期,T,状态时,,CPU,才采样中断源。若发现有中断请求,则把内部的中断标志锁存器置“,1”,,然后下一个机器周期不进入取指周期,而进入中断周期。,MCS-51,的中断系统的结构,EX0,EX1,ET0,ET1,ES,EA,PX0,PX1,PT0,PT1,PS,5.4.1 MCS-51,的中断源和中断标志,MCS-51,共有,5,个中断源,外部中断,0,外部中断,1,T/C0,溢出中断,T/C1,溢出中断,串行口中断,外部中断请求,0,、,1,中断请求信号输入引脚:,外部中断,0,请求引脚:,INT0,(P3.2),外部中断,1,请求引脚:,INT1,(P3.3),INT0,8031,INT1,电平触发,:,低电平,边沿触发,:,负边沿,中断请求信号,外部中断请求信号触发方式选择(,IT0/1,位),SETB IT0,外部中断请求标志位、中断允许位、优先级选择位,:,INT0/1,IT0/1=0,IT0/1=1,1,IE0/1,EX0/1,EA,PX0/1,0,1,高,低,D7,D0,TF1,TF0,IE1,IT1,IE0,IT0,TCON,IT0,(,IT1),:,外部中断请求,0(1),的触发方式选择,IT0=0,电平触发方式;,IT0=1,边沿触发方式,IE0(IE1),:外部中断请求,0(1),的中断申请标志,IT0=0 CPU,每个机器周期采样,/INT0,,若,/INT0=1,则,IE0=0,否则,/INT0=0,,,IE0=1,申请中断,IT0=1,若第一个机器周期,/INT0=1,,第二个机器周期,/INT0=0,,则,IE0=1,申请中断,否则,IE0=0,转向中断服务时边沿触发方式下,IE,由硬件清零,转向中断服务时电平触发方式下硬件不清,IE,,待申请信号撤消,。,T/C0,、,T/C1,溢出中断,D7,D0,TF1,TF0,IE1,IT1,IE0,IT0,TCON,TF0,:,51,片内定时,/,计数器,0,溢出,中断请求标志,。,定时,/,计数器,0,溢出时,,TF0,由硬件置,1,CPU,响应中断时 自动清零,TF0,TF0,也可软件清零,TF1,:,51,片内定时,/,计数器,1,溢出,中断请求标志,串行口中断,RI,:,串行口接收中断标志,RI=1,串行口接收中断,TI,:串行口发送中断标志,TI=1,串行口发送中断,RI,、,TI,由硬件置位,必须由软件清零,SCON,D7,D0,RI,TI,5.4.2 MCS-51,对中断请求的控制,总结中断源的各个触发器,(p163),表,5-1,),中断源,中断标志,1/0,中断允许,1/0,中断级别,1/0,外部,INT0,IE0,(,TCON.1,),EX0(,IE.0),PX0,(IP.0),外部,INT1,IE1,(,TCON.3,),EX1,(IE.2),PX1,(IP.2),定时器,0,TF0,(,TCON.5,),ET0,(IE.1),PT0,(IP.1),定时器,1,TF1,(,TCON.7,),ET1,(IE.3),PT1,(IP.3),串行口,RI,(SCON.0),TI,(SCON.1),ES,(IE.4),PS,(IP.4),CPU,标志,EA,(IE.7),寄存器:,TCON,、,SCON,、,IE,、,IP,复位后,这四个寄存器均为,00H,。,若设置串行口和定时器,/,计数器,1,为高级中断:,SETB PS,SETB PT1,问:设置后,那个中断源的优先级最高?,那个中断源的优先级最低?,答:设置后,优先级的顺序为:,TF1,RI/TI,INT0,TF0,INT1,高级,低级,同级,默认,顺序,复位后,(IP)=00H,5,个中断源均为低级中断,同级默认顺序:,INT0,TF0,INT1,TF1,RI/TI,5.4.3 MCS-51,对中断的响应与撤消,MCS-51,中断响应的,基本条件,MCS-51,中断,响应过程,MCS-51,中断,响应时间,MCS-51,中断请求的,撤消,MCS-51,中断响应的基本条件,51 CPU,中断受阻的条件:,CPU,正在处理相同或更高级中断,现行的机器周期不是所执行指令的最后一个机器周期,正在执行的指令是访问,IE,、,IP,或,RETI,指令,在执行上述指令后至少再执行一条指令,才可能响应中断。,MCS-51,的中断响应的基本条件:,首先要有中断源发出中断申请;,中断总允许位,EA=1,,即,CPU,允许所有中断源申请中断;,在中断源寄存器,TCON,和,SCON,中,申请中断的中断标志位为,1,,,即此中断源可以向,CPU,申请中断。,A,51CPU,自动完成:,CPU,先在每个机器周期的,S5P2,期间,对各中断源重复进行,查询,,并设,置,相应的,中断标志位,。,如果中断响应条件满足,且不存在中断阻断的情况,则,CPU,就响应中断。,硬件生成长调用指令自动地把断点地址压入堆栈保护,并随之将对应的中断入口装入程序计数器,PC,,使程序转向该入口地址,以执行中断服务程序。,A,用户必须完成:,在这些入口地址存放一条无条件跳转指令,使程序跳转到用户安排的中断服务程序起始地址上去。,MCS-51,响应中断的过程,MCS-51,的中断响应过程,中断源,入口地址,同级中断,优先级,IE0,0003H,TF0,000BH,IE1,0013H,T,F,1,001BH,TI/RI,0023H,中断入口地址表,低级中断源的,中断服务程序,用户编程设计,CLR EA,SETB EA,5,4,4 MCS-51,中断系统的初始化及应用,1,、,MCS-51,中断系统的初始化,中断系统初始化步骤为:,1,),CPU,开中断或关中断;,2,)某中断源中断请求的允许或禁止(屏蔽);,3,)设定所用中断的中断优先级;,4,)若为外部中断,则应规定低电平还是负边沿,的中断触发方式。,解:,(1),采用位操作指令,SETB EA,;,CPU,开中断,SETB EX1,;开,/INT1,中断,SETB PX1,;令,/INT1,为高优先级,CLR IT1,;令,/INT1,为电平触发,(2),采用字节型指令,MOV IE,,,#84H,;开,/INT1,中断,ORL IP,,,#04H,;令,/INT1,为高优先级,ANL,TCON,,,#OFBH,;令,/INT1,为电平触发,IT1,=0,例,5-1,请写出,/INT1,为低电平触发的中断系统初始化程序,(1),主程序,主程序除了用来对,MCS-51,本身,中断系统初始化外,还经常用来对具有中断功能的,外部扩展,的可编程,I/O,接口、可编程内部定时器,/,计数器,T/C0,、,T/C1,和可编程内部串行口等初始化,程序如下:,ORG 0000H,AJMP MAIN,MAIN,:;,MAIN,为主程序首地址,复位后,其,PC,的内容被强迫置成,0000H,上电启动,,CPU,就执行,0000H,单元的指令,必须在,0000H,单元放一条跳转到主程序的跳转指令,实现了上电自动转向主程序,2,、程序设计方法,(,2,)中断服务程序,中断服务程序是一种具有特定功能的独立程序段,它为中断源的特定要求服务,其一般,低级中断源程序,编写格式如下,:,ORG ZDRK,AJMP INTVS,INTVS:,CLR EA,PUSH ACC,PUSH 01H,SETB EA,中断服务,CLR EA,POP 01H,POP ACC,SETB EA,RETI,中断服务程序入口,地址:,ZDRK,0003H,000BH,0013H,001BH,0023H,高级中断服务程序的设计,GJZHD:CLR EA,保护现场,中断处理,恢复现场,SETB EA,RETI,嵌套,RETI,完整程序,ORG,0000H,AJMP MAIN,ORG,0003H,AJMP INT0SV,ORG,000BH,AJMP TC0SV,ORG,0013H,AJMP INT1SV,ORG,001BH,AJMP TC1SV,ORG,0023H,AJMP SSV,ORG 0100H,MAIN:,SJMP$,ORG 2000H,INT0SV:,RETI,ORG 3000H,TC0SV:,RETI,ORG 4000H,INT1SV:,RETI,ORG 5000H,TC1SV:,RETI,ORG 6000H,SSV:,RETI,注意:,要执行主程序,PC,指针,必须从,0000H,开始,执行,MCS-51,的中断程序设计举例,例,5-2,请根据图,6-2,的支持电路,编出,CPU,响应,INT0,上中断时的主程序和中断服务程序。,P1,口中断方式传送,ORG 0000H,AJMP MAIN,ORG 0003H,LJMP INT0SV,ORG 0100H,MAIN:,MOV SP#6FH,SETB IT0,SETB EX0,SETB EA,SJMP$;,等待中断,INT0SV:,PUSH PSW,PUSH ACC,MOV A,#0FFH,MOV P1,A,MOV A,P1,SWAP A,MOV P1,A,POP ACC,POP PSW,RETI,END,初始化部分,中断嵌套程序设计,ORG 0000H,AJMP MAIN,ORG 0003H,LJMP I0SV,ORG 0013H,LJMP I1SV,MAIN:MOV SP,#60H,SETB PX1,SETB EX0,SETB EX1,SETB IT0,SETB IT1,SETB EA,SJMP$,DLY:,MOV R6,#50H,DYL1:MOV R7,#200,DJNZ R7,$,DJNZ R6,DYL1,RET,ORG 1000H,I0SV:,CLR EA,PUSH ACC,SETB EA,MOV A,#,0FEH,MOV R2,#00H,LOOP:MOV P1,A,ACALL DLY,RL A,DJNZ R2,LOOP,CLR EA,POP ACC,SETB EA,RETI,ORG 1100H,I1SV:,CLR EA,PUSH ACC,MOV A,#,7FH,MOV R2,#00H,LOOP1:MOV P1,A,ACALL DLY,RR A,DJNZ R2,LOOP1,POP ACC,SETB EA,RETI,END,+5V,INT0,INT1,8051,R1,R2,K1,K2,+5V,R,LED0,P1.0,+5V,R,LED7,P1.7,调试:改,8000H,答:,将子程序入口地址压入堆栈,因为它是,CALL,指令的,转移目标地址,而不是,CALL,的下一条指令地址。,问:,响应中断后什么地址压入堆栈?,答:,将,SJMP$,指令的转移目标地址压入堆栈。即 中断在本,指令处产生,本指令的目标地址是本指令地址。,问:,若中断在,CALL,指令执行后产生,,响应中断后什么地址压入堆栈?,问:,若要控制中断的次数,在主程序中采用,CJNE R7,#10,NEXT,指令,,NEXT,标号,应写在什么语句上?,答:,将,NEXT,标号写在本指令上。,即:,NEXT,:CJNE R7,#10,NEXT,;等待中断,必须在中断服务程序中用,INC R7,指令更新,R7,的值。,R7,的初值在主程序的初始化部分置入,。,对强迫中断的服务程序具有随机性,要考虑可能在程序的什么指令处发生,,要保护什么内容,才能保证返回断点后正常工作。,对人为设置的软件中断与子程序调用的区别,返回指令不同,子程序返回用,RET,中断服务程序返回用,RETI,处理内容不同,中断一般处理,I/O,操作。,RETI,恢复中断逻辑,转向中断服务是由,CPU,通过硬件产生的,LCALL,指令,子程序与中断服务程序的区别,1,、一个单级的中断系统中必要响应时间,从中断请求有效(,CPU,响应中断)到开始执行中断服务程序的第一条指令(中断入口地址处指令)为止,至少要经历三个完整的机器周期:,第一个机器周期用于查询中断标志位;,第二和第三个机器周期用于保护断点并自动转入执行一条长转移,LCALL,指令,进入中断服务程序入口地址。,MCS-51,中断,响应时间,2,、附加等待时间,逢,RETI,或其它访问,IE,、,IP,指令的第一个周期,而这类指令之后又跟随着,MUL,或,DIV,指令引起的附加等待时间不会超过,5,个机器周期:一个周期完成正在进行的指令,再加,MUL,或,DIV,的,4,个周期。,得出结论,:,在一个单级的中断系统中,,MCS-51,响应中断的时间一般在,3-8,个机器周期之间。,3,、中断受阻引起响应时间延长,当一个同级或更高级的中断正在进行,则附加的等待时间取决于正在进行的中断程序。,中断源,撤消中断标志的方法,外部中断,0/1,当边沿触发中断,则硬件置位,硬件清除,当低电平触发中断,硬件置位,,必须人为撤消中断请求信号,定时,/,计数器,0/1,由硬件置位和复位,硬件自动撤消,串行口,RI/TI,由硬件置位,,必须由软件复位,CLR RI,CLR TI,CPU,必须在中断返回前,把它的响应中断标志位复位成“,0”,状态。,8031,单片机的,5,个断源,撤除中断请求的方法是不相同,。,MCS-51,中断请求的撤除,外部中断请求的撤除,对于负边沿触发的外部中断,,CPU,在响应中断后,是用硬件自动清除有关的中断请求标志,IE0,或,IE1,,来撤除,INT0,或,INT1,上的中断请求。,对于电平触发的外部中断,,IE0,或,IE1,是依靠,CPU,检测,INT0,或,INT1,上低电平而置位。尽管,CPU,响应中断时,,IE0,或,IE1,可用硬件自动复位成“,0”,状态,但若外部中断源不能及时撤除,INT0,或,INT1,上低电平,就会再次使已经变“,0”,的中断标志,IE0,或,IE1,置位,这是绝对不能允许的。所以,对于电平触发的外部中断请求的撤除,必须随着其中断被响应,使,INT0,或,INT1,上低电平变为高电平。,INSVR,:,ANL P1,,,#0FEH,ORL P1,,,#01H,RETI,END,执行第一条指令使,P1.0,输出为负,其持续时间为,2,个机器周期,足以使,D,触发器置位,,INT0,上电平变高,从而撤除中断请求。,第二条指令使,P1.0,变为,1,,否则,,D,触发器的,S,端始终有效,,INT0,端终为,1,,无法再次中断。,中断请求信号,专题六结束,
展开阅读全文