资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,国防部,西藏军区,借,借,汽车厂(,main,),PC,机床,钢材等,保存半成品、,保存钢材数,,清申请标记,加工,还钢材、,PC,机床,登记处,优先级审批签批部门,第五章,MCS-51,单片机中断系统,第一节 概述,一、引入中断技术的优点,便于实现实时控制和便于处理突发故障。,二、中断的概念,中断是指计算机暂时停止原程序的执行转而为申请中,断的设备服务,并在服务完以后自动返回原程序执行的过程。,说明:环化共,38,个理论学时,所以 不讲串口,不讲优先级,不讲嵌套,国防部,西藏军区,借,借,汽车厂(,main,),PC,机床,钢材等,保存半成品、,钢材数,,清申请标记,加工,还钢材、,PC,机床,登记处,优先级审批签批部门,中断源,主程序,PC,、,REG,断点,保存相关寄存器,中断程序,回断点,恢复寄存器,清申请标记,ORG 00H,AJMP,MAIN,ORG 30H,MAIN:,MOV A,#0,ADD A,#1,ADD A,#1,SJMP$,主程序 的特点从,00h,开始,ORG 03H,AJMP,Zu,ORG 100H,Zu:,MOV A,#0,INC A,INC A,SJMP,$,(,这句后面变,RETI),中断程序 的特点不从,00h,开始;也不被主程序,Acall,借机床,还机床,生活中,这个,借,与,还,实现了机床的换手。,汽车厂,国防部,现有一主程序,一个中断程序,根据前面的理论,我们知道,默认只,运行主程序,。,单片机中,,.,如何从主程序,,,转入执行中断程序?,.,又如何从中断服务程序转还主程序?,ORG 00H,AJMP,MAIN,ORG 30H,MAIN:,MOV A,#0,INC A,INC A,SJMP$,硬件复位,,使,主程序第一条,指令在这儿,后面指令一条接一条控制,PC,,,主程序无形中占用了控制权,。,ORG 00H,AJMP,MAIN,ORG 03H,AJMP,Zu,ORG 30H,MAIN:,MOV A,#0,INC A,INC A,SJMP$,ORG 100H,Zu:,MOV A,#0,ADD A,#1,ADD A,#1,SJMP$,硬件帮助把,PC,值,从堆栈中弹出,?,“借”,“还”,RETI,如有硬件能实现“副复位“帮助中断程序,Zu,,把当前,PC,值压入堆栈,(,保存当前,PC),并使,PC=03,就好了,?,“,用,“,1.,复位引脚,2.,外部,中断,0,引脚,VCC,VSS,XTAL2XTAL1,RST,P0.0P0.1P0.2 P0.3 P0.4 P0.5 P0.6 P0.7,P1.0P1.1P1.2 P1.3 P1.4 P1.5 P1.6 P1.7,P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0,ALE,P3.0P3.1,P3.2 P3.3,P3.4 P3.5 P3.6 P3.7,EA,PSEN,1234567891011121314151617181920,4039383736353433323130292827262524242221,8031,8051,8751,89C51,/VPP,/PROG,单片机引脚图,实现借,PC,动作的引脚,复位信号是高电平有效,其有效时间持续,2,个机器周期,第一节 中断系统的结构,中断系统简化的结构及响应过程示意图,原,PC,值自动压入堆栈,PC=000,3,H,单个,(P3.2,变低,),借,类似登记表,类似总开关,类似分开关,针对环化学生,省略了优先级结构,下面,6,个,PPT,讲授实现借的硬件结构,一、中断源,向,CPU,发出中断请求的来源称为中断源。以,80C51,为例,共,5,个中断源,分别是外部中断,2,个,定时中断,2,个,和一个串行中断,。,2,、定时中断,P3.2,P3.3,1,、外中断,二、定时器控制寄存器(,TCON,),该寄存器用于保存外部中断请求以及定时器的计数溢出。寄存器地址,88H,,,位地址,8FH,88H,。,寄存器的内容及位地址表示如下:,以后讲,以后讲,方式控制,方式控制,类似中断事件记录本,2.1,、,IE0,和,IE1,外中断请求标志位,当,CPU,采样到,INT0,(,INT1,),端出现有效中断请求时,,IE0,(,IE1,),位由硬件置“,1,”,。,2.2,、,IT0,和,IT1,外中断请求触发方式控制位,IT0(IT1)=0,电平触发方式,低电平有效。,IT0(IT1)=1,脉冲触发方式,后沿负跳有效。,由软件置“,1”,或清“,0,。,脉冲宽度,12T,2.3,、,TF0,和,TF1,计数溢出标志位,当计数器计数溢出时,,相应的溢出标志位由硬件置“,1,”,。,计数溢出标志位的使用有两种情况:,采用中断方式时,作中断请求标志位来使用;,采用查询方式时,作查询状态位来使用。,中断系统的结构及响应过程示意图,原,PC,值自动压入堆栈,PC=000,3,H,原,PC,值自动压入堆栈,PC=000,B,H,原,PC,值自动压入堆栈,PC=00,13,H,原,PC,值自动压入堆栈,PC=00,1B,H,原,PC,值自动压入堆栈,PC=00,23,H,单个允许,中断源,寄存器地址,0A8H,,,位地址,0AFH,0A8H,。,寄存器的内容如下:,1,、,EA,中断允许总控制位,EA=0,中断总禁止,禁止所有中断。,EA=1,中断总允许。,2,、,EX0,(,EX1,),外部中断允许拉制位,EX0(EX1)=0,禁止外中断,EX0(EX1)=l,允许外中断,3,、,ET1,和,ET0,定时计数中断允许控制位,ET0(ET1)=0,禁止定时(或计数)中断,ET0(ET1)=1,允许定时(或计数)中断,三、中断允许控制寄存器(,IE,),上面,6,个,PPT,讲述了实现这个借的硬件结构,四,.,中断处理过程:,中断过程的三步曲:中断响应、中断服务程序及中断返回,2,、,MCS-51,中断源服务程序入口地址,A,、外部中断,00003H B,、定时器,0000BH C,、外部中断,10013H D,、定时器,1001BH,E,、串行口中断,0023H,记忆技巧,:,外地人妖窜吧,主程序,响应中断请求,返回主程序,断点,继续执行主程序,中断服务程序,“还”,“用”,“借”,4.,1,、中断响应,1.,中断响应的条件:,有中断源提出中断请求;,中断总允许位,EA=1,,即,CPU,开放中断;,申请中断的中断源的中断允许位为,1,,即没有被屏蔽。,中断初始化,-,这步要求在主程序中处理,(,类似,汽车厂要同时设计好汽车及坦克的模具,),外部中断初始化共有三项内容:,中断总允许、,外中断允许,中断方式设定(电平,/,下降沿,),。,定时中断则只有:,中断总允许、,定时中断允许。,串口(自学),这在哪实现呢?,例如:要开放外中断,0,SETB,EA,SETB,EX0,SETB IT0,设置同不同意借,中断响应详细过程:,CPU,在每个机器周期采样各中断请求标志位,如有置位,通常,只要以上条件满足,,CPU,就常响应高级中断。,真正情况:,如有下列三种情况存在,中断查询结果被丢弃。它们是:,CPU,正在处理同级或高级优先级的中断。,现行的机器周期不是所执行指令的最后一个机器周期。,正在执行的指令是,RETI,或访问,IE,、,IP,指令。,CPU,在执行,RETI,或访问,IE,、,IP,的指令后,至少需要再执行一条其他指令后才会响应中断请求。,2,、,MCS-51,中断系统在中断响应时的措施为:,这是硬件自动实现,不需要程序员管理,(条件:堆栈注意平衡),1,)当前,PC,值送堆栈,,也就是将,CPU,本来要取用的指令地址暂存到堆栈中保护起来,以便中断结束时,,PC,恢复原来值(程序的断点),从而程序继续执行下去。这一措施是,中断系统自动保存完成。,2,)按中断源入口地址进入中断服务程序,。,单片机为中断源设置对应的,PC,值,称为,中断源入口地址,中断响应时,,PC,值自动改变为相应的中断源入口地址。,总结:中断响应作用类似去借,是否允许由主人(主程序)决定,主人(主程序)允许后硬件自动实现。,板书主程序中添加这部分,4.,2,、中断服务程序,在中断响应后,计算机执行的程序称为中断服务程序。这是专门为申请中断的外部设备或内部定时器、串口中断源服务的程序段。,程序员还要关心的,:在入口地址处,因只有,8,个字节空间,常不够用时,要,用,跳转指令,使,CPU,跳转到后续的中断处理程序。,4.3,、,中断返回,中断服务程序的,结尾必须是中断返回指令,RETI,,,计算机在中断响应时执行到,RETI,指令时,立即结束中断,并从堆栈中自动取出,在中断响应时,压入的,PC,值,从而使,CPU,返回原程序中断点继续进行下去,,并消除,IP,上的标记,。,内部,ROM,中开始部分单元的分配图,0003H,000AH,000BH,0012H,外部中断,0,0000H,定时器,0,板书:中断程序的开局及规划,板书:中断程序的返回,4.4,、中断标志的清除方式,中断标志清除方式有,3,类情况,我们只需要关心后面二类:,1,),TF0,、,TF1,及,边沿触发方式,的,IE0,、,IE1,在中断响应后由,硬件,自动清除,,无需软件干预。,2,),电平触发方式,的外部中断标志,IE1,、,IE0,会,硬件自动,清除,,但中断,请求,信号,,必须用,软件清除,。,3,)串口自学,中断标志清除常在中断程序的开头实现,清除常在中断程序的开头借助读,/,写及地址实现,中断的核心,:,是获得,CPU,的控制权,主要是获得,PC.,中断的初始化,在主程序中实现,,,如何获得,PC,先触发、登记,再通过路闸门,(,有开关,控制,),顺利的话就有了控制权,.,实际过程较曲折。,获得,PC,后,如何放置我们的中断处理程序,中断服务程序实现,其中要包含标志位,中断信号处理,,及保存相关,REG,,弹回相 关,REG,中断运行后的返回,小节,1,:,“用”,“还”,申请,“借”,同意?,例,1,ORG,00H,SJMP MAIN,ORG,03H,(外部,0,中断程序),SJMP,EX0INT,EX0INT,:,CLR XYZ ;,清标志位,PUSH YZX ;,多条保存相关,REG,ZZZZZZ,;根据要求编写代码,3,POP YZX ;,多条弹回相关,REG,RETI,;中断返回,ORG 30H,MAIN,:,XXXXXX,;,根据要求编写代码,1,初始化中断,YYYYY ;,根据要求编写代码,2,中断服务程序与主程序的关系,-,用代码实现的参考方法,第四节 应用举例,在下图有开关,K,,,每扳动一次,就产生一个外部中断请求。在接到电平下降沿后,,CPU,从,P1.0,P1.3,读入开关,K1,K4,的状态,取反后再由,P1.4,P1.7,输出,驱动相应的发光二极管。,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,使,P1.0-P1.3,为输入功能,输入开关状态,状态取反,A,的高半字节清成,0,A,半字节交换,开关状态愉出,中断返回,中断服务程序流程图,主程序流程图,开始,置外部中断,0,为,脉冲触发方式,外中断,0,允许,总中断,0,允许,结束,ORG 0000H,STAR,:,AJMP MAIN,ORG 0003H,AJMP EXTR,ORG 0030H,MAIN,:,SETB IT0,;,脉冲边沿触发,SETB EX0,;,外部中断,0,允许,SETB EA,;,总中断允许,AJMP$,;结束,等中断,ORG 0200H,;中断服务程序,EXTR,:,MOV A,,,#0FH,;,P1.0P1.3,输入功能,MOV A,,,P1,;输入开关状态,CPL A,;状态取反,ANL A,,,#0FH,;,A,的高半字节清,0,SWAP A,;,A,高低半字节交换,MOV P1,,,A,;开关状态愉出,RETI,;中断返回,主程序,子程序,中断服务程序,主程序初始化后者;,后来地位平等;,听候,上面,2,位,调遣,受上面,2,者,Acall,各车间,汽车厂,坦克厂,(国防部),汽车厂安装生产线前要注意设计好模具,但后面是独立。,强化印象:,这个中断服务程序,不是一次有效。而是在,中断允许的情况下,只要硬件触发,就常会运行,!,中断与主程序平等,可调用所有的子程序,思考:,在下图每扳动一次开关,就产生一外部中断请求。中断触发方式为下降沿。接到中断后,,CPU,从,P1.4,P1.7,读入开关,K4,K1,的状态,再由,P1.0,P1.3,输出,驱动相应发光二极管。,
展开阅读全文