MCS-51单片机的定时器计数器

合集下载

第06章 MCS-51单片机定时计数器

第06章 MCS-51单片机定时计数器

10
2 8位计数初值自动重装,TL(7 ~ 0)
TH(7 ~ 0)
11
3 T0运行,而T1停止工作,8位定时/计数。
▪ 2.定时/计数器控制寄存器(TCON)

D7 D6 D5 D4 D3 D2 D1 D0
位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TR0:定时 / 计数器0运行控制位。软件置位,软件复位。与GATE有关, 分两种情况:
GATE = 0 时:若TR0 = 1,开启T0计数工作;若TR0 = 0,停止T0计 数。
GATE = 1 时:若TR0 = 1 且/INT0 = 1时,开启T0计数; 若TR0 = 1 但 /INT0 = 0,则不能开启T0计数。 若TR0 = 0, 停止T0计数。
TR1:定时 / 计数器1运行控制位。用法与TR0类似。
▪ (1)计算计数初值。欲产生周期为1000μs的等宽方波脉冲, 只需在P1.7端交替输出500μs的高低电平即可,因此定时 时间应为500μs。设计数初值为X,则有:
▪ (216-X)×1×10-6=500×10-6
▪ X=65536-500=65036=FE0CH
▪ 将X的低8位0CH写入TL1,将X的高8位FEH写入TH1。
;清TCON,定时器中断标志清

MOV TMOD,#10H
;工作方式1设定

MOV TH1,#0FEH
;计数1初值设定

MOV TL1,#0CH

MOV IE,#00H
;关中断

SETB TR1
;启动计数器1
▪ LOOP0:JBC TF1,LOOP1 ;查询是否溢出

第6章MCS-51的定时器

第6章MCS-51的定时器

• 28×12×1/12MHz=28us=256us=0.256ms
工作方式2_补充说明
8位计数器 TL0作计数器,TH0作预置寄存器使用,计数溢出时 ,TH0中的计数初值自动装入TL0,即TL0是一个自动 恢复初值的8位计数器。 在使用时,要把计数初值同时装入TL0和TH0中。 优点是提高定时精度,减少了程序的复杂程度。
工作方式1_应用分析
定时和计数的应用 计数范围:1~216 计数计算公式:计数值=216-计数初值 机器周期(MC):=12/Fosc=12/时钟频率 定时范围:1机器周期~216机器周期 定时计算公式:定时时间=(216-定时初值)×
机器周期 如果晶振频率为6MHz ,则最大定时时间为: 216×12×1/6MHz=217us=131072us=131.072ms 如果晶振频率为12MHz ,则最大定时时间为: 216×12×1/12MHz=216us=65536us=65.536ms 工作方式1的定时计数功能切换模式,与工作方式
0完全一样;而启动定时计数器的模式,也与工作方式 0完全一样。计数量方式1更大,可完全取代方式0。
6.2.3 方式2
方式2为自动重装初值的8位计数方式。
TCON
TF1 D7
申请 中断
TR1
溢出8位计数器
1
TF0
TL0
TR0
0 &
TH1重TH装0 单元 ≥1 8位
D0
T0引脚
机器周期 1
INT0引脚
6.1.1 工作方式控制寄存器TMOD TMOD(工作方式寄存器):选择定时器/计数器T0、T1的工作 模式和工作方式,字节地址为89H,不能位寻址。
8位分为两组,高4位控制T1,低4位控制T0。 (1)GATE——门控位

MCS-51单片机的定时器计数器

MCS-51单片机的定时器计数器

1. 定时器T0/T1 中断申请过程
(1)在已经开放T0/T1中断允许且已被启动的前提下, T0/T1加1计满溢出时 TF0/TF1标志位自动置“1” ;
(2)CPU 检测到TCON中TF0/TF1变“1”后,将产生指 令:LCALL 000BH/LCALL 001BH 执行中断服务程序;
(3)TF0/TF1标志位由硬件自动清“0”,以备下次中断申
郑州大学
docin/sundae_meng
(3)工作方式寄存器TMOD
T1
T2
GATE C / T M1 M0 GATE C / T M1 M0
M1,M0:工作方式选择位 。
=00:13位定时器/计数器; =01:16位定时器/计数器(常用); =10:可自动重装的8位定时器/计数器(常用); =11:T0 分为2个8位定时器/计数器;仅适用于T0。 C/T :定时方式/计数方式选择位。 = 1:选择计数器工作方式,对T0/T1引脚输入的外部事件 的负脉冲计数; = 0 :选择定时器工作方式,对机器周期脉冲计数定时。 如下页图所示。
CPL P1.0 MOV TH0,#15H MOV TL0,#0A0H
START:MOV SP,#60H MOV P1,#0FFH
SETB TR0 POP PSW
MOV TMOD,#01H MOV TH0,#15H MOV TL0,#0A0H
POP ACC RETI END
SETB EA
Байду номын сангаас
SETB ET0
定时器/计数器0采用工作方式1,其初值为:
21650ms/1s=6553650000=15536=3CB0H
电路图如下:
郑州大学
docin/sundae_meng

MCS-51单片机的定时器-计数器

MCS-51单片机的定时器-计数器
1.3 工方式
MCS-51的定时器/计数器共有四种工作方式。工作在方式0、方 式1和方式2时,定时器/计数器0和定时器/计数器1的工作原理完全 一样,现以定时器/计数器0为例介绍前三种工作方式。
1. 方式0(M1M0=00) (1)电路逻辑结构
方式0是13位计数结构的工作方式,其计数器由TH0全部8位 和TL0的低5位构成。TL0高三位弃之不用。图6.4 是定时器/计数 器0工作在方式0的逻辑结构。
分析:题目的要求可用下图来表示。

P1.0
8051 250 s 250 s
由上图可以看出只要使 的电位每隔250 取一次反即可。所 以定时时间应取250 。
1)计算计数初值 设计数初值为x,由定时计算公式知:
2)专用寄存器的初始化
D7
D6 D5 D4
D3
D2 D1
D0
GATE
GATE
所以,TMOD应设置为:10H 开放定时器/计数器1中断,所以IE应设置为:88H
当GATE=1时,只有TR0和 同时为高电平,定时器/计数 器 才工作,否则,定时器/计数器不工作。
(2)定时和计数的应用 计数范围:1~213 计数计算公式:计数值=213-计数初值 定时范围:1机器周期~213机器周期 定时计算公式:定时时间=(213-定时初值)×机器周期 如果晶振频率为6MHz ,则最大定时时间为: 213×1/6MHz×12=214( )
单片机原理及应用
MCS-5单片机内部共有两个16位可编程的定时器/计数器,即 定时器T0和定时器T1它们既有定时功能又有计数功能。
1.1 结构
定时器/计数器的基本结构如图6.3所示。基本部件是两个8位计 数器(其中TH1和TL1是T1的计数器,TH0和TL0是T0的计数器)。

MCS-51最新单片机内部设有几个定时计数器?它们是由哪些专用

MCS-51最新单片机内部设有几个定时计数器?它们是由哪些专用

1、MCS-51单片机内部设有几个定时/计数器?它们是由哪些专用寄存器组成?答:MCS-51单片机内部设有2个定时/计数器。

他们由两个8位的特殊功能寄存器TCOM和TMOD,两个16位的特殊功能寄存器T0和T1构成。

2、MCS-51单片机的定时/计数器有哪几种操作模式?各有什么特点?答:MCS-51单片机的定时/计数器有4种操作模式。

方式0:13位计数/定时器。

13位由TLi的低五位和THi构成,手动重载入时间常数,软件启动/停止计数/定时器。

方式1:16位计数/定时器。

16位由TLi和THi构成,手动重载入时间常数,软件启动/停止计数/定时器。

方式2:8位计数/定时器。

TLi被定义为加1计数器,THi被定义为赋值寄存器,自动重载入时间常数,软件启动/停止计数/定时器。

方式3:T0 被用作两个独立的8位计数/定时器,手动重载入时间常数,软件启动/停止计数/定时器。

T1常被用作波特率发生器。

3、80C51定时器作定时或计数时其计数脉冲分别由谁提供?当用作定时器时,其定时时间与哪些因素有关?用作计数器时,对外界计数脉冲频率有何限制?答:80C51定时器作定时时其计数脉冲由内部振荡器经12分频后的输出,即机器周期的脉冲提供;80C51定时器作计数时其计数脉冲由外部输入脉冲提供。

当用作定时器时,其定时时间与内部振荡器频率、时间常数和定时器工作方式有关。

当用作计数器时,外界计数脉冲频率应低于振荡频率的1/24。

4、80C51定时器的门控信号GATE设置为1时,定时器如何启动?答:80C51定时器的门控信号GATE设置为1时,定时器启动需要同时满足INTi 引脚为高电平和Tri置位这两个条件,即通过满足这两个条件来启动定时器。

5、什么是串行通信、并行通信?其优缺点?并行通信是指在同一时刻发送多位数据;串行通信是指用一根线,在不同的时刻发送8位数据。

并行通信的优点是发送速度快;缺点是传输距离短、资源占用多。

串行通信的优点是传输距离远、占用资源少;缺点是发送速度慢。

单片机原理及其接口技术--第6章 MCS-51单片机定时器计数器

单片机原理及其接口技术--第6章 MCS-51单片机定时器计数器

单片机原理及其接口技术
T/C方式2的逻辑结构图
1
TH1/TH0
T8
T7
T6
T5
T4
T3
T2
T1
寄存器 计数器

TL1/TL0
T8
T7
T6
T5
T4
T3
T2
T1
主目录
上一页
下一页

单片机原理及其接口技术
4、方式3 M1M0=11 T0和T1有不同的工作方式
C/T0:
TH0和TL0被拆成2个独立的8位计数器。
28),向CPU申请中断,标志位TF1自动置位,若中
断是开放的,则CPU响应定时器中断。当CPU响应
中断转向中断服务程序时,由硬件自动将该位清0。
&
加1计数器 & 1
主目录
上一页
下一页


EA
ET1
单片机原理及其接口技术
2个模拟的位开关,前者决定了T/C的工作状态:当1单片机有2个特殊功能寄存器TCON和TMOD: TCON:用于控制定时器的启动与停止,中断标志。 TMOD:用于设置T/C的工作方式。
主目录
上一页
下一页


单片机原理及其接口技术
1.定时器控制寄存器TCON
88H TCON
位地址
D7
D6
D5
D4
D3
D2
D1
D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 8F 8E 8D 8C 8B 8A 89 88
过实时计算求得对应的转速。
主目录 上一页 下一页 结 束
单片机原理及其接口技术 对于定时/计数器来说,不管是独立的定时器芯片还是单

单片机原理及应用教程(C语言版)-第6章 MCS-51单片机的定时器计数器

单片机原理及应用教程(C语言版)-第6章 MCS-51单片机的定时器计数器

6.1.1 单片机定时器/计数器的结构
MCS-51单片机定时器/计数器的原理结构图
T0(P3.4) 定时器0 定时器1 T1(P3.5) 定时器2 T2EX(P1.1)
T2(P1.0)
TH0
溢 出 控 制
TL0
模 式 溢 出
TH1
控 制
TL1
模 式 溢 出
TH2
TL2
重装 捕获
RCAP 2H
RCAP 2L
6.2.2 T0、T1的工作模式
信号源 C/T设为1,为计数器,用P3.4引脚脉冲 C/T设为0,为定时器,用内部脉冲 运行控制 GATE=1,由外部信号控制运行 此时应该设置TR0=1 P3.2引脚为高电平,T0运行 GATE=0, 由内部控制运行 TR0设置为1,T0运行
6.2.2 T0、T1的工作模式
6.2.3 T0、T1的使用方法
例6-1 对89C52单片机编程,使用定时器/计 数器T0以模式1定时,以中断方式实现从P1.0引 脚产生周期为1000µ s的方波。设单片机的振荡频 率为12MHz。 分析与计算 (1)方波产生原理 将T0设为定时器,计算出合适的初值,定 时到了之后对P1.0引脚取反即可。 (2)选择工作模式 计算计数值N
6.2.1 T0、T1的特殊功能寄存器
TR1、TR0:T1、T0启停控制位。 置1,启动定时器; 清0,关闭定时器。
注意: GATE=1 ,TRx与P3.2(P3.3)的配合控制。
IE1、IE0:外部中断1、0请求标志位 IT1、IT0:外部中断1、0触发方式选择位
6.2.2 T0、T1的工作模式
6.2.1 T0、T1的特殊功能寄存器
GATE=0,禁止外部信号控制定时器/计数器。 C/T——定时或计数方式选择位 C/T=0,为定时器;C/T=1,为计数器 计数采样:CPU在每机器周期的S5P2期间,对 计数脉冲输入引脚进行采样。

第六章 MCS-51单片机内部定时器

第六章 MCS-51单片机内部定时器

6.3.1 模式0及应用
在这种模式下,16位寄存器只用了13位。 其中,TL0的高3位未用,TH0占8位。当 TL0的低5位溢出时,向TH0进位。当TH0 溢出时,向中断标志位TF0进位,并申请中 断。 因此,可通过查询TF0 是否置位或考 察中断是否发生来判断定时器/计数器0的 操作完成与否。
(2)计算1ms定时T0的初值:
机器周期为(1/fOSC)×12=[1/(12×106)]×12=1μs, 设T0的 计数初值为X,则 (213-X)×1×10-6=1×10-3ms
X=213-1×10-3/(1×10) -6 =8192-1000=7192D=1110000011000
高8位: E0H 低5位: 18H
fosc=12MHz, 采用查询方式。
解:方波周期 T=1/100Hz=0.01s=10ms 用T1定时5ms 计数初值 X为: X=216-12×5×103/12=60536=EC78H 程序如下:
MOV TMOD, #10H ;T1模式1,定时方式
SETB TR1 LOOP:MOV TH1,#0ECH
例:晶振为12MHZ ,则计数周期为
T=12/(12*106)Hz =1微秒
最短的定时 周期
计数器工作方式:
当定时器/计数器为计数工作方式时,通过
引脚T0和T1对外部信号计数,外部脉冲的下降
沿触发计数
在每个机器周期的
采样过程:
S5P2期间采样引脚
当输入脉冲信号从1到0的负跳变时,计数器就 自动加1。 由于检测一个由1到0的跳变需要两 个机器周期,所以 计数的最高频率为振荡频 率的1/24。为了确保给定电平在变化前至少被 采样一次,外部计数脉冲的高低电平均需保持 一个机器周期以上。(占空比没有限制)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【例 6-3】 设 T1 作定时器,以模式 1 工作,定时时 间为 10 ms;T0 作计数器,工作在模式 2,T0(P3.4)引脚上 发生一次事件(脉冲)即溢出。 解 T1 的时间初值为 (216 - Tc) ×2 µ = 10 ms s Tc = EC78H T0 的计数初值常数为 FFH。

初始化程序:
TMOD,#16H ;T1定时模式1,T0计数模式2 TL0,#0FFH ;T0时间常数送TL0 TH0,#0FFH ;T0时间常数送TH0 TL1,#78H ;T1时间常数(低8位)送TL1 TH1,#0ECH ;T1时间常数(高8位)送TH1 TR0 ;置TR0为1,允许T0启动计数 TR1 ;置TR1为1,允许T1启动计

单片机复位后,TCON寄存器的所有位均为0.
2. 工作方式控制寄存器TMOD

高4位用于定时器1,低4位用于定时器0
① M1,M0:工作模式选择位。 定时器/计数器四种工作模式选择如表6-1所示。
表 6-1 工作方式选择表
M1 M0 0 0 1 1 0 1 0 1 方 式 0 1 2 3 13 位定时器/计数器 16 位定时器/计数器 自动装入时间常数的 8 位定时器/计数器 对 T0 分为两个 8 位独立计数器;对 T1 置方式 3 时停止工作 说 明
方式2适合于用作较精确的脉冲信号发生器。
4. 方式3—2个8位方式

仅T0可以工作在方式3,T1处于方式3时停止计数。 此时,T0分成2个独立的计数器—TL0和TH0,前者 用原来T0的控制信号(TR0、TF0),后者用原来 T1的控制信号(TR1、TF1)。
(1)TH0由TR1启动/停止,溢出TF1 (2)TL0由TR0启动/停止,溢出TF0 (3)TH0只能定时,TL0可以定时/计数,且都是8位。
如果计数初值设定为C,则计数器从初值C开始作加 1计数到计满为全1所需要的计数值设定为D,由此 便可得到如下的计算通式: C = M -D ① 式中,M为计数器量程,该值和计数器工作模式有关。 在模式0时,M为213;在模式1时,M为216;在模式2 和模式3时,M为28。
3.定时器初值的计算
在定时器方式下,计数器由单片机脉冲经12分频后 计数。因此,定时器定时时间T的计算公式为

6.2
定时器/计数器的初始化
1.初始化步骤
MCS-51内部定时器/计数器是可编程的,其工 作方式和工作过程均可由MCS-51通过程序对它进 行设定和控制。因此,MCS-51在定时器/计数器工 作前必须先对它进行初始化。初始化步骤为: (1) 根据题目要求先给定时器方式寄存器TMOD送一 个方式控制字,以设定定时器/计数器的相应工作方 式。 (2) 根据实际需要给定时器/计数器选送定时器初值或 计数器初值,以确定需要定时的时间和需要计数的 初值。
(3) 根据需要给中断允许寄存器IE选送中断控制字和 给中断优先级寄存器IP选送中断优先级字,以开放 相应中断和设定中断优先级。(若采用中断方式) (4) 给定时器控制寄存器TCON送命令字,以启动或禁 止定时器/计数器的运行。
2. 计数器初值的计算
定时器/计数器可用软件随时随地启动和关闭, 启动时它就自动加1计数,一直计到满,即全为1, 若不停止,计数值从全1变为全0,同时将计数溢出 位置1并向CPU发出定时器溢出中断申请。对于各 种不同的工作模式,最大的定时时间和计数数值不 同。这里在使用中就会出现两个问题: 一是要产生比定时器最长的定时时间还要短的时 间和比计数器最多的计数次数还要少的计数次数; 二是要产生比定时器最长的定时时间还要长的时 间和比计数器最多的计数次数还要多的计数次数。
2. 方式1—16位方式

16位计数,由TL0作为低8位、TH0作为高8位 ; 16位计数,由TL1作为低8位、TH1作为高8位。
其定时时间为: (216-初值)×机器周期
3. 方式2—8位自动装入时间常数方式


TL0作为8位内部计数器,TH0作为重装初值寄存 器,在TL0计数溢出置位TF0标志的同时,由硬件 控制直接将重装初值装入TL0,开始新一轮的计数, 如此不断循环。 方式2和方式0、1最大的差别就是计数器的初值是 由硬件控制自动装入的。 方式0、1一旦计数溢出,就表示计数器已回0,如 果要按照原先的初值重新计数,就需要通过软件重 装计数器初值。
2
13
2 10 1
3
µs = 6192 = 1830H = 0001 1000 0011 0000B
同样,先把低 5 位 10000B 送 TL0,TL0 的高 3 位置 零,余下的 8 位 11000 001B 送至 TH0。这样就得到定时 器工作在模式 0 时的初值 C110H,TH0 应装 C1H,TL0 应 装 10H。 若采取模式 1,则有 216 2 103 Tc = µ = 63 536 = F830H s 1 TH0 应装 F8H;TL0 应装 30H。
根据13位定时器/计数器特性,先把低5位0CH送TL0, TL0的高三位置零,高8位F0H送至TH0。可用下列 指令实现定时器T0初始化。 MOV TMOD,#00H ;T0工作于模式0,定 时方式 MOV TL0,#0CH ;低5位送TL0寄存器 MOV TH0,#0F0H ;高8位送TH0寄存器
MOV MOV MOV MOV MOV SETB SETB
【例 6-4】 设定时器 T0,工作在模式 1,试编写一个延时 1 s 的 子程序。 解 若主频频率为 6 MHz,可求得 T0 的最大定时时间为 Tmax = 216 ×2 µ = 131.072 ms s 我们就用定时器获得 100 ms 的定时时间再加 10 次循环得到 1 s 的延时,可算得 100 ms 定时的定时初值: (216 - Tc) ×2 µ = 100 ms = 100 000 µ s s Tc = 216 - 50 000 = 15 536 = 3CB0H
T1
T0
微 处 理 器 内部总线
TH1
TL1
TH0
TL0
பைடு நூலகம்
TCON
工作 方式
TMOD
工作 方式
8051单片机定时器/计数器结构示意图 加1计数器(高8位、低8位) TMOD,工作方式设置; TCON,启动、停止及设置溢出标志。
定时功能----计数输入信号是内部时钟脉冲,其计数 脉冲来源于晶振时钟输出信号的12分频,即每个机 器周期使寄存器的值加1。定时器可看做是对机器 周期的计数器。所以,定时计数频率是振荡频率的 1/12。 计数功能----计数脉冲来自相应的外部输入引脚, T0为P3.4,T1为P3.5。只要T0或T1的引脚上有一 个1到0的负跳变,相应的计数器就加1. 在TMOD中,各有一个控制位(C/T),分别用 于控制定时/计数器T0和T1工作在定时器方式还是 计数器方式。

二.定时器/计数器的控制寄存器

与定时器/计数器有关的控制寄存器有:
1. 定时器控制寄存器TCON


TF1:定时器/计数器1(T1)的溢出中断标志位。 TF0:定时器/计数器0(T0)的溢出中断标志位。 TR1:定时器/计数器1的运行控制位。通过置1或清 0来启动或停止T1的计数。 TR0:定时器/计数器0的运行控制位。
【例 6-2】 若单片机时钟频率 fosc 为 12 MHz,请计算定时 2 ms 所需 的定时器初值。 解 由于定时器工作在模式 2 和模式 3 下时的最大定时时间只有 0.256 ms,因此要想获得 2 ms 的定时时间,定时器必须工作在模式 0 或 模式 1。 若采用方式 0,则根据式②可得定时器初值为 Tc =
② C/T:定时器方式或计数器方式选择位 C/T=0时,为定时器方式 C/T=1时,为计数器方式 ③ GATE:门控位 当GATE=0时,TCON寄存器中的TR0或TR1为1, 则可立即启动定时器/计数器; 当GATE=1时,不但要TR0或TR1为1,且单片机的 INT0或INT1引脚的输入要为高电平,才能启动定时 器/计数器。
程序如下:
ORG 0000H MOV TMOD,#01H MOV R7,#10 DLY1MS:MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 LOOP1: JBC TF0,LOOP2 JMP LOOP1 LOOP2: DJNZ R7,DLY1MS SJMP $ END ;开始计时 ;查询溢出标志位判断 100 ms 时间是否到 ;100 ms 时间不到,则等待 ;100 ms 时间到,则 TF0 清零,且判断循环次数 ;1 s 时间到 ;初始化 T0 ;循环 10 次 ;装入 T0 初值
MCS-51单片机内部有两个16位可编程的定时器 /计数器,即定时器T0和定时器T1。每个定时器/计 数器的基本部件是两个8位的计数器(其中TH1、 TL1是T1的计数器,TH0、TL0是T0的计数器)拼装 而成。它们是采用加“1”方式工作的。 两个特殊功能寄存器(TMOD和TCON)用来对 定时器/计数器的工作方式进行选择和控制。 8051单片机的定时器/计数器结构如下图所示。
定时模式,对内部机器周期计数 定时时间 t =计数值N x Tcy 计数模式,对外部事件脉冲计数 计数脉冲周期要大于2 Tcy T0和T1计数器都只能递增计数,当16位计数器的 计数值增加到0FFFFH时,再输入1个脉冲就会使计 数器的值回零,并发生溢出信号,置相应的标志位 (TCON中TF0或TF1置1), 向CPU发出中断请求。 设定计数次数:计数器的计数量程-计数初值。
第六章 MCS-51单片机的定时器/计数器

实现定时常用的三种方法:
软件定时:占用CPU时间,效率低。
用555电路:不可编程。
可编程芯片:功能强,需要另外扩展。
单片机内部有2个16位的定时/计数器:使用 灵活,编程方便。--优先选用
相关文档
最新文档