您好,欢迎访问三七文档
中断系统控制及应用项目5中断系统控制及应用知识与能力目标熟悉单片机中断系统的结构与功能1掌握中断系统的编程与控制方法2理解并掌握数码管显示接口电路及其程序实现方法3初步学会中断控制应用程序的分析与设计4理解中断嵌套的工作过程,初步学会中断嵌套的控制应用5熟练使用KeiluVsion3与Proteus软件6项目5中断系统控制及应用5.3.1控制要求与功能展示任务5.1中断系统分析与控制5.1.1中断系统结构与功能分析5.1.2外部中断编程与控制5.2.2硬件系统与控制流程分析5.2.1控制要求与功能展示5.2.3汇编语言程序分析与设计5.2.4C语言程序分析与设计5.2.5基于Proteus的调试与仿真2任务5.2简易水情报警器控制5.3.2硬件系统与控制流程分析5.3.3汇编语言程序分析与设计5.3.4C语言程序分析与设计5.3.5基于Proteus的调试与仿真2任务5.3简易地震报警器控制5.1.1中断系统结构与功能分析当CPU在执行程序时,由单片机内部或外部的原因引起的随机事件要求CPU暂时停止正在执行的程序,而转向执行一个用于处理该随机事件的程序,处理完后又返回被中止的程序断点处继续执行,这一过程就称为中断。1、中断系统的概念5.1.1中断系统结构与功能分析2、中断系统的内部结构组成5.1.1中断系统结构与功能分析中断系统有5个中断请求源和4个用于中断控制的寄存器定时控制寄存器(TCON)、串行控制寄存器(SCON)、中断控制寄存器(IE)和中断优先级控制寄存器(IP)来控制中断的类型、中断的开关和各种中断源的优先级。5.1.1中断系统结构与功能分析231外部中断请求源:INT0(P3.2)和INT1(P3.3)定时/计数器中断请求源:内部2个16位定时/计数器T0、T1串行口中断源:内部有一个全双工的串行接口中断源(5个)5.1.1中断系统结构与功能分析51单片机为每个中断源都设置了中断标志位。检测到中断请求信号后,先将相应的中断标志位置位,以便在后续的机器周期里进行下一步的控制和处理。中断标志位集中锁存在专用的寄存器TCON和SCON中。(2)中断标志◆定时控制寄存器TCON中的中断标志位5.1.1中断系统结构与功能分析表5-1TCON寄存器的结构TCON(88H)D7D6D5D4D3D2D1D0位名称TF1TR1TF0TR0IE1IT1IE0IT0位含义T1的溢出中断标志位T1的启动停止控制位T0的溢出中断标志位T0的启动停止控制位INT1中断请求标志位INT1触发方式控制位INT0中断请求标志位INT0触发方式控制位位地址8FH8EH8DH8CH8BH8AH89H88HTCON寄存器:存放INT0、INT1、T0和T1中断请求标志,也是定时/计数器0和1的控制寄存器为INT0中断请求标志位。当INT0有请求信号时,该位就会由硬件自动置1,在CPU响应中断后,才由硬件自动将IE0清零。5.1.1中断系统结构与功能分析IE0(TCON.1)IE1(TCON.3)IT0(TCON.0)IT1(TCON.2)为INT0触发方式控制位。由软件进行置位和复位,当IT0=0时,为低电平触发;当IT0=1时,为负跳变触发。为INT1触发方式控制位。由软件进行置位和复位,当IT1=0时,为低电平触发;当IT1=1时,为负跳变触发。为INT1中断请求标志位。当INT1有请求信号时,该位就会由硬件自动置1,在CPU响应中断后,才由硬件自动将IE1清零。5.1.1中断系统结构与功能分析TF0(TCON.5)TF1(TCON.7)TR0(TCON.4)TR1(TCON.6)为定时/计数器T0的启动停止控制位。由软件进行设定,当TR0=0时,停止T0定时(或计数);当TR0=1时,启动T0定时(或计数)。为定时器/计数器T0的溢出中断标志位。当T0定时(或计数)结束时,由硬件自动置1,在CPU响应中断后,才由硬件自动将TF0清零。也可以由软件查询该标志,并由软件清零。为定时/计数器T1的启动停止控制位。由软件进行设定,当TR1=0时,停止T0定时(或计数);当TR1=1时,启动T1定时(或计数)。为定时/计数器T1的溢出中断标志位,当T1定时(或计数)结束时,由硬件自动置1,在CPU响应中断后,才由硬件自动将TF1清零。也可以由软件查询该标志,并由软件清零。5.1.1中断系统结构与功能分析表5-2SCON寄存器的结构SCON(98H)D7D6S5D4D3D2D1D0位名称SM0SM1SM2RENTB8RB8TIRI位含义关于串口项目7中讲解串行发送结束中断标志位串行接收结束中断标志位位地址99H98H串行收发结束的中断标志位被锁存在串行控制寄存器SCON中◆串行控制寄存器SCON中的中断标志位◆串行控制寄存器SCON中的中断标志位5.1.1中断系统结构与功能分析为串行接收结束中断标志位。当串行口结束一次数据接收后,由硬件自动置位,但标志必须由软件进行清零。为串行发送结束中断标志位。当串行口结束一次数据发送后,由硬件自动置位,但标志必须由软件进行清零。5.1.1中断系统结构与功能分析表5-3IE寄存器的结构IE(0A8)D7D6D5D4D3D2D1D0位名称EA——ESET1EX1ET0EX0位含义中断总允许控制位——串行口中断允许位T1中断允许位INT1中断允许位T0中断允许位INT0中断允许位位地址0AFH0ACH0ABH0AAH0A9H0A8H中断允许控制寄存器IE实现开中断和关中断的功能。(3)中断控制5.1.1中断系统结构与功能分析◆EA(IE.7)为所有中断总允许控制位。EA=0,中断总禁止;EA=1,中断总允许。◆ES(IE.4)为串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。◆ET1(IE.3)为T1中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。◆EX1(IE.2)为INT1中断允许位。EX1=1,允许外部中断INT1中断;EX1=0,禁止外部中断INT1中断。◆ET0(IE.1)为T0中断允许位。ET0=1,允许T0中断;ET0=0,禁止T0中断。◆EX0(IE.0)为INT0中断允许位。EX0=1,允许INT0中断;EX0=0,禁止INT0中断。5.1.1中断系统结构与功能分析IE寄存器在单片机复位后,各位均被清零,在IE寄存器应用时,由软件对其进行设定,即可对其进行按位设置,也可对其进行按字节设置。开启外部中断0中断和定时器0中断,可进行如下设置:例如:5.1.1中断系统结构与功能分析汇编语言:C语言:按位设置:SETBEAEA=1;SETBEX0EX0=1;SETBET0ET0=1;按字节设置:MOVIE,#10000011BIE=0x83;5.1.1中断系统结构与功能分析中断请求处理中断中断返回中断处理中断响应3、中断响应处理过程5.1.1中断系统结构与功能分析5.1.1中断系统结构与功能分析当中断源要求CPU为它服务时,必须发出一个中断请求信号。同时为保证该中断得以实现,中断请求标志应保持到CPU响应该中断后才能取消,CPU也会不断的及时查询这些中断请求标志,一旦查询到该中断的中断请求标志为置位,就立即响应该中断。(1)中断请求5.1.1中断系统结构与功能分析(2)中断响应◆中断响应的条件申请中断的中断源的中断允许位为1,即中断源可向CPU申请中断。中断总允许位EA置位,即CPU允许所有中断源申请中断。有中断源发出中断请求。123CPU响应中断的基本条件5.1.1中断系统结构与功能分析中断响应CPU正在执行一个同级或高优先级的中断服务程序正在执行的指令尚未完成正在执行中断返回指令RETI或者对专用寄存器IE、IP进行读/写的指令阻断◆中断响应的条件5.1.1中断系统结构与功能分析注意:串行口中断响应后,必须由软件程序对该中断标志位清零。撤除该中断源的中断请求标志关闭同级中断保护断点地址将相应中断的入口地址送入PC◆中断响应操作5.1.1中断系统结构与功能分析注意:每个中断的8个单元难以存放一个完整的中断服务程序,因此用户在使用时,可在各中断单元地址存放一条无条件跳转指令(LJMP),跳转到实际的中断服务程序执行。表5-4各中断源及中断程序入口地址表中断源名称对应引脚中断入口地址外部中断0INT0(P3.2)0003H~000AH(入口地址0003H)定时器/计数器0T0(P3.4)000BH~0012H(入口地址000BH)外部中断1INT1(P3.3)0013H~001AH(入口地址0013H)定时器/计数器1T1(P3.5)001BH~0022H(入口地址001BH)串行口中断串行接收RXD(P3.0)0023H~002AH(入口地址0023H)串行发送TXD(P3.1)5.1.1中断系统结构与功能分析中断服务执行中断服务程序,完成相应操作在中断响应时,将断点处的有关寄存器的内容(如Acc、PSW、DPTR等)压入堆栈中保护起来,以便中断返回时恢复。恢复现场保护现场(3)中断处理5.1.1中断系统结构与功能分析在中断服务程序最后,必须加一条RETI中断返回指令,当CPU执行到RETI指令时,中断才能返回。注意:用户在编写中断服务程序时要考虑需要保护的现场,在恢复现场时,要注意压栈与出栈指令必须成对使用,先入栈的内容应该后弹出,同时还要及时撤除需用软件撤除的中断标志。(4)中断返回5.1.1中断系统结构与功能分析外部中断,顾名思义就是从外部引入进来的中断。51单片机上有两个从外部通过P3.2和P3.3两个引脚引入进来的外部中断(INT0和INT1)。用户必须先启动中断,外部中断才能接收中断信号,CPU才能响应中断。4、两个外部中断的使用(1)外部中断的认识5.1.1中断系统结构与功能分析外部中断请求触发方式电平触发方式边沿脉冲触发方式(2)外部中断的触发方式①电平触发是低电平有效。只要单片机在中断请求输入端(INT0和INT1)上采样到有效的低电平时,就会启动外部中断。②必须把有效的电平保持到请求获得响应为止,不然CPU就不能够响应中断;③中断服务程序结束之前,中断源又必须撤除其有效的低电平信号,否则中断返回时,会再次产生中断。④适合于外部输入以低电平且中断服务程序能清除的外部中断请求的系统。5.1.1中断系统结构与功能分析◆电平触发方式5.1.1中断系统结构与功能分析边沿脉冲触发是脉冲的下降沿有效123中断请求信号的高电平状态和低电平状态都应至少维持一个机器周期适合与以负脉冲形式输入的外部中断请求◆边沿脉冲触发方式5.1.2外部中断编程与控制中断的应用就是用程序来实现对中断功能的控制编制应用程序时中断初始化中断服务程序包含5.1.2外部中断编程与控制1、中断初始化设置堆栈指针SP定义中断优先级开放中断定义外部中断触发方式中断初始化步骤5.1.2外部中断编程与控制中断服务子程序ACEDB根据需要保护现场在中断服务入口地址设置一条跳转指令,转到中断服务程序的实际入口处中断返回执行中断服务要求操作恢复现场2、中断服务程序5.1.2外部中断编程与控制ZHDUAN:CLREA;关中断PUSHACC;保护现场(根据需要由用户决定)PUSHPSWSETBEA;开中断(不希望高级中断进入,;则不用开中断)…………CLREA;关中断POPPSW;恢复现场POPACCSETBEARETI;中断返回中断服务程序汇编语言一般编写格式:5.1.2外部中断编程与控制voidZHDUAN()interruptx//其中x为中断号,//不使用using时编译器将自动{//产生保护和恢复R0~R7现场EA=0;………………EA=1;}中断服务程序C语言一般编写格式:5.1.2外部中断编程与控制ORG0000H;单片机程序入口地址LJMPMAIN;跳转到主程序入口地址ORG0003H;外部中断0入口地址LJMPINT_0;跳转至INT_0中断服务子程序ORG0013H;外部中断1入口地址LJMPINT_1;跳转至INT_1中断服务子程序ORG0030HMAIN:……;主程序……MOVTC
本文标题:单片机技术及应用(基于Proteus 的汇编和C语言版)项目5 中断系统控制及应用
链接地址:https://www.777doc.com/doc-3599789 .html