返回首页

51单片机定时器0初始化(51单片机定时器初始化后无法计数)

来源:www.haichao.net  时间:2022-12-15 04:19   点击:106  编辑:admin   手机版

1. 51单片机定时器初始化后无法计数

TR0 是51单片机定时器T0的定时器启动位。

TR0=1 表示开启定时器(在EA打开的前提下)。

EA 是51单片机的总中断开关,

所有中断都必须先使EA=1。

51单片机中的定时器控制字中有两个控制位TR0、TR1,分别用于启动、停止定时器的计数,任何时刻,当TR0/TR1为1时,T0/T1定时器计数;当TR0/TR1为0时,T0/T1定时器停止计数,置TR0/TR1为1的指令一般应该在初始化程序或主程序或其他程序中。

扩展资料:

定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数,同时包含定时/计数器的状态。

TF1:定时器1溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除。或用软件清除。

TF0:定时器0溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除,或用软件清除。

2. 51单片机定时器/计数器如何进行设置的?

单片机定时器/计数器的工作方式0,才是13位计数方式,而方式1,是正常的16位方式。保留方式0的目的,是当初为了与早期的8035,四位单片机相兼容。在实际应用时不必用方式0,计算初始值有点麻烦,而且完全可以用方式1来实现。13位方式时,高3位是不用,并不是哪去了,还在那,只是不用罢了。

3. 51单片机复位后,定时计数器默认实现

如果你问的是51系列单片机的话,定时器/计数器工作于方式1时,其计数器为16位。

如果不是,那问的是什么呀?

4. 51单片机如何实现定时和计数

51单片机内部定时的工作原理:

定时器计数8051单片机片内振荡器输出经过12分频后的脉冲个数,即:每个机器周期使定时器T0/T1的寄存器值自动累加1,直到溢出,溢出后继续从0开始循环计数;所以,定时器的分辨率是时钟振荡频率的1/12;

定时器T0和T1均不占用CPU的时间,除非定时器T0和T1溢出,才可能引起CPU中断,转而去执行中断处理程序。所以说,定时器是单片机中效率高而工作灵活的部件。

5. 51单片机时钟初始化

Vcc、GND引脚。这类引脚属于电源引脚,不同型号单片机接入对应电压电源,常一般为5伏,低压为3.3伏,使用时要查看芯片所对应的文档,了解相关的有效信息。

XTAL1、XTAL2引脚。这类引脚属于外接时钟引脚。前者为片内震荡电路的输入,后者为片内震荡电路的输出。

RST引脚。这类引脚属于复位引脚,连续输入两个机器周期以上高电平就可以触发机制,完成单片机的复位初始化的工作,单片机就可以从头开始执行程序了。

PSEN引脚。这类引脚的全称是程序存储器允许输出控制端。可以实现外部程序存储器单元的读操作,这个在低电平的时候有效。

6. 51单片机定时器误差的原因

一是单片机的晶振频率的误差,二是定时器计时的误差,这是主要的。

因平时,用定时器计时,并没有计时太长的时间,而且也是实验性的写程序就完了。

如果真的就想用单片机计时,并长时间当时钟计时,必须对定时器的计时误差进行补偿。

产生误差的主要原因是:虽然按定时计算的时间常数,但是,在单片机响应中断时,是需要时间的,从响应中断,进入中断服务子程序,到重写时间常数,再次计时,需要十几个机器周期的。对于一次中断,这个时间可以忽略了,但长期计时,累加的误差就很大了。

补偿的 方法是,中断服务子程序的第一行就要重写时间常数,再写其它语句。在中断重写时间常数时,低8位的数按计算的值加上8~12,再经过一段时间的计时,对照标准时间比较一下误差大小,逐步调整。

7. 51单片机定时器初始化程序

根据定时时间选择定时模式,然后计算初值,在程序开始时要初始化定时器,如果定时器自己不能重装计数初值,那你在中断函数中需要手动赋初值

8. 51单片机定时器不够用怎么办

选52有3个定时器TIME0,1还有个多加的TIME2还一个方法就是TIME1不是占用了T1的一路了吗,但另外一路可以用于定时器方式2用于定时,而T0可以用于计数或是计数用外部中断计数

顶一下
(0)
0%
踩一下
(0)
0%