89C51单片机定时器初值怎么计算
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~
呵呵 帮你分析一下啊
定时时间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位计数器
哈哈 满意就选满意回答吧
方式0:13位,8192-x,然后化成16进制,放入th,tl寄存器
方式1:16位,65536-x,然后化成16进制,放入th,tl寄存器
方式2:8位,256-x,然后化成16进制,放入th,tl寄存器,两个寄存器内容一样
注:设定时器要定的时间为t,则x=t/晶振周期的12倍
根据你的需要啊,减法计数还是加法?
51单片机定时计数器四种工作方式哪种可以实现计数初值的自动加载_百 ...
51单片机定时计数器四种工作方式中,方式2可以实现计数初值的自动加载。解释分析:16位的计数器只用了8位来计数,用TLx来进行计数,而THx用于保存初值,当TLx计满时则溢出,该方式的溢出状态一方面使TF变化,另一方面使TH的值再次置入TL,正所谓自动重置定时\/计数器 自动装载初值,无需程序运行赋值,此方式...
关于51单片机定时\/计数器装入初值的问题
这样跟你说吧 因为th0只有一个字节 那就只能放下8位2进制 于是第一种表示就是把一个大于一个字节小于两个字节的数据转化成两个字节高八位和第八位的分离形式 第二种就简单了 0x9c就是65536-100的十六进制表示啊 那高八位就是前两个十六进制数ff就装到th0中 低八位就是后两个十六进制数9c ...
假设51单片机振荡频率为12MHZ,要求定时\/计时器0定时100μs,则可以选择...
初始值为:156 TMOD=0x02;TH0=156;TL0=156;
51单片机控制DAC0832产生正弦波,如何用定时器改变频率,求代码!_百度...
可以用一个定时器中断,在中断服务程序里面,直接把对应的正弦采样数据置入P1口,通过修改定时器的中断间隔,达到调整输出频率的目的;假设你的采样数据的原始采样率为1KHz, 被采样正弦波频率为100Hz,当Timer中断间隔为1ms时,DAC那里输出处理后输出即为100Hz, 如果中断间隔为500us,输出就是200Hz static u...
用89C51单片机设计多功能低频函数信号发生器,能产生方波、正弦波、三角...
1、单片机电路 功能:形成扫描码,键值识别、键处理、参数设置;形成显示段码;产生定时中断;形成波形的数字编码,并输出到D\/A接口电路和显示驱动电路。 AT89S51外接12M晶振作为时钟频率。并采用电源复位设计。复位电路采用上电复位,它的工作原理是,通电时,电容两端相当于短路,于是RST引脚上为高电平,然后电源通过对电容...
基于单片机的交通信号灯模拟控制系统设计
LJMP MAIN ORG 0003H LJMP INT0P ORG 000BH LJMP T0INT ORG 0013H LJMP INT1P ORG 001BH LJMP CTC1 ORG 0100H MAIN: LCALL CSHIH ;初始化 LOOP: LCALL TONGX ;通行路口 LCALL H_BCD2 ;计算(1位HEX转换为2位BCD码)LCALL YIMA ;译码 LCALL...
8051单片机访问片外ROM与片外RAM的读写信号各是什么。
51单片机访问片外RAM(执行MOVX指令)时,\/WR或\/RD出现短暂的低电平。它们三条线,就是楼主问的读写控制信号。虽然访问片外存储器时,\/EA 和 ALE 也起了作用,但是它们都不在回答本题的范围之内。当ALE是高电平时,允许地址锁存信号,当访问外部存储器时,ALE信号负跳变(即由正变负)将P0口上低...
51单片机可以用reg52.h的头文件吗
\/\/单片机复位时PCON被全部清0,编程时一般是用到SMOD位,其它的一般不用 \/\/D7 SMOD该位与串口通信波特率有关 \/\/SMOD=0 串口方式1 2 3 波特率正常 \/\/SMOD=1 串口方式1 2 3 波特率加倍123456789123456789sfr TCON = 0x88; \/\/定时器\/计数器 控制寄存器 可以位寻址 \/\/D7 TF1 定时器1溢出标...
51 单片机和DAC0832输出方波、矩形波和正弦波由液晶1602显示的C语言程 ...
0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,\/\/输出电压从0到最小值(正弦波1\/4部分)0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x...
如何运用单片机原理制作智能信号发生器,要求产生方波、矩形波、三角波...
sbitkey0 = P3^2;\/\/ 增减切换键 sbitkey1 = P3^3;\/\/个位,十位,百位,千位的控制切换 sbitkey2 = P3^4;\/\/ 调整位 sbitkey3 = P3^5;\/\/ 波形选择正弦、三角、矩形波,锯齿波 unsignedchar i,j;unsignedint counter,step,flag;typedefunsigned int uint;\/\/定时器0初始化 voidInit_Timer0...
越备骨炎: 在定时器模式下,计数器的计数脉冲来自于晶振脉冲的12分频信号,即对机器周期进行计数.若选择12M晶振,则定时器的计数频率为1MHZ.假设定时时间为T,机器周期为T1,即12/晶振频率.X为定时器初值.则 X=2^n-T/T1.方式0,n=13,方式1时,n=16,方式2和方式3,n=8
舟山市13220077929: 单片机89c51的定时器时间怎么算!! - ?
越备骨炎: 1,晶振是多少 2,根据你需要的定时时间来给寄存器装初值 有个小软件可以直接用来计算这个,叫“懒人51”
舟山市13220077929: 51单片机中定时1分钟,怎么计算初值 - ?
越备骨炎: void init()//初始化定时器50毫秒 开启定时0 {TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}void timer0() interrupt 1 {TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa++; //50MS 一次 }通过判断aa的值可以得到时间长度
舟山市13220077929: 单片机定时器初值计算方法 - ?
越备骨炎: 呵呵 正确为你解答: 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 呵呵 如满意 请选择满意回答
舟山市13220077929: 51单片机定时器初值公式 - ?
越备骨炎: 1.简单说起,256表示一个8位分界点,对它求模得高位字节存在TH0中,求余得低位字节放在TL0中,拿十进制打比:15/10得十位1,15%10得个位数5 2.12Mhz时,单周期指令时间为12/fsoc=1us 方式1为16位定时/计数器 故定时1ms为:TH0=(2^...
舟山市13220077929: 单片机定时器初值计算方法 几种表示方法都列出来,谢谢了 - ?
越备骨炎: 初值计算就是要算出一个数字,让加上这个数字后,和为65536的时候,触发定时中断. 所以一般的计算方法是【65536-定时时长/时钟周期(12M主频时候,频率是1M的,周期1us)】,你这个方法不是单片机的定时方法,是微机原理中的定时赋初值方法.记得选择为最佳答案.顶下,为人民服务才有热情.
舟山市13220077929: 51给定时计数器设置初始值的时候怎么计算数值? - ?
越备骨炎: 首先,51单片机是加一计数,到65536溢出,所以定时时间(经过的脉冲个数,如果一个脉冲是1US,刚好延时50MS是50000个脉冲)是65536减初值 ,初值又分高8位和低8 位,高8位的1代表256,因此高8位的数值所代表的数是256的整数倍,低位最大不超过255,所以一定是除以256之后的余数,用公式是这样: 初值=65536-定时脉冲个数=TH0*256+TL0 反过来看你就很明白了
舟山市13220077929: 单片机定时器初值的设计 - ?
越备骨炎: 根据你使用的晶振,如果是12M,50ms就是:TH0=(65536-50000)>>8; TL0=(65536-50000); 1机器周期时间=12/12M=1uS11.0592M晶振的话:1机器周期时间=12/11.0592(uS) 而定时器每次加1需要1个机器周期的时间 ,所以定时x微妙所需加1次数= x / 1机器周期时间
舟山市13220077929: 单片机中 定时器/计数器 的计数初值是怎么计算得出的?(计数和定时计算方式是否不同?) -- 初学单片机 - ?
越备骨炎: 计数初值的计算: 定时或计数方式下计数初值如何确定:定时器选择不同的工作方式,不同的操作模式其计数值均不相同.若设最大计数值为M,各操作模式下的M值为: 模式0 : M=2^13 =8192 模式1: M=2^16=65536模式2:M=2^8=256模式3: ...
舟山市13220077929: 单片机,一秒的定时器初值怎么算?不要结果要过程谢了哈! ...?
越备骨炎: 一.10MS定时器初值的计算:1.晶振12M12MHz除12为1MHz,也就是说一秒=1000000次机器周期.10ms=10000次 机器周期.65536-10000=55536(d8f0)TH0=0xd8,TL0=0xf02.晶振11.0592M11.0592MHz除12为921600Hz,就是一秒921600次...