首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

定时器赋值有关问题

2013-10-18 
定时器赋值问题我请问下大神,给计数寄存器赋出值语句如下:TH0(65536-1000)/256TH0 (65536-1000)%256我

定时器赋值问题
我请问下大神,给计数寄存器赋出值语句如下:
TH0=(65536-1000)/256;
TH0= (65536-1000)%256;
我想知道为什么要除256啊?
还请高手指教啊~~~~
[解决办法]
一个除、一个模,都是给 TH0 赋值,LZ 是不是输入错误了?

TH0 是不是只有一个字节的长度呢,呵呵...
[解决办法]


TH0=(65536-1000)/256;
TL0= (65536-1000)%256;

比较常用的将一个数按16位存放
例如,我要将1000写如TH0(高8位),TL0(低8位)
就是TH0=(1000>>8);TL0=(1000&0x00ff);
等同于TH0=1000/256;TL0=1000%256
[解决办法]
想起了微机原理的考试。。
[解决办法]
T0是16位的定时器,最大计数2的16次方即65536,1000表示需要计数的个数,65536-1000表示定时器T0的初始值,该初始值存储在8位寄存器TH0、TL0中,2的8次方即256,(65536-1000)/256得到高8位的值,存储在TH0中, (65536-1000)%256得到低8位的值,存储在TL0中。


[解决办法]
TH0和TL0都是字节表示的,最大值是255,故要用256做除法和模运算。
然后TH0和TL0合成一个字(双字节),计数到FFFFH就会溢出成0000H,并产生中断;这个时候必须再对TH0和TL0重新赋值,否则它们就会从0000H开始计数了。

热点排行