您好,欢迎访问三七文档
3单片机输入/输出及中断系统一微机的输入/输出二中断技术三MCS-51中断系统I/O接口电路的作用1、协调高速工作的计算机与速度较低的外设的速度匹配问题2、提供输入/输出过程中的状态信号3、解决计算机信号和外设信号之间的不一致一、微机的输入/输出1.1输入/输出信息种类计算机与输入/输出设备之间交换信息,有三种信息形式:数据信息、控制信息和状态信息。DBABRDWRINT微型机DIODAIOSRDIOCWRINTI/O接口DReadySTBI/O设备1、端口与主存储器单元统一编址统一编址,把主存储器的一部分地址空间分给端口,把每一个端口作为一个存储单元。2、端口单独编址对端口单独编址时,端口不占主存地址空间,但必需设置专门的输入/输出指令访问端口。1.2CPU对外设的两种编址方式CPU与外设之间的数据传送方式通常有以下4种方式:1、无条件传送方式、2、查询方式,3、中断方式4、直接存储器存取方式。1.3CPU与外设之间的数据传送方式1、无条件传送方式:已知I/O设备准备就绪,可直接进行数据传送。例如:CPU可以DAC直接连接硬件查询电路DBAB微型机AB数据端口状态端口外部设备I/O接口D6先查询I/O设备当前状态,若准备就绪,则交换数据,否则循环查询状态。2、查询传送方式软件查询程序INPUT:MOVDPTR,#SATUS;状态口地址WAIT:MOVXA,@DPTRJBACC.6,WAITMOVDPTR,#DATA;数据口地址MOVXA,@DPTR查询状态输入/输出数据准备就绪?YN先查询输入状态,决定是否进行数据传送。3、中断传送方式大多数时间计算机与外设并行工作,计算机不必因等待而浪费资源。当外设准备就绪,向CPU发出中断请求信号。CPU暂停当前程序,执行I/O操作。当I/O操作结束,CPU仍继续被中断的工作。优点:1、同步工作2、实时处理3、故障处理4.直接存储器存取方式传送(DMA—DirectMemoryAccess)用于计算机与高速外设进行大批量数据交换,由DMA控制器接管总线控制权,RAM与外设之间直接数据传输,不需CPU的介入中断概念的引入某人看书执行主程序日常事务电话铃响中断信号INT=0中断请求暂停看书暂停执行主程序中断响应书中作记号当前PC入栈保护断点电话谈话执行I/O程序中断服务继续看书返回主程序中断返回二中断技术2.1中断的概念所谓中断,是指CPU正在处理某些事务的时候,外部又发生了某一事件,请求CPU及时处理。于是,CPU暂时中断当前的工作,转而处理所发生的事件。处理完毕,再回到原来被中断的地方,继续原来的工作。日常事务程序中断服务程序一.两种中断1.可屏蔽中断可程控“开中断/关中断”。软件设置允许/禁止CPU响应中断。2.非屏蔽中断不可程控“关中断”。有中断请求信号,CPU必须响应。INTNMI微型机二.中断优先权1.当同时有多个中断请求,先响应优先级别高的中断请求。2.高优先级中断请求信号可中断低优先级中断服务。三.中断源能发出中断请求信号的各种事件。如I/O设备、定时时钟、系统故障、设定等。日常事务程序中断服务程序1中断服务程序22.2中断处理过程一.中断响应条件1.有中断请求信号2.系统处于开中断状态3.中断源处于当前优先级二.中断响应过程1.关中断:屏蔽其它中断请求信号。2.保护断点:将断点地址压入堆栈保存,即当前PC值入栈。3.寻找中断源:中断服务程序入口PC,转入中断服务。4.保护现场:将中断服务程序使用的所有寄存器内容入栈。5.中断处理:执行中断源所要求的程序段。6.恢复现场:恢复被使用寄存器的原有内容。7.开中断:允许接受其它中断请求信号。8.中断返回:执行RETI指令,栈顶内容PC,程序跳转回断点处。2.3寻找中断源与确定优先级寻找中断源:每个中断源对应一个中断服务程序。一.软件查询方式二.硬件查询方式一.软件查询方式INTS:MOVA,P1;读中断源寄存器JBACC.0,SV1;查询高级中断请求JBACC.1,SV2;查询低级中断请求…SV1:…;中断服务程序1…SV2:…;中断服务程序2中断源寄存器≥1INT单片机P1中断请求1中断请求2中断请求71、硬件电路(右图)2、软件实现二.硬件查询方式INTDB微型机≥1中断源1中断源2中断源3中断向量1中断向量2中断向量3中断向量:提供中断服务程序入口地址信息的地址。中断源中断入口地址INT00003HT0000BHINT10013HT1001BHSIO0023HC51中断向量表一.中断源信号2个外部中断源信号:IE0、IE12个定时器T0、T1溢出中断请求:TF0、TF11个串行口数据发送、接收结束中断请求:TI、RI。二.中断允许控制总允许开关:EA源允许开关:ES、ET1、EX1、ET0、EX0三.2级中断优先级控制优先级选择开关:PS、PT1、PX1、PT0、PX03MCS-51中断系统3.1中断系统内部结构一.中断控制寄存器寄存器名称D7D6D5D4D3D2D1D0TCON(88H)TF1TF0IE1IT1IE0IT0定时器控制寄存器位地址8FH8EH8DH8CH8BH8AH89H88HSCON(98H)TIRI串行口控制寄存器位地址9FH9EH9DH9CH9BH9AH99H98HIE(A8H)EAESET1EX1ET0EX0中断允许寄存器位地址AFHACHABHAAHA9HA8HIP(B8H)PSPT1PX1PT0PX0中断优先级寄存器位地址BCHBBHBAHB9HB8H3.2中断系统控制TF1、TF0:定时器溢出中断标志IE1、IE0:外部中断申请标志RI、TI:串口接受(发送)完成中断标志=1,有中断请求;=0,无中断请求。CPU响应中断后,该中断标志自动清零。TI,RI标志必须软件清零。1.中断标志位2.外部中断触发方式选择位:IT0、IT1=0:低电平触发中断请求。但在中断返回前,中断请求输入必须变为高电平。因此适用于外部中断输入为低电平输入且中断服务程序能清除外部中断请求的情况。如8255=1:负边沿触发中断请求;适合于以负脉冲形式输入的外部中断信号,如AD0809EA:中断控制总开关ES:串口中断允许位ET1:定时器1中断允许位EX1:外部中断1中断允许位ET0:定时器0中断允许位EX0:外部中断0中断允许位=1开中断;=0关中断。例:允许CPU响应INT0的中断请求SETBEX0SETBEA3.中断允许控制位4.中断优先级控制位PS:串口中断优先级控制位PT1:定时器1中断优先级控制位PX1:外部中断1中断优先级控制位PT0:定时器1中断优先级控制位PX0:外部中断0中断优先级控制位2级优先级:=1为高优先级,=0为低优先级。同一优先级别按内部查询顺序排列优先级:高INT0、T0、INT1、T1、SIO低。3.3中断响应和中断返回一.中断响应周期时序每个机器周期采样中断标志位,若有中断请求,将在下一个机器周期按优先级顺序进行中断查询。中断源中断入口地址INT00003HT0000BHINT10013HT1001BHSIO0023H二.各中断源中断服务程序的入口地址三.中断响应阻断.1.当CPU未执行完一条指令。2.当有同级或高级中断服务。3.执行RETI指令或访问IE、IP的指令后,不能立即响应中断。四.中断返回中断返回指令:RETI=RET指令+通知CPU中断服务已结束。3.5多中断源系统的处理方法当外部中断源多于中断输入引脚时,可采取以下措施:1.用定时器计数输入信号端T0、T1作外部中断入口引脚2.用串行口接收端RXD作外部中断入口引脚3.用一个中断入口接受多个外部中断源,并加入中断查询电路3.6处理外部中断举例要求每次按动按键,使LED改变一次亮灭状态。解:INT0输入按键信号,P1.0输出改变LED状态。1.跳变触发:单片机INT0P1.01+5V每次跳变引起一次中断请求,改变P1.0的输出。ORG0000H;复位入口AJMPMAINORG0003H;中断入口AJMPPINT0ORG0100H;主程序MAIN:MOVSP,#40H;设栈底SETBEA;开总允许开关SETBEX0;开INT0中断SETBIT0;负跳变触发中断H:SJMPH;执行其它任务ORG0200H;中断服务程序PINT0:CPLP1.0;改变LEDRETI;返回主程序ORG0000HAJMPMAINORG0003HAJMPPINT0ORG0100HMAIN:MOVSP,#40HSETBEASETBEX0SETBIT0H:SJMPHORG0200HPINT0:CPLP1.0RETI1.软件等待按键释放。2.硬件清除中断信号。2.电平触发:避免一次按键引起多次中断响应单片机INT0P1.01+5VORG0000H;复位入口AJMPMAINORG0003H;中断入口AJMPPINT0ORG0100H;主程序MAIN:MOVSP,#40H;设栈底SETBEA;开总允许开关SETBEX0;开INT0中断CLRIT0;低电平触发中断H:SJMPH;执行其它任务ORG0200H;中断服务程序PINT0:CPLP1.0;改变LEDWAIT:JNBP3.2,WAIT;等按键释放RETI;返回主程序
本文标题:3 中断系统
链接地址:https://www.777doc.com/doc-3160366 .html