第四章输入/输出和中断补充习题1、什么是中断?2、为什么要引进中断机制?3、中断响应的条件是什么?第四章输入/输出和中断4.1输入/输出4.2CPU与外设数据传送方式4.3计算机的上常见接口4.4标准51单片机中断系统4.5中断应用举例授课学时:44.1输入/输出4.2CPU与外设数据传送方式4.3计算机的上常见接口4.4标准51单片机中断系统4.5中断应用举例4.1输入/输出一、概述输入/输出(I/O)是CPU与外部设备之间进行数据传送的操作,也称通信。CPU与存储器:均为半导体器件,均为电子器件速度。CPU与外设:电子与机械,速度相差悬殊。I/O设备也称外围设备,品种多,有机械的、有机电的、有电子的,与CPU交换信息时,存在以下几个问题:●速度不匹配:速度远低于CPU,且范围宽,如硬盘比打印机快很多。●时序不匹配:与CPU的时序不同步。●信息格式不匹配:如串行和并行。●信息类型不匹配:有数字信号,模拟信号,正逻辑和负逻辑等。接口电路究竟起什么作用?或者说它的任务是什么?CPU与I/O设备间通信时必须要一个起协调作用的电路,即接口电路。接口电路的任务:●对数据提供缓冲(时间和电器性能上):设置数据的寄存、缓冲逻辑。●信息格式相容性变换:如串并行的转换;电平转换、数/模或模/数转换等。●协调时序差异:提供“准备好”“空”“满”等状态信号。●提供地址译码或设备选择信号:●提供中断和DMA控制逻辑及管理:缓冲二、CPU与外设间的接口信号1、数据(Data)数字、模拟、开关2、状态(Status)输入时:“准备好”(Ready)输出时:“空”(Empty)、“忙”(Busy)3、控制(Control)外设的启动、停止、读、写4.1输入/输出4.2CPU与外设数据传送方式4.3计算机的上常见接口4.4标准51单片机中断系统4.5中断应用举例一、直接传送方式也称无条件传送方式,例:驱动指示灯、继电器、启动电机等4.2CPU与外设数据传送方式有直接、查询、中断、DMA等传送方式。DMA:直接存储器传送CPURAM2RAM1RAM1RAM2DMA二、查询方式送数据或发命令前先检查设备状态电路中:1)输出:P1.0=1时,M放水;P1.0=0时,M关2)输入:水位A,T1、T2截止→P1.1=1,P1.2=1水位B,T1、T2导通→P1.1=0,P1.2=0A水位B,T1止,T2通→P1.1=1,P1.2=0例:水池水位自动控制装置要求:水位A放水;水位B停放中断方式可提高CPU的效率CLRP1.0SETBP1.1SETBP1.2L1:JNBP1.2,L1SETBP1.0L2:JBP1.1,L2CLRP1.0SJMPL1三、中断传送方式查寻方式中断方式CPU不主动查询外设,只执行自己的主程序,当外设准备好需要传送数据时,提出申请,若CPU准于请求,放下正在执行的程序,去传送外设的数据。录像1录像2查询中断查询中断仿真中断与子程序的区别?中断的好处1、CPU分时操作(与多个外设并行工作)温度压力断电CPU处理2、实现实时处理外设外设外设CPU3、故障处理如何实现中断?1、中断请求外设向CPU发出的“中断申请信号”称“中断请求”。请求CPU外设2、中断源引起中断的原因,或能发出中断申请的源,称为“中断源”。通常中断源有:(1)一般的输入输出设备,如键盘,打印机等。(2)数据通道,如磁盘,磁带等。(3)定时器。(4)故障源,如电源掉电。(5)为调试程序而设的中断,如单步、断点设置等。键盘打印机磁盘掉电定时器4、中断系统的功能(1)响应中断及返回5、中断响应过程中断源提出申请→CPU决定是否响应→若响应转去中断处理→完成后返回原中断处。中断请求中断请求RETIRETI主程序(2)能实现优先权排队(3)能实现中断嵌套6、CPU响应中断的条件(1)有中断请求7、中断响应及中断期间应做的工作(1)关中断(硬件自动实现)(2)保留断点(硬件自动实现)(3)保护现场(软件完成)(4)给出中断入口地址,转入相应的中断服务程序(硬件自动完成)(5)恢复现场(6)开中断与返回(由RETI指令实现)(2)中断请求没有被屏蔽(3)中断是开放的或者是允许的(4)在现行指令结束后才响应中断RETI与RET的异同点?①相同:匀执行恢复断点操作,即从堆栈中弹出断点给PC。②不同:RETI将清“0”响应时所置的优先级触发器,RET没有该功能。中断与子程序调用的区别?4.1输入/输出4.2CPU与外设数据传送方式4.3计算机的上常见接口4.4MCS-51中断系统4.5中断应用举例一、常见接口1.并行接口4位、8位、EPP(增强并行口)和ECP(扩展并行口)2.串行接口PC机一般至少有两个串行口COM1和COM2。3.磁盘接口1)IDE接口:有528MB的限制2)EIDE接口:代之以8GB限制。4.SCSI接口SCSI(SmallComputerSystemInterface)小计算机系统接口40MB每秒,而EIDE最高只能达到16.6MB每秒;4.3计算机上常见接口5.USB接口最新的USB串行接口标准是由Microsoft、Intel、Compaq、IBM等大公司共同推出,热即插即用连接;1.1版速度为12Mbps2.0版速度为480Mbps可连接键盘、鼠标、ISDN、电话系统、数字音响、打印机以及扫描仪等低速外设。四、I/O扩展槽根据总线的类型不同,主板上的扩展槽可分为ISA、EISA、MAC、VESA和PCI几种。4.1输入/输出4.2CPU与外设数据传送方式4.3计算机的上常见接口4.4标准51单片机中断系统4.5中断应用举例4.4标准51单片机中断系统标准51单片机允许5个中断请求源,提供二个中断优先级,可实现二级中断服务程序嵌套。与中断系统相关的特殊功能寄存器有:中断源寄存器:TCON(88H),SCON(98H)中断允许控制寄存器IE(A8H)中断优先级控制寄存器IP(B8H)外部中断0定时器0外部中断1定时器1串行口中断中断允许总允许优先级中断控制逻辑CPU一、中断请求源1、TCON(TimerControl)定时器/计数器的控制寄存器,锁存外部中断请求标志。(1)IT0、IT1(interrupttriggermode)外部中断请求触发方式①ITi=0为低电平触发方式;(2)IE0、IE1(externalinterruptflag)外部中断标志,当有外部中断请求时,置“1”该位①当ITi=0时,若INTi=0,则置“1”IEi,否则清“0”IEi;②当ITi=1时,若INTi=置“1”IEi;③IEi=1表示外部正在向CPU申请中断,CPU响应中断后自动清IEiITi=00ITi=1INT0INT1②ITi=1为边沿触发方式;③ITi可由软件置“1”或清“0”。(3)TF0、TF1(Timeroverflowinterruptflag)定时器溢出中断标志当定时器/计数器最高位进位时,置“1”TFi表示正在向CPU申请中断,CPU响应中断后,自动清“0”TFi。二、中断控制1、IE(InterruptEnable)中断允许寄存器:控制中断是开放还是屏蔽的。(1)EA(EnableAll)总中断允许标志(2)ES(EnableSeries)串行口允许标志(3)ET0、ET1(EnableTimer)定时器/计数器溢出中断标志(4)EX0、EX1(EnableeXternal)外部中断允许标志上述中:“1”表示允许中断,“0”表示屏蔽中断。2、IP(Interruptpriority)中断优先权控制寄存器(B8H)(1)PS:串行口中断优先级控制位(2)PT0、PT1:定时器/计数器中断优先级控制位(3)PX0、PX1:外部中断优先级控制位上述中:“1”表示高优先级,“0”表示低优先级。三、中断响应过程每个周期S6→对中断源进行采样→在下一个周期按优先级顺序依次查询→如果某个中断标志在上一个周期S6已被置“1”→CPU执行硬件LCALL转向相应中断的特定单元,进入中断服务程序,但是如果遇上下列条件之一,硬件将受阻:(1)正在执行同级或高级中断服务程序。(2)当前的查询周期不是执行指令的最后一个机器周期。(3)正在执行RETI或任何仿问IE或IP的指令。CPU响应中断时先置“1”相应的优先级触发器,然后执行硬件LCALL(压栈与转移),同时清“0”中断请求标志(TI、RI除外)。中断服务程序入口:IE00003H~000AHIT0000BH~0012HIE10013H~001AHIT1001BH~0022HIS0023H~002AH在中断服务程序的最后,须放一条指令RETI,该指令清“0”响应时所置的优先级触发器(RET没有此操作),然后返回。4.1输入/输出4.2CPU与外设数据传送方式4.3计算机的上常见接口4.4MCS-51中断系统4.5中断应用举例ORG0100HINTP:JBF0,FSCLRP1.0;F0=0,关水CPLF0RETIFS:SETBP1.0;F0=1,放水CPLF0RETIORG0003HLJMPINTPORG0040HCLRP1.0CLRIT0;低电平触发SETBPX0;高优先级SETBEA;开总中断SETBEX0;开INT0中断主程序举例:ORG0003HLJMPINTPORG0040HCLRP1.0CLRIT0SETBPX0SETBEASETBEX0主程序main(){P1.0=0;IT0=0;PX0=1;EA=1;EX0=1;}主程序ORG0100HINTP:JBF0,FSCLRP1.0;F0=0,关水CPLF0RETIFS:SETBP1.0;F0=1,放水CPLF0RETIvoidintp(void)interrupt0using1{if(F0){P1.0=0;//F0=0,关水F0=~F0;}P1.0=1;//F0=1,放水F0=~F0;}例:用外中断方式读按键,控制灯的亮灭外部IO的中断INT0,和INT1。对应的引脚是P32和P33。P32也就是接在K1的引脚。所以当我们按下P32接到地的时候,可以触发一个INT0中断。#defineucharunsignedchar//定义一下方便使用#defineuintunsignedint#defineulongunsignedlong#includereg52.h//包括一个52标准内核的头文件sbitP10=P1^0;//头文件中没有定义的IO就要自己来定义了sbitP11=P1^1;sbitP12=P1^2;sbitP13=P1^3;sbitK1=P3^2;bitldelay=0;//长定时溢出标记,预置是0ucharspeed=10;//设置一个变量保存默认的跑马灯的移动速度ucharspeedlever=0;//保存当前的速度档次charcodedx516[3]_at_0x003b;//这是为了仿真设置的//用外中断方式读按键K1,点亮一个LEDvoidmain(void)//主程序{IT0=1;//外中断跳变产生中断EX0=1;EA=1;//打开总中断while(1)//主程序循环{}}//外中断0int0()interrupt0{P10=0;//在中断里点亮LED}作业:用中断方式的按键K1,控制一个LED灯的亮和灭两种状态提示:需要去抖操作,否则按键抖动会引起多种中断。补充习题1、什么是中断?2、为什么要引进中断机制?3、中断响应的条件是什么?