欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

定时器赋值有关问题

更新时间: 2014-01-05 03:14:48 责任编辑: Author_N1

 

定时器赋值问题
我请问下大神,给计数寄存器赋出值语句如下:
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开始计数了。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:14:48
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20043/
本文WWW.DOC100.NET DOC100.NET版权所有。