找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3509|回复: 0
打印 上一主题 下一主题
收起左侧

单片机定时器初始化不能用负号"-(1000/256)"写法

[复制链接]
跳转到指定楼层
楼主
ID:71477 发表于 2015-1-1 19:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用负号的写法是错误的。定时时间并不是从-A到0。 TMOD=0x01;
TH0=-(50000/256);
TL0=-(50000%256);
下面这样写才是对的:有的书上用的负号写法。误导我了!!
负号是错误的,并不相当于65536-A;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;

用负号出错:
TH0=-(1000/256);
TL0=-(1000%256);
             th0=TH0;  //这里的结果是:253
             tl0=TL0;  //这里的结果是:24
             sum=TH0*256+TL0;
           //这里sum结果是 65021;

这个定时器0初始化就不是定时1000了。
          正确写法:
             TMOD=0x01;            
             TH0=(65536-1000)/256;
             TL0=(65536-1000)%256;
             th0=TH0;  //这里的结果是:252
             tl0=TL0; //这里的结果是:  24
             sum=TH0*256+TL0;
             //这里sum结果是 64536;
   



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表