微机原理-05-中断课件_第1页
微机原理-05-中断课件_第2页
微机原理-05-中断课件_第3页
微机原理-05-中断课件_第4页
微机原理-05-中断课件_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章中断系统§5.1微机的输入/输出方式§5.2中断的概念§5.389C51中断系统结构及中断控制§5.4中断处理过程§5.5外部中断扩展方法§5.6中断程序举例5.7思考题与习题第五章中断系统§5.1微机的输入/输出方式1§5.1微机的输入/输出方式§5.1.1无条件传送方式不需要交换状态信息,只需在程序中加入访问外设的指令,数据传送便可以实现。§5.1.2查询传送方式(条件传送)通过查询外设的状态信息,确信外设已处于“准备好”,计算机才发出访问外设的指令,实现数据的传送。输出时,要查询外设是否把上一次CPU输出的数据处理完毕。状态信息:一般为1位二进制码。输入时,需要查询外设的输入数据是否准备好;§5.1微机的输入/输出方式§5.1.1无条件传送方2输入状态信息准备好?传送数据YN查询方式程序流程图缺点:CPU在完成一次数据传送后要等待很长时间才能进行下一次的传送。在等待过程中,CPU不能进行其他操作,所以效率比较低。优点:通用性好,可以用于各类外设和CPU间的数据传送。输入状态信息准备好?传送数据YN查询方式程序流程图缺点:CP3§5.1.3直接存储器存取(DMA)方式DMA:DirectMemoryAccessCPU让出数据总线(悬浮状态),使外设和存储器之间直接传送(不通过CPU)数据的方式。适用于外设和存储器之间有大量的数据需要传送及外设工作速度很快的情况。§5.1.3直接存储器存取(DMA)方式DMA:Direc4§5.1.4中断传送方式当CPU正在工作时,外部事件请求CPU迅速去处理,于是CPU暂停当前工作,转去处理外部事件。中断服务处理完毕后,再返回到原来被暂停的地方继续原来的工作,这样的过程称为中断。主程序响应中断请求中断服务程序返回主程序继续执行主程序断点中断请求§5.1.4中断传送方式当CPU正在工作时,外部事件5§5.2中断的概念一、什么是中断

二、中断源引起并发出中断请求的源头三、中断源识别中断发生后,系统如何识别是哪一个中断源引起的中断。四、中断控制中断允许、中断优先级控制五、中断优点分时操作提高主机效率实时处理随机故障处理§5.2中断的概念一、什么是中断二、中断源引起并发6§5.3.189C51中断源和中断请求标志

8051提供5个中断源:INT0P3.2引脚上的外部中断请求(外中断0)INT1P3.3引脚上的外部中断请求(外中断1)T0片内定时器/计数器0溢出(TF0)中断请求T1片内定时器/计数器1溢出(TF1)中断请求TI/RI片内串行口完成一帧发送或接收中断请求源说明:每一个中断源都对应有一个中断请求标志位,设在SFR的TCON和SCON中。有中断请求时,由TCON和SCON中的相应位来锁存。§5.389C51中断系统结构及中断控制§5.3.189C51中断源和中断请求标志8051提供57

TCON-定时器/计数器(T0,T1)控制器(88H)TF1TF0IE1IT1IE0IT08F8E8D8C8B8A8988TCONT1溢出中断标志T0溢出中断标志外中断1请求标志外部中断1触发方式控制外部中断0触发方式控制外中断0请求标志

T0、T1从初值开始加1计数到产生溢出,使TF0、TF1置“1”,直到CPU响应中断时由硬件复位。

若ITi=1(沿触发),则INTi上的电平由1变到0时,置位IEi、在CPU响应该中断时由硬件清0。

若ITi=0(电平触发),则输入到INTi的外部中断源必须保持低电平有效,直到该中断被响应。同时在中断返回前必须使电平变高,否则将会再次产生中断。位地址TCON-定时器/计数器(T0,T1)控制器(88H)T8SCON-串行口控制寄存器(98H)

当发送和接收中任何一个标志被置位时,都可以向CPU提出申请。必须在中断服务程序中判断,并由软件将RI和TI标志位清0。发送中断标志接收中断标志TIRISCON9F9E9D9C9B9A9998位地址一帧数据发送完毕置“1”TI,请求CPU发送下一帧一帧数据接收完毕置“1”RI,请求CPU取走数据通常情况的中断源:I/O外设、硬件故障、实时时钟等SCON-串行口控制寄存器(98H)当发送和接收9§5.3.2中断控制IE-中断允许寄存器(A8H)EA--ESET1EX1ET0EX0IEAFAEADACABAAA9A8中断允许标志0禁止所有中断1开放中断外部中断01允许中断外部中断11允许中断T0的溢出中断1允许中断T1的溢出中断1允许中断串行口中断允许位1允许中断位地址一、中断允许控制§5.3.2中断控制IE-中断允许寄存器(A8H)EA10例:假设允许片内定时器/计数器中断,禁止其他中断。试根据假设条件设置IE的相应值。解:(IE)=10001010B=8AH(a)用字节操作指令MOVIE,#8AH;或MOV0A8H,#8AH;(b)用位操作指令SETBET0;定时器/计数器0允许中断SETBET1;定时器/计数器1允许中断SETBEA;CPU开中断例:假设允许片内定时器/计数器中断,禁止其他中断。试根据假设11二、中断优先级控制中断系统提供两个中断优先级每一个中断源都可编程设置为高优先级或低优先级,以便实现二级中断嵌套。中断优先级是由IP控制的,IP格式如下:---PSPT1PX1PT0PX0IPBFBEBDBCBBBAB9B8外部中断0优先级外部中断1优先级T0中断优先级T1中断优先级串行口中断优先级位地址Di=1设高优先级Di=0设低优先级B8H字节地址二、中断优先级控制中断系统提供两个中断优先级--12中断优先级排列顺序中断系统内具有两级优先级,遵循以下两条基本规则:(1)低优先级中断源可被高优先级中断源所中断。(2)一种中断源一旦得到响应,与它同级的中断源不能再中断它。同时收到几个同一优先级的中断,其优先级排列如下:

中断源同级内的中断优先级

外部中断0 最高

T0溢出中断

外部中断1

T1溢出中断

串行口中断 最低中断优先级排列顺序中断系统内具有两级优先级,遵循以下两条基本13

二级中断嵌套CPU在执行主程序低级中断请求响应低级中断请求CPU执行低级中断服务程序高级中断请求响应高级中断请求CPU执行高级中断服务程序返回低级中断程序返回主程序二级中断嵌套CPU在执行主程序低级中响应低级中断请求CPU14例:设8031的片外中断为高优先级,片内中断为低优先级。设置IP相应值。解:(IP)=00000101B=05H(a)用字节操作指令

MOVIP,#05H;或MOV0B8H,#05H;(b)用为操作指令

SETBPX0SETBPX1CLRPSCLRPT0CLRPT1例:设8031的片外中断为高优先级,片内中断为低优先级。设置1589C51中断系统89C51中断系统16一、响应中断的条件

CPU在每个机器周期的S5P2时刻采样中断标志,而在下一个机器周期对采样到的中断进行处理。按优先级高低,中断系统将控制转入相应的中断服务程序。(3)当前正在执行的指令是返回(RETI)指令或是对IE或IP进行读/写的指令。(2)现行的机器周期不是当前所执行指令的最后一个机器周期。§5.4中断响应及中断处理过程封锁CPU对中断响应的条件:(1)CPU正在处理同级的或高一级的中断一、响应中断的条件CPU在每个机器周期的S5P2时17中断响应时间CPU不是在任何情况下都对中断请求予以响应,而不同的情况下对中断响应的时间是不同的。对于顺利的中断响应,其最短的响应时间为3个机器周期。对于受阻的中断响应,则响应时间会更长一些。若中断系统只有一个中断源,则响应时间为3~8个机器周期之间。中断响应时间CPU不是在任何情况下都对中断请求予以响应,而不18二、中断响应过程⑴把当前PC值压入堆栈,保护断点。⑵将相应的中断服务程序的入口地址送入PC。⑶对有些中断源,CPU会自动清除中断标志。⑷执行中断服务程序。⑸执行到返回指令RETI,中断服务程序结束,将堆栈内容弹出到PC,返回到原来断点继续执行。三、中断源入口地址外部中断00003H定时器/计数器0000BH外部中断10013H定时器/计数器1001BH串行口0023H二、中断响应过程⑴把当前PC值压入堆栈,保护断点。三、中19TF1TF0IE1IT1IE0IT08F8E8D8C8B8A8988TCON外中断1请求标志外部中断1(INT1)触发方式控制外部中断0(INT1)触发方式控制外中断0请求标志若ITi=1至少一个机器周期高电平,一个机器(下降沿触发)周期低电平。若ITi=0,保持低电平直到中断被响应为止。(低电平触发)中断返回前必须使电平变高。位地址无论何种方式,转入中断后,由硬件清0中断请求标志。§5.5关于外部中断TF1TF020§5.6中断程序举例一、中断程序框架

ORG0000H AJMPMAIN

ORG0003H AJMPINT ORG0050H MAIN: MOVSP,#60H MOVIP,#data1;设置中断优先级 MOVIE,#data2;中断开放 SETBITX;沿触发或电平触发

︰ INT:︰

;中断服务程序RETIEND §5.6中断程序举例一、中断程序框架 ORG00211.查询方式

ORG0000H AJMPMAIN ORG0050HMAIN: MOVA,#00H MOVP1,AKK: JNBP3.2,WW SJMPKKWW: CPLAMOVP1,AJNBP3.2,$ SJMPKK END例1:按一次全亮,再按一次全黑二、应用举例1.查询方式 ORG0000H例1:按一次全亮,再按一222.中断方式

ORG0000H AJMPMAIN

ORG0003H AJMPINT ORG0050H MAIN: MOVSP,#60H

MOVIE,#10000001B;或SETBEA,EX0

SETBIT0;下降沿触发 MOVA,#00H MOVP1,A INT:CPLA SJMP$ MOVP1,A

RETIEND 2.中断方式 ORG0000H231.结合电路图,读下列程序,说明其功能。MOVA,#03HML:MOVP1,AACALLDL CPLASJMPMLDL:MOVR7,#0A3HDL1:MOVR6,#0FFH DL6:DJNZR6,DL6 DJNZR7,DL1 RET

2.如果想通过按键控制红绿灯的切换,硬件应该怎样改电路图,软件怎样编程序?例2:1.结合电路图,读下列程序,说明其功能。2.如果想通过按24MOVA,#03HMOVP1,ADDD:JBP3.2,DDDCPLAMOVP1,ADD1:JNBP3.2,DD1 SJMPDDD

3.如果想通过中断方式实现上述功能,软件怎样编程序?仿前例。MOVA,#03H3.如果想通25

ORG0000H AJMPMAIN

ORG0003H AJMPINT ORG0050HMAIN: MOVSP,#60H

MOVIE,#10000001B;

SETBIT0;下降沿触发 MOVA,#03H MOVP1,A SJMP$

INT:CPLA

MOVP1,A

RETI

END ORG0000H26例3:某8051单片机定时采样压力、温度信号。定时用T0实现,压力超限和温度超限的报警信号分别由INT0、INT1引脚输入,中断优先级排列顺序依次为:压力温度定时确定IE、IP控制字,并编写初始化程序。

ORG0000H AJMPM ORG0003H AJMPINTA ORG000BH AJMPTIMER0 ORG0013H AJMPINTB ORG0050HM:MOVIP,#00000101BSETBIT0;下降沿触发 MOVIE,#10000111B;或SETBEA,EX0例3:某8051单片机定时采样压力、温度信号。定时用T0实现27例4:某工业监控系统,具有温度、压力、PH值等多路监控功能。当PH值<7时,将向CPU申请中断,CPU响应中断后令P3.0输出高电平,经驱动使加碱管道电磁阀接通一秒,以调整PH值,请设计软件。

撤申请P1.6例4:某工业监控系统,具有温度、压力、PH值等多路监控28

ORG0000H AJMPM ORG0003H AJMPIT0 ORG0030HM:MOVIE,#81H;CLRIT0;电平触发 ……………HE:SJMPHE ORG0050HIT0:JBP1.0,TE1;温度1 JBP1.1,TE2;温度2 JBP1.2,PH;PH JBP1.3,PL;压力

…………… ORG0080HPH:PUSHPSW PUSHA SETBP3.0 ACALLDELAY1S CLEARP3.0 ANLP1,#0BFH;撤申请ORLP1,#40HPOPA POPPSW RETIEND ORG0000H ……………29例5:外部中断实验:

如图所示,将P1口的P1.4~P1.7作为输入位,P1.0~P1.3作为输出位。要求利用8031将开关所设的数据读入单片机内,并依次通过P1.0~P1.3输出,驱动发光二极管,以检查P1.4~P1.7输入的电平情况(若输入为高电平则相应的LED亮)。

现要求采用中断边沿触发方式,每中断一次,完成一次读/写操作。例5:外部中断实验:30P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0INT08031

+5V+5V+5V+5V+5V&&12S1例:采用外部中断0,并采用了去抖动电路。当P1.0~P1.3的任何一位输出为1时,相应的发光二极管就会发光。当开关S1闭合时,发出中断请求。8031+5V+5V+5V+5V+5V&&12S1例:31

ORG0000H

LJMPMAIN;上电,转向主程序ORG0003H;外部中断0入口地址LJMPINSER;转向中断服务程序 ORG0030H;主程序MAIN:

SETBEX0;允许外部中断0中断

SETBIT0;选择边沿触发方式

SETBEA;CPU开中断HERE:SJMPHERE;等待中断

ORG0200H;中断服务程序INSER:MOVA,#0F0H

MOVP1,A;设P1.4~P1.7为输入

MOVA,P1;取开关数

SWAPA;A的高、低四位互换

MOVP1,A;输出驱动LED发光

RETI;中断返回

ENDORG0000H ORG32例6:利用中断显示系统故障:如图所示,此中断电路可实现系统的故障显示。当系统的各部分正常工作时,四个故障源的输入均为低电平,显示灯全不亮。当有某个部分出现故障时,则相应的输入线由低电平变为高电平,相应的发光二极管亮。解:例6:利用中断显示系统故障:如图所示,此中断电路可实现系统的33INT0P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.78031RRRRLEDLEDLEDLED图5-15利用中断显示系统故障返回四个故障源INT0P1.0P1.1P1.2P1.3P1.4P1.5P134解:如图所示,当某一个故障信号输入线由低电平变为高点平时,会通过INT0线引起8051中断(边沿触发方式)。在中断服务程序中,应将各故障源的信号读入,并加以查询,以进行相应的发光显示。

ORG0000H

LJMPMAIN;上电,转向主程序

ORG0003H;外部中断0入口地址

LJMPINSER;转向中断服务程序

MAIN:ANLP1,#55H;01010101B

P1.0,P1.2,P1.4,P1.6为输入 P1.1,P1.3,P1.5,P1.7为输出

SETBEX0;允许外部中断0中断

SETBIT0;选择边沿触发方式SETBEA;CPU开中断HERE:SJMPHERE;等待中断INSER:JNBP1.0,L1;查询中断源,(P1.0)=0,转L1

SETBP1.1;是P1.0引起的中断,使相应的二极管亮L1:JNBP1.2,L2;继续查询

SETBP1.3;L2:JNBP1.4,L3SETBP1.5L3:JNBP1.6,L4;SETBP1.7L4:RETIEND解:如图所示,当某一个故障信号输入线由低电平变为高点平时,会35试试左边两种情况下,如何编程控制蜂鸣器发声或灯点亮。按键控制且有时间间隔要求试试左边两种情况下,如何编程控制蜂鸣器发声或灯点亮。36第五章中断系统§5.1微机的输入/输出方式§5.2中断的概念§5.389C51中断系统结构及中断控制§5.4中断处理过程§5.5外部中断扩展方法§5.6中断程序举例5.7思考题与习题第五章中断系统§5.1微机的输入/输出方式37§5.1微机的输入/输出方式§5.1.1无条件传送方式不需要交换状态信息,只需在程序中加入访问外设的指令,数据传送便可以实现。§5.1.2查询传送方式(条件传送)通过查询外设的状态信息,确信外设已处于“准备好”,计算机才发出访问外设的指令,实现数据的传送。输出时,要查询外设是否把上一次CPU输出的数据处理完毕。状态信息:一般为1位二进制码。输入时,需要查询外设的输入数据是否准备好;§5.1微机的输入/输出方式§5.1.1无条件传送方38输入状态信息准备好?传送数据YN查询方式程序流程图缺点:CPU在完成一次数据传送后要等待很长时间才能进行下一次的传送。在等待过程中,CPU不能进行其他操作,所以效率比较低。优点:通用性好,可以用于各类外设和CPU间的数据传送。输入状态信息准备好?传送数据YN查询方式程序流程图缺点:CP39§5.1.3直接存储器存取(DMA)方式DMA:DirectMemoryAccessCPU让出数据总线(悬浮状态),使外设和存储器之间直接传送(不通过CPU)数据的方式。适用于外设和存储器之间有大量的数据需要传送及外设工作速度很快的情况。§5.1.3直接存储器存取(DMA)方式DMA:Direc40§5.1.4中断传送方式当CPU正在工作时,外部事件请求CPU迅速去处理,于是CPU暂停当前工作,转去处理外部事件。中断服务处理完毕后,再返回到原来被暂停的地方继续原来的工作,这样的过程称为中断。主程序响应中断请求中断服务程序返回主程序继续执行主程序断点中断请求§5.1.4中断传送方式当CPU正在工作时,外部事件41§5.2中断的概念一、什么是中断

二、中断源引起并发出中断请求的源头三、中断源识别中断发生后,系统如何识别是哪一个中断源引起的中断。四、中断控制中断允许、中断优先级控制五、中断优点分时操作提高主机效率实时处理随机故障处理§5.2中断的概念一、什么是中断二、中断源引起并发42§5.3.189C51中断源和中断请求标志

8051提供5个中断源:INT0P3.2引脚上的外部中断请求(外中断0)INT1P3.3引脚上的外部中断请求(外中断1)T0片内定时器/计数器0溢出(TF0)中断请求T1片内定时器/计数器1溢出(TF1)中断请求TI/RI片内串行口完成一帧发送或接收中断请求源说明:每一个中断源都对应有一个中断请求标志位,设在SFR的TCON和SCON中。有中断请求时,由TCON和SCON中的相应位来锁存。§5.389C51中断系统结构及中断控制§5.3.189C51中断源和中断请求标志8051提供543

TCON-定时器/计数器(T0,T1)控制器(88H)TF1TF0IE1IT1IE0IT08F8E8D8C8B8A8988TCONT1溢出中断标志T0溢出中断标志外中断1请求标志外部中断1触发方式控制外部中断0触发方式控制外中断0请求标志

T0、T1从初值开始加1计数到产生溢出,使TF0、TF1置“1”,直到CPU响应中断时由硬件复位。

若ITi=1(沿触发),则INTi上的电平由1变到0时,置位IEi、在CPU响应该中断时由硬件清0。

若ITi=0(电平触发),则输入到INTi的外部中断源必须保持低电平有效,直到该中断被响应。同时在中断返回前必须使电平变高,否则将会再次产生中断。位地址TCON-定时器/计数器(T0,T1)控制器(88H)T44SCON-串行口控制寄存器(98H)

当发送和接收中任何一个标志被置位时,都可以向CPU提出申请。必须在中断服务程序中判断,并由软件将RI和TI标志位清0。发送中断标志接收中断标志TIRISCON9F9E9D9C9B9A9998位地址一帧数据发送完毕置“1”TI,请求CPU发送下一帧一帧数据接收完毕置“1”RI,请求CPU取走数据通常情况的中断源:I/O外设、硬件故障、实时时钟等SCON-串行口控制寄存器(98H)当发送和接收45§5.3.2中断控制IE-中断允许寄存器(A8H)EA--ESET1EX1ET0EX0IEAFAEADACABAAA9A8中断允许标志0禁止所有中断1开放中断外部中断01允许中断外部中断11允许中断T0的溢出中断1允许中断T1的溢出中断1允许中断串行口中断允许位1允许中断位地址一、中断允许控制§5.3.2中断控制IE-中断允许寄存器(A8H)EA46例:假设允许片内定时器/计数器中断,禁止其他中断。试根据假设条件设置IE的相应值。解:(IE)=10001010B=8AH(a)用字节操作指令MOVIE,#8AH;或MOV0A8H,#8AH;(b)用位操作指令SETBET0;定时器/计数器0允许中断SETBET1;定时器/计数器1允许中断SETBEA;CPU开中断例:假设允许片内定时器/计数器中断,禁止其他中断。试根据假设47二、中断优先级控制中断系统提供两个中断优先级每一个中断源都可编程设置为高优先级或低优先级,以便实现二级中断嵌套。中断优先级是由IP控制的,IP格式如下:---PSPT1PX1PT0PX0IPBFBEBDBCBBBAB9B8外部中断0优先级外部中断1优先级T0中断优先级T1中断优先级串行口中断优先级位地址Di=1设高优先级Di=0设低优先级B8H字节地址二、中断优先级控制中断系统提供两个中断优先级--48中断优先级排列顺序中断系统内具有两级优先级,遵循以下两条基本规则:(1)低优先级中断源可被高优先级中断源所中断。(2)一种中断源一旦得到响应,与它同级的中断源不能再中断它。同时收到几个同一优先级的中断,其优先级排列如下:

中断源同级内的中断优先级

外部中断0 最高

T0溢出中断

外部中断1

T1溢出中断

串行口中断 最低中断优先级排列顺序中断系统内具有两级优先级,遵循以下两条基本49

二级中断嵌套CPU在执行主程序低级中断请求响应低级中断请求CPU执行低级中断服务程序高级中断请求响应高级中断请求CPU执行高级中断服务程序返回低级中断程序返回主程序二级中断嵌套CPU在执行主程序低级中响应低级中断请求CPU50例:设8031的片外中断为高优先级,片内中断为低优先级。设置IP相应值。解:(IP)=00000101B=05H(a)用字节操作指令

MOVIP,#05H;或MOV0B8H,#05H;(b)用为操作指令

SETBPX0SETBPX1CLRPSCLRPT0CLRPT1例:设8031的片外中断为高优先级,片内中断为低优先级。设置5189C51中断系统89C51中断系统52一、响应中断的条件

CPU在每个机器周期的S5P2时刻采样中断标志,而在下一个机器周期对采样到的中断进行处理。按优先级高低,中断系统将控制转入相应的中断服务程序。(3)当前正在执行的指令是返回(RETI)指令或是对IE或IP进行读/写的指令。(2)现行的机器周期不是当前所执行指令的最后一个机器周期。§5.4中断响应及中断处理过程封锁CPU对中断响应的条件:(1)CPU正在处理同级的或高一级的中断一、响应中断的条件CPU在每个机器周期的S5P2时53中断响应时间CPU不是在任何情况下都对中断请求予以响应,而不同的情况下对中断响应的时间是不同的。对于顺利的中断响应,其最短的响应时间为3个机器周期。对于受阻的中断响应,则响应时间会更长一些。若中断系统只有一个中断源,则响应时间为3~8个机器周期之间。中断响应时间CPU不是在任何情况下都对中断请求予以响应,而不54二、中断响应过程⑴把当前PC值压入堆栈,保护断点。⑵将相应的中断服务程序的入口地址送入PC。⑶对有些中断源,CPU会自动清除中断标志。⑷执行中断服务程序。⑸执行到返回指令RETI,中断服务程序结束,将堆栈内容弹出到PC,返回到原来断点继续执行。三、中断源入口地址外部中断00003H定时器/计数器0000BH外部中断10013H定时器/计数器1001BH串行口0023H二、中断响应过程⑴把当前PC值压入堆栈,保护断点。三、中55TF1TF0IE1IT1IE0IT08F8E8D8C8B8A8988TCON外中断1请求标志外部中断1(INT1)触发方式控制外部中断0(INT1)触发方式控制外中断0请求标志若ITi=1至少一个机器周期高电平,一个机器(下降沿触发)周期低电平。若ITi=0,保持低电平直到中断被响应为止。(低电平触发)中断返回前必须使电平变高。位地址无论何种方式,转入中断后,由硬件清0中断请求标志。§5.5关于外部中断TF1TF056§5.6中断程序举例一、中断程序框架

ORG0000H AJMPMAIN

ORG0003H AJMPINT ORG0050H MAIN: MOVSP,#60H MOVIP,#data1;设置中断优先级 MOVIE,#data2;中断开放 SETBITX;沿触发或电平触发

︰ INT:︰

;中断服务程序RETIEND §5.6中断程序举例一、中断程序框架 ORG00571.查询方式

ORG0000H AJMPMAIN ORG0050HMAIN: MOVA,#00H MOVP1,AKK: JNBP3.2,WW SJMPKKWW: CPLAMOVP1,AJNBP3.2,$ SJMPKK END例1:按一次全亮,再按一次全黑二、应用举例1.查询方式 ORG0000H例1:按一次全亮,再按一582.中断方式

ORG0000H AJMPMAIN

ORG0003H AJMPINT ORG0050H MAIN: MOVSP,#60H

MOVIE,#10000001B;或SETBEA,EX0

SETBIT0;下降沿触发 MOVA,#00H MOVP1,A INT:CPLA SJMP$ MOVP1,A

RETIEND 2.中断方式 ORG0000H591.结合电路图,读下列程序,说明其功能。MOVA,#03HML:MOVP1,AACALLDL CPLASJMPMLDL:MOVR7,#0A3HDL1:MOVR6,#0FFH DL6:DJNZR6,DL6 DJNZR7,DL1 RET

2.如果想通过按键控制红绿灯的切换,硬件应该怎样改电路图,软件怎样编程序?例2:1.结合电路图,读下列程序,说明其功能。2.如果想通过按60MOVA,#03HMOVP1,ADDD:JBP3.2,DDDCPLAMOVP1,ADD1:JNBP3.2,DD1 SJMPDDD

3.如果想通过中断方式实现上述功能,软件怎样编程序?仿前例。MOVA,#03H3.如果想通61

ORG0000H AJMPMAIN

ORG0003H AJMPINT ORG0050HMAIN: MOVSP,#60H

MOVIE,#10000001B;

SETBIT0;下降沿触发 MOVA,#03H MOVP1,A SJMP$

INT:CPLA

MOVP1,A

RETI

END ORG0000H62例3:某8051单片机定时采样压力、温度信号。定时用T0实现,压力超限和温度超限的报警信号分别由INT0、INT1引脚输入,中断优先级排列顺序依次为:压力温度定时确定IE、IP控制字,并编写初始化程序。

ORG0000H AJMPM ORG0003H AJMPINTA ORG000BH AJMPTIMER0 ORG0013H AJMPINTB ORG0050HM:MOVIP,#00000101BSETBIT0;下降沿触发 MOVIE,#10000111B;或SETBEA,EX0例3:某8051单片机定时采样压力、温度信号。定时用T0实现63例4:某工业监控系统,具有温度、压力、PH值等多路监控功能。当PH值<7时,将向CPU申请中断,CPU响应中断后令P3.0输出高电平,经驱动使加碱管道电磁阀接通一秒,以调整PH值,请设计软件。

撤申请P1.6例4:某工业监控系统,具有温度、压力、PH值等多路监控64

ORG0000H AJMPM ORG0003H AJMPIT0 ORG0030HM:MOVIE,#81H;CLRIT0;电平触发 ……………HE:SJMPHE ORG0050HIT0:JBP1.0,TE1;温度1 JBP1.1,TE2;温度2 JBP1.2,PH;PH JBP1.3,PL;压力

…………… ORG0080HPH:PUSHPSW PUSHA SETBP3.0 ACALLDELAY1S CLEARP3.0 ANLP1,#0BFH;撤申请ORLP1,#40HPOPA POPPSW RETIEND ORG0000H ……………65例5:外部中断实验:

如图所示,将P1口的P1.4~P1.7作为输入位,P1.0~P1.3作为输出位。要求利用8031将开关所设的数据读入单片机内,并依次通过P1.0~P1.3输出,驱动发光二极管,以检查P1.4~P1.7输入的电平情况(若输入为高电平则相应的LED亮)。

现要求采用中断边沿触发方式,每中断一次,完成一次读/写操作。例5:外部中断实验:66P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0INT08031

+5V+5V+5V+5V+5V&&12S1例:采用外部中断0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论