51单片机定时器初值公式

来自:    更新日期:早些时候
51单片机定时器初值怎样计算~

首先要知道一个计时脉冲的周期,计时脉冲频率是晶振频率的1/12,晶振12M时,计时脉冲频率是1MHz,周期是1us,因此定时1mS就是1000个脉冲,由于51定时器是加法计数,计数到最大值65536溢出,定时结束,产生中断,因此初值应该写为65536-1000,计数器分高8位和低8位,高8位的1代表256,低8位是不足256的那一部分,因此高8位初值为TH=(65536-1000)/256,低8位TL=(65536-1000)%256。

对12MHz ,1个机器周期 1us ,12/fosc = 1us


方式0是13位定时器,最大时间间隔 = 2^13 = 8.192ms


方式1是16位定时器,最大时间间隔 = 2^16 = 65.536ms


方式2是8位定时器,最大时间间隔 = 2^8 = 0.256ms =256 us


方式3 仅适用于T0,此时T0分成两个8位计数器,T1停止计数


当选用定时器的方式1时,设机器周期为Tcy,定时器产生一次中断的时间为t,那么需要计数的个数N=t/Tcy,装入THX和TLX中的数分别为:

THX = (2^16 - N)/256 TLX = (2^16 -N )%256(此处的X为定时器0或定时器1)


公式为:(2^y - X)*Tcy = t


Tosc= 1/ fosc


一个机器周期 = 12个时钟周期 = 12/fosc

溢出速率 = 1 / 溢出时间
故:初值X = 2^y – t/Tcy


THX = 高八位
TLX = 低八位


注:

X:定时器初值

N:计数值

y:定时器工作方式

fosc:晶振频率

Tcy:机器周期,Tosc:时钟周期
Tcy = 1/Tosc

1.简单说起,256表示一个8位分界点,对它求模得高位字节存在TH0中,求余得低位字节放在TL0中,拿十进制打比:15/10得十位1,15%10得个位数5
2.12Mhz时,单周期指令时间为12/fsoc=1us
方式1为16位定时/计数器
故定时1ms为:TH0=(2^16-1000)/2^8,
TL0=(2^16-1000)%256
当为11.0592MHz时,单周期指令时间为12/fsoc=12/11.0592us
由于采用方式0,为13为定时器,TH0高8位和TL0的低5位
故定时1ms为:
TH0=(2^13-1000/(12/11.0592))/2^5,
TL0=(2^16-1000/(12/11.0592))%2^5
这么晚了 写写不容易,多给些分以此鼓励俺
O(∩_∩)O~

还是看下书,问下老师的好

方式0最好别去用了,很麻烦的


51单片机定时器初值公式视频

相关评论:
  • 1514021635451单片机定时初值是多少?
    宣爱绍2、定时1ms=1*1000=1000us;3、工作在方式0下:最大计数值是2^13=8192;4、定时初值=8192-(1*1000)=7192;5、换算成十六进制数为:定时初值=1C18H。定时器中断是由单片机中的定时器溢出而申请的中断。51单片机中有两个定时器T0和T1。定时\/计数器T0和T1分别是由两个8位的专用寄存器组成,即...

  • 15140216354关于单片机定时器的求算,怎么算出来的
    宣爱绍51单片机定时器是“溢出”计时的,所以计算方法是:(假设定时X毫秒(这里设定在溢出范围内),晶振频率是F兆赫兹),那么计算公式是:初值=65536-(X*1000)*(F\/12)

  • 1514021635451单片机的定时器怎样计算?
    宣爱绍初值=65536-定时脉冲个数=th0*256+tl0 反过来看你就很明白了

  • 1514021635451单片机串口通信定时器初值怎么计算?公式和计算原理是什么?
    宣爱绍T1,使用定时方式2,其初始值,和晶振频率、波特率、SMOD的关系式如下:T1初值 = 256 - fosc * (SMOD + 1) \/ (384 * 波特率)--我不明白波特率跟这个定时器的关系。麻烦你详细一点!这个关系,是由硬件决定的,只有搞微电子的,才能弄明白。软件人员,编程的时候,会用这个公式即可,也没有必...

  • 1514021635451定时器初值计算有什么简便算法吗?
    宣爱绍51单片机定时器初值计算: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...

  • 1514021635451单片机定时器初值公式
    宣爱绍TL0=(2^16-1000)%256 当为11.0592MHz时,单周期指令时间为12\/fsoc=12\/11.0592us 由于采用方式0,为13为定时器,TH0高8位和TL0的低5位 故定时1ms为:TH0=(2^13-1000\/(12\/11.0592))\/2^5,TL0=(2^16-1000\/(12\/11.0592))%2^5 这么晚了 写写不容易,多给些分以此鼓励俺 O(...

  • 15140216354怎么计算51单片机定时器TH0和TL0的初值,比如我要让定时器20ms溢出一次...
    宣爱绍最简单的计算方法就是 TH0=(65536-20000)\/256; TL0=(65536-20000)%256; 20000=20ms 如果1ms就是1000 想弄多少弄多少。。。

  • 1514021635451单片机定时器初值怎样计算
    宣爱绍周期是1us,因此定时1mS就是1000个脉冲,由于51定时器是加法计数,计数到最大值65536溢出,定时结束,产生中断,因此初值应该写为65536-1000,计数器分高8位和低8位,高8位的1代表256,低8位是不足256的那一部分,因此高8位初值为TH=(65536-1000)\/256,低8位TL=(65536-1000)%256。

  • 1514021635451单片机各种位数定时器初值计算方法?
    宣爱绍公式为:(2^y - X)*Tcy = t Tosc= 1\/ fosc 一个机器周期 = 12个时钟周期 = 12\/fosc 溢出速率 = 1 \/ 溢出时间 故:初值X = 2^y – t\/Tcy THX = 高八位 TLX = 低八位 注:X:定时器初值 N:计数值 y:定时器工作方式 fosc:晶振频率 Tcy:机器周期,Tosc:时钟周期 Tcy = 1...

  • 15140216354单片机定时器初值怎么算?
    宣爱绍1、系统晶振频率是12M,则机器周期=12/12=1us;2、定时1ms=1*1000=1000us;3、工作在方式0下:最大计数值是2^13=8192;4、定时初值=8192-(1*1000)=7192;5、换算成十六进制数为:定时初值=1C18H。定时器中断是由单片机中的定时器溢出引起的中断,51单片机中有两个定时器t0和t1。

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网