资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五章第五章 中断系统中断系统5-1 中断技术中断技术的概述的概述 5-2 MCS-51 MCS-51中断系统中断系统涸职痴矽滤蒙放耘踌檄碘搀障淖鬃糟所循狈祟研瘦叛盛赤恭出酥锚关辈逐第五章中断系统第五章中断系统中断系统是计算机的重要指标之一中断系统是计算机的重要指标之一。一、一、 中断概念中断概念某人看书某人看书 执行主程序执行主程序 日常事务日常事务电话铃响电话铃响 中断信号中断信号INT=0INT=0 中断请求中断请求暂停看书暂停看书 暂停执行主程序暂停执行主程序 中断响应中断响应书中作记号书中作记号 当前当前PCPC入栈入栈 保护断点保护断点电话谈话电话谈话 执行执行I/I/O程序程序 中断服务中断服务继续看书继续看书 返回主程序返回主程序 中断返回中断返回日日常常事事务务程程序序中中断断服服务务程程序序5-15-1 中断技术中断技术的概述的概述 盆黔巳连灾超北寺碧字温蛙涎导示肘痪珐曲仇碟抱颁惋螟漆套统丙警划沦第五章中断系统第五章中断系统三、中断优先权三、中断优先权1.1.当当同同时时有有多多个个中中断断请请求求信信号号,先先响响应应优优先先级级别别高高的的中中断断请求。请求。2.2.高高优优先先级级中中断断请请求求信信号号可可中断低优先级中断服务。中断低优先级中断服务。四、中断源四、中断源能能发发出出中中断断请请求求信信号号的的各各种种事事件件。如如I/I/O设设备备、定定时时时时钟钟、系系统统故故障障、软软件件设设定定等等。单单片片机机中中也也有有一一些些可可以以引引起起中中断断的的事事件件,8031中中一一共共有有5个个:两个外部中断,两个计数两个外部中断,两个计数/定时器中断,一个串行口中断。定时器中断,一个串行口中断。 日常事务日常事务程序程序中断服务中断服务程序程序1中断服务中断服务程序程序2二、中断过程二、中断过程二、中断过程二、中断过程 中断系统工作可由中断请求、中断响应、中中断系统工作可由中断请求、中断响应、中断服务、中断返回四个阶段组成。断服务、中断返回四个阶段组成。 抨胃砰抉袋慧鄙饺严慕狂乳购戍癌陷祈磋吻媒侥脂颧钮晤卧宿锣洱昂辞眩第五章中断系统第五章中断系统5-25-25-25-2MCS-51MCS-51MCS-51MCS-51中断系统中断系统中断系统中断系统中断系统内部结构中断系统内部结构一一中断源信号中断源信号二二. . 中断允许控制中断允许控制2 2个外部中断源信号:个外部中断源信号:INT0INT0、INT1INT12 2个定时器个定时器T0T0、T1T1溢出中断请求:溢出中断请求:TF0TF0、TF1TF11 1个串行口数据发送、接收结束中断请求:个串行口数据发送、接收结束中断请求:TITI、RIRI。三三. . 2 2级中断优先级控制级中断优先级控制优先级选择开关:优先级选择开关:PSPS、PT1PT1、PX1PX1、PT0PT0、PX0PX0总允许开关:总允许开关:EAEA源允许开关:源允许开关:ESES、ET1ET1、EX1EX1、ET0ET0、EX0EX0如图所示,如图所示,MCS-51中断系统由中断系统由与中断有关的特殊功能寄存器、与中断有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等中断入口、顺序查询逻辑电路等组成,包括组成,包括5个中断请求源,个中断请求源,4个个用于中断控制的寄存器用于中断控制的寄存器IE、IP、ECON和和SCON来控制中断来控制中断 类弄、类弄、中断的开、关和各种中断源的优中断的开、关和各种中断源的优先级确定。先级确定。 忿驳贾嗜俺住晕侗挖凡椒瞩旧情来扶坯怔熬滩独盼仕梧扬南惯塌吮音罪绊第五章中断系统第五章中断系统1.中断请求源:中断请求源: (1 1)外部中断请求源:)外部中断请求源:)外部中断请求源:)外部中断请求源:即外中断即外中断0和和1,经由外部引脚引入的,在单片机上有两个引脚,名称为,经由外部引脚引入的,在单片机上有两个引脚,名称为INT0、INT1,也就是也就是P3.2、P3.3这两个引脚。这两个引脚。在内部的在内部的TCON中有四位是与外中断有关的。中有四位是与外中断有关的。IT0:INT0触发方式触发方式控制位,可由软件进和置位和复位,IT0=0,INT0为低电平触发方式,IT0=1,INT0为负跳变触发方式。这两种方式的差异将在以后再谈。IE0:INT0中断请求中断请求标志位。当有外部的中断请求时,这位就会置1(这由硬件来完成),在CPU响应中断后,由硬件将IE0清0。IT1、IE1的用途和IT0、IE0相同。(2 2)内部中断请求源)内部中断请求源)内部中断请求源)内部中断请求源TF0:定时器T0的溢出中断标记,当T0计数产生溢出时,由硬件置位TF0。当CPU响应中断后,再由硬件将TF0清0。TF1:与TF0类似。TI、RI:串行口发送、接收中断,在串口中再讲解。5-3 中断系统控制中断系统控制淖宫傈抱碰耳植泣邪蝗钟愁狰笑维歧听召径纫溜件苞齿谆管赐绳萌锻俘蝗第五章中断系统第五章中断系统在在MCS51中中断断系系统统中中,中中断断的的允允许许或或禁禁止止是是由由片片内内可可进进行行位位寻寻址址的的8位中断允许寄存器位中断允许寄存器IE来控制的。见下表来控制的。见下表EAXXESET1 EX1 ET0 EX0其中其中EA是总开关,如果它等于是总开关,如果它等于0,则所有中断都不允许。,则所有中断都不允许。ES串行口中断允许串行口中断允许ET1定时器定时器1中断允许中断允许EX1外中断外中断1中断允许。中断允许。ET0定时器定时器0中断允许中断允许EX0外中断外中断0中断允许。中断允许。例例: :如果我们要设置允许外中断如果我们要设置允许外中断1,定时器,定时器1中断允许,其它不允许,则中断允许,其它不允许,则IE可以是可以是EAXXESET1 EX1 ET0 EX010001100即即8CH8CH,当然,我们也,当然,我们也可以用位操作指令可以用位操作指令SETB EASETB EASETB ET1SETB ET1SETB EX1SETB EX1来实现它。来实现它。2、中断允许寄存器、中断允许寄存器IE饺狐狐茸喷撰躬玄寻餐喻啥均代帛绞鹏韶双竣宿陈醚闻潜散灶湃危染逸排第五章中断系统第五章中断系统大家应当明白,为什么前面有一些程序一始我们这样写:大家应当明白,为什么前面有一些程序一始我们这样写:ORG 0000HLJMP STARTORG 0030HSTART:。3 3、五个中断源的中断服务入口地址、五个中断源的中断服务入口地址、五个中断源的中断服务入口地址、五个中断源的中断服务入口地址外中断外中断0:0003H定时器定时器0:000BH外中断外中断1:0013H定时器定时器1:001BH串口串口 : 0023H这这样样写写的的目目的的,就就是是为为了了让让出出中中断断源源所所占占用用的的向向量量地地址址。当当然然,在在程程序序中中没没用用中中断断时时,直直接接从从0000H开开始始写写程程序序,在在原原理理上上并并没没有有错错,但但在在实实际际工工作作中中最最好好不这样做。不这样做。中断服务入口地址中断服务入口地址中断服务入口地址中断服务入口地址它们的它们的自然优先级自然优先级由高到低排列。由高到低排列。吭橇路煎膝系鸭宛蜂掘爬配降羞忙顶点著涨章吁跪笨俏婚诞晦咬膀胺儡逛第五章中断系统第五章中断系统单片机采用了单片机采用了自然优先级自然优先级和和人工设置高、低优先级人工设置高、低优先级的策略,即可以由程序的策略,即可以由程序员设定那些中断是高优先级、哪些中断是低优先级,由于只有两级,必有员设定那些中断是高优先级、哪些中断是低优先级,由于只有两级,必有一些中断处于同一级别,处于同一级别的,就由自然优先级确定。一些中断处于同一级别,处于同一级别的,就由自然优先级确定。 4、优先级:、优先级:开机时,每个中断都处于低优先级,我们可以用指令对优先级进行设置。看表开机时,每个中断都处于低优先级,我们可以用指令对优先级进行设置。看表2中断优先级中由中断优先级寄存器中断优先级中由中断优先级寄存器IP来高置的,来高置的,IP中某位设为中某位设为1,相应的中断就是高,相应的中断就是高优先级,否则就是低优先级。优先级,否则就是低优先级。XXXPSPT1PX1PT0PX0例:设有如下要求,将例:设有如下要求,将T0、外中断、外中断1设为高优先级,其它为低优先级,求设为高优先级,其它为低优先级,求IP的值。的值。IP的首的首3位没用,可任意取值,设为位没用,可任意取值,设为000,后面根据要求写就可以了,后面根据要求写就可以了例:在上例中,如果例:在上例中,如果5个中断请求同时发生,求中断响应的次序。个中断请求同时发生,求中断响应的次序。响应次序为:定时器响应次序为:定时器0外中断外中断1外中断外中断0实时器实时器1串行中断。串行中断。XXXPSPT1PX1PT0PX000000110因此,最终,因此,最终,IP的值就是的值就是06H渔超巾蚤晓踪脆耍衫夸寓瓮音驭棱崭恃纸雇堤夷炯识至俘醛剐象鬃菏玉京第五章中断系统第五章中断系统中断系统控制中断系统控制-中断控制寄存器中断控制寄存器1.中断标志位中断标志位: TF1、TF0、IE1、IE0、RI 、TI登记各中断源请求信号:登记各中断源请求信号:=1=1,有中断请求;,有中断请求;= 0= 0,无中断请求。,无中断请求。CPUCPU响应中断后,该中断标志自动清零。响应中断后,该中断标志自动清零。TITI,RIRI标志必须软件清零。标志必须软件清零。2.外部中断外部中断触发方式选择位:触发方式选择位:IT0、IT1=1=1:负边沿触发中断请求;:负边沿触发中断请求;= 0= 0:低电平触发中断请求。:低电平触发中断请求。3. .中断允许控制位:中断允许控制位:EA、ES、ET1、EX1、ET0、EX0=1=1开中断;开中断;= 0= 0关中断。关中断。例:允许例:允许CPUCPU响应响应INT0INT0的中断请求的中断请求SETB EX0 SETB EX0 SETB EASETB EA4 4中断优先级控制位:中断优先级控制位:PSPS、PT1PT1、PX1PX1、PT0PT0、PX0PX02 2级优先级:级优先级:=1=1为高优先级,为高优先级,= 0= 0为低优先级。为低优先级。同一优先级别按内部查询顺序排列优先级:同一优先级别按内部查询顺序排列优先级:高高 INT0 INT0、T0T0、INT1INT1、T1T1、SIOSIO 低低。哀命拼渡誉剥掏铬述罩蒜蓑过猴嘛富间泌诅帝湿确赦勾拯抚账到口椭绽爪第五章中断系统第五章中断系统4 4中断优先级控制位:中断优先级控制位:PSPS、PT1PT1、PX1PX1、PT0PT0、PX0PX02 2级优先级:级优先级:=1=1为高优先级,为高优先级,= 0= 0为低优先级。为低优先级。同一优先级别按内部查询顺序排列优先级:同一优先级别按内部查询顺序排列优先级:高高 INT0 INT0、T0T0、INT1INT1、T1T1、SISIO 低低。1.中断标志位中断标志位: TF1、TF0、IE1、IE0、RI 、TI登记各中断源请求信号:登记各中断源请求信号:=1=1,有中断请求;,有中断请求;= 0= 0,无中断请求。,无中断请求。CPUCPU响应中断后,该中断标志自动清零。响应中断后,该中断标志自动清零。TITI,RIRI标志必须软件清零。标志必须软件清零。2.外部中断外部中断触发方式选择位:触发方式选择位:IT0、IT1=1=1:负边沿触发中断请求;:负边沿触发中断请求;= 0= 0:低电平触发中断请求。:低电平触发中断请求。3. .中断允许控制位:中断允许控制位:EA、ES、ET1、EX1、ET0、EX0=1=1开中断;开中断;= 0= 0关中断。关中断。例:允许例:允许CPUCPU响应响应INT0INT0的中断请求的中断请求SETB EX0 SETB EX0 SETB EASETB EA峭捡服堕留聘制冗粹航朴社钳逢羽君梆踪趣堵地扑汾剑奶语颖驭颜亥夏迂第五章中断系统第五章中断系统5-4 5-4 中断响应和中断返回中断响应和中断返回1 1、中断响应的条件:、中断响应的条件:、中断响应的条件:、中断响应的条件:我们人可以响应外界的事件,是因为我们有多种我们人可以响应外界的事件,是因为我们有多种“传感器传感器“眼、耳可以接受不同的信息,计算机是眼、耳可以接受不同的信息,计算机是如何做到这点的呢?如何做到这点的呢?MCS51工作时,在每个机器周期中都会去查询一下各个中断标记,看他们是否工作时,在每个机器周期中都会去查询一下各个中断标记,看他们是否是是“1“,如果是,如果是1,就说明有中断请求了,所以所谓中断,其实也是查询,不过是每个周期都查一下,就说明有中断请求了,所以所谓中断,其实也是查询,不过是每个周期都查一下而已。这要换成人来说,就相当于你在看书的时候,每一秒钟都会抬起头来看一看,查问一下,是不而已。这要换成人来说,就相当于你在看书的时候,每一秒钟都会抬起头来看一看,查问一下,是不是有人按门铃,是否有电话。是有人按门铃,是否有电话。在下列三种情况之一时,在下列三种情况之一时,在下列三种情况之一时,在下列三种情况之一时,CPUCPU将封锁对中断的响应:将封锁对中断的响应:将封锁对中断的响应:将封锁对中断的响应:A CPU正在处理一个同级或更高级别的中断请求。正在处理一个同级或更高级别的中断请求。 B 现行的机器周期不是当前正执行指令的最后一个周期。现行的机器周期不是当前正执行指令的最后一个周期。我们知道,单片机有单周期、双周期、三周期指令,当前执行指令是单字节没有关系,如果是双字节或四字节的,就要等整条指令都执行完了,才能响应中断(因为中断查询是在每个机器周期都可能查到的)。 C 当前正执行的指令是返回批令(当前正执行的指令是返回批令(RETI)或访问)或访问IP、IE寄存器的指令,则寄存器的指令,则CPU至少再执至少再执行一条指令才应中断。行一条指令才应中断。这些都是与中断有关的,如果正访问IP、IE则可能会开、关中断或改变中断的优先级,而中断返回指令则说明本次中断还没有处理完,所以都要等本指令处理结束,再执行一条指令才可以响应中断。MCSMCS5151的中断响应过程:的中断响应过程:的中断响应过程:的中断响应过程:湘她鬃则峡宰词赣挺游犬津遣姑闭丝从脉肮咐猜悔旁幅赖阳孪淋李理吭卸第五章中断系统第五章中断系统2 2、中断响应过程、中断响应过程、中断响应过程、中断响应过程这些工作都是由硬件来完成的,不必我们去考虑。这里还有个问题,大家是否注意到,每这些工作都是由硬件来完成的,不必我们去考虑。这里还有个问题,大家是否注意到,每个中断向量地址只间隔了个中断向量地址只间隔了8个单元,如个单元,如0003000B,在如此少的空间中如何完成中断程,在如此少的空间中如何完成中断程序呢?很简单,你在中断处安排一个序呢?很简单,你在中断处安排一个LJMP指令,不就可以把中断程序跳转到任何地方了指令,不就可以把中断程序跳转到任何地方了吗?吗?一个完整的主程序看起来应该是这样的:一个完整的主程序看起来应该是这样的:ORG 0000HORG 0000HLJMP STARTLJMP STARTORG 0003HORG 0003HLJMP INT0 LJMP INT0 ;转外中断;转外中断0 0ORG 000BHORG 000BHRETI RETI ;没有用定时器;没有用定时器0 0中断,在此放一条中断,在此放一条RETIRETI,万一,万一 “不小心不小心“产生了中断,也不会有产生了中断,也不会有太大的后果。太大的后果。CPU响应中断时响应中断时,首先把当前指令的下一条指令(就是中断返回后将要执行的指,首先把当前指令的下一条指令(就是中断返回后将要执行的指令)的地址送入令)的地址送入堆栈堆栈,然后根据中断标记,将相应的,然后根据中断标记,将相应的中断入口地址中断入口地址送入送入PC,PC是是程序指针,程序指针,CPU取指令就根据取指令就根据PC中的值,中的值,PC中是什么值,就会到什么地方去取指中是什么值,就会到什么地方去取指令,所以程序就会转到令,所以程序就会转到中断入口处继续执行中断入口处继续执行。金牌铬驹榨观蔗耐屿性泛报梗妒磨巍檬朱填祸畸绝伺害寂谭厩花刑党跳濒第五章中断系统第五章中断系统3. 中断返回中断返回 4 4 中断响应时间中断响应时间正正常常中中断断响响应应时时间间至至少少为为3 38 8个个机机器器周周期期,如如果果有有同同级级或或高高级级中中断服务,将延长中断响应时间。断服务,将延长中断响应时间。中中断断程程序序完完成成后后,一一定定要要执执行行一一条条RETI指指令令,执执行行这这条条指指令令后后,CPU将将会会把把堆堆栈栈中中保保存存着着的的地地址址取取出出,送送回回PC,那那么么程程序序就就会会从从主主程程序序的的中中断断处处继继续续往往下下执执行了。行了。注注意意:CPU所所做做的的保保护护工工作作是是很很有有限限的的,只只保保护护了了一一个个地地址址,而而其其它它的的所所有有东东西西都都不不保保护护,所所以以如如果果你你在在主主程程序序中中用用到到了了如如A、PSW等等,在在中中断断程程序序中中又又要要用用它它们们,还还要要保保证证回回到到主主程程序序后后这这里里面面的的数数据据还还是是没没执执行行中中断断以以前前的的数数据据,就就得得自自己己保护起来。保护起来。中断返回指令:中断返回指令: RETI= RET指令指令 + 通知通知CPU中断服务已结束。中断服务已结束。茬肿嗣席拂以侍雄兆疑仇隘酞节枫恰肮滚耗深匪跃筛秆休木佐按晚屹北滞第五章中断系统第五章中断系统 5-5 5-5 中断系统应用中断系统应用举例举例要求每次按动按键,使外接发光二极管要求每次按动按键,使外接发光二极管LEDLED改变一次亮灭状态。改变一次亮灭状态。解:解:INT0INT0输入按键信号,输入按键信号,P P1.01.0输出改变输出改变LEDLED状态。状态。1 1跳变触发跳变触发:每次跳变引起一次中断请求。:每次跳变引起一次中断请求。 ORG ORG 0000H 0000H;复位入口;复位入口 AJMP MAINAJMP MAINORGORG0003H0003H;中断入口;中断入口AJMPAJMPPINT0PINT0ORGORG0100H0100H;主程序;主程序MAINMAIN:MOV SPMOV SP,#40H#40H;设栈底;设栈底SETBSETBEAEA;开总允许开关;开总允许开关SETBSETBEX0EX0;开;开INT0INT0中断中断SETBSETBIT0IT0;负跳变触发中断;负跳变触发中断H H:SJMPSJMPH H ;执行其它任务;执行其它任务ORGORG0200H0200H;中断服务程序;中断服务程序PINT0PINT0:CPL P1.0CPL P1.0;改变;改变LEDLEDRETIRETI;返回主程序;返回主程序单片机单片机INT0P1.01+5V处理外部中断处理外部中断韶抡纸耐颜凉义激坠诛天臆筹某仪招钮助耻知嗣滨渤梧寐蝎渠酿惋庐峡壬第五章中断系统第五章中断系统 ORG ORG 0000H 0000H;复位入口;复位入口 AJMP MAINAJMP MAINORGORG0003H0003H;中断入口;中断入口AJMPAJMPPINT0PINT0ORGORG0100H0100H;主程序;主程序MAINMAIN:MOV SPMOV SP,#40H#40H;设栈底;设栈底SETBSETBEAEA;开总允许开关;开总允许开关SETBSETBEX0EX0;开;开INT0INT0中断中断CLRCLRIT0IT0;低电平触发中断;低电平触发中断H H:SJMPSJMPH H ;执行其它任务;执行其它任务ORGORG0200H0200H;中断服务程序;中断服务程序PINT0PINT0:CPL P1.0CPL P1.0;改变;改变LEDLEDWAITWAIT:JNBJNBP3.2P3.2,WAITWAIT;等按键释放;等按键释放RETIRETI;返回主程序;返回主程序1 1软件等待按键释放。软件等待按键释放。2 2硬件清除中断信号。硬件清除中断信号。2. 电平触发:电平触发:避免一次按键引起多次中断响应。避免一次按键引起多次中断响应。单片机单片机INT0P1.01+5V洒填文至捡盗嘻契诧讼秋杂怒父额济污划蛮宅劳襄冶宠褐锄涩验安慧躲肺第五章中断系统第五章中断系统例例51 图图53所示为一检测报警电路,图中检测电路为所示为一检测报警电路,图中检测电路为无锁按钮开关,无锁按钮开关,P1.0、P1.1分别驱动声、光报警电路。分别驱动声、光报警电路。P1.0、P1.1端线输出端线输出“”时报警电路工作。试设计一程序,时报警电路工作。试设计一程序,每当按键按下一次后,每当按键按下一次后,P1.0,P1.1输出报警信号输出报警信号10秒钟,秒钟,并使内部并使内部RAM 55H单元数据加单元数据加1,10秒钟延时子程序为秒钟延时子程序为DELLAY10。解:解: 参考程序如下:参考程序如下: ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ;上电或复位后自动转向主程序。;上电或复位后自动转向主程序。 ORG 0003H ORG 0003H LJMP BJ LJMP BJ ;外中断;外中断0 0入口地址为入口地址为0003H0003H。 ORG 0030H ORG 0030H MAINMAIN:MOV 55HMOV 55H, #00H #00H ;计数器清零。;计数器清零。 CLR P1.0 CLR P1.0 ;关报警。;关报警。 CLR P1.1 CLR P1.1 MOV SPMOV SP, #30H #30H ;设置堆栈指针。;设置堆栈指针。 SETB IT0 SETB IT0 ;选择边沿触发中断方式。;选择边沿触发中断方式。 SETB EA SETB EA ;允许总中断。;允许总中断。 SETB EX0 SETB EX0 ;允许;允许INT0INT0申请中断。申请中断。HEREHERE:SJMP HERE SJMP HERE ;等待中断。;等待中断。 以下为中断服务子程序:以下为中断服务子程序: ORG 00A0H ORG 00A0H BJ BJ:PUSH ACC PUSH ACC ;保护现场。;保护现场。 MOV A MOV A, #03H #03H MOV P1 MOV P1, A A ;P1.0P1.0,P1.1P1.1置置1 1, ;即发出声光报警。;即发出声光报警。 LCALL DELAY10 LCALL DELAY10 ;延时;延时10S10S。 MOV A MOV A, #00H #00H MOV P1 MOV P1, A A ;清报警。;清报警。 INC 55H INC 55H ;计数器加;计数器加1 1。 POP ACC POP ACC ;现场恢复。;现场恢复。 RETI RETI ;中断返回。;中断返回。欢迪蹄桅孽欢萤狂潍淡加嫂鄂指湿妨瘴释洪劫冗屯单峰臣邻硝奇扦筋脱咳第五章中断系统第五章中断系统例例5 52 2 如如图5 54 4所示,当按所示,当按键AN1AN1或或AN2AN2按下按下时,会,会产生中断。生中断。试编程将程将INT0INT0设为低低优先先级,INT1INT1设为高高优先先级,主程序,主程序执行行时循序点亮循序点亮LEDLED;当;当INT0INT0产生中断后,生中断后,执行中断子程行中断子程序序1 1,此,此时8 8只只LEDLED全亮然后全暗,如此全亮然后全暗,如此1616次后,返回主程序;当次后,返回主程序;当INT1INT1产生中断后,生中断后,执行中行中断子程序断子程序2 2,此,此时8 8只只LEDLED则为一次亮一次亮4 4只,然后亮另外只,然后亮另外4 4只,如此只,如此1616次后,返回主程序。次后,返回主程序。解:参考程序如下:解:参考程序如下:ORG 0000HORG 0000HAJMP MAINAJMP MAINORG 0003HORG 0003HAJMP INT0AJMP INT0ORG 0013HORG 0013HAJMP INT1 AJMP INT1 ORG 0030HORG 0030HMAINMAIN:MOV SPMOV SP, #30H #30H ;设堆栈指针。;设堆栈指针。 SETB PX1 SETB PX1 ;设外部中断;设外部中断1 1优先级为高。优先级为高。CLR PX0 CLR PX0 ;设外部中断;设外部中断0 0优先级为低。优先级为低。MOV TCONMOV TCON,#05H #05H ;设边沿触发。;设边沿触发。SETB EA SETB EA ;允许总中断。;允许总中断。SETB EX0 SETB EX0 ;允许;允许INT0INT0中断。中断。SETB EX1 SETB EX1 ;允许;允许INT1INT1中断。中断。MOV AMOV A, #01H #01H ;从;从P1.7P1.7至至P1.0P1.0循序亮一只。循序亮一只。TOR1TOR1: RR A RR AMOV P1MOV P1, A AACALL DELAY ACALL DELAY ;延迟。;延迟。AJMP TOR1 AJMP TOR1 眺磺瘤屈嫌霓邪肢谈赌首皮增佣裂耀痪未伍话烫迅况杖扯次健苇靖靡泵殴第五章中断系统第五章中断系统INT0中断子程序:中断子程序:ORG 0100H INT0:PUSH PSW ;保护现场。;保护现场。PUSH ACC MOV R0, #10H ;循环;循环16次。次。LOOP1:MOV A, #00H ;全亮。;全亮。 MOV P1, A ACALL DELAY ;延迟。;延迟。 MOV A, #0FFH ;全暗。;全暗。 MOV P1, A ACALL DELAY ;延迟。;延迟。 DJNZ R0, LOOP1 POP ACC ;恢复现场。;恢复现场。 POP PSW RETIINT1中断子程序:中断子程序:ORG 0200H INT1:PUSH PSW ;保护现场。;保护现场。 PUSH ACC MOV R0,#10H ;执行;执行16次。次。LOOP2:MOV A, #0FH ;一次亮;一次亮4只。只。 MOV P1, A ACALL DELAY ;延迟。;延迟。 MOV A, #0F0H ;亮另;亮另4只。只。 MOV P1, A ACALL DELAY ;延迟。;延迟。 DJNZ R0, LOOP2 POP A CC ;恢复现场。;恢复现场。 POP PSW RETI END 延时子程序:延时子程序: ORG 00A0HDELAY:MOV R3, #0FFH LOOP:MOV R4, #0FF H DJNZ R4, $ DJNZ R3, LOOP RET势肯跨靳帧瞬谓省痔荡滥魏戚蜒昏道罩渠攀崩影爬阶喀窍浦缚鸦色砧灶食第五章中断系统第五章中断系统
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号