精品课件-单片机原理与应用技术(黄惟公)-第7章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
制位、引脚和中断源,即GATE、TR0、TF0和T0(P3.4)引脚、 INT0(P3.2)引脚。除计数位数不同于方式0、方式1外,其功能、 操作与方式0、方式1完全相同,可定时亦可计数。
第 7 章 定时/计数器
振荡器
1 12
fosc
÷12
1 12
fosc
C/T=0
TL0 (8位)
TF0
C/T=1
第 7 章 定时/计数器
振荡器
Tx TRx GATE INTx
÷12 1
C/T = 0 C/T = 1
& ≥1
控制
TLx (8位)
TFx
重新输入
THx (8位)
中断
图7.5 方式2的逻辑结构
第 7 章 定时/计数器
方式0和方式1用于循环计数时,每次计满溢出后,计数器 都复位为0,要进行新一轮计数还须重置计数初值。这不仅导 致编程麻烦,而且影响定时时间精度。方式2具有初值自动装 入功能,避免了上述缺陷,适合用作较精确的定时脉冲信号发 生器。
计数器溢出:一个盛水的容器,当所盛的水超过其容量时 就会“溢出”。计数器计到最大值时,如果再来一个脉冲,计 数值会回到零,这种现象叫“溢出”。
溢出标记:计算器的“溢出”如同加法“进位”。计数器 将“进位”置给溢出标记,在单片机中溢出标记会导致中断。
第 7 章 定时/计数器
计数初值:如果计数器的容量是16位,则其最大的计数 值是FFFFH,即65 535。因此,当计数到65 535,再来一个脉 冲,即65 536时就会产生溢出。在现实生活中,经常会有少 于65 536个计数值的要求,这时可采用预置数的方法来解决 这个问题。例如,要计100个脉冲,如果先放进65 436,再来 100个脉冲就到了65 536这个最大值,即产生溢出。这个65 436叫做计数初值。
当 C/T =1时,多路开关与Tx相连,外部计数脉冲由Tx脚输 入,当外部信号电平发生由1到0的负跳变时,计数器加1,此 时为计数器。
方式1下的计数器,其最大计数脉冲为65536。因此其最长 定时时间(晶振为12 MHz时)为:T×65536= 65.536 ms,其中T 为机器周期,是晶振周期的12分频,当晶振为12 MHz时T=1
加法计数器的初值可以由程序设定,设置的初值不同, 计数值或定时时间就不同。在定时/计数器的工作过程中,计 数器的内容可用程序读回到CPU。
第 7 章 定时/计数器
图7.2 定时/计数器的结构框图
第 7 章 定时/计数器
7.2 定时/计数器的控制
MCS-51单片机的特点是用特殊功能寄存器对内部资源进行 控制。定时/计数器的工作由两个特殊功能寄存器控制。 TMOD(Timer/Counter Mode Control)用于设置其工作方式, TCON用于控制其激发启动和中断申请。
C/T :计数、定时功能选择位,当 C/T=1时为计数方式;当
=0时C为/T定时方式。它是Counter/
的缩T写im,e T上的一横表
示低电平有效,C上无一横表示高电平有效,了解这些符号有
助于记忆。
M1、M0:工作方式定义位,其具体定义方式如表7.1所示。
第 7 章 定时/计数器
M1
M0
0
0
0
1
第 7 章 定时/计数器
7.1.2 定时/计数器的结构与工作原理 MCS-51基本型单片机定时/计数器的结构如图7.2所示。 作计数器用时,加法计数器对芯片引脚T0(P3.4)或
T1(P3.5)上的输入脉冲计数。每输入一个脉冲,加法计数器增 加1。加法计数溢出时可向CPU发出中断请求信号。
作定时器用时,加法计数器对内部机器周期脉冲计数。由 于机器周期是定值,精度高,因此计数值乘机器周期就是定时, 如晶振为12 MHz,则计数值100相当于定时100 s。
当GATE=1时,与门的输出由输入INTx的电平和TRx位的状 态来确定。这时若TRx=1,则引脚INTx可直接开启或关断计数 器:当INTx为高电平时,允许计数;低电平时则停止计数。若 TRx=0,则与门被封锁(即输出为0),控制开关被关断,不能计 数。
第 7 章 定时/计数器
以上控制启动、停止计数方式总结如下: 1) 非门控方式 当GATE=0时,控制权由TRx决定,TRx=1计数启动,TRx=0 计数停止。这种方式实际上是用软件控制启动、停止计数的。 2) 门控方式 当GATE=1、TRx=1时,控制权由INTx决定,INTx=1计数启 动,INTx=0计数停止。这种方式实际上是用外部硬件INTx引脚 控制启动、停止计数的。
第 7 章 定时/计数器
第7章 定时/计数器
7.1 定时/计数器的结构及其工作原理 7.2 定时/计数器的控制 7.3 定时/计数器的工作方式 7.4 计数器对输入脉冲频率的要求 7.5 定时/计数器的编程和应用举例 思考题与习题
第 7 章 定时/计数器
7.1 定时/计数器的结构与工作原理
7.1.1 定时/计数器的实质 定时/计数器(Timer/Counter)的实质是计数器,如图7.1
方式2最大计数值为256,最长定时时间(晶振12 MHz时 T = 1 s)为256 s。
第 7 章 定时/计数器
7.3.4 方式3 定时/计数器工作于方式3时,其逻辑结构如图7.6所示。 由图可知,方式3时,T0被分解成两个8位定时/计数
器,其中: TL0作为一个定时/计数器,占用了原定时/计数器T0的控
控制开关可以控制计数器的启动和停止。 这里,对几个计数器的基本概念做一个解释。
第 7 章 定时/计数器
计数器的容量:计数器的量程一般用二进制的位数来表示。 如8位计数器,它最大计数量是256,16位计数器最大的计数量 是65536。
加一计数器:每来一个脉冲,计数器的计数数值加1。有 些单片机的计数器是减1的。
第 7 章 定时/计数器
7.3.2 方式1 方式1逻辑结构如图7.4所示。THx和TLx组成了16位加法计
数器。其中,THx为高8位,TLx为低8位。当TLx 低8位计数溢 出时自动向THx进位,而THx溢出时向中断位TFx进位(硬件自动 置位),并申请中断。
第 7 章 定时/计数器
当 C/T =0时,多路开关连接12分频器输出,计数器对机器 周期计数,此时为定时器。
第 7 章 定时/计数器
7.3.3 方式2 定时/计数器工作于方式2时,其逻辑结构如图7.5所示。 由图可知方式2时,16位加法计数器的THx和TLx具有不
同功能,其中TLx是8位计数器,THx是重置初值的8位缓冲器。 在程序初始化时,TLx和THx由软件赋予相同的初值。一旦TLx 计数溢出,TFx将被置位,同时,THx中的计数初值自动装入 TLx,从而进入新一轮计数,如此循环不止。
TFx
中断
第 7 章 定时/计数器
工作方式0是13位定时/计数器。THx全部8位和TLx低5位 (TLx的高3位无效)组成13位加1计数器。最大计数值为 213 = 8192个脉冲。方式0采用13位计数器是为了与其早期的 产品MCS-48系列单片机兼容,其初值的计算较麻烦,如果不是 为了兼容,在实际应用中可不必使用,而采用方式1。方式0的 全部功能,方式1都可以代替,下面介绍方式1。
因定时/计数器T1的控制位TF1和TR1被TH0计数时占用, 为了避免中断冲突,当T0工作在方式3仅用TL0计数时,T1一定 不要用在有中断的场合,可以以8位的方式工作在方式0、方式 1、方式2中。注意此时都不能再使用T1的中断,T1的中断被工 作在方式3的T0的TH0占用了。一般是在T1以工作方式2被当做 波特率发生器使用时,才使T0工作于方式3。
TCON寄存器在复位时也被清0。
第 7 章 定时/计数器
7.3 定时/计数器的工作方式
7.3.1 方式0 当M1M0=00时,定时/计数器设定为工作方式0。其逻辑结
构如图7.3所示,图中THx、TLx、Tx、TRx、TFx中的“x”可全 部用“0”或全部用“1”替换,表示定时/计数器0、定时/计 数器1的相关字节和位。
1
0
1
1
表7.1 定时/计数器工作方式
工作方式 方式 0 方式 1 方式 2 方式 3
方式 说明 13 位定时/计数器 16 位定时/计数器 8 位自动重装定时/计数器 T0 分为两个独立的 8 位 C/T;T1 停止使用
第 7 章 定时/计数器
GATE:门控位。GATE=0时,与外部中断无关,由TCON寄存 器中的TRx位控制启/停。GATE=1时,由控制位TRx和引脚 共同控制启/I停NT。x
第 7 章 定时/计数器
7.4 计数器对输入脉冲频率的要求
当定时/计数器作为计数器使用时,计数脉冲来自外部 输入引脚T0或T1。当输入脉冲从“1”到“0”负跳变,即每一 次下降沿时,计数器数值将加1。51单片机在每个机器周期的 S5P2时对外部信号采样。如在第一个周期中采样为1,而在下一 个周期中采到的值为0,则在紧接着的再下一个周期S3P1期间计 数器加1。由于确认一次下降沿跳变要花两个机器周期,即24个 振荡周期,因此51单片机能够检测到的外部输入脉冲的最高频 率为振荡周期的1/24。这样,如果51单片机采用的晶振是6 MHz, 则能够计数的外部脉冲最高频率为250 kHz;如果晶振是12 MHz, 则能够计数的外部脉冲最高频率为500 kHz。
T0
控制
TR0 GATE
INT0
1 12
fosc
TR1
&F1
图7.6 方式3的逻辑结构
中断 中断
第 7 章 定时/计数器
TH0作为另一个定时/计数器,占用原定时/计数器T1的控 制位TF1和TR1,同时还占用了T1的中断源,其启动和关闭仅受 TR1置1或清0控制。TH0只能对机器周期进行计数,因此,TH0 只能用作简单的内部定时,不能用作对外部脉冲进行计数,是 定时器T0附加的一个8位定时器。
第 7 章 定时/计数器
TF0(TF1):为T0(T1)定时器溢出中断标志位。当T0(T1)计 数溢出时,由硬件置位,并在允许中断的情况下,发出中断请 求信号。当CPU响应中断转向中断服务程序时,由硬件自动将 该位清0。
TR0(TR1):为T0(T1)运行控制位。当TR0(TR1) = 1时启动 T0(T1);TR0(TR1)=0时关闭T0(T1)。该位由软件进行设置。
s。
第 7 章 定时/计数器
振荡器
Tx TRx
GATE INTx
÷12 1
C/T = 0 C/T = 1
TLx THx (8 位) (8 位)
控制
& ≥1
TFx
中断
图7.4 方式1的逻辑结构
第 7 章 定时/计数器
当GATE = 0时,经非门后,或门输出1,这样TRx将直接控 制定时器的启动和关闭。这时如果TRx=1,则接通控制开关, 定时器从初值开始计数直至溢出。溢出时,16位计数器为0, TFx置位,并申请中断。如要循环计数,则计数器需重置初值, 且需用软件将TFx复位。TRx=0,则与门被封锁,控制开关被关 断,停止计数。
第 7 章 定时/计数器
7.2.1 方式控制寄存器(TMOD) TMOD为定时器0、定时器1的工作方式寄存器字节地址为
89H,其格式如下:
GATE
C/T M1 M0 T1
GATE
C/T
M1 M0
T0
第 7 章 定时/计数器
TMOD的低4位为定时/计数器0的方式字段;高4位为定时/
计数器1的方式字段,它们的含义完全相同。
所示。输入脉冲从“1”到“0”负跳变时,即每一次下降沿, 计数器的数值将加1,当计数器的数值计满后进位溢出标志向 CPU申请中断。
第 7 章 定时/计数器
脉冲
控制开关
加1 计数器
溢出标记
中断
图7.1 定时/计数器的原理
第 7 章 定时/计数器
如果计数器的脉冲来源于单片机内部的机器周期(晶振的 12分频),则由于单片机的振荡周期极为精确,这时称为定时 器。计数的脉冲如果来源于单片机外部的引脚,则由于其周期 一般不固定,这时称为计数器。
下面的文字解释中也用同样的方法,避免了对两个定 时/计数器的分别介绍。这些约定也适应于对另外几种工作方 式的介绍。
第 7 章 定时/计数器
振荡器
÷12
Tx脚 TRx
C/T=0 C/T=1
&
GATE
≥1
INTx
0~4
TLx (5位)
0~7
THx (8位)
控制 =0 off =1 on
图7.3 方式0的逻辑结构
应注意的是,由于TMOD不能进行位寻址,因此只能用字节 指令设置定时/计数器的工作方式。单片机复位时TMOD所有位 清0。
第 7 章 定时/计数器
7.2.2 控制寄存器(TCON) TCON控制寄存器的字节地址为88H,可位寻址,各位的定义
如下:
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TCON的低4位用于控制外部中断,在第6章中已解释了相关 内容。高4位用于控制定时/计数器的启/停和中断申请,其中 TF1、TF0在第6章中也解释了相关内容,但为了对定时/计数器 有一个全面的了解,这里与TR0、TR1一起解释如下。
相关文档
最新文档