您好,欢迎访问三七文档
第5章单片机的中断系统5.1中断的概念5.2中断控制系统5.3中断处理过程5.4中断的编程及应用举例5.1中断的概念5.2中断控制系统5.3中断处理过程5.4中断的编程及应用举例第5章单片机的中断系统日常生活的中断现象举例某人正在看报电话铃响了去接电话继续接电话继续看报跑向厨房关煤气、灌开水水开了第5章单片机的中断系统中断是指在突发事件到来时先中止当前正在进行的工作,转而去处理突发事件。待处理完成后,再返回到原先被中止的工作处,继续进行随后的工作。第5章单片机的中断系统中断响应过程:由中断管理系统处理突发事件的过程;中断源:中断管理系统能够处理的突发事件;中断请求:中断源向CPU提出的处理请求;中断函数:针对中断源和中断请求提供的服务函数;中断嵌套:在中断服务过程中执行更高级别的中断服务。中断的一般概念二级中断系统第5章单片机的中断系统中断过程与调用一般函数过程的相似性:两者都需要保护断点,都可实现多级嵌套等。中断过程与调用一般函数过程的差异性:1、前者是程序设计者事先安排的(断点位置是明确的),而后者却是系统根据工作环境随机决定的(断点位置是随机的)。2、主函数与一般函数之间具有主从关系,而主函数与中断函数之间则是平行关系(中断函数只能被系统调用);3、一般函数调用是纯粹软件处理过程,而中断函数调用却是需要软、硬件配合才能完成的过程。第5章单片机的中断系统1、分时操作:CPU可以使多个外设同时工作,并分时为各外设提供服务,从而大大提高了CPU的利用率和输入/输出的速度。2、实时处理:当计算机用于实时控制时,请求CPU提供服务是随机发生的。有了中断系统,CPU就可以立即响应并加以处理。3、故障处理:当计算机运行中出现如电源断电、存储器校验出错、运算溢出等错误时,CPU可及时转去执行故障处理程序,减小或消除故障产生的影响。中断实现的功能:实例1单片机开关状态检测要求:若有按键压下→D1状态反转。第5章单片机的中断系统查询法中断法运行效果第5章单片机的中断系统问题:1、中断函数为何能自动执行?2、主函数中变量赋值语句的作用?解释:1、当P3.2引脚出现负脉冲时,系统调用了该中断函数;2、进行中断初始化工作。第5章单片机的中断系统5.1中断的概念5.2中断控制系统5.2.1中断系统的结构5.2.2中断控制5.3中断处理过程5.4中断的编程及应用举例第5章单片机的中断系统1、中断源(哪些信号可以作为51单片机中断源?)中断源数量和种类越多,MCU处理突发事件的能力就越强。80C51单片机共有5种中断源。第5章单片机的中断系统外部中断内部中断**并非很严格中断向量中断程序入口地址(ROM内)第5章单片机的中断系统0INT1INT汇编程序0000H0003H000BH0013H001BH0030H主程序首条指令0023HROMSJMP30H用于汇编程序第5章单片机的中断系统中断号与中断向量对应的编号0INT用于C51程序2、中断请求标志(单片机如何得知中断信号出现?)第5章单片机的中断系统当中断信号出现时,单片机中某些寄存器位(中断请求标志位)可被硬件置1。CPU通过定期查看中断请求标志位是否为1,便可知道有无中断请求。第5章单片机的中断系统中断请求标志的置1原理1INT1、外部中断源(和)0INT逻辑开关IT0和IT1用于选择触发信号类型:ITx=0→选择电平触发(低电平经非门→IEx置1)ITx=1→选择脉冲触发(负脉冲经施密特触发器→IEx置1)P3.3P3.2电平信号脉冲信号锁存器QDP3.nQP3.n读锁存器内部总线写锁存器读引脚第二输出功能VCC内部上拉电阻锁存器QDP3.nQP3.n读锁存器内部总线写锁存器读引脚第二输出功能VCC内部上拉电阻3412第二输入功能V(第5章)第5章单片机的中断系统2、内部中断源(T0和T1)当T0或T1被充满溢出→向寄存器位TF0、TF1“进位”→置1(第6章)第5章单片机的中断系统3、内部中断源(TX和RX)(发送SUBF中的数据→输出门→TXD端口)发送控制器→寄存器位TI置1;(RXD引脚的数据→移位寄存器→接收SBUF)接收控制器→寄存器位RI置1。RXTX(第7章)5.1中断的概念5.2中断控制系统5.2.1中断系统的结构5.2.2中断控制5.3中断处理过程5.4中断的编程及应用举例第5章单片机的中断系统中断系统的组成(影响中断的因素?)第5章单片机的中断系统中断信号分别沿5条水平路径由左向右进行传送。其中,TCON、SCON、IE、IP是相关SFR。P3.3P3.2中断信号中断号中断号1、TCON寄存器第5章单片机的中断系统定时/计数器的控制寄存器(Timer/CounterControlRegister),字节地址为88H,可位寻址。T1的中断请求标志T0的中断请求标志INT1的中断请求标志INT0的中断请求标志INT1的中断触发信号选择INT0的中断触发信号选择与中断无关第6章介绍与中断无关第6章介绍【注意】51单片机复位后,TCON初值为0——默认没有上述中断请求,默认采用电平触发方式。=1,有中断请求=0,无中断请求=1,脉冲触发=0,电平触发第5章单片机的中断系统2、SCON寄存器串口控制寄存器(Serialcontrolregister),字节地址为98H,可位寻址。TX的中断请求标志RX的中断请求标志【注意】TI和RI虽然是2个中断请求标志位,但在SCON之后经或门电路合成为1个信息,统一接受中断管理。=1,有中断请求=0,无中断请求第5章单片机的中断系统中断允许寄存器(InterruptEnableRegister),字节地址为A8H,可位寻址。【注意】禁止中断并不能阻止中断请求标志值的硬件刷新;单片机复位后,IE的初值为0——默认为整体禁止中断。3、IE寄存器T0的中断允许标志INT0的中断允许标志INT1的中断允许标志T1的中断允许标志TX/RX的中断允许标志总中断允许标志=1,允许中断=0,禁止中断第5章单片机的中断系统4、IP寄存器中断优先级寄存器(InterruptPriorityRegisters),字节地址为B8H,可位寻址。T0的中断优先级标志INT0的中断优先级标志INT1的中断优先级标志T1的中断优先级标志TX/RX的中断优先级标志=1,高优先级=0,低优先级优先级原则:1)高级中断请求可以打断正在执行的低级中断;2)同级或低级中断请求不能打断正在执行的中断;3)同级中断源同时提出请求时按自然优先级响应:INT0→T0→INT1→T1→TI/RI4)单片机复位时,IP初值为0——默认所有中断源均为低级中断。第5章单片机的中断系统第5章单片机的中断系统实例4中断嵌套演示功能:LED0代表主函数的功能;K0产生INT0中断请求,调用LED1显示功能;K1产生INT1中断请求,调用LED2显示功能;设置INT1为高级中断,INT0为低级中断;高级中断运行时,若有低级中断请求,则D1点亮;高级中断结束后,低级中断才能运行。第5章单片机的中断系统实例4软件编程第5章单片机的中断系统实例4仿真运行中断标志汇总中断源名称中断请求标志中断允许标志中断优先标志中断触发方式标志中断号INT0IE0EX0PX0IT00T0TF0ET0PT01INT1IE1EX1PX1IT12T1TF1ET1PT13TI/RITI/RIESPS4第5章单片机的中断系统中断管理寄存器汇总TCON88HIEA8HIPB8HSCON98H第5章单片机的中断系统中断系统汇总第5章单片机的中断系统5.1中断的概念5.2中断控制系统5.3中断处理过程5.4中断编程及应用第5章单片机的中断系统中断处理包括中断请求、中断响应、中断服务等环节。第5章单片机的中断系统1、中断响应CPU响应中断的基本条件为:(1)有中断源发出中断请求;(2)中断总允许位EA=1,即CPU开中断;(3)申请中断的中断源的中断允许位为1。第5章单片机的中断系统CPU响应中断后的操作过程:1.中断优先级查询,阻止后来的同级或低级中断请求。2.保护断点,即把程序计数器PC的内容压入堆栈保存。3.清除中断请求标志位。4.调用中断函数并开始运行。5.返回断点继续运行。除中断函数运行是软件方式外,其余中断处理过程都是由单片机硬件自动完成的。【注意】第5章单片机的中断系统2、响应时间从查询中断请求标志到执行中断函数第一条语句所经历的时间,称为中断响应时间。CPU在每个机器周期的S6期间查询每个中断请求的标志位。中断响应时间=1个查询机器周期+2个调用中断函数周期=3个机器周期,这也是对中断请求做出响应所需的最短时间。C51中断函数的声明格式:void函数名(void)interruptn[usingm]interruptn,表示是关于中断源n的中断服务函数;usingm,表示该中断函数将使用第m组工作寄存器。缺省为当前工作寄存器组。第5章单片机的中断系统【注意】1、中断服务函数既没有返回值,也没有调用参数;2、中断服务函数只能由系统调用,不能被其他函数调用。3、中断服务函数C51中断函数的声明格式:void函数名(void)interruptn[usingm]interruptn,表示是关于中断源n的中断服务函数;C51中断函数的声明格式:void函数名(void)interruptn[usingm]usingm,表示该中断函数将使用第m组工作寄存器。缺省为当前工作寄存器组。interruptn,表示是关于中断源n的中断服务函数;C51中断函数的声明格式:void函数名(void)interruptn[usingm]5.1中断的概念5.2中断控制系统5.3中断处理过程5.4中断编程及应用5.4.1中断的编程和应用举例5.4.2扩展外部中断源第5章单片机的中断系统第5章单片机的中断系统重新认识实例1的程序【注意】中断允许设置也可采用位变量实现,即EX0=1,EA=1;实例2将第4章实例3改用中断方式实现中断法——有键闭合时才检测键盘(获取闭合键号)问题:查询法需占用大量CPU机时,如何降低按键检测开销?主函数获取键值keykey=-1?P0←键值显示码NYP0←黑屏显示码第5章单片机的中断系统P25P32P21P22P23P24P26P27P32P20P21P22P23P20P20P21P22P23P24P25P26P27XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U180C51net=P2120123456789ABCDEFLED123451U3:A4082234567891RP1234567891RP2硬件更改:①增加一个4输入与门器件U3→行线分接输入端,输出端接P3.2(INT0);②键盘连线改接在P2口。第5章单片机的中断系统软件更改:①主函数中进行中断初始化,中断函数中查找闭合键号并刷新LED显示;②每次中断返回前都应将列电平置为全低,行电平置为全高,为下次中断做准备。第5章单片机的中断系统实例2完整程序第5章单片机的中断系统运行效果第5章单片机的中断系统实例3将第4章改用中断方式实现问题:当CPU运行于LED循环环节时,将因不能及时检测按键状态,而使按键操作不灵敏。第5章单片机的中断系统XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336
本文标题:单片机的中断系统
链接地址:https://www.777doc.com/doc-7194964 .html