打印
[51单片机]

关于定时器初始化函数里的问题????

[复制链接]
1056|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaochao93|  楼主 | 2014-8-12 17:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

void init()
{
  TMOD=0x01;        //工作方式1
  TH0=0x4c;                //0x4c=(76)D  应该是赋初值    TH0=(655536-46075)/256=76.0195
  TL0=0x00;                //为什么给TL0赋0x00???
  EA=1;                        //开总中断
  ET0=1;                //开定时器0中断
  TR0=1;                //启动定时器
  counter=0;
  h=12;m=0;s=0;                //赋初值
  dispbuf[2]=10;
  dispbuf[5]=10;
}

相关帖子

沙发
444745317| | 2014-8-12 18:13 | 只看该作者
lz没看错吧!定时器0方式1的有16位  肯定会给低八位赋值的啊!应该是低八位也会对256取余

使用特权

评论回复
板凳
xiaochao93|  楼主 | 2014-8-12 19:23 | 只看该作者
开发板带的例程,可以编译,下到板子上,可以实现功能,没看错!

使用特权

评论回复
地板
ayb_ice| | 2014-8-12 19:26 | 只看该作者
有说要那么精确吗

使用特权

评论回复
5
longmaodo| | 2014-8-12 19:30 | 只看该作者
你想问什么呀  没看到问题呀

使用特权

评论回复
6
天风立马| | 2014-8-12 19:34 | 只看该作者
定时器就像秒表一样,该进位的时候就进位,而这个进位就是你设置的参数的意义。都赋值0而且模式为16位的话就是每65535进位一次。具体时间由晶振和机器周期决定。

使用特权

评论回复
7
天风立马| | 2014-8-12 19:35 | 只看该作者
定时器就像秒表一样,该进位的时候就进位,而这个进位就是你设置的参数的意义。都赋值0而且模式为16位的话就是每65535进位一次。具体时间由晶振和机器周期和初值共同决定。

使用特权

评论回复
8
wuhenyouyu| | 2014-8-12 20:05 | 只看该作者
655536-46075=19461=0x4C05,差5个机器周期!

使用特权

评论回复
9
longmaodo| | 2014-8-12 20:58 | 只看该作者
就差5个机器周期  所以程序你看不出来呀
可能人家不用这么精确呢
关键还得看需求

使用特权

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

本版积分规则

6

主题

19

帖子

0

粉丝