您好,欢迎访问三七文档
1情境三简易秒表子情境一中断系统子情境二定时/计数器子情境三基于单片机控制的秒表2子情境一中断系统一、任务目标通过学习使读者了解中断的基本概念,中断的执行过程,中断的控制方法和具有中断的单片机控制程序编写。二、任务分析当CPU正在处理某项事务的时候,如果系统出现了某些急需处理的异常情况或特殊的请求,这时要求CPU暂停正在处理的工作,而转去处理这个随机发生的紧急或特殊事件,待该事件处理完后,自动回到原来被中断的地方,继续执行被中断的程序,这个过程称做中断。351系列单片机中断系统,是众多8位单片机中功能较强的一种,可以提供5个中断源,分别是外部中断0、外部中断1、定时/计数器T0、定时/计数器T1和串行口中断。中断处理过程由以下几个阶段完成。(1)中断请求当中断源发出中断请求时,将相应的中断请求标志位置“1”。子情境一中断系统4(2)中断允许控制51系列单片机有专门的中断允许寄存器IE对中断源的开放或屏蔽进行两级控制。当IE的控制位EA=“0”时,屏蔽所有的中断申请;当EA=“1”时,CPU开放允许控制的第一级,但5个中断源是否响应中断请求,还要看IE中与这5个中断源直接对应的中断允许控制位的状态,当对应位的状态为“1”时,则允许响应相应的中断请求,否则不响应中断请求。子情境一中断系统5(3)中断查询CPU查询TCON和SCON中的各个中断标志位的状态,确定有哪个中断源发生请求,查询时根据中断优先级控制寄存器IP的状态,按优先级顺序进行,如果查询某个中断源所对应的中断标志位为“1”,表明有中断请求发生,在中断允许的情况下,紧接着从下一机器周期开始进行中断响应。子情境一中断系统6(4)中断响应1)中断响应条件51系列单片机CPU响应中断的条件有以下3个。①有中断源发出中断请求。②中断总允许控制位EA=“1”,即CPU允许所有中断源申请中断。③申请中断的中断源其中断允许控制位为“1”,即该中断源可以向CPU申请中断。当以上3个条件都满足时,中断请求才可能被CPU响应。子情境一中断系统72)中断响应过程当中断源发出中断请求后,满足中断响应条件,且不存在受阻情况时,CPU将立即响应该中断请求,如有多个中断源同时提出中断请求时,将按中断源的优先级别做出响应,先响应高优先级的中断源,后响应低优先级的中断源。在响应中断请求后,先将断点地址压入堆栈保存,以备中断结束后返回原程序;接着将相应中断处理程序的入口地址送入程序计数器PC,使程序转向该中断入口地址,并执行中断服务程序。子情境一中断系统8(5)中断处理中断处理分保护现场、中断服务、恢复现场和中断返回4个步骤。保护现场是指中断响应后,在中断服务程序的开头采用PUSH指令将服务程序中要使用的累加器、通用寄存器中的数据压入堆栈。在现场保护时应关闭中断,预防正在保护数据时又响应中断级别更高(中断嵌套)的中断请求,而丢失数据;然后紧接着根据中断事件的要求编写中断服务程序;在中断服务结束后,立即关闭中断,然后通过POP指令恢复现场;最后用中断返回指令RETI,硬件自动将存放在堆栈中的断点地址弹出至PC,使CPU继续执行原来的程序。子情境一中断系统9三、相关知识下面对中断控制中用到的4个专用寄存器的相关知识进行讲解。51系列单片机为用户提供了4个专用寄存器:定时/计数器控制寄存器TCON、串行口控制寄存器SCON、中断允许控制寄存器(IE)、中断优先级控制寄存器IP,来控制单片机的中断系统。子情境一中断系统101.定时/计数器控制寄存器该寄存器用于锁存外部中断请求标志以及定时/计数器的溢出中断请求标志等。进行字节操作时,寄存器地址为88H;按位操作时,各位的地址为88H~8FH。寄存器各位的含义及位地址如表4-2所示。位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0子情境一中断系统表4-2定时/计数器控制寄存器11其中与中断有关的控制位共4位。(1)IT0和IT1——外部中断T0和T1的中断请求触发方式控制位IT0(IT1)=1:脉冲触发方式,下降沿有效(下降沿时产生中断请求)。IT0(IT1)=0:电平触发方式,低电平有效(低电平时产生中断请求)。(2)IE0和IE1——外中断请求标志位当CPU采样到(或)端出现有效中断请求信号时,IE0(IE1)位由硬件置1,当中断响应完成转向中断服务程序时,由硬件把IE0(或IE1)清0。高4位的功能在本章第二节中讲解。子情境一中断系统122.串行口控制寄存器进行字节操作时,寄存器地址为98H;按位操作时,各位的地址为98H~9FH。寄存器的各位含义及位地址如表4-3所示。位地址9FH9EH9DH9CH9BH9AH99H98H位符号SM0SM1SM2RENTB8RB8TIRI表4-3串行口控制寄存器子情境一中断系统13其中与中断有关的控制位共两位。(1)TI——串行口发送中断请求标志位当发送完一帧串行数据后,由硬件置1;在转向中断服务程序后,用软件清0。(2)RI——串行口接收中断请求标志位当接收完一帧串行数据后,由硬件置1;在转向中断服务程序后,用软件清0。串行中断请求由TI和RI的逻辑或得到,即无论是发送标志还是接收标志,都会产生串行中断请求。子情境一中断系统143.中断允许控制寄存器进行字节操作时,寄存器地址为0A8H;按位操作时,各位的地址为0A8H~0AFH。寄存器的各位含义及位地址如表4-4所示。表4-4中断允许控制寄存器位地址AFHAEHADHACHABHAAHA9HA8H位符号EA//ESET1EX1ET0EX0子情境一中断系统15其中与中断有关的控制位共6位。(1)EA——中断允许总控制位EA=0:中断总禁止,禁止所有中断。EA=1:中断总允许,总允许后中断的禁止或允许由各中断源中断允许控制位进行设置。(2)EX0和EX1——外部中断0和外部中断1的中断允许控制位。EX0(EX1)=0:禁止外部中断。EX0(EX1)=0:允许外部中断。子情境一中断系统16(3)ET0和ET1——定时/计数器中断允许控制位ET0(ET1)=“0”:禁止定时/计数器中断。ET0(ET1)=“1”:允许定时/计数器中断。(4)ES——串行中断允许控制位ES=“0”:禁止串行中断。ES=“1”:允许串行中断。子情境一中断系统174.中断优先级控制寄存器51系列单片机的中断优先级控制比较简单,因为系统只定义了高、低两个优先级。高优先级用“1”表示,低优先级用“0”表示。各中断源的优先级由中断优先级寄存器进行设定。IP寄存器地址为0B8H,位地址为0BFH~0B8H。该寄存器的位含义及位地址如表4-5所示。位地址BFHBEHBDHBCHBBHBAHB9HB8H位符号///PSPT1PX1FT0PX0表4-5中断优先级控制寄存器子情境一中断系统18(1)PX0——外部中断0的中断优先级设定位;(2)PT0——定时/计数器0的中断优先级设定位;(3)PX1——外部中断1的中断优先级设定位;(4)PT1——定时/计数器1的中断优先级设定位;(5)PS——串行口中断优先级设定位。以上各位设置为0时,则相应的中断源为低优先级;设置为1时,则相应的中断源为高优先级。子情境一中断系统19优先级的控制原则是:当两个不同优先级的中断源同时提出中断请求,低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优先级的中断服务,从而实现中断嵌套,51系列单片机最多只有两级中断嵌套。如果同级的多个中断同时出现,则按CPU查询次序确定哪个中断请求被响应。其查询次序为外部中断0→定时/计数器0溢出中断→外部中断1→定时/计数器1中断→串行中断。子情境一中断系统201.简述中断处理过程。2.简述中断编程结构。3.单片机如何确定5个中断源的中断优先级别?分别写出中断优先级控制寄存器IP=05H和IP=00H时5个中断源的中断优先级顺序。4.用伟福6000软件或KeiluVision2软件输入本节任务二的源程序并编译调试。5.用Proteus软件绘制出本节任务二仿真电路图并仿真运行。6.根据本节任务二的电路原理图连接成电路板,用编程器将仿真通过的程序烧录到单片机中,脱机运行并观察电路运行情况。子情境一中断系统思考与练习21一、任务目标本任务让读者掌握定时/计数器的工作原理,掌握定时/计数器的工作方式及定时/计数初值的计算,熟悉定时/计数器的编程结构,了解定时/计数器的应用领域。二、任务分析51系列单片机有两个16位可编程的定时/计数器,分别称为定时/计数器T0和T1。其实就是由两个独立的8位专用寄存器TH0,TL0和TH1,TL1组成16位加法计数器。它们各自都兼有定时和计数的功能。分别由工作方式寄存器TMOD和控制寄存器TCON对定时/计数器的工作方式、启停及溢出中断请求进行控制。子情境二定时/计数器221.定时/计数器工作在定时方式时当定时/计数器工作方式寄存器TMOD中的功能选择位为“0”时,定时/计数器工作于定时方式。此时定时器T0或T1对机器周期进行计数,当启动控制位TR0和TR1为1时,定时器就从某一初始值开始计数,每一机器周期定时器加1,当计数值达到最大值时计数溢出,将定时器的溢出标志位TF0或TF1置1,并提出一次中断请求,如允许定时器中断的话,将产生一次定时器中断,进行定时器溢出中断服务处理;如采用查询方式进行定时器溢出处理的话,则程序查询到TF0或TF1位为1时,就进行相应的定时器溢出处理操作。子情境二定时/计数器232.定时/计数器工作在计数方式时当定时/计数器工作方式寄存器TMOD中的功能选择位为“1”时,定时/计数器工作于计数方式。此时计数器T0或T1对外部计数脉冲(外部引脚T0(P3.4)或T1(P3.5)输入的计数脉冲信号)进行计数,每来一个外部输入脉冲信号计数器加1。在计数工作方式时,单片机每个机器周期对外部引脚T0(P3.4)或T1(P3.5)电平进行一次采样,当在某一机器周期采样到高电平,跟接着在下一机器周期采样到低电平时,则在再下一机器周期计数器加1;所以计数工作方式时是对外部输入的负脉冲进行计数,计数器每次加1需用两个机器周期,则计数脉冲信号的最高频率为机器周期频率的二分之一。子情境二定时/计数器24当启功控制位TR0和TR1位为1时,计数器从某一初始值开始计数,每来一个外部计数脉冲计数器加1,当计数值达到最大值时,计数器溢出,将计数器的溢出标志位TF0或TF1置“1”,并提出一次中断请求,如允许计数器中断的话,将产生一次中断请求,进行计数器溢出中断服务处理;如果采用查询方式进行计数器溢出处理的话,则程序查询到TF0或TF1位为“1”时,就进行相应的计数器溢出处理操作。子情境二定时/计数器25三、相关知识下面讲解对定时/计数器进行控制的两个特殊功能寄存器及工作方式。1.定时/计数器控制寄存器(1)定时/计数器工作方式寄存器(TMOD)TMOD的作用是对T0和T1的功能、工作方式及启动方式进行控制,地址为89H,其各位的含义如表4-6所示,高4位对T1进行控制,低4位对T0进行控制,高4位与低4位的作用相同。子情境二定时/计数器26表4-6定时/计数器工作方式寄存器1)GATE——门控位GATE=“0”:定时/计数器仅受TR(TCON中的TR0或TR1)控制,当TR为“1”时,定时器开始工作,此时称软启动方式。子情境二定时/计数器27GATE=“1”:只有(外部引脚(P3.2)和(P3.3))为高电平,且TR为“1”时,定时/计数器才工作,如两个信号中任意一个为低电平,则定时器不工作,此时称为硬启动。2)C/T——功能选择位C/T=“0”:定时功能。C/T=“1”:计数功能。子情境二定时/计数器283)M0M1——工作方式选择位M0和M1组合可以定义4种工作方式,如表4-7所示
本文标题:简易秒表
链接地址:https://www.777doc.com/doc-5804496 .html