打印

基于DS18B20多点测温的上位机程序

[复制链接]
3344|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuse|  楼主 | 2009-10-23 09:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
smileage| | 2009-10-23 09:28 | 只看该作者
说说你的硬件设备

使用特权

评论回复
板凳
yuse|  楼主 | 2009-10-23 16:33 | 只看该作者
硬件设备:单片机就用51系列,通过单总线上百个18B20去测量上百台冷柜,要求上位机可以实时显示所有的温度数据更新,其中哪台温度过高发出警报。 2# smileage

使用特权

评论回复
地板
smileage| | 2009-10-23 16:50 | 只看该作者
上百个18B20都在一条总线上?
测冷柜的话,拉线的长度有多长?
实时显示要求多少时间更新一次数据?

使用特权

评论回复
5
ningling_21| | 2009-10-25 07:39 | 只看该作者
怎么没下文了?

使用特权

评论回复
6
yuse|  楼主 | 2009-10-25 10:47 | 只看该作者
我是先转换所有的DS18B20,然后延迟2s,再分别读取所有的DS18B20。这样可以快一些。如果哪个温度过高就报警。比如设置>-10度为报警值,程序中因为放大倍数了,比如-11.06放大为-1106,那么程序中设计时应该>-1000就报警,当然液晶显示还是-11.06。

现出现了这样的问题:我用keil和proteus联调,程序刚开始运行时正常,我在仿真时设置了4个不同温度值-10,-15,-20,-25的DS18B20,也就是说都不应该报警,当然keil调试程序内部显示-1000,-1500,-2000,-2500。但运行一段时间后莫名其妙的出现个-6,然后报警。起初我以为是proteus不稳定的原因,后来我觉的是18B20程序设计有问题,是不是应该按照一般的步骤转换一个,延时1s,再读取1个;再下一个...,而不能先全部转换延迟2s后再分别读取?

使用特权

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

本版积分规则

152

主题

453

帖子

0

粉丝