单片机原理及应用课件第5章 MCS-51单片机定时系统与终端系统_第1页
单片机原理及应用课件第5章 MCS-51单片机定时系统与终端系统_第2页
单片机原理及应用课件第5章 MCS-51单片机定时系统与终端系统_第3页
单片机原理及应用课件第5章 MCS-51单片机定时系统与终端系统_第4页
单片机原理及应用课件第5章 MCS-51单片机定时系统与终端系统_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章MCS-51单片机定时系统与中断系统本章学习目标:了解中断的基本概念和功能。掌握中断系统的结构和控制方式。掌握中断系统的中断处理过程。了解定时器/计数器的结构与工作原理。掌握定时器/的四种工作方式的特点及应用。5.1中断系统及应用中断是指CPU正在处理某件事情的时候,外部发生了某一事件,请求CPU迅速去处理。CPU暂时中断当前的工作,转入处理所发生的事件,处理完以后,再回来继续执行被终止了的工作,这个过程称为中断。实现中断功能的硬件和软件称为中断系统,产生中断请求的请求源称为中断源。原来正在执行的程序称为主程序,主程序被断开的位置称为断点。5.1.1中断的概念5.1.2中断源以8051为例,共有3类5个中断源,5个中断源中共有两个外部中断、两个定时中断和一个串行中断。(1)外部中断源外部中断是由外部原因(如打印机、键盘、控制开关、外部故障)引起的,可以通过两个固定引脚来输入到单片机内的信号,即外部中断0和外部中断1。外部中断0中断请求信号输入端,P3.2的第二功能。由定时器控制寄存器TCON中的IT0位决定中断请求信号是低电平还是下降沿有效。一旦输入信号有效,即向CPU申请中断,并且硬件自动使IE0置1。外部中断1中断请求信号输入端,P3.3的第二功能。由定时器控制寄存器TCON中的IT1位决定中断请求信号是低电平还是下降沿有效。一旦输入信号有效,即向CPU申请中断,并且硬件自动使IE1置1。2)定时中断类定时中断是由内部定时(或计数)溢出或外部定时(或计数)溢出引起的,即T0和T1中断。当定时器对单片机内部定时脉冲进行计数而发生计数溢出时,即表明定时时间到,由硬件自动使TF0(TF1)置1,并申请中断。当定时器对单片机外部计数脉冲进行计数而发生计数溢出时,即表明计数次数到,由硬件自动使TF0(TF1)置1,并申请中断。外部计数脉冲是通过两个固定引脚来输入到单片机内的。(3)串行口中断类串行口中断是为接收或发送串行数据而设置的。串行中断请求是在单片机芯片内部发生的。RXD—串行口输入端,P3.0的第二功能。当接收完一帧数据时,硬件自动使RI置1,并申请中断。TXD—串行口输出端,P3.1的第二功能。当发送完一帧数据时,硬件自动使TI置1,并申请中断。

当某中断源的中断申请被CPU响应之后,CPU将把此中断源的中断入口地址装入PC,中断服务程序即从地址开始执行。因一般在此地址存放的是一条绝对转移指令,可使程序从此地址跳转到用户安排的中断服务程序去,因而将此地址称为中断入口,也称为中断矢量。5.1.3中断系统控制1.定时器控制寄存器TCON作用是控制定时器的启动和停止。

(1)TF1(TCON.7):定时器/计数器T1溢出标志位。当T1被启动计数后,从初值进行加1计数,当T1计满溢出时,由硬件自动使TF1置1,并申请中断。该标志一直保持到CPU响应中断后,才由硬件自动清0。也可用软件查询该标志位,并由软件清0。(2)TR1(TCON.6):定时器/计数器T1启停控制位。(3)TF0(TCON.5):定时/计数器T0溢出标志位,其功能同TF1。(4)TR0(TCON.4):定时/计数器T0启停控制位,其功能同TR1。(5)IE1(TCON.3):外部中断请求标志位。IE1=1表示外部中断向CPU申请中断。当CPU响应外部中断请求时,由硬件自动使IE1清0(负边沿触发方式)。(6)IT1(TCON.2):外部中断触发方式选择位。(7)IE0(TCON.1):外部中断请求标志位。其功能同IE1(8)IT0(TCON.0):外部中断触发方式选择位。其功能同IT1。2.串行口控制寄存器(SCON)(1)TI(SCON.1):串行发送中断请求标志。CPU将一个字节数据写入发送缓冲器SBUF后启动发送,每发送完一帧数据,硬件自动使TI置1。但CPU响应中断后,硬件并不自动使TI清0,必须由软件使TI清0。(2)RI(SCON.0):串行接收中断请求标志位。在串行口允许接收时,每接收完一帧数据,硬件自动使RI置1。但CPU响应中断后,硬件并不能自动使RI清0,必须由软件清0。3.中断允许寄存器IE

中断允许寄存器IE的作用是控制CPU对中断的开放或屏蔽以及每个中断源是否允许中断。(1)EA(IE.7):CPU中断总控位。EA=1,CPU开放中断,每个中断源是被允许还是被禁止,分别由各中断源的中断允许位确定:EA=0,CPU屏蔽所有的中断要求,称为关中断。(2)ES(IE.4):串行口中断允许位。ES=1,允许串行口中断:ES=0,禁止串行口中断。4.中断优先级控制寄存器IP作用是设定各中断源的优先级别。各位的功能说明如下:(1)PS(IP.4):串行口中断优先级控制位。PS=1,串行口为高优先级中断;PS=0,串行口为低优先级中断。(2)PT1(IP.3):定时器T1中断优先级控制位。PT1=1,T1为高优先级中断;PT1=0,T1为低优先级中断。(3)PX1(IP.2):外部中断中断优先级控制位。PX1=1,为高优先级中断;PX1=0,为低优先级。(4)PT0(IP.1):定时器T0中断优先级控制位。PT0=1,T1为高优先级中断;PT0=0,T0为低优先级中断。(5)PX0(IP.0):外部中断中断优先级控制位。PX0=1,为高优先级中断;PX0=0,为低优先级5.1.4中断处理过程中断处理过程可分为3个阶段,即中断响应、中断处理和中断返回。1.中断响应(1)CPU的中断响应条件①首先要由中断源发出中断申请;②中断总允许EA=1,即CPU允许所有中断源申请中断。③中断的中断源的中断允许位为1,即此中断源可以向CPU申请中若满足上述条件,CPU一般会响应中断,但如果有下列任何一种情况存在,则中断响应会受到阻断。①CPU正在执行一个同级或高一级的中断服务程序;②当前的机器周期不是正在执行的指令的最后一个周期,即正在执行的指令还未完成前,任何中断请求都得不到响应;③正在执行的指令是返回指令或者对专业寄存器IE、IP进行读/写的指令,此时。在执行RETI或者读写IE或IP之后,不会马上响应中断请求,至少在执行一条其他之后才会响应。若存在上述任何一种情况,中断查询结果就被取消,否则,在紧接着的下一个机器周期,就会响应中断。(2)中断优先级的判定中断源的优先级别分别为高级和低级,通过软件设置中断优先级寄存器IP相关位来设定每个中断源的级别

如果几个同一优先级别的中断源同时向CPU请求中断,CPU通过硬件查询电路首先响应自然优先级较高的中断源的中断请求。其自然优先级由硬件规定。

(3)中断响应过程如果中断响应条件满足,且不存在中断阻断的情况,则CPU将响应中断。此时,中断系统通过硬件生成调用指令(LCALL),此指令将自动把断点地址压入堆栈保护起来(但不保护状态字寄存器PSW及其他寄存器内容),然后将对应的中断入口地址装入程序计数器PC,使程序转向中断入口地址,执行中断服务程序。

在MCS-51机中各中断源与之对应的入口地址分配如表5-2所示。2.中断处理中断服务程序从入口地址开始执行,直至遇到中断返回RETI指令为止,这个过程称为中断处理(又称中断服务)。进入中断服务程序后,一般要先保护现场,然后再执行中断处理程序,在返回主程序以前,再恢复现场。(1)因为各入口地址之间,只相隔8个字节,一般的中断服务程序是容纳不下的,因而最常用的方法是在中断入口地址单元存放一条无条件转移指令,这样可使中断服务程序灵活地安排在64KB程序存储器的任何空间。(2)若要在执行当前中断程序时禁止更高优先级中断源中断,要先用软件关闭CPU中断,或禁止更高级中断源的中断,而在中断返回前再开放中断。(3)在保护现场和恢复现场时,为了不使现场数据受到破坏或者造成混乱,一般规定在保护现场和恢复现场时,CPU不影响新的中断请求。这就要求在编写中断服务程序时,注意在保护现场之前要关中断,在恢复现场之后开中断。3.中断返回(1)中断返回中断返回是指中断服务完成后,CPU返回到原程序的断点,CPU返回到原程序的断点(即原来断开的位置),继续执行原来的程序。中断返回通过执行中断返回指令RETI来实现,该指令的功能是首先将相应的优先级状态触发器置0,以开放同级别中断源的中断请求;其次,从堆栈区把断点地址取出,送回到程序计数器PC中。因此,不能用RET指令代替RETI指令。(2)中断请求的撤除①定时器溢出中断请求的撤除

CPU在响应中断后,硬件会自动清除中断请求标志TF0和TF1。②串行口中断的撤除在CPU响应中断后,硬件不能清除中断请求标志TI和RI,而要由软件来清除相应的标志。③外部中断的撤除外部中断为边沿触发方式时,CPU响应中断后,硬件会自动清除中断请求标志IE0和IE1。外部中断为电平触发方式时,CPU响应中断后,硬件会自动清除中断请求标志IE0和IE1,但由于和加到或引脚的外部中断请求信号并未撤除,中断请求标志IE0或IE1会再次被置1,所以在CPU响应中断后应立即撤除和引脚上的低电平。

图5-1外部中断的撤除电路中断服务程序的开始部分:INT0:ANLP1,#0FEH

ORLP1,#01HCLRIE0……4.中断响应时间中断响应时间,是从查询中断请求标志位开始到转向中断入口地址所需的机器周期数。MCS-51单片机的最短响应时间为3个机器周期。MCS-51单片机最长响应时间为8个机器周期。5.2定时器/计数器的结构及应用在控制系统中,常常要求有有一些定时或延时控制,如定时输出、定时检测和定时扫描等;也往往要求有计数功能,能对外部事件进行计数。要实现上述功能,一般可用下面3种方法。1.软件定时:让CPU循环执行一段程序,以实现软件定时。但软件定时占用了CPU时间,降低了CPU的利用率,因此软件定时的时间不宜太长。2.硬件定时:采用时基电路(例如555定时芯片),外接必要的元器件(电阻和电容),即可构成硬件定时电路。这种定时电路在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。3.可编程的定时器:这种定时器的定时值及定时范围可以很容易地用软件来确定和修改,因而功能强,使用灵活,例如8253可编程芯片。5.2.1定时器/计数器的的结构及功能定时器/计数器T0由TH0和TL0构成,T1由TH1和TH1构成。TMOD(定时器方式寄存器)用于控制和确定各定时器/计数器的功能和工作模式。TCON用于控制定时器/计数器T0、T1启动和停止计数,同时包含定时器/计数器的状态。它们属于特殊功能寄存器,这些寄存器的内容靠软件设计。系统复位时,寄存器的所有位都被清零。定时器/计数器T0、T1都是加法计数器,每输入一个脉冲,计数器加1,当加到计数器为全1时,再输入一个脉冲,就使计数器发生溢出,溢出时,计数器回零,并置位TCON(定时器控制寄存器)中的TF0或TF1,以表示定时时间已到或计数值已满,向CPU发出中断申请。2.T0和T1的功能选择在TMOD中,有一个控制位(C/),分别用于选择T0和T1是工作在定时器方式,还是计数器方式。(1)计数功能所谓计数,是对外部事件进行计数。当选择计数器方式时,计数脉冲来自相应的外部输入引脚T0(P3.4)或T1(P3.5)。当输入信号发生由1至0的负跳变时,计数器(T0或T1)的值增1。每个机器周期中采样值为1,而在下一个周期中采样值为0,则在紧跟着的再下一个周期的S3P1期间,计数值就加1(2)定时功能

T0、T1的定时功能也是通过计数实现的。当选择定时器方式时,计数脉冲来自于内部时钟脉冲,每个机器周期使计数器的值加1。每个机器周期等于12个时钟周期,故计数速率为振荡频率的1/12。例如当采用6MHz晶体时,计数速率为2MHz,即2us计数器加1。计数值乘以单片机的机器周期就是定时时间。5.2.2定时器/计数器的控制1.定时器方式寄存器TMODTMOD的作用是设置T0、T1的工作方式。

各位功能说明如下(1)GATE:门控位。GATE=0:软件启动定时器,即用指令使TCON中的TR1(TR0)置1即可启动定时器1或定时器0。GATE=1:软件和硬件共同启动定时器,即用指令使TCON中的TR1(TR0)置1,只有外部中断引脚输入高电平时才能启动定时器。(2):功能选择位。

=0时,以定时器方式工作;=1时,以计数器方式工作。(3)M1、M0:方式选择位。C/TC/TC/T2.定时器控制寄存器TCON

定时器控制寄存器TCON的作用是控制定时器的启动和停止,并保存T0、T1的溢出和中断标志。(1)TF1(TCON.7):定时器/计数器T1溢出标志位。当T1计数计满溢出时,由硬件自动使TF1置1,并申请中断。对该标志位有两种处理方法,一种是以中断方式工作,即TF1置1并申请中断,响应中断后,执行中断服务子程序,并由硬件自动使TF1清0;另一种以查询方式工作,即通过查询该位是否为1来判断是否溢出,TF1置1后必须用软件使TF1清0。(2)TR1(TCON.6):定时器/计数器T1启停控制位。当GATE=0时,用软件使TR1置1即启动T1,用软件使TR1清0则停止T1。当GATE=1时,用软件使TR1置1的调试外部中断的引脚输入高电平才能启动T1。(3)TF0(TCON.5):定时/计数器T0溢出标志位,其功能同TF1。(4)TR0(TCON.4):定时/计数器T0启停控制位,其功能同TR1。(5)IE1(TCON.3):外部中断请求标志位。(6)IT1(TCON.2):外部中断触发方式选择位。(7)IE0(TCON.1):外部中断请求标志位。(8)IT0(TCON.0):外部中断触发方式选择位。5.2.3定时器/计数器的四种工作方式1.定时器/计数器的初始化定时器/计数器是一种可编程部件,在使用定时器/计数器前,一般都要对其进行初始化,以确定其以特定的功能工作。初始化的步骤如下。(1)确定定时器/计数器的工作方式,确定方式控制字,并写入TMOD。(2)预置定时初值或计数初值,根据定时时间或计数次数,计算定时初值或计数初值,并写入TH0、TL0或TH1、TL1。(3)根据需要开放定时器/计数器的中断,给中断允许控制寄存器IE中的相关位赋值。(4)启动定时器/计数器,给TCON的TR1或TR0置1。2.定时初值或计数初值的计算方法3.四种工作方式(1)方式0

在定时器/计数器启动工作前,CPU先要为它装入方式控制字,以设定其工作方式,然后再为它装入定时器/计数器初值,并通过指令启动其工作。13位计数器按加1计数器计数,计满为零时能自动向CPU发出溢出中断请求,但若要它再次计数,CPU必须在其中断服务程序中为它重装初值。(2)方式1

在本方式下,定时器/计数器是按16位加1计数器工作的,该计数器由高8位TH和低8位TL组成,如图5-7所示。定时器/计数器在方式1下的工作情况和方式0时相同,只是最大定时/计数值是方式0时的8倍。(3)方式2

在方式2时,定时器/计数器被拆成一个8位寄存器TH(TH0/TH1)和一个8位计数器TL(TL0/TL1),CPU对它们初始化时必须送相同的定时初值/计数初值。当定时器/计数器启动后,TL按8位加1计数器计数,每当它计满回零时,一方面向CPU发出溢出中断请求,另一方面从TH中重新获得初值并启动计数,如图5-8所示。(4)方式3TH0和TL0按两个独立的8位计数器工作,T1只能按不需要中断的方式2工作,如图所示。例5-1单片机时钟频率为12MHz,计算定时5ms所需的定时器初值。解:定时器工作在方式2和方式3下时的最大定时时间只有0.256ms,因此要想获得5ms的定时时间,定时器必须在方式0或方式1。(1)方式05.3MCS-51单片机外部中断源的扩展1.定时器扩展法

MCS-51单片机内部计数器是16位的,在允许中断的情况下,当计数从全1变为全0时,就产生溢出中断。如果把计数器的初值为FFFFH,那么只要计数输入端加一个脉冲就可以产生溢出中断申请。如果把外部中断输入加到计数输入端,就可以利用外部中断申请的负脉冲产生定时器溢出中断申请而转到相应的中断入口(000BH或001BH),只要在哪里存放的是为外中断服务的中断子程序,就可以最后实现定时器/计数器溢出中断转为外部中断的目的。扩展步骤:(1)置定时器/计数器为工作模式2,且为计数方式,即8位的自动重装方式。当低8位计数器溢出时,高8位内容自动重新装入低8位,从而使计数可以重新按原规定的初值进行。(2)定时器/计数器的高8位和低8位都预置为FFH。(3)将定时器/计数器的计数输入端(P3.5、P3.4)作为扩展的外部中断请求输入。(4)在相应的中断服务程序入口开始存放为外中断服务程序。借用定时器/计数器0溢出中断为外部中断的初始化程序如下:MOVTMOD,#06H;置T0为工作模式2、计数方式MOVTL0,#0FFH;置低8位初始值MOVTH0,#0FFH;置高8位初始值SETBEA;开中断SETBET0;定时器T0允许中断SETBTR0;启动计数器这样设置后,定时器T0的输入就可以作为外部中断请求的输入,相当增加了一个边沿触发的外部中断源,其中中断服务程序的入口地址为000BH。2.用查询方式扩展中断源ORG0013HLJMPITROU……ITROU:PUSHPSW;保护现场

PUSHACCANLP1,#0FH;取出P1口低4位

JNBP1.0,N1;若非EI1中断,则转N1ACALLBR0;若为EI1中断,则转BR0N1:JNBP1.1,N2;若非EI2中断,则转N2ACALLBR1;若为EI2中断,则转BR2N2:JNBP1.2,N3;若非EI3中断,则转N3ACALLBR2;若为EI3中断,则转BR2N3:JNBP1.3,N4;若非EI4中断,则转N4ACALLBR3;若为EI4中断,则转BR3N4:POPACC;恢复现场

POPPSWRETIBR0:…;EI1中断服务程序

RETBR1:…;EI2中断服务程序

RETBR2:…;EI3中断服务程序

RETBR3:…;EI4中断服务程序

RET5.4中断系统的应用

在MCS-51单片机中,需要人为地进行管理和控制的有以下几点:(1)CPU的开中断与关中断;(2)各中断源中断请求的允许和禁止;(3)各中断源优先级别的设定;(4)外部中断请求的触发方式。例5-2设8031时钟频率为12MHz,清编出利用定时器/计数器T0在P1.0引脚上输出2秒的方波程序。①主程序主程序包括对8031内部定时器T0的初始化和设定软件计数器初值等。由于需要定时50ms,故定时器T0必须工作于方式1。T0的定时初值为:TC=M-t/T计数=216-50ms/1us=15536=3CB0H相应程序如下:

ORG1000HSTART:MOVTMOD,#01H;令T0为定时器方式1MOVTH0,#3CH;装入定时初值

MOVTL0,#0B0HM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论