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可以用于计数或是计数用外部中断计数