大家好,今天小编来为大家解答更大定时时间怎么算这个问题,定时器的最长可定时时间很多人还不知道,现在让我们一起来看看吧!
本文目录
- 单片机初值大于计数器长度,定时时间怎么算
- 定时器T0的更大定时时间为( )。 A、32.767s B、327.6
- 单片机的定时时间是如何计算的
- 51单片机怎么计算定时时间
- 定时器的更大计时时间
- 51单片机更大硬件定时时间是多少
- 单片机定时器定时的时间怎么算
一、单片机初值大于计数器长度,定时时间怎么算
单片机初值大于计数器长度,那是因为定时的时间太长了,超过了定时更大的定时时间。
比如:晶振频率是12M,更大定时时间是65.536ms,如果你的定时时间超过个时间就不行了。
其实,这是定时器应用中的常见的情况,比如定时1秒,则设置定时的时间为50ms,则50ms就中断一次,在中断子程序中计数,计数20次就是1秒。
这是最基本的定时器的应该 *** 。
二、定时器T0的更大定时时间为( )。 A、32.767s B、327.6
51单片机,拥有两个定时器,用来中断计数,分别是T0和T1。而52单片机和51单片机的定时器是一样的,只是52比51多了一个定时器/计数器T2,它们的设置都大同小异,下面我来总结各个定时器的用法。
定时器T0与T1不同之处在于它们的工作方式3不同,方式0、1、2相同。
方式2,8位自动重装的8位定时器/计数器
方式3,仅适用于T0,分成两个8位计数器,
首先我们看要使用定时器T0应该设置的东西:
1、对中断寄存器和定时器进行初始化:

初始化函数里的内容也可以写在头文件里,但是为了美观和好查阅,就把它单独写出来,后面在头文件里直接调用就行。那么应该要进行初始化的设置:
单片机内,有其中一个特殊寄存器叫TMOD,这是用来设置定时器工作方式的寄存器,通过软件,将其寄存器内的D0~D7位置0或1,从而达成对定时器的 *** 作。
如表格,这是定时器的工作方式寄存器TMOD,要更改定时器的工作方式,我们只用到M1、M2所以其他位一般置0,又因为我们使用的是T0的定时器,所以就有:
控制M1、M0将它们置1或0,即可达成 *** 作控制方式的目的,然后转换成16进制即方便查阅。
同理,使用定时器1时也是这么设置。注意,有时候也有使用两个定时器T0、T1的时候,那么就是0001 0001两个都是工作方式1。
三、单片机的定时时间是如何计算的
单片机的定时时间的计算公式=计数值(定时值)*机器周期=计数值(定时值)* 12/晶振频率。
上面的两个等号是等价的,因为,单片机的机器周期=12秒/晶振频率,因此两个公式通用。
完成一个基本 *** 作所需要的时间称为机器周期。一般,一个机器周期由若干个S周期(状态周期)组成。80C51系列单片机一个机器周期由6个S周期组成。一个S周期(状态周期),由2个时钟周期组成。
若干个机器周期,组成了指令周期。根据指令不同,所需的机器周期数也不同。
1、单字节周期指令(比如 INC A)
2、双字节单周期指令(比如 ADD A,#data)
3、单字节双周期指令(比如 INC DPTR)
4、单字节双周期指令(比如MOVX A@DPTR)
参考资料来源:《单片机初级教程单片机基础》张迎新杜 *** 等编著北京航空航天大学出版社
第三章单片机的结构及原理 3.5 CPU时序及时钟电路
参考资料来源:百度百科--机器周期
四、51单片机怎么计算定时时间
1、首先,51单片机是加一计数,到65536溢出,所以定时时间(经过的脉冲个数,如果一个脉冲是1us,刚好延时50ms是50000个脉冲)是65536减初值
2、位,高8位的1 *** 256,因此高8位的数值所 *** 的数是256的整数倍,低位更大不超过255,所以一定是除以256之后的余数,用公式是这样:
3、初值=65536-定时脉冲个数=th0*256+tl0
五、定时器的更大计时时间
晶振频率为6MHz时,定时/计数器在工作方式0、方式1、方式2下,其更大的定时时间分别为:
16.384 mS;131.072 mS;0.512 mS;
根据计算公式,X=M-计数初值=M-(fosc*t)/12,其中X是计数初值,要得到更大定时时间X=0;M更大计数值,工作方式0时M=2^13=81 *** ,工作方式1时M=2^16=65535,工作方式2时M=2^8=256。fosc晶振频率。
所以更大定时时间为:M-(fosc*t)/12=0,即t=12*M/(6*10^3)=2*10^(-3)*M
工作方式0 t=2*10^(-3)*81 *** =16.384 mS;
工作方式1 t=2*10^(-3)*65536=131.072 mS;
工作方式2 t=2*10^(-3)*256=0.512 mS;
定时/计数器在使用之前均需要进行初始化,写入计数初值。
定时器工作的流程可以按照这个顺序(以51为例用定时器0方式一产生50毫秒的定时)
1、确定使用哪个定时器,使用哪种方式,这一步通过TMOD设置,TMOD的低四位是设置定时器0的,高四位是用来设置定时器1的,其中的M0,M1是用来设置定时器工作在哪种方式,GATE一般用不要设置,C/T是选择计数模式还是定时模式的,如:TMOD= 0X01,就说明定时器0工作在方式1。
2、接下来就要设置定时的时间,用定时器定时50毫秒,可以用这种方式TH0=(65535- 50000)/ 256,TL0=(65535- 50000)% 256;可以这样理解:因为这是定时器的初值,也就是说计数脉冲就是在这个数的基础上向上递增,到达65535后就溢出产生中断。
3、第三步打开中断,使用IE寄存器,首先打开总中断EA= 1,这一步是所有中断所必须的,然后打开定时器0中断,ET0=1。
4、这时准备工作结束,启动定时器,使用TCON寄存器,TR0= 1,实现了一个50毫秒的定时。
参考资料来源:《单片机原理及应用》曹巧媛编著电子工业出版社第四章单片机定时功能及应用
之一节定时计数器的结构与工作原理
参考资料来源:百度百科--定时器中断
六、51单片机更大硬件定时时间是多少
51单片机更大硬件定时时间,就是定时器能定时的时间,最长时间=65536*Tc
Tc=fosc/12,fosc是单片机的晶振频率。
更大定时时间=65536us=65.536ms。
其实,不用管更大定时时间是多少,要定时再长的时间也是可以的,采用中断的方式计数吗。
如:定时50ms,中断方式,中断一次,就是50ms,中断20次就是1秒。
有了1秒以后,什么分,小时,都可以计了。
七、单片机定时器定时的时间怎么算
单片机的定时时间的计算公式=计数值(定时值)*机器周期=计数值(定时值)* 12/晶振频率。
上面的两个等号是等价的,因为,单片机的机器周期=12秒/晶振频率,因此两个公式通用。
完成一个基本 *** 作所需要的时间称为机器周期。一般,一个机器周期由若干个S周期(状态周期)组成。80C51系列单片机一个机器周期由6个S周期组成。一个S周期(状态周期),由2个时钟周期组成。
若干个机器周期,组成了指令周期。根据指令不同,所需的机器周期数也不同。
1、单字节周期指令(比如 INC A)
2、双字节单周期指令(比如 ADD A,#data)
3、单字节双周期指令(比如 INC DPTR)
4、单字节双周期指令(比如MOVX A@DPTR)
参考资料来源:《单片机初级教程单片机基础》张迎新杜 *** 等编著北京航空航天大学出版社
第三章单片机的结构及原理 3.5 CPU时序及时钟电路
参考资料来源:百度百科--机器周期
关于本次更大定时时间怎么算和定时器的最长可定时时间的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。