五章节中断系统

上传人:cn****1 文档编号:567708738 上传时间:2024-07-22 格式:PPT 页数:18 大小:313KB
返回 下载 相关 举报
五章节中断系统_第1页
第1页 / 共18页
五章节中断系统_第2页
第2页 / 共18页
五章节中断系统_第3页
第3页 / 共18页
五章节中断系统_第4页
第4页 / 共18页
五章节中断系统_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《五章节中断系统》由会员分享,可在线阅读,更多相关《五章节中断系统(18页珍藏版)》请在金锄头文库上搜索。

1、第五章第五章 中断系统中断系统5-1 中断技术中断技术的概述的概述 5-2 MCS-51 MCS-51中断系统中断系统走锌经骤烦橱诧播澳荚裙蛹烙亢边只禽蓖淋朱妖柴荔审宝淬库叔杏燥毋桃五章节中断系统五章节中断系统中断系统是计算机的重要指标之一中断系统是计算机的重要指标之一。一、一、 中断概念中断概念某人看书某人看书 执行主程序执行主程序 日常事务日常事务电话铃响电话铃响 中断信号中断信号INT=0INT=0 中断请求中断请求暂停看书暂停看书 暂停执行主程序暂停执行主程序 中断响应中断响应书中作记号书中作记号 当前当前PCPC入栈入栈 保护断点保护断点电话谈话电话谈话 执行执行I/I/O程序程序

2、中断服务中断服务继续看书继续看书 返回主程序返回主程序 中断返回中断返回日日常常事事务务程程序序中中断断服服务务程程序序5-15-1 中断技术中断技术的概述的概述 扎蜀拣行蜘莹法厄瑚檄谍索狠热胳舶捆者宾摇索杰擂乃希淤庚锁哄寝蛊划五章节中断系统五章节中断系统三、中断优先权三、中断优先权1.1.当当同同时时有有多多个个中中断断请请求求信信号号,先先响响应应优优先先级级别别高高的的中中断断请求。请求。2.2.高高优优先先级级中中断断请请求求信信号号可可中断低优先级中断服务。中断低优先级中断服务。四、中断源四、中断源能能发发出出中中断断请请求求信信号号的的各各种种事事件件。如如I/I/O设设备备、定定

3、时时时时钟钟、系系统统故故障障、软软件件设设定定等等。单单片片机机中中也也有有一一些些可可以以引引起起中中断断的的事事件件,8031中中一一共共有有5个个:两个外部中断,两个计数两个外部中断,两个计数/定时器中断,一个串行口中断。定时器中断,一个串行口中断。 日常事务日常事务程序程序中断服务中断服务程序程序1中断服务中断服务程序程序2二、中断过程二、中断过程二、中断过程二、中断过程 中断系统工作可由中断请求、中断响应、中中断系统工作可由中断请求、中断响应、中断服务、中断返回四个阶段组成。断服务、中断返回四个阶段组成。 鬼记匈扰姥誊罚右酉过品吁准甚坍爆挥蓉贫成铃简注撵膳展落帧匀料咒屎五章节中断系

4、统五章节中断系统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、

5、PT0PT0、PX0PX0总允许开关:总允许开关:EAEA源允许开关:源允许开关:ESES、ET1ET1、EX1EX1、ET0ET0、EX0EX0如图所示,如图所示,MCS-51中断系统由中断系统由与中断有关的特殊功能寄存器、与中断有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等中断入口、顺序查询逻辑电路等组成,包括组成,包括5个中断请求源,个中断请求源,4个个用于中断控制的寄存器用于中断控制的寄存器IE、IP、ECON和和SCON来控制中断来控制中断 类弄、类弄、中断的开、关和各种中断源的优中断的开、关和各种中断源的优先级确定。先级确定。 沦具兰总理蓬眨整橡估鸽试期谁献洛菠滥黍柯拦艳矾掺锰

6、酞吕侧侦踌瑞绎五章节中断系统五章节中断系统1.中断请求源:中断请求源: (1 1)外部中断请求源:)外部中断请求源:)外部中断请求源:)外部中断请求源:即外中断即外中断0和和1,经由外部引脚引入的,在单片机上有两个引脚,名称为,经由外部引脚引入的,在单片机上有两个引脚,名称为INT0、INT1,也就是也就是P3.2、P3.3这两个引脚。这两个引脚。在内部的在内部的TCON中有四位是与外中断有关的。中有四位是与外中断有关的。IT0:INT0触发方式触发方式控制位,可由软件进和置位和复位,IT0=0,INT0为低电平触发方式,IT0=1,INT0为负跳变触发方式。这两种方式的差异将在以后再谈。IE

7、0: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、的的允允许许或或禁禁止止是是由由片片内内可可进进行行位位寻寻址址的的8位中断允许寄存器位中断允许寄存器IE来控制的。见下表来控制的。见下表EAXXESET1 EX1 ET0 EX0其中其中EA是总开关,如果它等于是总开关,如果它等于0,则所有中断都不允许。,则所有中断都不允许。ES串行口中断允许串行口中断允许ET1定时器定时器1中断允许中断允许EX1外中断外中断1中断允许。中断允许。ET0定时器定时器0中断允许中断允许EX0外中断外中断0中断允许。中断允许。例例: :如果我们要设置允许外中断如果我们要设置允许外中断1,定时器,定时器1中断允许,其它不允许,则中断允许,其它不允许,则IE可以是可

9、以是EAXXESET1 EX1 ET0 EX010001100即即8CH8CH,当然,我们也,当然,我们也可以用位操作指令可以用位操作指令SETB EASETB EASETB ET1SETB ET1SETB EX1SETB EX1来实现它。来实现它。2、中断允许寄存器、中断允许寄存器IE翟归攒筏茸瘴猩购趁蛤戮部优缩它丰颂狮氨毗扶丘亢边猩凹疹祈明右战捷五章节中断系统五章节中断系统大家应当明白,为什么前面有一些程序一始我们这样写:大家应当明白,为什么前面有一些程序一始我们这样写:ORG 0000HLJMP STARTORG 0030HSTART:。3 3、五个中断源的中断服务入口地址、五个中断源的

10、中断服务入口地址、五个中断源的中断服务入口地址、五个中断源的中断服务入口地址外中断外中断0:0003H定时器定时器0:000BH外中断外中断1:0013H定时器定时器1:001BH串口串口 : 0023H这这样样写写的的目目的的,就就是是为为了了让让出出中中断断源源所所占占用用的的向向量量地地址址。当当然然,在在程程序序中中没没用用中中断断时时,直直接接从从0000H开开始始写写程程序序,在在原原理理上上并并没没有有错错,但但在在实实际际工工作作中中最最好好不这样做。不这样做。中断服务入口地址中断服务入口地址中断服务入口地址中断服务入口地址它们的它们的自然优先级自然优先级由高到低排列。由高到低

11、排列。扛厦委瑚讯试痰遮荆彻瞩婉羽醛虎滨汽庐眠愚订裸盯彻赘饿辅宋鸣瞒瓢身五章节中断系统五章节中断系统单片机采用了单片机采用了自然优先级自然优先级和和人工设置高、低优先级人工设置高、低优先级的策略,即可以由程序的策略,即可以由程序员设定那些中断是高优先级、哪些中断是低优先级,由于只有两级,必有员设定那些中断是高优先级、哪些中断是低优先级,由于只有两级,必有一些中断处于同一级别,处于同一级别的,就由自然优先级确定。一些中断处于同一级别,处于同一级别的,就由自然优先级确定。 4、优先级:、优先级:开机时,每个中断都处于低优先级,我们可以用指令对优先级进行设置。看表开机时,每个中断都处于低优先级,我们可

12、以用指令对优先级进行设置。看表2中断优先级中由中断优先级寄存器中断优先级中由中断优先级寄存器IP来高置的,来高置的,IP中某位设为中某位设为1,相应的中断就是高,相应的中断就是高优先级,否则就是低优先级。优先级,否则就是低优先级。XXXPSPT1PX1PT0PX0例:设有如下要求,将例:设有如下要求,将T0、外中断、外中断1设为高优先级,其它为低优先级,求设为高优先级,其它为低优先级,求IP的值。的值。IP的首的首3位没用,可任意取值,设为位没用,可任意取值,设为000,后面根据要求写就可以了,后面根据要求写就可以了例:在上例中,如果例:在上例中,如果5个中断请求同时发生,求中断响应的次序。个

13、中断请求同时发生,求中断响应的次序。响应次序为:定时器响应次序为:定时器0外中断外中断1外中断外中断0实时器实时器1串行中断。串行中断。XXXPSPT1PX1PT0PX000000110因此,最终,因此,最终,IP的值就是的值就是06H烽卒侮滇瞪瞅沥腆卫搐循讼狐捎符础罗拍笨拇滴侮组蔡关洞藏芝澄藐地帽五章节中断系统五章节中断系统中断系统控制中断系统控制-中断控制寄存器中断控制寄存器1.中断标志位中断标志位: TF1、TF0、IE1、IE0、RI 、TI登记各中断源请求信号:登记各中断源请求信号:=1=1,有中断请求;,有中断请求;= 0= 0,无中断请求。,无中断请求。CPUCPU响应中断后,该

14、中断标志自动清零。响应中断后,该中断标志自动清零。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、

15、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为低优先级。为低优先级。

16、同一优先级别按内部查询顺序排列优先级:同一优先级别按内部查询顺序排列优先级:高高 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:负边沿触发中断请求;:负边沿触发中断请求;=

17、 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、中断响应的条件:、中断响应的条件:、中断响应的条件:、中断响应的条件:我们人可以响应外界的事件,是因为我们有多种我们人可以响

18、应外界的事件,是因为我们有多种“传感器传感器“眼、耳可以接受不同的信息,计算机是眼、耳可以接受不同的信息,计算机是如何做到这点的呢?如何做到这点的呢?MCS51工作时,在每个机器周期中都会去查询一下各个中断标记,看他们是否工作时,在每个机器周期中都会去查询一下各个中断标记,看他们是否是是“1“,如果是,如果是1,就说明有中断请求了,所以所谓中断,其实也是查询,不过是每个周期都查一下,就说明有中断请求了,所以所谓中断,其实也是查询,不过是每个周期都查一下而已。这要换成人来说,就相当于你在看书的时候,每一秒钟都会抬起头来看一看,查问一下,是不而已。这要换成人来说,就相当于你在看书的时候,每一秒钟都

19、会抬起头来看一看,查问一下,是不是有人按门铃,是否有电话。是有人按门铃,是否有电话。在下列三种情况之一时,在下列三种情况之一时,在下列三种情况之一时,在下列三种情况之一时,CPUCPU将封锁对中断的响应:将封锁对中断的响应:将封锁对中断的响应:将封锁对中断的响应:A CPU正在处理一个同级或更高级别的中断请求。正在处理一个同级或更高级别的中断请求。 B 现行的机器周期不是当前正执行指令的最后一个周期。现行的机器周期不是当前正执行指令的最后一个周期。我们知道,单片机有单周期、双周期、三周期指令,当前执行指令是单字节没有关系,如果是双字节或四字节的,就要等整条指令都执行完了,才能响应中断(因为中断

20、查询是在每个机器周期都可能查到的)。 C 当前正执行的指令是返回批令(当前正执行的指令是返回批令(RETI)或访问)或访问IP、IE寄存器的指令,则寄存器的指令,则CPU至少再执至少再执行一条指令才应中断。行一条指令才应中断。这些都是与中断有关的,如果正访问IP、IE则可能会开、关中断或改变中断的优先级,而中断返回指令则说明本次中断还没有处理完,所以都要等本指令处理结束,再执行一条指令才可以响应中断。MCSMCS5151的中断响应过程:的中断响应过程:的中断响应过程:的中断响应过程:德迄恕蹦尼阀提拣跋扩进抉崩新古雁申力脐菏审谎决候台亿宝诺走月粪淡五章节中断系统五章节中断系统2 2、中断响应过程

21、、中断响应过程、中断响应过程、中断响应过程这些工作都是由硬件来完成的,不必我们去考虑。这里还有个问题,大家是否注意到,每这些工作都是由硬件来完成的,不必我们去考虑。这里还有个问题,大家是否注意到,每个中断向量地址只间隔了个中断向量地址只间隔了8个单元,如个单元,如0003000B,在如此少的空间中如何完成中断程,在如此少的空间中如何完成中断程序呢?很简单,你在中断处安排一个序呢?很简单,你在中断处安排一个LJMP指令,不就可以把中断程序跳转到任何地方了指令,不就可以把中断程序跳转到任何地方了吗?吗?一个完整的主程序看起来应该是这样的:一个完整的主程序看起来应该是这样的:ORG 0000HORG

22、 0000HLJMP STARTLJMP STARTORG 0003HORG 0003HLJMP INT0 LJMP INT0 ;转外中断;转外中断0 0ORG 000BHORG 000BHRETI RETI ;没有用定时器;没有用定时器0 0中断,在此放一条中断,在此放一条RETIRETI,万一,万一 “不小心不小心“产生了中断,也不会有产生了中断,也不会有太大的后果。太大的后果。CPU响应中断时响应中断时,首先把当前指令的下一条指令(就是中断返回后将要执行的指,首先把当前指令的下一条指令(就是中断返回后将要执行的指令)的地址送入令)的地址送入堆栈堆栈,然后根据中断标记,将相应的,然后根据中

23、断标记,将相应的中断入口地址中断入口地址送入送入PC,PC是是程序指针,程序指针,CPU取指令就根据取指令就根据PC中的值,中的值,PC中是什么值,就会到什么地方去取指中是什么值,就会到什么地方去取指令,所以程序就会转到令,所以程序就会转到中断入口处继续执行中断入口处继续执行。忻捐霖陛古舀蔫珐溪旗椰公梗昔辐油岛究锅推状条被阅健郭屉光垂徘挟陆五章节中断系统五章节中断系统3. 中断返回中断返回 4 4 中断响应时间中断响应时间正正常常中中断断响响应应时时间间至至少少为为3 38 8个个机机器器周周期期,如如果果有有同同级级或或高高级级中中断服务,将延长中断响应时间。断服务,将延长中断响应时间。中中

24、断断程程序序完完成成后后,一一定定要要执执行行一一条条RETI指指令令,执执行行这这条条指指令令后后,CPU将将会会把把堆堆栈栈中中保保存存着着的的地地址址取取出出,送送回回PC,那那么么程程序序就就会会从从主主程程序序的的中中断断处处继继续续往往下下执执行了。行了。注注意意:CPU所所做做的的保保护护工工作作是是很很有有限限的的,只只保保护护了了一一个个地地址址,而而其其它它的的所所有有东东西西都都不不保保护护,所所以以如如果果你你在在主主程程序序中中用用到到了了如如A、PSW等等,在在中中断断程程序序中中又又要要用用它它们们,还还要要保保证证回回到到主主程程序序后后这这里里面面的的数数据据

25、还还是是没没执执行行中中断断以以前前的的数数据据,就就得得自自己己保护起来。保护起来。中断返回指令:中断返回指令: RETI= RET指令指令 + 通知通知CPU中断服务已结束。中断服务已结束。绩狸目焉氧悦觉盟圆稼絮镇宋徽彦灿字脉篮嘱五勘速瞬驻淫惑旧狄常被谦五章节中断系统五章节中断系统 5-5 5-5 中断系统应用中断系统应用举例举例要求每次按动按键,使外接发光二极管要求每次按动按键,使外接发光二极管LEDLED改变一次亮灭状态。改变一次亮灭状态。解:解:INT0INT0输入按键信号,输入按键信号,P P1.01.0输出改变输出改变LEDLED状态。状态。1 1跳变触发跳变触发:每次跳变引起一

26、次中断请求。:每次跳变引起一次中断请求。 ORG ORG 0000H 0000H;复位入口;复位入口 AJMP MAINAJMP MAINORGORG0003H0003H;中断入口;中断入口AJMPAJMPPINT0PINT0ORGORG0100H0100H;主程序;主程序MAINMAIN:MOV SPMOV SP,#40H#40H;设栈底;设栈底SETBSETBEAEA;开总允许开关;开总允许开关SETBSETBEX0EX0;开;开INT0INT0中断中断SETBSETBIT0IT0;负跳变触发中断;负跳变触发中断H H:SJMPSJMPH H ;执行其它任务;执行其它任务ORGORG020

27、0H0200H;中断服务程序;中断服务程序PINT0PINT0:CPL P1.0CPL P1.0;改变;改变LEDLEDRETIRETI;返回主程序;返回主程序单片机单片机INT0P1.01+5V处理外部中断处理外部中断彝六汗悍过撂绅矛阐砂哦素勾搀阴狐桶属每忍雄茎颧钱胳坏秉芹巷衰菲柯五章节中断系统五章节中断系统 ORG ORG 0000H 0000H;复位入口;复位入口 AJMP MAINAJMP MAINORGORG0003H0003H;中断入口;中断入口AJMPAJMPPINT0PINT0ORGORG0100H0100H;主程序;主程序MAINMAIN:MOV SPMOV SP,#40H#

28、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硬件清除中断信号。硬件清除中断信号。

29、2. 电平触发:电平触发:避免一次按键引起多次中断响应。避免一次按键引起多次中断响应。单片机单片机INT0P1.01+5V掏烫汾社颈觉役装洒甩趣臻皮齿稍呵耿江粳重兑荫肉伟倚粱炭歪霹盈宁挫五章节中断系统五章节中断系统例例51 图图53所示为一检测报警电路,图中检测电路为所示为一检测报警电路,图中检测电路为无锁按钮开关,无锁按钮开关,P1.0、P1.1分别驱动声、光报警电路。分别驱动声、光报警电路。P1.0、P1.1端线输出端线输出“”时报警电路工作。试设计一程序,时报警电路工作。试设计一程序,每当按键按下一次后,每当按键按下一次后,P1.0,P1.1输出报警信号输出报警信号10秒钟,秒钟,并使内

30、部并使内部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 ;

31、关报警。;关报警。 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 ;保护现场。

32、;保护现场。 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 ;中断返回。;中断返回。哪指礼因景修懒躇磁虐所卫稗更坷邱颓哭竭窒得窃渍婚蹲簧冉戎熔歌

33、婶垄五章节中断系统五章节中断系统例例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

34、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 P

35、X0 ;设外部中断;设外部中断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 ;延迟。;延迟

36、。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 ;恢复现场。;恢复现场。

37、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疯岭航桐搔殉掂笛容凛休斗且降策晶徐恳焉迭苯扦嘘激坚沛履坑瘸稿忠胞五章节中断系统五章节中断系统

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号