51单片机定时器时间赋值TH0=65535-((65535-a)/256);TL0=65535-((65535-a)%256); a=6553;这句话是什么意思

关于占空比的调节

看代码应该是定时器0模式1,TH0与TL0是定时器0工作在模式1的时候赋初值的寄存器,在这段代码中,a=6553。表示定时器定时时间周期为6553us=6.553ms。整个程序的话应该是每隔6.553ms跳变一次
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-10
TH0=65535-((65535-a)/256);
TL0=65535-((65535-a)%256);
a=6553;
它这个的意思就是PWM周期是固定,我们要做的只是要改变a的大小值,即可实现调节占空比的大小。
第2个回答  2012-12-10
就是占空比调节时,由定时器0来实现调节,定时初始值可调,由A的大小来实现。
第3个回答  2012-12-10
a值改变则改变定时器的时间。
进入中断后,先定时下一次中断,再改变A的值,即改变下一次中断时间。

...TL0=65535-((65535-a)%256); a=6553;这句话是什么意思
看代码应该是定时器0模式1,TH0与TL0是定时器0工作在模式1的时候赋初值的寄存器,在这段代码中,a=6553。表示定时器定时时间周期为6553us=6.553ms。整个程序的话应该是每隔6.553ms跳变一次

51定时器设初值时,即TH0=(65536-n)\/256;TL0=(65536-n)%256;为什么要对...
至于为什么TH0和TL0赋初值要对256求模或求余,那是因为高八位和低八位都是8个byte的,也就是它最大只能是“11111111”,化成十进制就是255,再加最前面的“00000000”也就是256个位矢量,所以就要对256求模或求余。

51单片机定时器初值用变量设置定时不准确,为什么,求高手。TH0=(65536...
TH0=(65536-2000)\/256; TL0=(65536-2000)%256;汇编后,只要2us就完事了。 而用变量方式,单片机很忙,计算几十乃至上百微妙才完事!15: TH0=(65536-a)\/256;C:0x0190 AE09 MOV R6,a(0x09)C:0x0192 AF0A MOV R7,0x0A C:0x0194 AB07 MOV R3,0x07 ...

TH0 = (65535-50000)\/256; TL0 = (65535-50000)%256;
在51单片机中,如果你的定时器0选择的是“方式一”,则表示定时器0的计数器从0开始加到50000,其中每加一次的时间为你的晶振频率的倒数。如12MHz,则每加一个数的时间为 1*12\/12000000 秒。你的公式中是加50000次,即 50000*1*12\/12000000 = 50MS。TH0是计时器的高八位,TL0是低八位。

单片机中给定时器赋做值时 TH0=(65536-30000)\/256 TL0=(65536-30000...
TH0是定时器高位,TL0是定时器低位。\/是取整,%是取余。(65536-30000)%256 刚好就是TL0的计数初值,当计数到30000%256时候,也就是到了256了,这样TH0增加1. TL0下一次再从(65536-30000)%256开始计数。所以TH0要除256取整数,TL0除256取余数。

...中:TH0与TL0为什么是TH0=(65536-50000)\/256;TL0=(65536-50000)%256...
1、首先第一步要定时器0设置于模式1时,然后由高8位TH0和低8位TL0两个8位寄存器组成,注意的是当设定计算值为65536-50000=15536(D)时,转换为十六进制就是3CB0(H),此时,TH0=3C,TL0=B0分别装入就可以了。2、接这就是采用“TH0=(65536-50000)\/256;TL0=(65536-50000)%256“的编程方式,...

TH0=(65536-10000)\/256; TL0=(65536-10000)%256; 是单片机C语言的...
使定时器不从0开始计,这个值,就是65536-10000=55536,即从55536开始向上计数到溢出刚好用去10ms。另外由于单片机寄存器是8位的,所以要把TH和TL组合起来用,TH放高8位,TL放低8位,于是有了TH0=(65536-10000)\/256; TL0=(65536-10000)%256;明白?(以上基于定时器工作方式1)

c51中定时器中TH0=(65536-10000)\/256与TL0=(65536-100000)%256是什么...
TH0高位TL0低位因为是八位的计数器,所以这个最大就是2^8=256,所以,如果部分高位和低位的话,是记录不下去的。然后这个高位就相当于存放的进位一样。然后这个(65536-10000)\/256就是取高位的意思,(65536-10000)%256取的是低位。为什么会是减呢,是因为这个计时器到了65536溢出了,就会发生中断,...

怎么理解TH0=(65535-50000)\/256;Tl0=(65535-50000)%256
所以出现上面的TH0=(65535-50000)\/256;Tl0=(65535-50000)%256;至于为什么会出现65535,这是因为这个是2^16-1,因为是从0开始算的,就像10个数,是从0到9,不是1到10;以上是计数器的一种形式,溢出(就是到了65535之后就会重新开始)。这样的话,-50000,就是说计数50000次。

单片机用C编程时定时器部分的 TH0=(65536-50000)\/256;TL0=(65536-50000...
所以就有了:TH0=(65535-50000)\/256 TL0=(65535-50000)%256 如果是直接赋值TH=B8;TL=00,是编程者算过后填写进去的:TH0=0xB8;TL0=0x00;具体是如何计算的呢?65536-x=B800(16进制)= 47104(D)x= 18432us=18.43ms=0.018s (以上根据2位很厉害很厉害大师的帖子汇总出来的)...

相似回答