打印

C语言的定时器问题???

[复制链接]
1755|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yjgyiy|  楼主 | 2007-9-23 17:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*定时器T0  5mS初始化*/

void init_timer()
{
TMOD=0x01;
TH0=-(4800/256);
TL0=-(4800%256)
IE=0x82;
TR0=1;
}

在上面的程序中
TH0=-(4800/256);
TL0=-(4800%256)
没看懂
高低8位的初值怎么会这样写
本人刚学C
找了一下资料没有找到
就直接上来问问了
知道的帮忙解释一下
谢谢

相关帖子

沙发
dalujia| | 2007-9-23 19:00 | 只看该作者

路过

没见过



使用特权

评论回复
板凳
myic200610| | 2007-9-23 19:15 | 只看该作者

RE: 搂主

主频?

使用特权

评论回复
地板
yiyigo| | 2007-9-23 21:10 | 只看该作者

re

4800/256=18.75,如果是向0取整为18,加个负号就是-18,如果是8位机-18就是0xEE。TH0=0xTH0
同理可算出TL0
一个是整数部分,一个是小数部分

使用特权

评论回复
5
dalujia| | 2007-9-23 21:16 | 只看该作者

同意四楼

使用特权

评论回复
6
yiliang36| | 2007-9-23 21:34 | 只看该作者

为什么要这样写呢?直接写不可以吗?

还有"TH0=0xTH0"是什么意思?
   

使用特权

评论回复
7
yjgyiy|  楼主 | 2007-9-23 23:13 | 只看该作者

用了直接16进制的初值定义方法

uchar data i=0         /*定时器计数变量*/

void main(void)
{
P1=0x0f;                                // 初始化端口
EA=1; IT1=1; ET0=1;
TMOD=0x01;                              /* T0方式1计时0.01秒 */
TH0=0xD8;
TL0=0xF0;
TR0=1;    

也行
还是这种方法让人看懂。
至于yiyigo说的还是没有看懂

人很笨。

使用特权

评论回复
8
ayb_ice| | 2007-9-24 07:48 | 只看该作者

好处显而易见...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

256

帖子

0

粉丝