单片机如何计算初值

作者&投稿:鲁仪 (若有异议请与网页底部的电邮联系)
单片机中 定时器/计数器 的计数初值是怎么计算得出的?(计数和定时计算方式是否不同?)--初学单片机~

计数初值的计算:
定时或计数方式下计数初值如何确定:定时器选择不同的工作方式,不同的操作模式其计数值均不相同。若设最大计数值为M,各操作模式下的M值为:
模式0 : M=2^13 =8192
模式1: M=2^16=65536模式2:M=2^8=256模式3: M=256,定时器T0分成2个独立的8位计数器,所以THO、TLO 的M均为256。
因为MCS-51 的两个定时器均为加1计数器,当初值到最大值( 00H或0000H )时产生溢出,将TF位置1,可发出溢出中断,因此计数器初值X的计算式为: X=M- 计数值。
式中的M由操作模式确定,不同的操作模式计数器的长不相同,故M值也不相同。而式中的计数值与定时器的工作方式有关。1、计数工作方式时
计数工作方式时,计数脉冲由外部引入,是对外部冲进行计数,因此计数值根据要求确定。其计数初值: X=M- 计数值。
2、定时工作方式时
定时工作方式时,计数脉冲由内部供给,对机器周期进行计数,计数脉冲频率fcont=fosc*1/12、计数周期T=1/fcont=12/fosc定时工作方式的计数初值X等于:
X=M-计数值=M-t/T=M-(fosc*t)/12
式中:fosc为振荡器的振荡频率,t为要求定吋的时间。

扩展资料:
定时器工作方式的设定:
定时器有两种工作方式:定时和计数。由TMOD的D6位和D2位决定,其中D6位决定T1的工作方式,D2位决定T0的工作方式。值为0时工作在定时方式,值为1时工作在计数方式。并且有四种操作模式:
1、模式0:13位计数器,TLi只用低5位。
2、模式1:16位计数器。
3、模式2:8位自动重装计数器,THi的值在计数中不变, TLi 溢出时,THi中的值自动装入TLi中。
4、模式3:T0分成2个独立的8位计数器,T1停止计数。

呵呵 正确为你解答:
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

呵呵 如满意 请选择满意回答

一般最直接的想法就是,指定一个计时值x,然后从0开始累加计数,计数到x表示时间到,可以处理事务了。这种处理方法,需要一个数值比较器,每计一次数,就比较一下。这对单片机或者说硬件电路来讲,一个8位计数器就需要包含一个8位数值比较器,实在不够简便。

第二种想法,是指定一个计时值x,然后进行减计数,减计数到0表示时间到。这也要一个比较器,只不过是个0值比较器,硬件电路上比上一种要简单一些,但减计数器还是不常用。我们知道累加器才是最简便的硬件电路之一。

上面两种方法,都是软件实现的定时器的合理想法。那么硬件电路实现定时最简便的方法是什么呢?

那就是用累加器来实现。比如一个8位的累加器,可以从0累加计数,计数到256时溢出,产生溢出信号,就可以触发事务处理了。

要是我们只需要计数10次就够了,则可以将计数初值定义为246。那样,计数10次后就可以达到256,产生溢出信号了。

所以就有了(2^n-x)。n是计数器的位数;2^n就是最大计数值;x是计数初值。整个这段,表示我们需要的计时次数。

计数器每次计数的时间间隔是t,及计数周期。那么总的计时时长m=计数周期×计数次数=t×(2^n-x),也就是m=(2^n-x)×t。

计数位数n由选用的单片机确定,通常等于8,12,16或32等等,即8位、12位等计数器。计数周期t由定时器基础时钟确定,可通过设置定时器时钟源和选择时钟分频数确定。这两项灵活性不大,一般在程序初始化时就应设定。

初值x可以在应用时,根据定时需求进行修改确定。

协调好n,t和x三者的设定,就可以完美实现定时功能了。

你先确定单片机型号。


蝴蝶效应与环境污染有什么关系呢?
在《混沌学传奇》与《分形论——奇异性探索》等书中皆有这样的描述:“1961年冬季的一天,洛仑兹(E.Lorenz)在皇家麦克比型计算机上进行关于天气预报的计算.为了考察一个很长的序列,他走了一条捷径,没有令计算机从头运行,而是从中途开始.他把上次的输出直接打入作为计算的初值,...

什么是"蝴蝶效应"?什么是龙卷风?
他把上次的输出直接打入作为计算的初值,然后他穿过大厅下楼,去喝咖啡.一小时后,他回来时发生了出乎意料的事,他发现天气变化同上一次的模式迅速偏离,在短时间内,相似性完全消失了.进一步的计算表明,输入的细微差异可能很快成为输出的巨大差别.这种现象被称为对初始条件的敏感依赖性.在气象预报中,称为‘蝴蝶效应’.…...

电影《蝴蝶效应》的片尾曲叫什么名字?
《蝴蝶效应》的片尾曲Stop Crying Your Heart Out-绿洲乐队 Hold up Hold on Don't be scared You'll never change what's been and gone May your smile (may your smile)Shine on (shine on)Don't be scared (don't be scared)Your destiny may keep you warm Cause all of the ...

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

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

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

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

扬州市17120198403: 单片机 计数器 设定计数初值 -
貂刚贝他: 第一:单片机的计数器的作用就是计数.单片机内部有晶振(好比人的心脏),为单片机工作提供脉冲,每来一脉冲,它就计数一次,此时记录的是单片机内部的时钟脉冲.而定时的工作原理也是计数.每计一次数,都会流过一段时间,所以可...

扬州市17120198403: 单片机 定时器初值计算 -
貂刚贝他: X=65536-(1000*10^3/22.1184) TH0=(65536-(1000*10^3/22.1184))/256 TL0=(65536-(1000*10^3/22.1184))%256

扬州市17120198403: 单片机,一秒的定时器初值怎么算?不要结果要过程谢了哈! ... -
貂刚贝他: 如果晶振是12M,那么定时器最长的定时时间是65.536毫秒,所以需要多次中断才能达到定时1秒的目的,这样的话,初值就有多种选择了.一般是定时50毫秒.初值就是:65536-50000 THn=(65536-50000)/256; TLn=(65536-50000)%256;

扬州市17120198403: 单片机,一秒的定时器初值怎么算?不要结果要过程谢了哈! ...
貂刚贝他: 一.10MS定时器初值的计算:1.晶振12M12MHz除12为1MHz,也就是说一秒=1000000次机器周期.10ms=10000次 机器周期.65536-10000=55536(d8f0)TH0=0xd8,TL0=0xf02.晶振11.0592M11.0592MHz除12为921600Hz,就是一秒921600次...

扬州市17120198403: 单片机计数初值?? -
貂刚贝他: 机器周期=12/110592=1.085 us; 初值=65535-10ms/1.085us=56319; TH0=56319/256; TL0=56319%256.

扬州市17120198403: 单片机定时器初值计算方法 -
貂刚贝他: 呵呵 正确为你解答: 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 呵呵 如满意 请选择满意回答

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