求助:DS18B20在51单片机中的应用 点击:570 | 回复:5



gongkongedit

    
  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-01-17 21:25:00
楼主
各位帮帮忙! 我现在用AT89C2051单片机和DS18B20做一个温度控制器.我想使用DS18B20的9位的精度,把温度采样放在定时器中断子程序中.那么我的定时期中断的时间间隔怎么确定呢?要多长时间才合适? 求各位高手帮忙!!



gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-01-18 09:38:00
1楼
由于 18B20 的通信过程比较慢,你需要在定时器中断中加一个寄存器以实现更长的延时,以便实现秒级的计时

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-01-18 09:55:00
2楼
谢谢周公!我现在用20ms的中断,然后在中断中再加延时,我尝试一下. 借问一下您是西安的吗?

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-01-18 16:26:00
3楼
是西安的。 “中断中再加延时”是错误的,应该是(PLM): TR0 = 0 ; 停止定时器 TL0 = LOW ( - 9208 ) ; 给定时器赋初值 TH0 = HIGH ( - 9208 ) ; 给定时器赋初值 TR0 = 1 ; 启动定时器 MS = MS + 1 ; 毫秒计数器 + 1 IF MS > 49 THEN DO ; MS = 0 ; 毫秒计数器清零 SEC = SEC + 1 ; 秒计数器 + 1 END ;

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-02-26 14:12:00
4楼
犯得上法似的: 好不容易看到你这片文章,我现在正作毕业设计,课题就是你做的这东西,由于刚接触这些片子和传感器,watchdog.有很多弯路走,能否提供些非机密的语句和设计思路(大体上有思路,关键是程序及调用上设计细节,和编程时应注意的地方),时间稍有点紧.能否尽快回复,感激不尽.! 我的邮箱:nihao82109@163.com

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-02-26 23:21:00
5楼
请参考先前的讨论,搜‘18B20’。

热门招聘
相关主题

官方公众号

智造工程师