www.ysbm.net > 51单片机定时器初值怎样计算

51单片机定时器初值怎样计算

在定时器模式下,计数器的计数脉冲来自于晶振脉冲的12分频信号,即对机器周期进行计数.若选择12M晶振,则定时器的计数频率为1MHZ.假设定时时间为T,机器周期为T1,即12/晶振频率.X为定时器初值.则 X=2^n-T/T1.方式0,n=13,方式1时,n=16,方式2和方式3,n=8

呵呵 正确为你解答:1 可以按定时时间的计算公式, 计算出定时器的时间常数X: 定时时间T=(2的N次方-X)12/单片机晶振频率2 N为定时器的工作方式: 方式0时,N=13 方式1时,N=16 方式2时,N=83 根据定时时间和工作方式,计算出时间常数X 把X转换成二进制数,高8位送给TH1,低8位送给TL1,就可以启动定时器开始定时了. 例如: 工作在方式1,定时时间为1000微秒 晶振频率=12MHZ 则 定时时间T=(2的16次方-X)12/12MHZ=1000 解出 X=64536=FC18H 呵呵 如满意 请选择满意回答

下载一个初值计算软件就行了

就51单片机而言,定时器只有8位和16位两种,没达到“各种”那么多.而计算初值的方法是相同的,区别只是8位数是用256作基数,16位用65536作基数.根据晶振频率计算机周期,Tc=12/fosc,设定时的时间为Td,则初值X=基数-Td/Tc

串口通信方式1和方式制波特率.T1,使用定时方式2,其初始值,和晶振频率、波特率、SMOD的关系式如下:T1初值 = 256 - fosc * (SMOD + 1) / (384 * 波特率)--我不明白波特率跟这个定时器的关系.麻烦你详细一点!这个关系,是由硬件决定的,只有搞微电子的,才能弄明白.软件人员,编程的时候,会用这个公式即可,也没有必要弄明白这个.基本上,也没有几个人,能够弄明白集成电路内部,究竟是怎么处理的.其它的很多人,好像是很明白,其实都是在瞎编理由,包括写书的那些人.

用十六位的定时器,定时50毫秒,然后累计1200次(不能一次累计你要分段) 处初值=(65536-50000)注意最好将其化成十六进制数

1.简单说起,256表示一个8位分界点,对它求模得高位字节存在TH0中,求余得低位字节放在TL0中,拿十进制打比:15/10得十位1,15%10得个位数5 2.12Mhz时,单周期指令时间为12/fsoc=1us 方式1为16位定时/计数器 故定时1ms为:TH0=(2^

下面按外接,12MHz晶振算..在P1.0处输出1MS方波ORG 00AJMP MAINORG 0BHLALL T0INTRETIORG 30HMAIN:LCALL T0INITAJMP $T0INIT:MOV TMOD,#01HLCALL T0LOADSETB TR0SETB ET0SETB EARETT0LOAD:MOV TL0,#0F0H ;初值计算,65536US-1MS=D8F0HMOV TH0,#0D8HRETT0INT:LCALL T0LOADJB P1.0,NEXTSETB P1.0RETNEXT:CLR P1.0RETEND 大概应该就是这样的..

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

最简单的计算方法就是 TH0=(65536-20000)/256; TL0=(65536-20000)%256; 20000=20ms 如果1ms就是1000 想弄多少弄多少

网站地图

All rights reserved Powered by www.ysbm.net

copyright ©right 2010-2021。
www.ysbm.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com