单片机定时器 计数器

合集下载

单片机 第五章2 单片机的定时器计数器

单片机 第五章2 单片机的定时器计数器

若晶振频率为6MHz,1个机器周期为1/6 x 10-6 x12=2μs 则最小定时时间为:[213 –(213 -1)]x2μs=2μs 最大定时时间为:[213 –0] x2μs=16384μs =16.384ms
2、 方式1 (T1,T0) 当M1M0两位为 01时,定时 /计数器被选为工作方式 1,16位计数器,其逻辑结构 如图 所示。
8FH TCON TF1 8EH TR1 8DH TF0 8CH TR0 8BH IE1 8AH IT1 89H IE0 88H IT0
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运行。只由软件置位或清零。
1、 方式0 (T1,T0)
当 M1M0两位为 00时,定时 /计数器被选为工作方式 0, 13位计数器,其逻辑结 构如图所示。
振荡器 ÷12 C/ T = 0 TL0 低5位 C/ T = 1 控制 T0 端 TR0 GATE INT0 端 TH0 高8 位 TF0 中断
+
在方式0下,计数工作方式时,计数值的范围是: 1~8192(213 ) 定时工作方式时,定时时间的计算公式为: (213一计数初值)×晶振周期×12 或(213一计数初值)×机器周期
例4:用定时器l 以工作方式2计数,每计100次进行累计器加1操作.
(1)计算计数初值. 28—100=156D=9CH TH1=9CH,TL1=9CH TMOD寄存器初始化:MlM0=10,C/T=1,GATE=0 因此 TMOD=60H (2)程序设计序设计

认识单片机的定时器计数器

认识单片机的定时器计数器

void main(void) { TMOD=0x01;
TH0=-25000/256; TL0=-25000%256; TR0=1; ET0=1; EA=1; while(1); } void timer0(void) interrupt 1 { TH0=-25000/256;
TL0=-25000%256; P10=~P10; }
根据定时时间T,及公式(1)、(2)分别可以求出初 值N为:
方式1: N=216-T×fosc/12
(3)
方式2、方式3 :N=28-T×fosc/12 (4)
如果fosc=12MHZ,以上公式可简化为
方式1: N=216-T
方式2、方式3 :N=28-T
例如:系统的时钟频率是12MHz,在方式1下,如果希望定时 器/计数器T0的定时时间T为10ms,则初值N =216-T=6553610000=55536
任务一、认识单片机的定时器/计数器
一、定时器/计数器及其应用 在单片机应用系统中,定时或计数是必不可少的。例如: 测量一个脉冲信号的频率、周期,或者统计一段时间里 电机转动了多少圈等。常用的定时方法有:
1、软件定时 软件定时是依靠执行一段程序来实现的,这段程序本身 没有具体的意义,通过选择恰当的指令及循环次数实现 所需的定时,由于执行每条指令都需一定的时间,执行 这段程序所需总的时间就是定时时间。 软件定时的特点是无需硬件电路,但定时期间CPU被占 用,增加了CPU的开销,因此定时时间不宜过长,而且 定时期间如果发生中断,定时时间就会出现误差。
led=_crol_(led,1); 满10次变量led左移1位送P0口
P0=led;
}
}
[案例3] 用定时器的计数方式实现外部中断。如图 所示,P0口控制8只发光管轮流点亮,发光管点 亮时间为500ms,单脉冲电路控制发光管的移动 方向,按下单脉冲按钮,发光管左移,再按下发 光管右移 。

80c51单片机定时器计数器工作原理

80c51单片机定时器计数器工作原理

80c51单片机定时器计数器工作原理80C51单片机是一种常用的微控制器,其定时器/计数器(Timer/Counter)是实现定时和计数功能的重要组件。

以下简要介绍80C51单片机定时器/计数器的工作原理:1. 结构:定时器/计数器由一个16位的加法器构成,可以自动加0xFFFF(即65535)。

定时器/计数器的输入时钟可以来自系统时钟或外部时钟源。

2. 工作模式:定时模式:当定时器/计数器的输入时钟源驱动加法器不断计数时,可以在达到一定时间后产生中断或产生其他操作。

计数模式:当外部事件(如电平变化)发生时,定时器/计数器的输入引脚可以接收信号,使加法器产生一个增量,从而计数外部事件发生的次数。

3. 定时常数:在定时模式下,定时常数(即定时时间)由预分频器和定时器/计数器的初值共同决定。

例如,如果预分频器设置为1,定时器/计数器的初值为X,那么实际的定时时间 = (65535 - X) 预分频系数输入时钟周期。

在计数模式下,定时常数由外部事件发生的时间间隔决定。

4. 溢出和中断:当加法器达到65535(即0xFFFF)时,会产生溢出,并触发中断或其他操作。

中断处理程序可以用于执行特定的任务或重置定时器/计数器的值。

5. 控制寄存器:定时器/计数器的操作可以通过设置相关的控制寄存器来控制,如启动/停止定时器、设置预分频系数等。

6. 应用:定时器/计数器在许多应用中都很有用,如时间延迟、频率测量、事件计数等。

为了充分利用80C51单片机的定时器/计数器功能,通常需要根据实际应用需求配置和控制相应的寄存器,并编写适当的软件来处理定时器和计数器的操作。

单片机定时器 计数器

单片机定时器 计数器

单片机定时器计数器单片机定时器/计数器在单片机的世界里,定时器/计数器就像是一个精准的小管家,默默地为系统的各种操作提供着精确的时间控制和计数服务。

无论是在简单的电子时钟、还是复杂的通信系统中,都能看到它们忙碌的身影。

那什么是单片机的定时器/计数器呢?简单来说,定时器就是能够按照设定的时间间隔产生中断或者触发事件的模块;而计数器则是用于对外部脉冲或者内部事件进行计数的功能单元。

我们先来看看定时器的工作原理。

想象一下,单片机内部有一个像小闹钟一样的东西,我们可以给它设定一个时间值,比如说 1 毫秒。

当单片机开始工作后,这个小闹钟就会以一个固定的频率开始倒计时,当倒计时结束,也就是 1 毫秒到了,它就会发出一个信号,告诉单片机“时间到啦”!这个信号可以用来触发各种操作,比如更新显示、读取传感器数据等等。

定时器的核心在于它的时钟源。

就好比小闹钟的动力来源,时钟源决定了定时器倒计时的速度。

常见的时钟源有单片机的内部时钟和外部时钟。

内部时钟一般比较稳定,但精度可能会受到一些限制;而外部时钟则可以提供更高的精度,但需要额外的电路支持。

再来说说计数器。

计数器就像是一个勤劳的小会计,不停地数着外面进来的“豆子”。

这些“豆子”可以是外部的脉冲信号,也可以是单片机内部产生的事件。

比如,我们可以用计数器来统计电机旋转的圈数,或者计算按键被按下的次数。

计数器的工作方式也有多种。

可以是向上计数,就是从 0 开始,不断增加,直到达到设定的最大值;也可以是向下计数,从设定的最大值开始,逐渐减少到 0。

还有一种更灵活的方式是双向计数,根据需要在向上和向下之间切换。

那么,定时器/计数器在实际应用中有哪些用处呢?比如说,在一个智能温度控制系统中,我们可以用定时器每隔一段时间读取一次温度传感器的数据,然后根据温度的变化来控制加热或者制冷设备的工作。

而计数器则可以用来统计设备运行的次数,以便进行维护和保养。

在电子时钟的设计中,定时器更是发挥了关键作用。

单片机定时器与计数器

单片机定时器与计数器

定时器计数器原理及应用一、知识点1、定时器/计数器的结构2、定时器和计数器两种工作模式3、工作方式控制寄存器TMOD4、定时器/计数器控制寄存器TCON5、定时器/计数器的4种工作方式方式0:13位计数器方式1:16位计数器方式2:8位可自动重装初值方式方式3只适用于T0,T1不能工作在方式36、定时器/计数器的初始化及编程实现(1)设置TMOD寄存器(2)计算定时器T0的计数初值X(3)设置IE寄存器(4)启动和停止定时器7、定时器的单次最大定时时间:2M*12/晶振频率9、定时器应用(方式1、2;编程:中断方式、查询方式)10、计数器应用(方式1、2;编程:中断方式、查询方式)二、复习题(一)判断题1、在MCS-51单片机内部结构中,TMOD为模式控制寄存器,主要用来控制定时器的启动与停止。

(F)2、在MCS-51单片机内部结构中,TCON为控制寄存器,主要用来控制定时器的启动与停止。

(T)3、MCS-51单片机的两个定时器的均有两种工作方式,即定时和计数工作方式。

(T)4、MCS-51单片机的TMOD模式控制寄存器不能进行位寻址,只能用字节传送指令设置定时器的工作方式及操作模式。

(T)5、定时器/计数器T1于定时模式,工作于方式2,则工作方式字为20H。

(T)6、定时器/计数器T1于计数模式,工作于方式1,则工作方式字为50H。

(T)7、单片机8051的定时/计数器是否工作可以,通过外部中断进行控制。

(T)8、定时/计数器工作于定时方式时,是通过8051片内振荡器输出经12分频后的脉冲进行计数,直至溢出为止。

(T)9、定时/计数器工作于计数方式时,是通过8051的P3.4和P3.5对外部脉冲进行计数,当遇到脉冲下降沿时计数一次。

(T)10、定时/计数器在工作时需要消耗CPU的时间。

(F)11、定时/计数器在使用前和溢出后,必须对其赋初值才能正常工作。

(F)12、特殊功能寄存器SCON,与定时器/计数器的控制无关。

MCS-51单片机内部定时器计数器

MCS-51单片机内部定时器计数器
•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单片机内部定时器计数器

单片机定时器计数器


定时器计数器的编程步骤
确定单片机型号和开发环境
根据项目需求选择合适的单片机型号和开发 环境。
编写程序代码
使用编程语言编写程序代码,实现定时器计 数器的功能。
配置定时器计数器
根据需要配置定时器计数器的模式、工作方 式、输入时钟源等参数。
编译和调试
将程序代码编译成可执行文件,并在单片机 上进行调试和测试。
率和周期。
02 单片机定时器计数器的原 理
定时器计数器的原理
定时器计数器是一种用于测量时间间隔的硬件设备,它通过 计数时钟脉冲来计算时间。在单片机中,定时器计数器通常 由一个加法器、一个预分频器、一个计数器和一个控制逻辑 组成。
当定时器计数器的输入时钟脉冲到来时,加法器将计数器的 当前值加1,并将结果存入计数器中。当计数器的值达到预设 的计数值时,定时器计数器就会产生一个中断信号或输出脉 冲信号。
05 单片机定时器计数器的优 化与改进
提高定时器计数器的精度
硬件设计优化
采用高精度的时钟源和计数器,减少计数误差。
软件算法改进
采用更精确的计时算法,如使用高精度计时库或 算法。
校准与补偿
定期对定时器计数器进行校准和补偿,以消除误 差。
优化定时器计数器的响应速度
01
02
03
减少中断延迟
优化中断处理程序,减少 中断响应时间。
1 2 3
自动化生产控制
单片机定时器计数器可以用于自动化生产线的控 制,实现精确的时间间隔控制和计数,提高生产 效率和产品质量。
电机控制
通过单片机定时器计数器,可以精确控制电机的 启动、停止和运行速度,实现电机的高效、稳定 运行。
工业传感器
单片机定时器计数器可以用于工业传感器的时间 基准和计数功能,提高传感器测量的准确性和可 靠性。

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可以在定时模式或计数模式下工作,通过设置计数值和时钟源频率,实现精确的定时功能或测量外部
事件的时间间隔或频率。

编程则是必不可少的,通过配置寄存器和编写中断服务程序来实现定时器的工作。

单片机的定时器模式

单片机的定时器模式
单片机的定时器模式有以下几种:
1. 定时/计数模式(T/C mode):定时器用作定时器或者计数器,在设定时间或者计数到设定值后触发中断或者输出信号。

2. 输入捕获模式(Input Capture mode):定时器用于测量输入信号的脉冲宽度或者周期,在每次捕获到输入信号时记录定时器的值。

3. 输出比较模式(Output Compare mode):定时器用于与某个参考值进行比较,当定时器的值与参考值相等时,可以触发中断或者产生输出信号。

4. 脉冲宽度调制模式(PWM mode):定时器通过改变输出信号的占空比来生成脉冲宽度可调的方波,用于控制电机速度、LED亮度等应用。

5. 脉冲计数模式(Pulse Count mode):定时器用于计数输入信号的脉冲个数,在达到设定的脉冲数后触发中断或者产生输出信号。

这些定时器模式可以根据单片机的型号和品牌的不同而略有差异,具体的定时器模式可以参考单片机的技术手册或者开发工具的相关文档。

单片机定时器与计数器的区别

单片机定时器与计数器的区别在51单片机的学习过程中,我们经常会发现中断、计数器/定时器、串口是学习单片机的难点,两者的区别是什么呢?下面就跟着店铺一起来看看吧。

单片机计数器与定时器的区别计数器和定时器的本质是相同的,他们都是对单片机中产生的脉冲进行计数,只不过计数器是单片机外部触发的脉冲,定时器是单片机内部在晶振的触发下产生的脉冲。

当他们的脉冲间隔相同的时候,计数器和定时器就是一个概念。

在定时器和计数器中都有一个溢出的概念,那什么是溢出了。

呵呵,我们可以从一个生活小常识得到答案,当一个碗放在水龙头下接水的时候,过了一会儿,碗的水满了,就发生溢出。

同样的道理,假设水龙头的水是一滴滴的往碗里滴,那么总有一滴水是导致碗中的水溢出的。

在碗中溢出的水就浪费了,但是在单片机的定时计数器中溢出将导致一次中断,至于什么是中断我们下次再讲,这里只是初步的提下概念,中断就是能够打断系统正常运行,而去运行中断服务程序的过程,当服务程序运行完以后又自动回到被打断的地方继续运行。

在定时器计数器中,我们有个概念叫容量,就是最大计数量。

方式0是2的13次方,方式1是2的13次方,方式2是2的8次方,方式3是2的8次方。

把水滴比喻成脉冲,那么导致碗中水溢出的最后一滴水的就是定时计数器的溢出的最后一个脉冲。

在各种单片机书本中,在介绍定时计数器时都讲到一个计数初值,那什么是计数初值呢?在这里我们还是假设水滴碗。

假设第一百滴水能够使碗中的水溢出,我们就知道这个碗的容量是100。

问题1,我如何才能使碗接到10滴水就溢出呢?呵呵,我可以想象,如果拿一个空碗去接水,那么还是得要100滴水才能溢出,但是如果我们拿一个已经装有水的碗拿去接,那就不用100滴了。

到此我们可以算出,要使10滴水让碗中的水溢出,那么碗中就先要装90滴水。

在定时计数器中,这90滴水就是我们所谓的初始值。

问题2,在一个车间我们如何利用单片机对100件产品进行计件,并进行自动包装呢?我们可以利用计数器计数100,在中断中执行一个自动包装的动作就可以了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
X=8192-N 例如定时/计数器T0的计数值为1000,则初值为7192,转换成二进 制数为1110000011000B,则TH0=11100000B,TL0=00011000B。
工作方式0为13位的计数器 ,C/T* 位决定工作模式:
0:开关打在上面,为定时器工作模式;
1:开关打在下面,为计数器工作模式,计数脉冲为P3.4 、P3.5引脚上的外部输入脉冲,当引脚上发生负跳变时, 计数器加1。
四、方式3
方式3只有定时/计数器T0才有,当M1M0两位为11时,定时/计数器 T0工作于方式3,定时/计数器T0被分为两个部分TL0和TH0,其中, TL0可作为定时/计数器使用,占用T0的全部控制位:GATE、C/T、 TR0和TF0;而TH0固定只能作定时器使用,对机器周期进行计数, 这时它占用定时/计数器T1的TR1位、TF1位和T1的中断资源。
89C51 单片机原理及应用
89C51单片机 定时器/计数器
单片机的定时/计数器
单片机应用系统中定时计数的需求: 如用单片机控制的打铃器、空调的定时开关、啤酒自动生产
线上对酒瓶的计数装置等。 89C51单片机片内的定时/计数器: 两个16位可编程的定时/计数器:T0和T1,都能定时和对
外部事件进行计数。 此外,T1还可以作为串行接口的波特率发生器。
(1)计算初值X 设初值为X,则有:
(216-X)×2×10-6=1×10-3 216-X=500 X=65036
X化为16进制,即X=FE0CH=1111111000001100B。 所以,T0的初值为: TH0=0FEH TL0=0CH
例2 假设系统时钟为6MHz,编写定时器T0产生1秒定时的程序。 (1)T0工作方式的确定
定时就是定时间,假设晶振频率为f,定时时间为T,对 应的计数值为X,此时计数器是将系统时钟12分频后作为 计数脉冲,则以下等式成立。
要装入的计数器初值 CI= 2n -T·fosc/12。 例如:已知晶振的频率为 6 MHz,要求定时为2 ms,则 当为方式0时,应装入的计数初值为; 8192-2×3 10 ×6×6 10 /12 = 8192-1000 = 7192
(2)定时 单片机内部的计数器用作定时器时,是对标准的 时钟进行了计数,每来一个时钟脉冲,计数器加1, 只要保证计数脉计冲数的器如间何隔能作相为等定,时 则计数值就代表了 时间的流逝。 器使用呢?
单片机中的定时器和计数器其实是一个器件: 计数器:是对外部发生的事件进行计数, 定时器:是对单片机内部的标准时钟脉冲进行 计数。
如图所示,图中Tcy为机器周期。
定时器/计数器的初始化
定时/计数器的方式寄存器TMOD
其中: M1、M0为工作方式选择位 ,用于对T0的四种工作方式,T1的三 种工作方式进行选择,选择情况如下
C/T:定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0 时工作于定时方式。 GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号 的影响。
定时/计数器的控制寄存器TCON
其中: TF1:定时/计数器T1的溢出标志位,当定时/计数器T1计满时,由 硬件使它置位,如中断允许则触发T1中断。进入中断处理后由内部硬 件电路自动清除。 TR1:定时/计数器T1的启动位,可由软件置位或清零,当TR1=1时 启动;TR1=0时停止。
定时/计数值的设置
定时/计数器的结构
1.定时和计数的原理
(1)计数
单片机是对脉冲个数计数,计数器
定时/计数器的实质是在处置每基接收础到上一个的脉加冲,1计数计值数加1,
器(16位),
当接收满65535个脉冲后,再 来一个脉冲,计数值清0表明 这一轮计数结束,同时将标
志位TF0或TF1置1。
16位定时/计数器的计数容量是65536
定时时间较长,采用哪一种工作方式? 由各种工作方式的特性,可计算出:
方式0最长可定时16.384ms; 方式1最长可定时131.072ms;
方式2最长可定时512s。
T数F。X的同时,还自动的将THX中的初值送至TLX特,别使适TL合X从于初产值开生始比重较新计精 确的连续脉冲信号。
由于是8位的定时/计数方式,因而最大计数值为 2的8次幂,等于 256。如计数值为N,则置入的初值X为:
X=256-N 如定时/计数器T0的计数值为100,则初值为256-100=156,转换成 二进制数为10011100B,则TH0= TL0=10011100B。 注意: 由于方式2计满后,溢出信号会触发三态门自动地把TH0(或TH1) 的值装入TL0(或TL1)中,因而如果要重新实现N个单位的计数,不用 重新置入初值。
T0、T1的状态。
单片机复位时,两个寄存器的所有位都被清0。
定时器/计数器控制寄存器TCON
低4位与外部中断有关,已介绍。高4位的功能如下: (1) TF1、TF0——计数溢出标志位 (2) TR1、TR0——计数运行控制位 1:启动定时器/计数器工作 0:停止定时器/计数器工作
工作方式控制寄存器TMOD
(1)计数初值计算 假设要计数的值为X,由于计数器是加工计数器,所以
定时器/计数器的初值为 2n -X: 其中n的值依赖于工作方式,
对于方式 0,n= 13;即初值=8192-X 对于方式 1,n= 16;即初值=65536-X 对于方式 2和方式 3,n=8;即初值= 256-X
2)定时初值计算
工作方式3相当于增加一个附加的8位定时器/计数器,从 而具有3个定时器/计数器。
只适用于定时器/计数器T0。T1不能工作在方式3,
T1方式3时相当于TR1=0,停止计数(此时T1可用来作串 行口波特率产生器)。
1.工作方式3下的T0
T0分为两个独立的8位计数器:TL0和TH0 。TL0使用T0的状态 控制位C/T*、GATE、TR0、,而TH0被固定为一个8位定时器 (不能作外部计数模式),并使用定时器T1的状态控制位 TR1和TF1,同时占用定时器T1的中断请求源TF1。
定时时间常数初值X:
方式0
X=8192-T(fosc/12)
方式1
X=65536-T(fosc/12)
方式2、方式3 X=256-T(fosc/12)
其中T是需要定时的时间,单位是微秒;fosc是晶振
计数时间常数X:
方式0
X=8192-S
方式1
X=65536-S
方式2、方式3 X=256-S
说明:式中S是需要计数的次数
8位分为两组,高4位控制T1,低4位控制T0。
(1)GATE——门控位
0:以TRX(X=0,1)来启动定时器/计数器运行。
1:用外中断引脚(INT0*或INT1*)上的高电平和TRX来启动 定时器/计数器运行。
(2)M1、M0——工作方式选择位
M1 M0
工作方式
0
0
方式0,13位定时器/计数器。
0பைடு நூலகம்
定时器初值的设置
在时钟频率为12MHz的情况下,每个时钟脉冲是1微 秒,则计满65536个脉冲需65.536毫秒,如要定时10毫秒 则存入初值55536,(10毫秒是10000微秒,需计数 10000个脉冲)。可见,
定时器的定时时间长短与系统时钟和定时器初值有关。
说明 1. 当定时/计数器用作计数器时,通过引脚P3.4、P3.5
1
方式1,16位定时器/计数器。
10
方式2,8位常数自动重新装载
1
1
方式3,仅适用于T0,T0分成
两个8 位计数器,T1停止计数。
(3) C/T*——计数器模式和定时器模式选择 位
0:定时器模式。 1:计数器模式。
定时/计数器的工作方式
一.方式0
方式0是13位的定时/计数方式,因而最大计数值为 2的13次幂,等 于8192。如计数值为N,则置入的初值X为:
定时器/计数器的编程和应用
4种工作方式中,方式0与方式1基本相同,由于方式0是为 兼容MCS-48而设,初值计算复杂,在实际应用中,一般不用 方式0,而采用方式1。
方式1应用
例1 假设系统时钟频率采用6MHz,要在P1.0上输出一个周 期为2ms的方波,如图所示。
方波的周期用T0来确定,让T0每隔1ms计数溢出1次(每 1ms产生一次中断),CPU响应中断后,在中断服务程序中对 P1.0取反。
对外部输入脉冲计数。 2 . 定时/计数器T0(T1)启动运行后,会按设定的工作方
式独立进行计数,不再占用CPU时间。当计数器T0(T1)计 满溢出时,TF0(TF1)置1,向CPU发出中断请求信号。
定时器/计数器初值计算
定时器/计数器用于定时或计数时,必须按照需要给计数 器设置初值。定时器/计数器在计数初值的基础上以加1 的方式进行计数,在计数器从全1变为全0时,将自动产生 溢出中断请求。
定财器/计数器初始化步骤
1)确定工作方式:把工作方式控制字写入到TMOD中; 2)设置定时或计数的初值:根据问题要求,求出定时或计 数的初值,写入到寄存器THO、TLO或THI、TLI中。 3)如果需要中断,使定时器中断允许位ET0或ETI置位, 如果要求中断嵌套,还应设置相应的中断优先级,然后置 位EA,使CPU开放中断;如果不需要中断,仅以软件方式 对计数器溢出标志TFO或TFI进行查询,则可略去此步骤; 4)启动定时器/计数器:将 TRO或 TRI置 1即可启动定时 器/计数器。
GATE位:决定定时器/计数器的运行取决于TRx一个条件还是 TRx和INTx*引脚两个条件。
(1)0:A点是否计数,仅取决于TRx的状态。
(2)1:B点电位由INTX*的输入电平和TRX的状态这两个条件 来确定。是否计数是由TRx和INTx*二个条件来控制的。
二、方式1
方式1是16位的定时/计数方式,因而最大计数值为 2的16次幂, 等于65536。如计数值为N,则置入的初值X为:
相关文档
最新文档