51单片机定时器计数初值的计算公式
单片机定时器初值计算公式(51单片机和AVR单片机的初值计算三种方法)

单片机定时器初值计算公式(51单片机和A VR单片机的初值计算三种方法)单片机定时器初值计算公式
一、51单片机定时器初值计算1、方法一
void main(void)
{
s1=1;
TMOD=0x01; //使用定时器T0的模式1
TH0=(65536-46083)/256; //定时器T0的高8位设置初值
TL0=(65536-46083)%256; //定时器T0的低8位设置初值
函数功能:定时器T0的中断服务函数
********************************************************/
void TIme0(void )interrupt 1 using 0 //定时器T0的中断编号为1,使用第1组工作寄存器
{
count++; //每产生1次中断,中断累计次数加1
if(count==20)//如果中断次数计满20次
count=0; //中断累计次数清0
s++; //秒加1
网络上阅读一段程序,定时器初值46083 是怎么计算出来的?一般我们如用AT892051的话定时50MS 就是TH0=(65536-50000)/256;
猜想应该是使用的12M晶体,20次为1S.
2、方法二
10MS定时器初值的计算:
1)晶振12M
12MHz除12为1MHz,也就是说一秒=1000000次机器周期。
10ms=10000次机器周期。
65536-10000=55536(d8f0)。
第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单片机的定时器计数器

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的定时器/计数器共有四种工作方式。工作在方式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的计数器)。
关于51单片机定时-计数器初值的计算

关于51单片机定时/计数器初值的计算
计数初值的计算定时或计数方式下计数初值如何确定,定时器选择不
同的工作方式,不同的操作模式其计数值均不相同。
若设最大计数值为M ,各操作模式下的M 值为:
模式0 :M=2 13 =8192
模式1 :M=2 16 =65536
模式2 :M=2 8 =256
模式 3 :M=256 ,定时器T0 分成 2 个独立的8 位计数器,所以TH0 、TL0 的M 均为256 。
因为MCS-51 的两个定时器均为加 1 计数器,当初到最大值(00H 或0000H )时产生溢出,将TF 位置 1 ,可发出溢出中断,因此计数器初值X 的计算式为:X=M- 计数值式中的M 由操作模式确定,不同的操作模式计数器的长不相同,故M 值也不相同。
而式中的计数值与定时器的工作方式有关。
1 、计数工作方式时
计数工作方式时,计数脉冲由外部引入,是对外部冲进行计数,因此计
数值根据要求确定。
其计数初值:X=M- 计数值
例如:某工序要求对外部脉冲信号计100 次,X=M-100
2 、定时工作方式时。
单片机原理及应用教程(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单片机计数器定时器详解【1】80C51单片机内部设有两个16位的可编程定时器/计数器。
可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。
在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。
:从上面定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。
其访问地址依次为8AH-8DH。
每个寄存器均可单独访问。
这些寄存器是用于存放定时或计数初值的。
此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。
这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。
TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。
当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。
定时计数器的原理:16位的定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。
当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。
显然,定时器的定时时间与系统的振荡频率有关。
因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。
如果晶振为12MHz,则计数周期为:T=1/(12×106)Hz×1/12=1μs这是最短的定时周期。
若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。
当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。
计数器在每个机器周期的S5P2期间采样引脚输入电平。
若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。
MCS-51的定时计数器

第六章MCS-51的定时/计数器1.如果采用晶振的频率为3MHz,定时器/计数器工作方式0、1、2下,其最大的定时时间为多少?解答:因为机器周期,所以定时器/计数器工作方式0下,其最大定时时间为;同样可以求得方式1下的最大定时时间为262.144ms;方式2下的最大定时时间为1024ms。
2.定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。
定时时间与时钟频率和定时初值有关。
3.定时/计数器用作定时器时,对外界计数频率有何限制?答:由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
4.采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。
定时1ms后,又转为计数方式,如此循环不止。
假定MCS-51单片机的晶体振荡器的频率为6MHz,请使用方式1实现,要求编写出程序。
解答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。
除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式。
编写程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: MOV TMOD,#06H ;定时器/计数器T0为计数方式2MOV TL0,#156 ;计数100个脉冲的初值赋值MOV TH0,#156SETB GATE ;打开计数门SETB TR0 ;启动T0,开始计数SETB ET0 ;允许T0中断SETB EA ;CPU开中断CLR F0 ;设置下一轮为定时方式的标志位WAIT: AJMP WAITIT0P: CLR EA ;关中断JB F0,COUNT ;F0=1,转计数方式设置MOV TMOD,#00H ;定时器/计数器T0为定时方式0MOV TH0,#0FEH ;定时1ms初值赋值MOV TL0,#0CHSETB EARETICOUNT: MOV TMOD,#06HMOV TL0,#156SETB EARETI5. 定时器/计数器的工作方式2有什么特点?适用于哪些应用场合?答:定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,比如波特率的产生。
51单片机定时器计数初值的计算公式

51单片机定时器计数初值的计算公式
在51单片机中,定时器的计数初值可以通过以下公式计算得出:
定时器计数初值=(计数器溢出值-所需延时)/(晶振频率/分频系数)举例来说,假设我们希望定时器延时1毫秒,CPU使用的晶振频率为11.0592MHz,分频系数为12、根据上述公式进行计算:
需要注意的是,在定时器工作过程中,当计数器达到计数初值时,定
时器将自动触发中断,并重新从计数初值开始计数,直到计数器溢出。
通
过中断服务程序,可以在定时器溢出时执行特定的任务。
定时计数初值的设定

4.启动定时器T0
用C语言启动定时器T0语句: TR0=1; 定时器T0启动后,每个机器周期器寄存器TH0和 TL0中的计数值就会自动加1,经过46083个周 期后,计数值会增加到溢出值65536,从而产 生溢出。
例2 若单片机时钟频率为12MHz,请计算2ms 的定时器初值
定时/计数器中定时/计数初值的设 定
知识回顾
设单片机时钟电路的振荡频率fosc为11.0592MHz,则 经12分频后得到的机器周期T0为:
T0=
12 fosc
=
12 11.0592
=1.085us
单片机 要进行计数,不能直接将要计数的 值作为初值放在寄存器中(因为MCS-51 单片机的定时/计数器T0和T1都是增量计 数器),而是将计数的最大值减去实际要 计数的值,将差值存入寄存器中。
思考:
设定时器T0工作在模式0时,时钟振荡频率为
6 MHz,要求定时时间为1 ms。
单机发音频率的控制
1.原理 用单片机驱动蜂鸣器,只要让单片机送给蜂鸣器的电 平信号每隔音频的半周期取反一次,即可使蜂鸣器发 出相应音频的方法。 2.方法 驱动蜂鸣器发音时,电平信号的取反时间要由定时 器来控制。例如1KHz音频发音为例,其音频的半周 期为0.5ms,即500us。则要计数的脉冲为 500/1.085=460次,可用定时器的方式0来定时,使用 定时器T1,则需以下步骤:
#include<reg51.h> sbit sound=P3^7; void main(void) { TMOD=0x00; TH1=(8192-460)/32; TL1=(8192-460)%32; TR1=1; while(1) { while(TF1==0) ; TF1=0; sound=~sound; TH1=(8192-460)/32; TL1=(8192-460)%32; } }
定时器和计数器

定时/计数器的工作方式
2、方式1 方式1的计数位数是16位,由TL0作为低8位,TH0
作为高8位,组成了16位加1计数器 。
计数个数与计数初值的关系为:X=216-N
定时/计数器的工作方式
3、方式2 方式2为自动重装初值的8位计数方式。
计数个数与计数初值的关系为:X=28-N 工作方式2特别适合于用作较精确的脉冲信号发生器。
定时/计数器的控制
51单片机定时/计数器的工作由两个特殊功能寄存 器控制。TMOD用于设置其工作方式;TCON用于控 制其启动和中断申请。
1、工作方式寄存器TMOD
工作方式寄存器TMOD用于设置定时/计数器的工 作方式,低四位用于T0,高四位用于T1。其格式如下 :
GATE是门控位, GATE=0时,用于控制定时器的启动是否受 外部中断源信号的影响。只要用软件使TCON中的TR0或TR1 为1,就可以启动定时/计数器工作;GATA=1时,要用软件 使TR0或TR1为1,同时外部中断引脚INT0/1也为高电平时, 才能启动定时/计数器工作。即此时定时器的启动条件,加上 了INT0/1引脚为高电平这一条件。
门控位GATE具有特殊的作用。当GATE=0时,经反相 后使或门输出为1,此时仅由TR0控制与门的开启,与门输出 1时,控制开关接通,计数开始;当GATE=1时,由外中断引 脚信号控制或门的输出,此时控制与门的开启由外中断引脚 信号和TR0共同控制。当TR0=1时,外中断引脚信号引脚的 高电平启动计数,外中断引脚信号引脚的低电平停止计数。 这种方式常用来测量外中断引脚上正脉冲的宽度。
可见,由溢出时计数器的值减去计数初值才是加 1计数器的计数值。
51单片机定时器结构
定时/计数器的实质是加1计数器(16位),由高8位和低8 位两个寄存器THx和TLx组成。TMOD是定时/计数器的工作方 式寄存器,确定工作方式和功能;TCON是控制寄存器,控制
AT89S51单片机的定时器和计数器

各位的功能说明: TF1(TCON.7, 8FH位)----T1溢出标志位。 TF0(TCON.5, 8DH位)----T0溢出标志位。 TR1(TCON.6, 8EH位)----T1运行控制位。 0:关闭T1;1:启动T1运行。 TR0(TCON.4, 8CH位)----T0运行控制位。 0:关闭T0;1:启动T0运行。
4、方式3(M1M0=11):
• • • • T0分成2个8位定时器:TL0定时/计数器和TH0定时器; TL0占用T0控制位:C/T,TR0,GATE; TH0占用T1控制位:TR1、TF1; T1不能使用方式3工作,常作串口的波特率发生器使用。
振荡器 fosc
T0处于方式3时, T1可定为方式0、方式1和方式2,用来作 为串行口的波特率发生器,或不需要中断的场合。
二、 定时器工作方式:
由方式选择位M1、M0设定。
1、方式0(M1M0=00):
13位定时/计数器。THx8位和TLx低5位组成加1计数器。 计数外部脉冲个数:1~8192(213) 定时时间(若T=1s):1s~8.19ms
fosc
T=12/fosc
2、方式1(M1M0=01):
16位定时/计数器。 THx8位和TLx8位组成16位加1计数器。
T=12/fosc 计数外部脉冲个数:1~65536(216) 定时时间(若T=1s):1s~(65536×T=65.54ms)
振荡器
fosc ÷12
(定时) C/T=0 C/T=1 (记数)启 控 动 制
Tx引脚 TRx GATE INTx 1 ≥1
D15 D8D7 D0 加1 THx TLx (8位) 溢出 脉冲 (8位)
;开Tx中断
;启动Tx定时器
第5章 MCS-51单片单片机内部 定时器计数器

LOOP:
例:由P1.0输出方波信号,周 期为2ms,设fosc=12MHz。 (中断方式)
2ms
解:每隔1ms改变一次P1.0的输出状态,即形成方波, 用T0非门控方式1定时。 计算时间常数:X = 216 - t/T = 216 –(1/1000)/10-6 = 65536-1000 = 64536 = FC18H
3 工作模式2 • 模式2把TL0(或TL1)设置成一个可以自动重 装载的8位定时器/计数器 。 用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(晶振12MHz时 T=1s): 256s 自动恢复初值8位定时/计数器。TLx为8位加1计 数器,THx为8位初值暂存器。
复位时,TMOD所有位均置0。 确定定时器工作方式指令: MOV TMOD,#方式字 例:设T0用方式2非门控定时,T1用方式1门控计数。 MOV TMOD,#0D2H ; 1101 0010 B
定时器控制寄存器TCON除可字节寻址外,各 位还可以位寻址。
位地址 位符号 8FH TF1 8EH 8DH 8CH TR1 TF0 TR0 8BH IE1 8AH 89H 88H IT1 IE0 IT0
解得:T0初值=7096=11011101 11000B,其中将高8位 11011101 B=DDH 赋给 TH0 ,低 5 位 11000B=18H 赋 给 TL0。
方法一:
采用查询工作方式,编程如下:
ORG AJMP 0000H MAIN
LOOP:JNB TF0,$;$为当前指令指 针地址 CLR SETB CLR MOV MOV TF0 P1.0 P1.0 TH0 , #0DDH ;重装载 ;产生2µ s正脉冲
ORG AJMP ORG AJMP ORG MAIN:MOV MOV MOV SETB SETB SETB HERE:SJMP PT0INT:MOV MOV CPL RETI
用KeilC51开发定时器计数器

用KeilC51开发定时器计数器用Keil C51开发定时器/计数器原文:基本的51单片机内部有两个16位可编程的定时器/计数器T0和T1。
它们各自具有4种工作状态,其控制字和状态均在相应的特殊功能寄存器中,可以通过软件对控制寄存器编程设置,使其工作在不同的定时状态或计数状态。
现在,许多厂家生产的8051兼容单片机上,还加入了定时器/计数器2,使单片机的应用更为灵活,适应性更强。
很多8051单片机的书籍都对定时器/计数器有详细的介绍,我们在此不再详细地讨论。
但因为编写或或阅读程序时经常要查阅定时器/计数器的设置情况,因此我们仅对一些编程时经常要用到的较重要的寄存器和设置方式进行简要简介。
1 定时器/计数器简介8051单片机的定时器/计数器基本结构如图1-1所示,定时器T0由两个8位计数器TH0和TL0构成,定时器T1也由两个8位计数器TH1和TL1构成,TMOD寄存器控制定时器的工作方式,TCON寄存器控制定时器的启动和停止以及定时器的状态。
图1-1 定时器/计数器结构在作定时器使用时,输入的时钟脉冲是由晶体振荡器的输出经12分频后得到的。
实际上,定时器就是单片机机器周期的计数器。
因为每个机器周期包含晶体振荡器的12个振荡周期,而每一个机器周期定时器加1,故其频率为晶振频率的1/12。
如果晶振频率为12MHz,则定时器每接收一个输入脉冲的时间为1?s。
选择计数器工作方式时,计数脉冲来自相应的外部输入引脚T0(P3.4)或T1(P3.5)。
在这种情况下,当检测到输入引脚上的电平由高跳变到低时,计数器就加1。
2 控制和状态寄存器(1)定时器控制寄存器(TCON)TCON为定时器/计数器的控制寄存器,同时也锁存外部中断请求标志,各位定义如下。
TF1:定时器/计数器1中断请求标志位。
当定时器计数满溢出回零时,由硬件置位,并可申请中断。
当CPU响应中断并进入中断服务程序后,TF1自动清零。
TR1:定时器/计数器1运行控制位,靠软件置位或清除。
MCS-51单片机的定时器计数器

TL; 如:任务中的MOV TH0,#00H 两条指令,设定计数初
值。 MOV TL0,#00H
Copyright 2006
(3)根据需要开放定时器/计数器的中断——对IE位赋值; (4)启动定时器/计数器; 如:任务中的SETB TR0 指令 初值的计算方法 X=M-计数值 M是定时器的最大计数值。视工作方式不同而不同。
判断中 断的次 数
程
CPL P1.0
;定时到,输出取反
序
NO:RETI
;中断返回
END
注意:此程序的#20和#60这两个立即数后面没 有加H表示是十进制数。
思考:能否利用定时器来实现一个电子钟?
Copyright 2006
测量每1秒钟之内的按键按下次数
工作方式0: 13位定时/计数方式,因此,最多可以计到2的13 次方,也就是8192次。
工作方式1: 16位定时/计数方式,因此,最多可以计到2的16 次方,也就是65536次。
工作方式2和工作方式3:都是8位的定时/计数方式,因此, 最多可以计到2的8次方,也说是256次。
Copyright 2006
;开中断 ;开T0中断 ;运行T0 ;等待中断 ;定时到,输出取反 ;重新加载初战值
;中断返回
中断程序的主 程序和中断服 务程序的布局
定时器初始化
开定时器中断
Copyright 2006
实例二:利用方式1定时
题目:用定时器T1,使用工作方式1,在单片机的P1.0输出一个周期为2分钟、占 空比为1:1的方波信号。
Copyright 2006
MCS-51单片机的定时器/计数器(二)
C51单片机的定时计数器(陆周整理)

捕捉或常数重装 入方式选择位
1
0
T2 工 作 于
捕捉方式。
即
当
EXEN2=1
时,T2EX 端
(P1.1)的
负跳变引发
捕捉动作。
T2 工 作 于
常数自动重
装入方式。
即
当
EXEN2=1
时,T2EX 端
(P1.1)的
负跳变引发
常数重装入
动作。
当 TCLK=1 或 RCLK=1 时, 此位无效,T2 被强制工作 于自动重装入方式,定时 器溢出时引发常数自动重 装。
M=28 = 256 M=28 = 256
初值计算方法
初值 = 最大计数值 – 计数值 即: X = M - N
举例说明
若 80C51 时钟频率为 12MHz,要求产生 1ms 的定时,初值计算过程如下:时钟频率为 12MHz 时,计数器每次加 1 所需时间为 1μs,如果要产生 1ms 的定时时间,则需要“加 1”1000 次,1000 即为计数初值,如果在工作方式 1 下,则初值 X=M-N=65536-1000=64536=FC18H。
T0 功能选 择
10
T0 T0 为为 计定 数时 器器 方方 式式
T0 工作方式选择
M1 M0
00
01
10
11
方式 0 方式 1 方式 2 方式 3
13 位 计数 器
16 位 计数 器
溢出后 自动重 装入初 值的 8 位 计数器
定时器 T0 分成 2 个 8 位计 数器
1、TMOD 定时器不能进行位寻址,只能用字节传送指令设置定时器工作方式。 2、复位时 TMOD 定时器所有位均为 0,定时器处于停止工作状态。
单片机原理及智能仪表技术第7章

计数状态:X=M-N
定时状态:X=M-定时时间/T,T为机器周期
2、TMOD定时器方式设置寄存器(89H):
TMOD主要用于 选择定时器的工作 模式(C/T)、启动方 式(GATE)和工作方 式等。该寄存器的 格式如图所示。
2、TMOD定时器方式设置寄存器(89H):
TMOD,#方式字 THx,#XH TLx,#XL EA ETx TRx
;选择方式 ;装入Tx时间常数 ;开Tx中断
;启动Tx定时器
需考虑:1. 按实际需要选择定时/计数功能; 2. 按时间或计数长度选择工作方式; 3. 计算时间常数:
二、定时/计数器初值的计算
(1)定时器初值的计算
在定时器模式下,计数器由单片机主脉冲经 12 分频后 计数。因此,定时器定时时间T的公式:T=(M-TC)×T计数, 上式也可写成:TC=M-T/T计数 式中,M为模值,和定时器的工作方式有关,在方式0时 M为213,在方式1时M为216,在方式2和方式3时M为28;T计数是 单片机振荡周期TCLK的12倍;TC为定时器的定时初值。 例:单片机时钟频率12MHz,定时器工作在方式1下,定 时100us,初值为多少? 解:时钟频率Ф CLK=12MHz,所以振荡周期TCLK=1/12us T计数=12×TCLK=1us,M=216=65536,T=100us 所以,TC=65536-100/1=65436,0xFF9C
定时器工作方式:当选择定时器方式时(C/T=0),TR1=1,定时器对系统的机器周 期计数,每过一个机器周期,计数器TH1,TH0加1,直至计满规定个数回零,置 位定时器中断标志(TF1)产生溢出中断。根据机器周期和设定的计数初值,可以定 时产生各种精确的时间。 计数器工作方式:当选择计数器方式时(C/T=1),外部脉冲通过引脚T1(P3.5)引入, 计数器对此外部脉冲的下降沿进行加1计数,直至计满规定值回零,置位定时器中 断标志(TF1)产生溢出中断。根据规定的时间内的计数个数,可以得到信号的频率。 计数最高频率不得超过振荡频率的1/24。
单片机定时器的计数初值的计算公式

单片机定时器的计数初值的计算公式1. 前言单片机定时器在嵌入式系统中具有非常重要的作用,它可以用来实现定时、延时、脉冲计数等功能。
而在使用定时器时,计数初值的计算是至关重要的,它直接影响到定时器工作的准确性和稳定性。
本文将深入探讨单片机定时器的计数初值的计算公式,帮助你更好地理解和应用这一关键知识。
2. 单片机定时器的工作原理单片机定时器是通过内部的计数器来实现计时的功能。
当计数器的值达到设定的初值时,定时器会产生相应的中断或触发标志,从而实现定时功能。
在典型的定时器工作模式下,定时器的计数初值可以通过以下公式来计算:初值 = 65535 - (预置值× 系数)其中预置值是我们需要设定的定时时间,系数是定时器的时钟周期。
对于常用的定时器工作模式,时钟周期通常为机器周期的倍数。
3. 如何选择预置值和系数在使用单片机定时器时,我们首先需要确定所需的定时时间,然后根据系统时钟频率和定时器的分频比来选择合适的系数。
一般来说,较小的系数可以获得更精确的定时时间,但也会消耗更多的系统资源。
在选择系数时需要权衡精度和资源的利用。
4. 实际应用中的计数初值计算在实际应用中,我们通常会遇到需要实现较为精确的定时功能。
这时,我们可以通过以下步骤来计算计数初值:a. 确定所需的定时时间,假设为T。
b. 根据系统时钟频率和定时器的分频比,确定合适的系数。
c. 根据公式初值 = 65535 - (T × 系数)来计算计数初值。
5. 个人观点和理解单片机定时器的计数初值计算是一个非常基础但又十分重要的知识点。
它直接关系到定时功能的准确性,因此在实际应用中需要我们充分理解和掌握。
在选择预置值和系数时,需要根据具体的应用场景进行合理的取舍,以达到最佳的定时效果。
总结单片机定时器的计数初值的计算公式可以通过初值 = 65535 - (预置值× 系数)来确定,而在实际应用中,我们需要根据具体的定时需求和系统资源来选择合适的预置值和系数。
单片机时钟周期的计算

单片机的定时器的周期怎么算?就是比如定时器TF0置1的时间,我的晶振是11。
0592MHz的怎么算还有就是时钟周期,状态周期,机器周期的概念和联系及换算?你的不明白其实就是对于定时器的初值问题,是始终的晶振,时钟周期就是1/ 而定时器的周期就是12/ 因为51单片机是12分频的。
还有很多......如果你写的是C的话建议这样写TMOD=0X01.TL=(65536-50000)%256;EA=1;ET0=1;TR0=1;主要的计算就是其中的50000 中断一次所需要的时间就是50000乘以刚才所算的定时器的周期(这个是50MS)也就是你说的:就是比如定时器TF0置1的时间中断的时候TF0 要求CPU 中断而引起中断好了12倍的时间周期就是机械周期,(刚才说过是12分频的)时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。
由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。
显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。
8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
8051系列单片机的一个机器周期同6个S周期(状态周期)组成。