第六讲 第6章 MCS-51单片微型计算机定时计数器原理
单片机讲义1(第六章定时器计数器)

脚与T0的逻辑关系框图如下图所示。
定时器/计数器T0分为2 个独立的8位计数器:TL0和 TH0。 TL0使用T0的状态控制位 C/ T GATE、TR0、 INT0 ,而TH0被 固定为1个8位定时器(不能 为外部计数模式),并使用 定时器T1的状态控制位TR1 和TF1,同时占用定时器T1 的中断请求源TF1。
6.2.2 方式1
6.2.3 方式 2
6.2.4 方式 3
在方式3下,T1只作 波特率发生器。在这样 情况下,T1将TF1、TR1 资源出借给T0使用。因 此,在方式3下,T0可以 构成两个独立的计数器 结构,如图6-6(a)和 图6-6(b)所示。
TL0构成一个完整的8 位定时器/计数器,而 TH0则是一个仅能对 fOSC/12脉冲计数的8位 定时器。
(l)计算初值 初值的计算公式为: X 2 n
设:需要装入T0的初值为X,则有:
t f
osc
12
16
其中:n=13、16、8 (由计数器的的工作方 式来决定n 的取值)
∵X= 2
n
t . f osc 现 n 16 12
t 1 ms
f osc 6 M Hz
∴X= 2
∵ X= 2
n
t . f osc 12
现 n 16 f osc 6 M Hz t 100 ms
所以:X=15 536=3CB0H 因此:TH0=3CH, TL0=B0H
(3)10次计数的实现 对于中断10次计数,可使T0工作在定时方式,采用循环程序的方法实现。 (4)程序设计 ORG 0000H RESET:LJMP MAIN ;上电,转主程序入口MAIN 0RG 000BH ;T0的中断入口地址 LJMP IT0P ;转T0中断处理程序ITOP ORG 1000H MAIN: MOV SP,#60H ;设堆栈指针 M0V B,#0AH ;设循环次数10次
51单片机定时器计数器详解

51单⽚机定时器计数器详解第六章定时器/计数器6.1 定时器的结构及⼯作原理6.2 定时器的控制6.3 定时器的⼯作模式及其应⽤第六章定时器/计数器实现定时⼀般有多种⽅法:1. 利⽤软件实现(延时程序)优点:简单,控制⽅便;缺点:CPU效率低。
2. 外部硬件实现:单稳态定时器、计数定时器优点:CPU效率⾼;缺点:修改参数⿇烦。
3. 利⽤计数器实现输⼊脉冲定时器/计数器作⽤主要包括产⽣各种时标间隔、记录外部事件的数量等,是单⽚机中最常⽤、最基本的部件之⼀。
外来脉冲定时计数定时器/计数器功能⽰意图6.1 定时器/计数器的结构及⼯作原理6.1.1 定时器/计数器的基本结构MCS-51单⽚机有⼆个定时器/计数器,每个定时器/计数器由⼏个专⽤寄存器组成。
TMOD(89H )⾼四位TMOD(89H )低四位⽅式寄存器TCON(88H)TCON(88H)控制寄存器*8DH 8BH 8CH 8AH TH1 TL1TH0 TL0数据寄存器(16位)定时器T1定时器T0定时器/计数器的结构如下图所⽰。
定时器/计数器的基本结构框图申请P3.5or P3.4or 8DH 8BH8CH 8AH6.1.2 定时器/计数器的⼯作原理定时器/计数器结构原理图INTx P3.YGATE :门控制位:定时/计数控制位TC/x=0,1Y=2,3Z=4,5⼀. 对外部输⼊信号的计数功能当T0或T1设置为计数⼯作⽅式时,计数器对来⾃输⼊引脚P3.4(T0)和P3.5(T1)的外部信号计数。
若前⼀个机器周期采样值为1,后⼀个机器周期采样值为0,则计数器加1。
所以计数器计数的频率最⾼为fosc 的1/24。
BDEHT H >1个机器周期T L >1个机器周期L⼆. 定时功能:定时器/计数器的定时功能也是通过计数实现的,它的计数脉冲是由单⽚机的⽚内振荡器输出经12分频后产⽣的信号,即为对机器周期计数。
INTx P3.Y例如:晶振频率=12MHz 机器周期=1us ,计数1次=1us ,计数频为=1MHz 。
单片机原理及其接口技术--第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
过实时计算求得对应的转速。
主目录 上一页 下一页 结 束
单片机原理及其接口技术 对于定时/计数器来说,不管是独立的定时器芯片还是单
MCS-51单片机内部定时器计数器

二、 方式1
方式 1(16位计数器)
•MCS-51单片机内部定时器计数器
方式1和方式0的工作原理基本相同,唯一 不同是T0和T1工作在方式1时是16位的计数/定 时器。
方式1时的计数长度M是2的16次方。16位 的初值直接拆成高低字节,分别送入TH和TL 即可。
•MCS-51单片机内部定时器计数器
M1 M0:四种工作方式的选择位 工作方式选择表
M1 M0 方式
说明
0 0 0 13 位定时器(TH的 8 位和TL的低 5 位)
0 1 1 16 位定时器/计数器
1 0 2 自动重装入初值的 8 位计数器 T0 分成两个独立的 8 位计数器,
1 1 3 T1 在方式 3 时停止工作
定时 1 ms的初值:
因为 机器周期=12÷6 MHz= 2 μs
所以 1 ms内T0 需要计数N次:
•MCS-51单片机内部定时器计数器
N= 1 ms÷2 μs = 500
由此可知: 使用方式 0 的 13 位计数器即可, T0 的初值X为 X=M-N=8 192-500=7 692=1E0CH 但是, 因为 13 位计数器中, 低 8 位 TL0 只使用了 5 位, 其 余码均计入高 8 位TH0 的初值, 则 T0
0。TF产生的中断申请是否被接受, 还需要由中断计数器T1、 T0 的运行控制位,
通过软件置 1 后, 定时器 /计数器才开始工作, 在系统复位时
被清 0。
•MCS-51单片机内部定时器计数器
定时器的工作方式
一、 方式 0
方式 0(13位计数器)
•MCS-51单片机内部定时器计数器
•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。为了确保给定电平在变化前至少被 采样一次,外部计数脉冲的高低电平均需保持 一个机器周期以上。(占空比没有限制)
51单片机定时计数器的工作原理

51单片机定时计数器的工作原理
51单片机是一种常用的微控制器,它具有多个定时计数器,其中包括定时器0和定时器1。
这些定时计数器是通过内部时
钟源提供的脉冲进行计数的。
定时器0和定时器1是独立的计数器,它们可以用于不同
的应用。
这里我们将主要关注定时器0的工作原理。
定时器0
由一个八位计数器和一个控制寄存器组成。
当定时器0启动时,它会根据时钟源提供的脉冲进行计数,每个脉冲会使计数器的值增加1。
定时器0的计数范围为0-255,即八位二进制数。
通过控制寄存器,我们可以设置定时器0的工作模式、计
数器的初始值以及时钟源的频率。
定时器0可以以不同的方式工作,包括定时模式和计数模式。
在定时模式下,我们可以设置一个初始值,并在每次计数
器增加到该值时产生一个中断。
这样就可以实现精确的定时功能。
定时器0的中断服务程序可以完成各种操作,例如控制其他外设、延时等。
在计数模式下,定时器0将简单地计数外部触发信号的脉
冲次数。
这可以用于测量外部事件的时间间隔或频率。
需要注意的是,定时器0的工作需要通过编程来完成。
我
们可以使用汇编语言或C语言来配置定时器0的寄存器,并
设计相应的中断服务程序。
51单片机定时器的工作原理是通过定时器0和定时器1实
现计数功能。
定时器0可以在定时模式或计数模式下工作,通过设置计数值和时钟源频率,实现精确的定时功能或测量外部
事件的时间间隔或频率。
编程则是必不可少的,通过配置寄存器和编写中断服务程序来实现定时器的工作。
第6讲 定时器与计数器

TMOD T0引脚 0 M0 1 M1 C/T 0 机器周期 GATE M0 1 INT0引脚 M1 C/T GATE D7 D0
工作方式2结构
定时器T0工作方式2结构
溢出 申请 中断 申请 中断 TCON TF1 TR1 TF0 TR0 溢出 TH0 8位 T0引脚 1 TL0 8位 &
≥1
四、定时计数器控制寄存器
1、工作方式控制寄存器TMOD
C/T用于选择定时或计数方式,定时计数器4种工作方式 可通过TMOD中的M1、M0进行选择。
MCS-51单片机将门控位GATE、定时计数方式选择位C/T、
工作方式选择位M1、M0组合在工作方式控制寄存器TMOD 中,TMOD是特殊功能寄存器,字节地址为89H。TMOD共8位, 低4位用于T0的工作方式选择,高4位用于T1的工作方式选择。 各位定义如下:
每个计数脉冲使加1计数器加1。(f< fosc/24 ,)
4. 加1计数器
加1计数器由特殊功能寄存器TH0与TL0组成,工作前应
先将TH0与TL0置初值Count。然后由定时或计数脉冲使加1计
数器加1,当加1计数器加到FFFFH后再加1时,发生溢出回零,
硬件自动将中断标志TF0置1,并以此向CPU发中断请求。 溢出回零后硬件要完成以下几项工作: ① 将溢出标志TF0置1。 ② 以TF0=1为标志向CPU发中断请求信号。 ③ 若CPU响应,则在响应过程中由硬件将TF0清零。并转入中断 处理程序执行定时或计数任务。
工作方式
00; 01; M1M0 = 10; 11;
加1计数器位数
13位 16位
加1计数器
TH15~8,TL4~0 TH15~8,TL7~0
方式0 方式1 方式2 方式3
第6章-MCS-51定时计数器

1.定时/计数器工作方式寄存器TMOD TMOD为T0、T1的工作方式寄存器,主要用于控制定
时/计数器T0和T1的工作模式和4种工作方式。低4位用于 控制T0,高4位用于控制T1。
门控 位
在单片机应用中,定时和计数的需求比较多,为了使用 方便并增加单片机的功能,就把定时电路集成到芯片中,称 之为定时/计数器。目前,几乎所有的单片机都集成了可编 程定时/计数器,为单片机提供定时和计数功能。
6.1.1 定时/计数器的结构 MCS-51 单片机内部有两个16位的可编程定时/计数器,称为
定时器0(T0)和定时器1(T1),都具有定时和计数的功能,可 编程选择其作为定时器或作为计数器用。 TMOD:选择定时器/计数器T0、T1的工作模式和工作方式。 TCON:控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。
Hale Waihona Puke ⑵ 工作方式1: T0初值 =216-500s/2s=65536–250=65286=FF06H TH0=FFH;TL0=06H。
⑶ 工作方式2: T0初值 =28-500s/2s=256-250=6 TH0=06H;TL0=06H。
⑷ 工作方式3: T0方式3时,被拆成两个8位定时器,定时初值可分别计
定时器:对片内机器时钟(周期方波)进行计数 计数器:对Tx引脚输入的负脉冲进行计数
6.1.2 定时/计数器的工作原理
单片机内部有两个定时/计数器T0和T1,其核心是计数器, 基本功能是加1。
对外部事件脉冲(下降沿)计数,是计数器;对片内机周 脉冲计数,是定时器。
计数器由二个8位计数器组成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
机器周期T=12/fosc=12/6×106=2 u s
根据公式:定时时间=(2N- 初值)*机器周期 用方式0 设初值为X, 1 ×10-3 S =(213-X)×2×10-6 S X=7692D 转化为二进制=0001111000001100=1E0CH 因为在作13位计数器用时,TL1高3位未用,应写0,X的 低5位装入TL1的低5位,所以TL1=0CH;X的高8位应装 入TH1,所以TH1=F0H。
(3)方式0、方式1的应用
例6-1 选择T1方式0、1用于定时,用查询方式 设 计 使 P1.0 输 出 周 期 为 2ms 的 方 波 , 晶 振 fosc=6MHZ。
P1.0
编程分析:根据题意,要使在P1.0输出周期为 2ms的方波,只要使P1.0半个周期,即每隔1ms 取反一次即可得到2ms方波,因而T1的定时时 间为 1ms 。
例题6-4
用定时器1方式2计数,要求每计满100次,将P1.0 取反。 根据题意,外部计数信号由T1(P3.5)引脚输入, 每跳变 一 次计数器加1,由程序查询TF1。 计数值=28- 初值 初值=28-100=15D=9CH 将 9CH送入TH1=TL1=9CH TMOD=01100000B=60H
定时器工作方式分析
1、定时器查询方式分析 2、定时器中断方式分析
3、计数器工作方式分析 TL0、TH0初值应装入0
振荡器
÷12 C/ T = 0 TL0 TH0 (8位) (8位) C/ T = 1 控制 T0 端 TR0 TF0 中断
GATE INT0 端
+
图 5-4 T0(或T1)方式1结构 返回
+
功能: 定时、计数 1、软件设定工作方式寄存器TMOD中的 M1M0: 00,方式0,13位定时/计数 (TL1低5位T,H1高8位,构成13位寄存器)
当软件再设定工作方式寄存器TMOD中的 C/T=0 时,定时器/计数器按13位定时工作,控制脉 冲来自内部振荡器,每来一脉冲,即计数一 次
定时时间=(213- 初值)*机器周期
源程序如下: MOV TMOD,#60H MOV TL1,#9CH MOV TH1 ,#9CH SETB TR1 DEL: JBC TF1,REP AJMP DEL REP: CPL P1.0 AJMP DEL ;T1方式2 ;给TL1置初值 ;给TH1置初值 ;启动T1
;输出取反
4、定时器工作方式3
返回
图5-6 中断系统的结构框图
查询方式编程: H:/04电本合班/图/Timer_Mode1.asm 中断方式编程: H:/04电本合班/图/Timerint_Mode1.asm 定时1S查询方式编程:(初值EC78H) H:/04电本合班/图/Timer1s_Mode1.asm 定时1S中断方式编程: H:/04电本合班/图/Timerint1s_Mode1.asm
工作原理:
1) 作定时用,对内部机器周期脉冲计数,来一个 脉冲即进行加一计数,直至计数器全为1时,再 来一脉冲,计数器回零且使TF0或TF1置1,表示 定时时间到,向CPU申请中断。
振荡器 ÷12 C/ T = 0 加1计数器 C/ T = 1 TX 端 控制信号 TFX 中断
TH0
X X X X X X X X
设计思想:初始化,将T1设为定时方式0,即使 GATE=0,C/T=0,M1M0=00;T0不用可为任 意,一般取0即可。故TMOD=00H。
启动T0工作,当查询到TF0=1时,1ms定时时间 到, 使TF0=0 ,将P1.0取反;再查询到 TF0=1时,再将P1.1取反,依次往复。
定时1ms时T1的初值计算:
三、 定时/计数器涉及到的有关寄存器
定时器共有2个控制寄存器TMOD和TCON,由软 件写入TMOD和TCON 两个8位寄存器,设置各 个定时器的操作模式和控制功能。 1、定时/计数器方式寄存器TMOD 功能: 定时、计数 由工作方式寄存器TMOD的设置决定
D7 GATE D6 C/T T1 D5 M1 D4 M0 D3 GATE D2 C/T T0 D1 M1 D0 M0
实验:根据实验板硬件电路设计
通过8051单片机硬件定时控制发光二极管以秒为 单位发光。 编程提示:1、由于定时器定时时间选定为方式1 时最大定时时间为65.536ms,其它工作方式定时 时间更短(参考实验原理)。所以一次定时不能 完成发光二极管以秒为单位发光。 2、可通过设定定时次数,即选秒的整数倍定时 如定时50 ms,20次后,再控制二极管发光。
T1
工 作
T0
工 作
0、1中断允许及
触发方式控制
软件控制定时器工作编写及定时器工作
“软件置位” SETB TR0 或 SETB TR1
T0 或T1(从某一值)开始加一计数,至T0或T1 寄存器满时(T0=0FFH或T1=0FFH) 硬件“自动置位” TF0=1或TF1=1
“CPU检测”或“软件查询”到TF0或TF1为 高时 作出相应处理。JB TF0,转移
2、 定时控制寄存器TCON
每一种工作方式的启动、计数、停止及溢出标 志由TCON控制。 定时器控制字TCON的格式如下: D7 D6 D5 D4 D3 D2 D1 D0 TF1
T1 定时 时间 到标 志
TR1 TF0 TR0 IE1 IT1
启 动 T0 定时 时间 到标 志 启 动
IE0
IT0
外部中断
3、定时初值计算,选用定时器0,方式1工作。 50 ms=(216-X)*机器周期(1us) X=65536-50000=15536D X=3CB0H 即为定时器初值
实验所涉及的硬件电路
编程分析:ULN2003A是内含7个达林顿管的驱 动芯片,输入电压与TTL电平兼容。每个上达林 顿管的集电极可吸收最大500mA的电流,耐压 30V,注意J2跳线器的跳线方式 。要控制二极管 发光只需在二极管阴极输入低电平。秒到时,再 将其电平取反即可。参考程序LEDTIME.ASM
当软件再设定工作方式寄存器TMOD中的 C/T=0时, 定时器/计数器按16位定时工作,控制脉冲来自 内部振荡器,每来一脉冲,即计数一次
定时时间=(216- 初值)*机器周期
( 2)、软件设定工作方式寄存器TMOD中的 M1M0: 01,方式0,16位定时/计数 (TL1低8位T,H1高8位,构成16位寄存器) 当软件设定工作方式寄存器TMOD中的 C/T=1 定时器/计数器按16位计数器工作,控制脉冲来 自外部,脉冲发生“1”到“0”的跳变时,即 计数一次 计数值=216- 初值
TH1
X X X X X X X X
TH0 1 TH1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2)作计数用时,脉冲由外部经T0、 或T1引脚引 入。 计数器全满 - 初值 = 计数值 定时时间=计数值*机器周期 计数值=2N-计数初值 (N=13、16、8由工作方式决定)
振荡器 ÷12 C/ T = 0 加1计数器 C/ T = 1 TX 端 控制信号 TFX 中断
寄存器TMOD有关位介绍
GATE:门控位。
GATE=1,定时器(T0或T1)工作受外部中断引脚
INT0(P3.2)或INT1(P3.3)控制.
INT0、 INT1 T0或T1工作
GATE=0,定时器仅受TR0、TR1控制
C/T:功能选择。
C/T=0定时, C/T=1计数
M1M0:定时器工作方式选择,四种工作方式 M1M0: 00,方式0,13位定时/计数 M1M0: 01,方式1,16位定时/计数 M1M0: 10,8位自动重装 M1M0: 11 T0:分成两个8位定时/计数 T1:停止计数
用方式1
设初值为X, 1 ×10-3 S =(216-X)×2×10-6 S
X=65036D 转化为二进制=1111111000001100=FE0CH 直接将低8位装入TL1=0CH, 高8位应装入TH1=FEH。
源程序如下:(用T1方式1编程) MOV TMOD,#10H ;T1方式1 MOV TL1, #0CH ;给TL1置初值 MOV TH1,#0FEH ;给TH1置初值 SETB TR1 ;启动T1 LP1: JBC TF1,LP2 AJMP LP1 LP2: MOV TL1, #0CH ;给TL1重置初值 MOV TH1,#0FEH ;给TH1重置初值 CPL P1.0 ;输出取反 AJMP LP1
四 、 定时/计数器的工作方式介绍
1、 方式0:当M1M0两位为00时,定时/计数器被选 为工作方式0,其逻辑结构如图 5-3 所示。
振荡器 ÷12 C/ T = 0 TL0 TH0 (5位) (8位) C/ T = 1 控制 T0 端 TR0 GATE INT0 端 TF0 中断
图 5-3 T0(或T1)方式0结构
振荡器 ÷12 1/12 fo sc
1/12 fo sc C/ T = 0 TL0 (8位) C/ T = 1 T0 端 TR0 GA TE IN T0 端 1/12 fo sc TR1 控制 TF0 中断
+
TH0 (8位) TF1 中断
图 5-7 T0方式3下和T1结构
门控位的应用
例6-5 利用T0门控位测试INT0引脚上出现的 正脉冲的宽度,并以机器周期数的形式显示在显 示器上。 根据要求可这样设计程序: 将T0设定为方式1,GATE设为1,置TR0为1。 一旦INT0(P3.2)引脚上出现高电平即开始计 数,直至出现低电平,停止计数,然后读取T0的 计数值并显示。
) 方式1 结构
功能: 定时、计数 软件设定工作方式寄存器TMOD中的 M1M0: 10,方式2,8位定时/计数 TL0(TL1)低8位工作, TH0(TH1)高8位寄存器用来重装
当软件设定工作方式寄存器TMOD中的 C/T=0 ( C/T=1)时,定时器/计数器按8位定时(计数) 工作,控制脉冲来自内部振荡器(外部引脚),每 来一脉冲,即计数一次 定时时间=(28- 初值)*机器周期 定时时间计数值=(28- 初值)