您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > MCS-51单片机应用教程 第3章
第3章单片机的中断系统与定时器/计数器3.1中断系统3.2单片机的定时器/计数器3.3外部中断源的扩展3.4小结习题介绍单片机中断系统的原理、类型以及定时器/计数器的结构、类型及控制方式。通过对本章的学习,读者应掌握和了解以下知识:MCS-51单片机中断的概念和功能特殊功能寄存器TCON、SCON、IE、IP和TMOD的设置方法定时器/计数器的结构、工作方式及应用MCS-51单片机外部中断源的扩展方法本章学习目标本章计算机系统运行时,CPU与外设之间交换信息的方式通常有以下3种:(1)无条件传送方式在这种传送方式下,CPU不需要了解外设的状态,只要在程序中加入访问外设的指令,就可实现CPU与外设之间的数据传送。此种方法控制简单,但数据传送时,由于不知道外设的状态,传送数据时容易出错。(2)查询传送方式在这种传送方式下,CPU在传送数据之前,要不断查询外部设备是否处于“准备好”状态,因此需占用CPU的大量时间,效率较低。3.1中断系统(3)中断传送方式在中断传送方式下,CPU启动外设后,外设与CPU并行独立工作。当外设需要CPU处理时,由外设向CPU提出请求。若条件满足时,CPU中断当前执行的程序,转而为外设服务,服务完毕后,又继续执行原来的程序。对于这种方式,CPU不需要花费大量的时间进行外设的查询,从而提高了CPU的效率。在单片机应用系统中,为了提高CPU的效率,多采用中断方式。为了实现中断功能而配置的软件与硬件,称为中断系统。1.中断技术中断是指当CPU正在执行程序的过程中,如有外部事件请求CPU处理时,CPU暂时中止当前的执行程序,转入必要的处理程序,并在处理完毕后,立即返回到原来被中止程序的间断处继续执行。对这个中断全过程的分析、研究及实现方法称为中断技术。3.1.1中断的概念2.中断技术的应用采用中断技术能实现以下的功能:(1)并行处理有了中断技术,CPU可以与多台外设并行工作,CPU可分时与多台外设进行信息交换。(2)实时处理在单片机实时控制中,请求CPU提供服务是随机发生的。有了中断系统,CPU就可以立即响应并进行处理。(3)故障处理单片机系统工作时会出现一些突发故障,如电源断电、存储器出错、运算溢出等。有了中断系统,当出现故障时,CPU可及时转去执行故障处理程序,自行处理故障而不必停机。中断源是中断申请的来源。MCS-51单片机有5个中断源,即2个外部中断INT0、INT1;2个片内定时器/计数器T0、T1的溢出中断源;1个串行口中断。见表3-1。(见书47页)3.1.2中断源8051通过对4个特殊功能寄存器TCON、SCON、IE和IP的设置来进行中断允许、中断申请方式和中断优先级的控制。3.1.3中断控制1.定时器/计数器及外部中断控制寄存器TCON字节地址为88H,每位名称、位地址及含义分述如下:TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88HTF1:定时器/计数器T1的溢出中断请求标志位。当启动T1计数后,T1从预先设置的初值开始加1计数。当计数最高位产生溢出时,由硬件使TFl置l,并向CPU发出中断请求。当CPU响应中断时,由硬件使TF1清零。TF0:定时器/计数器T0的溢出中断请求标志位,含义与TF1相同。IE1:外部中断1的中断请求标志。当检测到外部中断引脚上存在有效的中断请求信号时,由硬件使IE1置1。当CPU响应该中断请求时,由硬件使IEl清零。IE0:外部中断0的中断请求标志。其含义与IE1类同。IT1:外部中断1的中断触发方式控制位。IT1为0时,外部中断1为电平触发方式,若外部中断1请求为低电平,则使IE1置1。IT1为l时,外部中断1为边沿触发方式,若CPU检测到外部中断1的引脚有由高到低的负跳变沿时,则使IE1置1。IT0:外部中断0的中断触发方式控制位。其含义与IT1类同。TR1:为1时启动定时器/计数器T1;为0时停止定时器/计数器T1。TR0:为1时启动定时器/计数器T0;为0时停止定时器/计数器T0。2.串行口控制寄存器SCON字节地址为98H,每位名称、位地址及含义分述如下:SCONSM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH9998TI:串行口发送中断请求标志。当CPU发送完一帧串行数据后,硬件使TI置1,请求中断。CPU响应中断后,由软件对TI清零。RI:串行口接收中断请求标志。当串行口接收完一帧串行数据时,硬件使RI置1,硬件置位。CPU响应中断后,用软件对RI清零。其他几位的含义及用法见第4章。3.中断允许控制寄存器IE字节地址为A8H,每位名称、位地址及含义分述如下:IEEA//ESET1EX1ET0EX0位地址AFACHABHAAHA9HA8HEA:中断允许总控制位。EA=0,禁止所有中断申请;EA=1,开放所有中断。但是否允许各中断源的中断请求,还要取决于各中断源的中断允许控制位的状态。ES:串行口的中断允许位。ET1:定时器/计数器T1的中断允许位。EX1:外部中断1INT1的中断允许位。ET0:定时器/计数器T0的中断允许位。EX0:外部中断0INT0的中断允许位。以上5个中断允许控制位为“0”时,禁止中断,为“1”时允许中断。4.中断优先级控制寄存器IPMCS-51单片机设有两级中断优先级,通过对IP寄存器相应位的设置进行中断优先级的选择。IP字节地址为B8H,各位含义分述如下:IP///PSPT1PX1PT0PX0位地址BCHBBHBAHB9HB8HPS:串行口中断优先级控制位。PT1:定时器/计数器T1中断优先级控制位。PX1:外部中断1中断优先级控制位。PT0:定时器/计数器T0中断优先级控制位。PX0:外部中断0中断优先级控制位。以上5个中断优先级控制位分别为“0”时,为低级中断,为“1”时为高级中断。如果几个同一优先级的中断源同时向CPU申请中断,CPU通过内部硬件查询逻辑,按自然优先级顺序确定该响应哪个中断请求。自然优先级由硬件形成,排列见表3-2。(见书49页)1.响应中断的条件(1)有中断请求信号。(2)中断允许开放即EA=1,且中断源对应的中断允许位置位。(3)无同级或更高级中断正在服务。(4)当前的指令周期已经结束。(5)如果当前指令为RETI或访问IE和IP的指令,至少需要再执行完一条指令。当满足以上5个条件时CPU将对中断请求进行响应。3.1.4中断响应2.中断响应过程如果中断响应条件满足,CPU就响应中断。中断响应过程分以下6个步骤:(1)保护断点断点就是CPU响应中断时程序计数器PC的内容,它指示被中断程序的下一条指令的地址——断点地址。CPU自动把断点地址压入堆栈,以备中断处理完毕后,自动从堆栈取出断点地址送入PC,然后返回主程序断点处,继续执行被中断的程序。(2)给出中断入口地址程序计数器PC自动装入中断入口地址(见表3-2,书49页),执行相应的中断服务程序。(3)保护现场为了使中断处理不影响主程序的运行,需要把断点处有关寄存器的内容和标志位的状态压入堆栈区进行保护。现场保护要在中断服务程序开始处通过编程实现。(4)中断服务执行相应的中断服务,进行必要的处理。(5)恢复现场在中断服务结束之后、返回主程序之前,把保存在堆栈区的现场数据从堆栈区弹出,送回原来的位置。恢复现场也需要通过编程实现。(6)中断返回执行中断返回指令RETI,它将堆栈内保存的断点地址弹给PC,程序则恢复到中断前的位置。MCS-51单片机有两个中断优先级。当CPU正在执行中断服务程序,又有新的中断源发出中断申请时,CPU要进行分析判断,决定是否响应新的中断。若是同级中断源申请中断,CPU将不予理睬;若是高级中断源申请中断,CPU将转去响应新的中断请求,待高级中断服务程序执行完毕,CPU再转回低级中断服务程序。这就是中断的嵌套。二级中断嵌套程序执行过程如图3-1所示。3.1.5中断的嵌套图3-1二级中断嵌套示意定时器/计数器T0和T1都是16位加1计数器。其中T0由两个8位特殊功能寄存器TH0和TL0构成,T1由两个8位特殊功能寄存器TH1和TL1构成。每个定时器都可由软件设置为定时功能或计数功能。定时器/计数器T0的结构示意图如图3-2所示。定时器/计数器T1结构与T0相同。3.2单片机的定时器/计数器3.2.1定时器/计数器的结构图3-2定时器T0结构示意图当作为定时器使用时,T0(T1)对单片机机器周期进行计数,计数器计满溢出时,发出中断申请信号。定时时间的长短与系统时钟以及定时器初值有关。当作为计数器使用时,通过引脚P3.4(P3.5)对外部输入脉冲计数。定时器/计数器T0(T1)启动运行后,会按设定的工作方式独立进行计数,不再占用CPU时间。当计数器T0(T1)计满溢出时,TF0(TF1)置1,向CPU发出中断请求信号。定时器/计数器T0、T1由两个寄存器TMOD和TCON来设定其工作方式及工作状态。1.定时器工作方式寄存器TMOD的字节地址为89H,用于设置T0和T1的工作方式,TMOD不能按位寻址。低半字节用于设置T0,高半字节用于设置T1。各位的定义格式及含义分述如下:3.2.2定时器/计数器的控制方式GATEC/TM1M0GATEC/TM1M0用于设置T1用于设置T0M1、M0:工作方式控制位。见表3-3所示。(见书51页)C/T:计数/定时方式选择位。C/T=0,设置为定时功能;C/T=1,设置为外部事件计数功能。GATE:门控位。GATE=1时,只有在INT0(INT1)引脚为高电平,而且TR0(TR1)置1时,才能启动定时器工作;GATE=0时,只需用软件使TR0(TR1)置1就可以启动定时器,而与INT0(INT1)的状态无关。2.定时器/计数器控制寄存器TCON定时器/计数器控制寄存器TCON(可参见3.1.3节)除可进行字节寻址外,还可进行位寻址操作。8051复位时,TCON的所有位被清零。TCON中与定时器/计数器有关的位的作用如下:TF1:T1溢出标志位。当T1溢出时,由硬件自动使中断溢出标志位置l,并向CPU申请中断。在中断方式下,当CPU响应中断,进入中断服务程序后,TF1被硬件自动清零。但在查询方式使用时,TFl必须用软件清零。TR1:T1运行控制位。可通过软件置1或清零来启动或关闭T1。TF0:T0溢出中断标志。其功能及操作同TF1。TR0:T0运行控制位。其功能及操作同TRl。对于8051单片机的定时器/计数器,可通过软件对寄存器TMOD中的控制位C/T进行设置,选择定时或计数功能。对M1、M0两位的设置可在每种功能下选取4种工作方式,即工作方式0、方式1、方式2和方式3。(1)工作方式0方式0为13位的定时器/计数器。以T0为例,16位寄存器(TH0、TL0)只用了13位,其中TL0的高3位未用。当TL0的低5位溢出时,向TH0进位,TH0溢出时,中断标志位TF0置位,并申请中断。3.2.3定时器/计数器的工作方式(2)工作方式l方式1为16位的定时器/计数器,其操作方式与方式0相同。(3)工作方式2方式2为自动装入计数器初值的8位定时器/计数器。TL0为8位的加1计数器,TH0为初值寄存器,TH0初值和TL0相同。当TL0计数溢出时,TH0内暂存的计数初值自动重新装入TL0,而TH0中的内容不变,这是一种常数自动装入的8位定时计数工作方式。(4)工作方式3定时器T0可以设定在工作方式3,而T1无工作方式3。定时器T0设置为工作方式3时,TL0和TH0分成两个相互独立的8位定时器/计数器。TL0使用T0的各控制位、引脚和中断源,即C/T、GATE、TR0、IF0、T0(引脚P34)、INT0(P3.2引脚)。TH0此时只可用作内部定时功能,它借用了定时器/计数器T1的控制位TRl和T1的中断标志位TF1,其启动和关闭只受TRl的控制。定时器T1无工作方式3,当定时器T0工作在方式3时,定时器T1可设置为方式0、方式1和方式2。定时器/计数器4种工作方式的用法详见第9章。在单片机控制系统中外部
本文标题:MCS-51单片机应用教程 第3章
链接地址:https://www.777doc.com/doc-4006007 .html