最新定时计数器的四种工作方式

合集下载

定时计数器的工作方式

定时计数器的工作方式

MCS-51的单片机内有两个16位可编程的定时/计数器,它们具有四种工作方式,其控制字和状态均在相应的特殊功能寄存器中,通过对控制寄存器的编程,就可方便地选择适当的工作方式。

下面我们对它们的特性进行阐述。

定时/计数器的工作方式MCS-51单片机内部的定时/计数器的结构如图1所示,定时器T0特性功能寄存器TL0(低8位)和TH0(高8位)构成,定时器T1由特性功能寄存器TL1(低8位)和TH1(高8位)构成。

特殊功能寄存器TMOD控制定时寄存器的工作方式,TCON则用于控制定时器T0和T1的启动和停止计数,同时管理定时器T0和T1的溢出标志等。

程序开始时需对TL0、TH0、TL1和TH1进行初始化编程,以定义它们的工作方式和控制T0和T1的计数。

TMOD和TCON这两个特殊功能寄存器的格式参见下表:[1].定时/计数器的方式控制字TMOD,字节地址为89H,其格式如表1:[2].定时器控制积存器TCON,字节地址为88H,位地址为88H—8FH,其格式如表2:TMOD和TCON各位的意义和用途我们将在下面的章节中予以介绍,需要注意的是,TCON的D0—D3位与中断有关,我们会在中断的内容中加以说明,MCS-51的定时/计数器共有四种工作方式,我们逐个进行讨论。

工作方式0定时/计数器0的工作方式0电路逻辑结构见图2(定时/计数器1与其完全一致),工作方式0是13位计数结构的工作方式,其计数器由TH的全部8位和TL的低5位构成,TL的高3位没有使用。

当=0时,多路开关接通振荡脉冲的12分频输出,13位计数器以次进行计数。

这就是定时工作方式。

当=1时,多路开关接通计数引脚(To),外部计数脉冲由银南脚To输入。

当计数脉冲发生负跳变时,计数器加1,这就是我们常称的计数工作方式。

不管是哪种工作方式,当TL的低5位溢出时,都会向TH进位,而全部13位计数器溢出时,则会向计数器溢出标志位TF0进位。

我们讨论门控位GATA的功能,GATA位的状态决定定时器运行控制取决于TR0的一个条件还是TR0和INT0引脚这两个条件。

单片机定时器与计数器的工作方式解析

单片机定时器与计数器的工作方式解析

单片机定时器与计数器的工作方式解析1 工作方式0定时器/计数器的工作方式0称之为13位定时/计数方式。

它由TL(1/0)的低5位和TH (0/1)的8位组成13位的计数器,此时TL(1/0)的高3位未用。

我们用这个图来讨论几个问题:M1M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。

C/T:前面我们说过,定时/计数器即可作定时用也可用计数用,到底作什么用,由我们根据需要自行决定,也说是决定权在我们��编程者。

如果C/T为0就是用作定时器(开关往上打),如果C/T为1就是用作计数器(开关往下打)。

顺便提一下:一个定时/计数器同一时刻要么作定时用,要么作计数用,不能同时用的,这是个极普通的常识,几乎没有教材会提这一点,但很多开始学习者却会有此困惑。

GATE:看图,当我们选择了定时或计数工作方式后,定时/计数脉冲却不一定能到达计数器端,中间还有一个开关,显然这个开关不合上,计数脉冲就没法过去,那么开关什么时候过去呢?有两种情况GATE=0,分析一下逻辑,GATE非后是1,进入或门,或门总是输出1,和或门的另一个输入端INT1无关,在这种情况下,开关的打开、合上只取决于TR1,只要TR1是1,开关就合上,计数脉冲得以畅通无阻,而如果TR1等于0则开关打开,计数脉冲无法通过,因此定时/计数是否工作,只取决于TR1。

GATE=1,在此种情况下,计数脉冲通路上的开关不仅要由TR1来控制,而且还要受到INT1管脚的控制,只有TR1为1,且INT1管脚也是高电平,开关才合上,计数脉冲才得以通过。

这个特性能用来测量一个信号的高电平的宽度,想想看,怎么测?为什么在这种模式下只用13位呢?干吗不用16位,这是为了和51机的前辈48系列兼容而设的一种工作式,如果你觉得用得不顺手,那就干脆用第二种工作方式。

2 工作方式1。

51单片机定时器工作方式

51单片机定时器工作方式

51单片机定时器工作方式51单片机是一种非常常见的单片机,它具有多个定时器用来实现各种定时任务。

下面我们就来详细介绍一下51单片机的定时器工作方式。

首先,51单片机的定时器可以分为两种类型:定时/计数器0(T0)和定时/计数器1(T1),它们分别有不同的工作方式和控制寄存器。

一、定时/计数器0(T0)工作方式:定时/计数器0(T0)是一个8位的定时器/计数器,它可以进行定时或计数操作。

在定时模式下,它可以作为定时器在规定的时间段内进行计时;在计数模式下,它可以根据外部信号的脉冲计数。

在定时模式下,T0可以通过设置控制寄存器TCON的位4(TR0)来启动或停止计时操作。

当TR0为1时,定时器开始计时;当TR0为0时,定时器停止计时。

定时器的工作频率可以通过控制寄存器TMOD的位1和位0来设置。

在计数模式下,T0可以通过设置TCON的位5(CT0)来选择定时器或计数器操作。

当CT0为0时,定时器工作,当CT0为1时,计数器工作。

同时,在计数模式下,还需要通过设置控制寄存器TMOD的位1和位0来设置计数器的工作频率。

定时/计数器0还可以使用中断功能,通过设置控制器IE的位4(ET0)来开启或关闭中断。

当ET0为1时,当定时器溢出时会产生中断请求,可以在中断服务程序中处理相应的操作。

二、定时/计数器1(T1)工作方式:定时/计数器1(T1)也是一个8位的定时器/计数器,它可以进行定时或计数操作。

类似于T0,T1也可以在定时模式下作为定时器进行计时,或者在计数模式下根据外部信号的脉冲进行计数。

在定时模式下,T1可以通过设置TCON的位6(TR1)来启动或停止计时操作。

当TR1为1时,定时器开始计时;当TR1为0时,定时器停止计时。

定时器的工作频率可以通过设置TMOD的位3和位2来设置。

在计数模式下,T1可以通过设置TCON的位7(CT1)来选择定时器或计数器操作。

当CT1为0时,定时器工作;当CT1为1时,计数器工作。

单片机定时器的使用

单片机定时器的使用

由于TL0既能作定时器也能作计数器使用,而 TH0只能作定时器使用而不能作计数器使用,因此在 方式3模式下,定时/计数器0可以构成二个定时器或 者一个定时器和一个计数器。
如果定时/计数器0工作于工作方式3,那么定时/ 计数器1的工作方式就不可避免受到一定的限制,因 为自己的一些控制位已被定时/计数器借用,只能工 作在方式0、方式1或方式2下,如果设置T1工作在方 式3,则T1停止工作,相当于其他方式时令TR1=0。
在工业检测、控制中,很多场合都要用到计数或者定 时功能。例如对外部脉冲进行计数、产生精确的定时时间、 作串行口的波特率发声器等。MCS-51单片机内部有两个 可编程的定时器/计数器,以满足这方面的需要。它们具 有 两种工作模数(计数器模式、 定时器模式)和四种工 作方式( 方式0、方式1、方式2、方式3),其控制字均 在相应的特殊功能寄存器(SFR)中,通过对它的SFR的 编程,可以方便的选择工作模数和工作方式。
C/T位:计数器模式和定时器模式的选择位。
C/T=0,为定时器模式,内部计数器对晶振脉冲12分频 后的脉冲计数,该脉冲周期等于机器周期,所以可以理 解为对机器周期进行计数。从计数值可以求得计数的时 间,所以称为定时器模式。
C/T=1,为计数器模式,计数器对外部输入引脚T0 (P3.4)或T1(P3.5)的外部脉冲(负跳变)计数,允许 的最高计数频率为晶振频率的1/24。
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TF0、TF1分别是定时器/计数器T0、 T1 的溢出标志位, 加法计数器计满溢出时置 1, 申请中断, 在中断响应后自动复 0。TF产生的中断申请是否被接受, 还需要由中断是否开放 来决定。
TR1、TR0 分别是定时器 /计数器T1、 T0 的运行控制位, 通过软件置 1 后, 定时器 /计数器才开始工作, 在系统复位时 被清 0。

单片机定时计数器工作方式实现方法

单片机定时计数器工作方式实现方法

单片机定时计数器工作方式实现方法本文介绍了单片机定时计数器的工作原理和四种工作方式的实现方法,包括初始化、定时器计数器结构的详细说明以及定时时间的计算公式。

下面是本店铺为大家精心编写的5篇《单片机定时计数器工作方式实现方法》,供大家借鉴与参考,希望对大家有所帮助。

《单片机定时计数器工作方式实现方法》篇1一、引言单片机定时计数器是单片机中的一个重要组成部分,它可以用于测量时间、控制程序流程等。

单片机定时计数器的工作方式有多种,每种工作方式都有不同的计数器结构和计时精度,因此需要根据具体应用场景选择合适的工作方式。

本文将详细介绍单片机定时计数器的工作原理和四种工作方式的实现方法。

二、定时计数器工作原理单片机定时计数器通常由一个或多个计数器和一些控制寄存器组成。

计数器用于计数外部时钟脉冲的数量,控制寄存器用于设置计数器的工作方式和初始值等。

定时计数器的工作原理如下:1. 初始化:在使用定时计数器之前,需要对其进行初始化,包括设置工作方式、计数器初始值和开启中断等。

2. 计时:定时计数器根据外部时钟脉冲的频率和计数器的位数计算时间,通常使用二进制计数法,计数器的每一位代表一个时间单位。

3. 中断:定时计数器可以根据计数器的溢出情况产生中断,中断服务程序可以根据具体应用场景进行时间处理和控制。

三、定时计数器工作方式实现方法单片机定时计数器有四种工作方式,分别为工作方式 0、工作方式 1、工作方式 2 和工作方式 3,每种工作方式都有不同的计数器结构和计时精度。

1. 工作方式 0:13 位定时器/计数器工作方式 0 是 13 位计数结构的工作方式,其计数器由 TH 的全部 8 位和 TL 的低 5 位构成,TL 的高 3 位没有使用。

以定时器0 为例,当 C/0 时,多路开关接通振荡脉冲的 12 分频输出,13 位计数器以此进行计数,这就是定时工作方式。

当 C/1 时,多路开关接通计数引脚(T0),外部计数脉冲由引脚 T0 输入,当计数脉冲发生负跳变时,计数器加 1,这就是计数工作方式。

定时器的四种工作模式

定时器的四种工作模式
TFX会被硬件置一,从而发出被启动。 当其中一个条件不满足时,T0就停止工作。
工作方式1
当M1=0,M0=1时,T0或T1工作在方式1 方式1的特点:T0或T1工作在方式1时是16位
的计数器。 16位计数器的组成:由THX作为高8位,由
TLX作为低8位。 当TLX溢出后,对THX进位,THX溢出后,
定时器/计数器的4种工作方式
方式0 (120页)
当M0=0,M1=0时,工作在方式0 方式0的特点:为13位的计数器 13位计数器的组成:由TLX的低5位和THX的
高8位组成。 计数器的进位及溢出:当TLX的低5位溢出时,
则向THX进位。当THX溢出时,则由硬件置 一TFX,从而发出中断请求。
C/T位控制T0和T1的工作模式
参考119页 TMOD寄存器和121页框图 以定时器/计数器T1举例说明: (1)TMOD寄存器高四位中的C/T=0时,T1
工作在定时器模式,计数信号来源于单片机 系统内部,即:系统时钟的12分频。 (2)TMOD寄存器高四位中的C/T=1时,T1 工作在计数器模式,计数信号来源于T1引脚, 即:P3.5引脚。
GATE位对T0和T1的控制
以T0做范例讲解 (1)当TMOD寄存器低四位中的GATE=0时,
则T0的启动与停止由TCON寄存器中的TR0 控制。 当TR0=0时,启动T0; 当TR0=1时,停止T0.
(2)当TMOD寄存器低四位中的GATE=1时, 则T0的启动就需要两个条件: 条件1:TR0=1; 条件2:外部中断0引脚上存在高电平。

定时计数器的工作方式

定时计数器的工作方式
定时/计数器的核心部件是一个加1计数器,其脉冲有 两个来源:外部脉冲源、系统的时钟振荡器。
定时/计数器的结构框图 振荡器 ÷12 C/T=0
加1 计数器
TX端
TFx
中断
C/T=1
控制信号TRx
计数器对两个脉冲源之一进行输入计数,每输入一个脉冲, 计数值加1。当计数到计数值为全1时,再输入一个脉冲就使计 数值回零,同时从最高位溢出一个脉冲使特殊功能寄存器 TCON(定时器控制寄存器)的某一位TFx置1,作为计数器的溢 出中断标志。
《单片机及接口技术》 第5章
定时/计数器
工作于何种方式,取决于脉冲源,当脉冲源为时钟 振荡器(等间隔脉冲序列)时,由于计数脉冲为一时间基 准,脉冲数乘以脉冲间隔就是定时时间,表现为定时 功能;当脉冲源为间隔不等的外部脉冲发生器时,就 是外部事件的计数器,表现为计数功能。
若工作于定时状态,则表示定时时间到;若工作于计 数状态,则表示计数回零。所以,加1计数器的基本功 能是对输入脉冲进行计数。 用作定时器时,在每个机器周期计数器加1,所以可以把 它看作累加机器周期,1个机器周期包括12个振荡周期,则 计数频率为振荡频率的十二分之一。
《单片机及接口技术》 第5章
定时/计数器
定时器工作方式控制寄存器TMOD的格式
位 7 6 GATE C/T 5 M1 4 M0 3 2 GATE C/T 1 M1 0 M0
定时器1
定时器0
M1M0:这两位指定定时/计数器的工作方式,可形成四种 编码,对应四种工作方式:
M1 0 0 1 1 M0 0 1 0 1 方式 0 1 2 3 说明 TLx低5位与THx中8位构成13位计数器 TLx与THx构成16位计数器 可自动再装入的8位计数器,当TLx计数溢出时,THx内容自动 装入TLx。 对定时器0,分成两个8位的计数器;对定时器1,停止计数。

6.3 定时器计数器的四种模式及应用

6.3 定时器计数器的四种模式及应用

(2)计算初值 ) T0工作在外部事件计数方式,当计数到 8时,再加 工作在外部事件计数方式, 工作在外部事件计数方式 当计数到2 1计数器就会溢出。设计数初值为 ,当再出现一次 计数器就会溢出。 计数器就会溢出 设计数初值为X, 外部事件时,计数器溢出。 外部事件时,计数器溢出。 则: X+1=28 X= 28 -1=11111111B=0FFH T0工作在定时工作方式,设晶振频率为 工作在定时工作方式, 工作在定时工作方式 设晶振频率为6MHz, , 500µs相当于 相当于250个机器周期。因此,初值 为 个机器周期。 相当于 个机器周期 因此,初值X为 (28-X)×2µs=500µs × X=6=06H
的工作模式0在 例2:利用 的工作模式 在P1.0引脚输出周期为 :利用T0的工作模式 引脚输出周期为 2ms的方波。设单片机晶振频率 的方波。 的方波 设单片机晶振频率fosc=12MHz。 。 分析:要在P1.0引脚输出周期为 引脚输出周期为2ms的方波,只要使 的方波, 分析:要在 引脚输出周期为 的方波 P1.0每隔 每隔1ms取反一次即可。 取反一次即可。 每隔 取反一次即可 (1)选择工作模式 ) T0的模式字为 的模式字为TMOD=00H,即 的模式字为 , M1M0=00,C/T=0,GATE=0,其余位为 。 , , ,其余位为0。 (2)计算1ms定时时 的初值 )计算 定时时T0的初值 定时时 (213-X)×1/12 × 10-6×12=1×10-3 s × × X=7192D=11100000 11000B T0的低 位:11000B=18H即 (TL0)=18H 的低5位 的低 即 T0的高 位:11100000B=E0H即 (TH0)=E0H 的高8位 的高 即
三、模式 3的应用举例 的应用举例 例1:设某用户系统已使用了两个外部中断源,并 :设某用户系统已使用了两个外部中断源, 置定时器T1工作在模式 工作在模式2, 置定时器 工作在模式 ,作串行口波特率发生器 现要求再增加一个外部中断源,并由P1.0引脚 用。现要求再增加一个外部中断源,并由 引脚 输出一个5kHz的方波。fosc=12MHz. 的方波。 输出一个 的方波
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

定时计数器的四种工作方式在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。

顺便说一下,T MOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。

从图1中我们能看出,TMOD被分成两部份,每部份4位。

分别用于控制T1和T0,至于这里面是什么意思,我们下面介绍。

从图2中我们能看出,TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(我们暂不管)。

而TF1(0)我们上节课已提到了,当计数溢出后TF1(0)就由0变为1。

原来TF1(0)在这儿!那么TR0、TR1又是什么呢?看上节课的图。

希望大家常来本站学习单片机相关知识计数脉冲要进入计数器还真不不难,有层层关要通过,最起码,就是TR0(1)要为1,开关才能合上,脉冲才能过来。

因此,TR0(1)称之为运行控制位,可用指令SETB来置位以启动计数器/定时器运行,用指令CLR来关闭定时/计数器的工作,一切尽在自已的掌握中。

<单片机定时器/计数器结构>定时/计数器的四种工作方式工作方式0定时器/计数器的工作方式0称之为13位定时/计数方式。

它由TL(1/0)的低5位和TH(0/1)的8位组成13位的计数器,此时TL(1/0)的高3位未用。

我们用这个图来讨论几个问题:M1M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。

C/T:前面我们说过,定时/计数器即可作定时用也可用计数用,到底作什么用,由我们根据需要自行决定,也说是决定权在我们&#0;&#0;编程者。

如果C/T为0就是用作定时器(开关往上打),如果C/T为1就是用作计数器(开关往下打)。

顺便提一下:一个定时/计数器同一时刻要么作定时用,要么作计数用,不能同时用的,这是个极普通的常识,几乎没有教材会提这一点,但很多开始学习者却会有此困惑。

GATE:看图,当我们选择了定时或计数工作方式后,定时/计数脉冲却不一定能到达计数器端,中间还有一个开关,显然这个开关不合上,计数脉冲就没法过去,那么开关什么时候过去呢?有两种情况GATE=0,分析一下逻辑,GATE非后是1,进入或门,或门总是输出1,和或门的另一个输入端INT1无关,在这种情况下,开关的打开、合上只取决于TR1,只要TR1是1,开关就合上,计数脉冲得以畅通无阻,而如果TR1等于0则开关打开,计数脉冲无法通过,因此定时/计数是否工作,只取决于TR1。

GATE=1,在此种情况下,计数脉冲通路上的开关不仅要由TR1来控制,而且还要受到INT1管脚的控制,只有TR1为1,且INT1管脚也是高电平,开关才合上,计数脉冲才得以通过。

这个特性能用来测量一个信号的高电平的宽度,想想看,怎么测?为什么在这种模式下只用13位呢?干吗不用16位,这是为了和51机的前辈48系列兼容而设的一种工作式,如果你觉得用得不顺手,那就干脆用第二种工作方式。

工作方式1工作方式1是16位的定时/计数方式,将M1M0设为01即可,其它特性与工作方式0相同。

工作方式2在介绍这种式方式之前先让我们思考一个问题:上一次课我们提到过任意计数及任意定时的问题,比如我要计1000个数,可是16位的计数器要计到65536才满,怎么办呢?我们讨论后得出的办法是用预置数,先在计数器里放上64536,再来1000个脉冲,不就行了吗?是的,但是计满了之后我们又该怎么办呢?要知道,计数总是持续重复的,流水线上计满后马上又要开始下一次计数,下一次的计数还是1000吗?当计满并溢出后,计数器里面的值变成了0(为什么,能参考前面课程的说明),因此下一次将要计满65536后才会溢出,这可不符合要求,怎么办?当然办法很简单,就是每次一溢出时执行一段程序(这常常是需要的,要不然要溢出干吗?)能在这段程序中做把预置数64536送入计数器中的事情。

所以采用工作方式0或1都要在溢出后做一个重置预置数的工作,做工作当然就得要时间,一般来说这点时间不算什么,可是有一些场合我们还是要计较的,所以就有了第三种工作方式&#0;&#0;自动再装入预置数的工作方式。

既然要自动得新装入预置数,那么预置数就得放在一个地方,要不然装什么呢?那么预置数放在什么地方呢?它放在T(0/1)的高8位,那么这样高8位不就不能参与计数了吗?是的,在工作方式2,只有低8位参与计数,而高8位不参与计数,用作预置数的存放,这样计数范围就小多了,当然做任可事总有代价的,关键是看值不值,如果我根本不需要计那么多数,那么就能用这种方式。

看图4,每当计数溢出,就会打开T(0/1)的高、低8位之间的开关,计预置数进入低8位。

这是由硬件自动完成的,不需要由人工干预。

常常这种式作方式用于波特率发生器(我们将在串行接口中讲解),用于这种用途时,定时器就是为了供给一个时间基准。

计数溢出后不需要做事情,要做的仅仅只有一件,就是重新装入预置数,再开始计数,而且中间不要任何延迟,可见这个任务用工作方式2来完成是最妙不过了。

工作方式3这种式作方式之下,定时/计数器0被拆成2个独立的定时/计数器来用。

其中,TL0能组成8位的定时器或计数器的工作方式,而TH0则只能作为定时器来用。

我们知道作定时、计数器来用,需要控制,计满后溢出需要有溢出标记,T0被分成两个来用,那就要两套控制及、溢出标记了,从何而来呢?TL0还是用原来的T0的标记,而TH0则借用T1的标记。

如此T1不是无标记、控制可用了吗?是的。

一般情况处,只有在T1以工作方式2运行(当波特率发生器用)时,才让T0工作于方式3的。

定时器/计数器的定时/计数范围工作方式0:13位定时/计数方式,因此,最多能计到2的13次方,也就是8192次。

工作方式1:16位定时/计数方式,因此,最多能计到2的16次方,也就是65536次。

工作方式2和工作方式3,都是8位的定时/计数方式,因此,最多能计到2的8次方,也说是256次。

预置值计算:用最大计数量减去需要的计数次数即可。

例:流水线上一个包装是12盒,要求每到12盒就产生一个动作,用单片机的工作方式0来控制,应当预置多大的值呢?对了,就是8192-12=8180。

以上是计数,明白了这个道理,定时也是一样。

这在前面的课程已提到,我们不再重复,请参考前面的例程。

1.中断允许寄存器--IEIE在特殊功能寄存器中,字节地址为A8H,位地址(由低位到高位)分别是A8H-AFH。

IE用来打开或关断各中断源的中断请求,基本格式如下图二所示:EA:全局中断允许位。

EA=0,关闭全部中断;EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。

×:无效位。

ES:串行I/O中断允许位。

ES=1,打开串行I/O中断;ES=0,关闭串行I/O中断。

ETl;定时器/计数器1中断允许位。

ETl=1,打开T1中断;ETl=O,关闭T1中断。

EXl:外部中断l中断允许位。

EXl=1,打开INT1;EXl=0,关闭INT1。

ET0:定时器/计数器0中断允许位。

ET0=1,打开T0中断;ET0=0,关闭TO中断。

EXO:外部中断0中断允许位。

Ex0=1,打开INT0;EX0=0,关闭INT0.中断优先寄存器--IP:IP在特殊功能寄存器中,字节地址为B8H,位地址(由低位到高位)分别是B8H一BFH,IP用来设定各个中断源属于两级中断中的哪一级,IP的基本格式如下图三所示:×:无效位。

PS:串行I/O中断优先级控制位。

PS=1,高优先级;PS=0,低优先级。

PTl:定时器/计数器1中断优先级控制位。

PTl=1,高优先级;PTl=0,低优先级。

Pxl:外部中断1中断优先级控制位。

Pxl=1,高优先级;PXl=O,低优先级。

PT0:定时器/计数器o中断优先级控制位。

PT0=1,高优先级;PTO=0,低优先级。

Px0:外部中断0中断优先级控制位。

Px0=1,高优先级;Px0=0,伤优先级。

在MCS-51单片机系列中,高级中断能够打断低级中断以形成中断嵌套;同级中断之间,或低级对高级中断则不能形成中断嵌套。

若几个同级中断同时向CPU请求中断响应,则CPU按如下顺序确定响应的先后顺序:INT0一T0---INT1一T1一RI/T1.中断的响应过程若某个中断源通过编程设置,处于被打开的状态,并满足中断响应的条件,而且①当前正在执行的那条指令已被执行完1、当前末响应同级或高级中断2、不是在操作IE,IP中断控制寄存器或执行REH指令则单片机响应此中断。

在正常的情况下,从中断请求信号有效开始,到中断得到响应,通常需要3个机器周期到8个机器周期。

中断得到响应后,自动清除中断请求标志(对串行I/O端口的中断标志,要用软件清除),将断点即程序计数器之值(PC)压入堆栈(以备恢复用);然后把相应的中断入口地址装入PC,使程序转入到相应的中断服务程序中去执行。

各个中断源在程序存储器中的中断入口地址如下:中断源入口地址INT0(外部中断0) 0003HTF0(TO中断) 000BHINT1(外部中断1) 0013HTFl(T1中断) 001BHRI/TI(串行口中断) 0023H由于各个中断入口地址相隔甚近,不便于存放各个较长的中断服务程序,故通常在中断入口地址开始的二三个单元中,安排一条转移类指令,以转入到安排在那儿的中断服务程序。

以T1中断为例,其过程下如图四所示。

由于5个中断源各有其中断请求标志0,TF0,IEl,TFl以及RI/TI,在中断源满足中断请求的条件下,各标志自动置1,以向CPU请求中断。

如果某一中断源提出中断请求后,CPU不能立即响应,只要该中断请求标志不被软件人为清除,中断请求的状态就将一直保持,直到CPU响应了中断为止,对串行口中断而言,这一过程与其它4个中断的不同之处在于;即使CPU响应了中断,其中断标志RI/TI也不会自动清零,必须在中断服务程序中设置清除RI/TI的指令后,才会再一次地提出中断请求。

CPU的现场保护和恢复必须由被响应的相应中断服务程序去完成,当执行RETI中断返回指令后,断点值自动从栈顶2字节弹出,并装入PC寄存器,使CPU继续执行被打断了的程序。

下面给出一个应用定时器中断的实例。

现要求编制一段程序,使P1.0端口线上输出周期为2ms的方波脉冲。

设单片机晶振频率Fosc=6MHZ.1、方法:利用定时器T0作1ms定时,达到定时值后引起中断,在中断服务程序中,使P1.0的状态取一次反,并再次定时1ms。

2、定时初值:机器周期MC=12/fosc=2us。

所以定时lms所需的机器周期个数为500D,亦即0lF4H。

相关文档
最新文档