找回密码
 立即注册

QQ登录

只需一步,快速开始

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

为什么我用18B20都温度有的时候数字会少256

[复制链接]
跳转到指定楼层
楼主
读取温度的程序读的温度值不是很稳定,
是不是读取过程中被中断打断就会读取错误啊,经常会出现数字少256的情况(温度值*10以后)搞的我不知道怎么办了
温度读取的时间好长,LED数码管来不及刷新了,有什么办法既让18B20有时间转换,还能做到LED数码管 不那么明显的闪烁
求大神啊
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:79544 发表于 2016-7-8 16:06 | 只看该作者
程序里的显示函数延时小点试试。

评分

参与人数 1黑币 +1 收起 理由
瀚海一滴 + 1

查看全部评分

回复

使用道具 举报

板凳
ID:111634 发表于 2016-7-8 20:12 | 只看该作者
读温度值一般是0.5秒~1秒读一次,在间隔时间内显示,读温度值与显示互不干扰。

评分

参与人数 1黑币 +3 收起 理由
瀚海一滴 + 3

查看全部评分

回复

使用道具 举报

地板
ID:7485 发表于 2016-7-8 20:20 | 只看该作者
帖子内容看不懂。

评分

参与人数 1黑币 +1 收起 理由
瀚海一滴 + 1

查看全部评分

回复

使用道具 举报

5#
ID:111634 发表于 2016-7-8 22:05 | 只看该作者
本帖最后由 zl2168 于 2016-7-8 22:06 编辑

DS18B20 测温


Proteus仿真一下,确认有效。
实例97 DS18B20测温.rar (51.78 KB, 下载次数: 3)



以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版


书中电路和程序设计有详细说明,程序语句条条有注解。


评分

参与人数 1黑币 +7 收起 理由
瀚海一滴 + 7

查看全部评分

回复

使用道具 举报

6#
ID:113376 发表于 2016-7-8 23:28 | 只看该作者
本帖最后由 cyy998 于 2016-7-8 23:30 编辑

我这几天刚好也碰到这个问题,搞了好几天总算搞明白了,读取18B20温度值的时候会闪是因为时序没分配好,我们一般都会在数码管扫描函数中的每个位选后面加一小段延时,原因就在这,当程序执行完扫描最后一位时也后会延时一会,之后再读取温度,再扫描显示,因为读取温度需要的时间是ms级的,所以就会影响到显示。
这几天我试了很多方法,最后发现把显示函数的开始位加一个小延时,把最后一位后面的延时去掉,再用一个for循环套起来,这样就解决问题了,同时还发现,扫描程序用for循环加查表或位移,效果都要好很多。
下面几张图是我这几天自己写的一个test程序和实物,段选和位选用的都是for循环加查表的方法,实测一点都不闪,希望对你有所帮助。






评分

参与人数 1黑币 +8 收起 理由
瀚海一滴 + 8

查看全部评分

回复

使用道具 举报

7#
ID:112612 发表于 2016-7-9 10:55 | 只看该作者
256是最大值,少于它很正常

评分

参与人数 1黑币 +1 收起 理由
瀚海一滴 + 1 少256不是少于256

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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