单片机计数初值的计算

作者&投稿:段壮 (若有异议请与网页底部的电邮联系)
单片机定时器初值计算~

呵呵 帮你分析一下啊
定时时间2ms=(2的16次方-时间常数X)12/f 即晶振为12M f=12*1000000
2ms=(2的16次方-时间常数X)12/(12*1000000)
2*0.001=(2的16次方-时间常数X)12/(12*1000000)
2*0.001=(2的16次方-时间常数X)/(1000000)
2000=65536-时间常数X
时间常数X=65536-2000

TH0=(65536-2000)/256; 就是转换成十六进制 再除以256 取整数 即高8位送时间常数寄存器的高8位计数器
TL0=(65536-2000)%256; 就是转换成十六进制 再除以256 取余数 即低8位送时间常数寄存器的低8位计数器

哈哈 满意就选满意回答吧

TMOD=0x20是使用T1作波特率发生器,初值自动加载,所以TH1=TL1, 每过(256-0xf3)=13个机器周期定时器就溢出一次,所以每s溢出1000000/6.5次,由于PCON里面SMOD设置为1,表示波特率倍增,所以,T1每溢出16次就会传输一位数据,那么,每溢出1000000/6.5/16次发送一位数据位,所以波特率就是9615.4bps
公式是TL1 = 256- fosc(SMOD+1)/(32*12*波特率)
晶振是24MHZ,机器周期就是0.5us

呵呵 正确为你解答:
1 可以按定时时间的计算公式, 计算出定时器的时间常数X:
定时时间T=(2的N次方-X)12/单片机晶振频率
2 N为定时器的工作方式:
方式0时,N=13
方式1时,N=16
方式2时,N=8
3 根据定时时间和工作方式,计算出时间常数X
把X转换成二进制数,高8位送给TH1,低8位送给TL1,就可以启动定时器开始定时了。

例如: 工作在方式1,定时时间为1000微秒 晶振频率=12MHZ
则 定时时间T=(2的16次方-X)12/12MHZ=1000 解出 X=64536=FC18H


8051单片机计数器初值计算问题
TMOD=0x20 ; \/\/定时器T1工作于方式2 PCON=0; \/\/SOMD=0 注:此处我有疑问 SCON=0xD0; \/\/串行口工作于方式3 波特率=2^SMOD * FORC*(32*12*(256-TH1))将TH1=0F3H带入,可以算出波特率为 4800 ,只有一半 我觉得是不是搞错了,如果SMOD的=1 的话就是 9600 了,呵呵~...

啊~~~求救~
第三题 上次已经给你的了 第四题如下:(1)因为是方波 所以T1的定时时间取50us 定时器T1应该采用工作方式1(16位计数方式),当然工作方式2应该也没问题。(2)计算初值 T=(2^16-X)*2us=50us 其中16表示工作方式1的位数,2us是6M晶振的机器周期。可以算出X=ffe7H.所以T1初始化语句为:{ ...

单片机问题,计数初值怎么变成F806了。怎么变的,高八位第五位怎么选放...
既然LZ 只问了为什么变成0xF806,那我就当LZ已经知道 TC=7942D=0x1F06 了。13位定时器的定时过程,只使用了 高位寄存器(THx),跟 低位寄存器(TLx)的低5位进行计数。赋值过程,由上面计算的13位结果,拆分成 8位+5位,分别赋值给 THx 跟 TLx 即可。0x1F06=1 1111 0000 0110b =(1111 ...

单片机如何计算初值
上面两种方法,都是软件实现的定时器的合理想法。那么硬件电路实现定时最简便的方法是什么呢?那就是用累加器来实现。比如一个8位的累加器,可以从0累加计数,计数到256时溢出,产生溢出信号,就可以触发事务处理了。要是我们只需要计数10次就够了,则可以将计数初值定义为246。那样,计数10次后就可以...

...定时器O工作在模式0、模式1、模式2时,其定时器初值为多少...
定时器\/计数器做定时器使用时,既是对单片机的机器周期进行计数 定时10ms需要计数个数为10ms(定时时间)\/2μs(一个机器周期)=5000 方式0:方式0时,T0做13位的计数器,所以最大计数个数为2的13次方,计数初值=2的13次方(最大计数值)-5000(计数个数)数据自己算啦,我就不算啦,只是记得...

8051单片机计数器初值计算问题
TMOD=0x20是使用T1作波特率发生器,初值自动加载,所以TH1=TL1, 每过(256-0xf3)=13个机器周期定时器就溢出一次,所以每s溢出1000000\/6.5次,由于PCON里面SMOD设置为1,表示波特率倍增,所以,T1每溢出16次就会传输一位数据,那么,每溢出1000000\/6.5\/16次发送一位数据位,所以波特率就是9615.4bps 公式...

80C51系列单片机学习→中断一节里→计算初值→
计数器计数的话,是 +1 等TH0和TL0全变为0FFH 然后溢出,定时器就产生一个定时中断 例如:TH0=0FFH,TL0=0FDH ;TL0自加两个数之后,变成了0FFH,再加一个1 ,TH0和TL0都溢出,都变为00H,定时器就产生一个定时中断 2.256=2^8;因为计数器是+1 计数的,所以先算初值:65536-50000=15536 ...

定时器\/计数器初值设置方法
如果使用11.0592MHZ的晶振,其他条件不变,11.0592M的晶振每秒可产生0.9216M个机器周期,50ms就需要46080个机器周期。定时器在方式1工作,是16位计数器,最大值为65536,所以需设置初值19456=65536-46080,即4C00H,所以TH0=0x4c,TL0=0x00。由上面的分析,我们可以得出推导16位定时器\/计数器初值...

...系统的晶振频率为12MHZ,现在要求使用定时器计数器T1在IO
机器周期 =12\/Fosc = 12\/(12MHz) =1μs,4ms方波的半周期=2ms,计数值 =2ms\/1μs =2000 用单片机定时器T1,工作方式1,16位计数寄存器,计数初值 =2^16 -2000 =63536 =F830h ;; T1初始化程序:MOV TMOD, #00010000b ;; T1 , 定时模式 , 方式1 MOV TH1, #0F8h ;; 装入...

单片机计数值问题,注意不是计数初值。已知晶振频率为12MHz,问1ms的计...
1ms对应的1000的计数值,公式就是计数值=定时时间\/机器周期。这是51单片机工作在方式1

筠连县13977415905: 单片机如何计算初值 -
钞明盐酸: 一般最直接的想法就是,指定一个计时值x,然后从0开始累加计数,计数到x表示时间到,可以处理事务了.这种处理方法,需要一个数值比较器,每计一次数,就比较一下.这对单片机或者说硬件电路来讲,一个8位计数器就需要包含一个8位...

筠连县13977415905: 单片机中 定时器/计数器 的计数初值是怎么计算得出的?(计数和定时计算方式是否不同?) -- 初学单片机 -
钞明盐酸: 计数初值的计算: 定时或计数方式下计数初值如何确定:定时器选择不同的工作方式,不同的操作模式其计数值均不相同.若设最大计数值为M,各操作模式下的M值为: 模式0 : M=2^13 =8192 模式1: M=2^16=65536模式2:M=2^8=256模式3: ...

筠连县13977415905: 单片机 计数器 设定计数初值 -
钞明盐酸: 第一:单片机的计数器的作用就是计数.单片机内部有晶振(好比人的心脏),为单片机工作提供脉冲,每来一脉冲,它就计数一次,此时记录的是单片机内部的时钟脉冲.而定时的工作原理也是计数.每计一次数,都会流过一段时间,所以可...

筠连县13977415905: 假设单片机系统的晶振频率为12MHz,要求采用定时器时50毫秒,计算计数器的计数初值. -
钞明盐酸:[答案] 1、已知单片机系统机器周期为时钟周期的12倍,故每个机器周期为12/12M=1us 2、50ms=50*1000us 3、16位定时器的定时时间最长为65536us,定时50us的初值为65536-50*1000=0x3cB0 4、0x3cb0就是初值,其中TH=0x3c,TL=0xb0

筠连县13977415905: 单片机计数初值?? -
钞明盐酸: 机器周期=12/110592=1.085 us; 初值=65535-10ms/1.085us=56319; TH0=56319/256; TL0=56319%256.

筠连县13977415905: 89C51单片机定时器初值怎么计算 -
钞明盐酸: 在定时器模式下,计数器的计数脉冲来自于晶振脉冲的12分频信号,即对机器周期进行计数.若选择12M晶振,则定时器的计数频率为1MHZ.假设定时时间为T,机器周期为T1,即12/晶振频率.X为定时器初值.则 X=2^n-T/T1.方式0,n=13,方式1时,n=16,方式2和方式3,n=8

筠连县13977415905: 单片机中计数初值=65536 - 5000=15536=3cb0,3cb0是怎样算出来的? -
钞明盐酸: 打开计算器,切换到科学计算,就是按键多的那个界面,然后你输入15536,然后点击十六进制前面的单选.转换成十六进制,十进制的15536对应的十六进制数就是3cb0.

筠连县13977415905: 51单片机 8155h定时器的计数初值怎么算 -
钞明盐酸: 这个得知道定时器时钟周期.设预期定时时间为T,定时器时钟周期位t,定时值X=T/t.将X转换为十六进制数,取其补码,就是定时器初值.

筠连县13977415905: 单片机中计数初值=65536 - 50000=15536=3cb0,3cb0是怎样算出来的? -
钞明盐酸: 不就是10进制转换为16进制就是3CB0了啊..这个还有啥子好纠结的呢.只不过是为了在给TH0和TL0分配值得时候方便点才写成16进制而已的吗.如果你对10禁止比较熟悉的话,你完全可以用十进制给TH0和TL0进行赋值操作的.

筠连县13977415905: 单片机定时器初值计算方法 几种表示方法都列出来,谢谢了 -
钞明盐酸: 初值计算就是要算出一个数字,让加上这个数字后,和为65536的时候,触发定时中断. 所以一般的计算方法是【65536-定时时长/时钟周期(12M主频时候,频率是1M的,周期1us)】,你这个方法不是单片机的定时方法,是微机原理中的定时赋初值方法.记得选择为最佳答案.顶下,为人民服务才有热情.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网