找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机LCD1602显示DS18B20数据读取求解

[复制链接]
跳转到指定楼层
楼主
ID:663162 发表于 2022-4-8 09:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
50黑币
LCD1602显示DS18B20数据读取求解:
程序说明:
1. 用proteus8.9做的仿真硬件,用keil4写的程序,使用的是AT89C52单片机;
问题:
1.LCD1602上无法显示DS18B20数据?
2.在keil调试中发现,应该是DS18B20的数据读写有问题,但是不知道错在哪里?(我初学,问题点也许不在这里);
求教:
1.我的程序问题出在哪里?怎么解决?

proteus 18B20.rar

110.68 KB, 下载次数: 18

proteus8.9文件

项目44 DS18620温度传感器温度读取显示编程LCD1602.rar

132.54 KB, 下载次数: 33

程序文件

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

使用道具 举报

沙发
ID:121859 发表于 2022-4-8 12:41 | 只看该作者
如果DS18B20读写有问题的话,多半是延时时间造成读写时序错误造成的,你可以调整一下延时时间,按照说明书的时序来,单片机的速度不一样,采用的晶振不一样,这样的话,对延时时间都有很大影响,所以从百度来的程序,你需要根据你的硬件环境有针对性的调整一些参数才能使用。
回复

使用道具 举报

板凳
ID:663162 发表于 2022-4-8 14:27 | 只看该作者
zhxiufan 发表于 2022-4-8 12:41
如果DS18B20读写有问题的话,多半是延时时间造成读写时序错误造成的,你可以调整一下延时时间,按照说明书 ...

我的程序是照着哔哩哔哩上金善愚老师的视频讲解,我照着老师的敲的一样的代码,我的怎么弄都不能运行。我看时序,我把延时都改过,也没解决问题。
回复

使用道具 举报

地板
ID:584814 发表于 2022-4-8 14:56 | 只看该作者
学以致用,而非仅纸上谈兵。
所以建议先用硬件搭一个,不搞壕华版本的话也就20元内的事。
仿真这东东和软件啥的关联太多而且搞成了可能仅仿真成功。
所以,实物搞成后,如果有兴趣仿真,再弄也就不难了。
回复

使用道具 举报

5#
ID:663162 发表于 2022-4-8 15:11 | 只看该作者
man1234567 发表于 2022-4-8 14:56
学以致用,而非仅纸上谈兵。
所以建议先用硬件搭一个,不搞壕华版本的话也就20元内的事。
仿真这东东和软 ...

硬件我用的是普中A2开发板,也试过了,没反应
回复

使用道具 举报

6#
ID:96682 发表于 2022-4-8 15:18 来自手机 | 只看该作者
新版的仿真有人可能打不开哦
回复

使用道具 举报

7#
ID:941205 发表于 2022-4-8 16:25 | 只看该作者
给你个可以正常仿真和运行的程序,算法和你的一样,你可以和你的对照看一下哪里有问题。

18B20.rar

36.34 KB, 下载次数: 24

代码

proteus.rar

15.55 KB, 下载次数: 15

仿真

回复

使用道具 举报

8#
ID:584814 发表于 2022-4-8 16:55 | 只看该作者
task2008 发表于 2022-4-8 15:11
硬件我用的是普中A2开发板,也试过了,没反应

首先用普中原来的器件和对应的例程肯定通过的。
然后就可以随意换器件放飞了
回复

使用道具 举报

9#
ID:663162 发表于 2022-4-8 17:25 | 只看该作者
man1234567 发表于 2022-4-8 16:55
首先用普中原来的器件和对应的例程肯定通过的。
然后就可以随意换器件放飞了

普中的视频我没理解,这个老师讲的我容易理解,所以我就用这个程序,然后用普中的开发板,但是搞不懂,程序错在哪里?
回复

使用道具 举报

10#
ID:161164 发表于 2022-4-8 17:49 | 只看该作者
既然用了Protues
就要善用他的功能
用内置的示波器观察DS18B20的电平

看了一下你的代码
for(tmp=0x01;tmp!=0;tmp<<1)是什么写法?
tmp<<1的值是0x02
但不会改变tmp
tmp永远是0x01
于是就死循环了

每读一次电平后要在拉高一次电平
回复

使用道具 举报

11#
ID:480627 发表于 2022-4-9 09:35 | 只看该作者
task2008 发表于 2022-4-8 15:11
硬件我用的是普中A2开发板,也试过了,没反应

普中有他自已的实验程序啊,何必舍近求远。。。先把几个延时时间调准了再说其他的。。再调复位,复位成功了要亮灯或声音提示。。。再调其他的。一步一步来。。我也是这么过来的。。。
回复

使用道具 举报

12#
ID:956669 发表于 2022-4-9 21:35 来自手机 | 只看该作者
ds18b20是单总线协议,这个找到ds18b20的手册对应去设置时间就可以解决,实在不行去b站找视频学。这个只有自己学会以后就不怕了,别人写的始终不是自己的。
回复

使用道具 举报

13#
ID:663162 发表于 2022-4-9 22:33 | 只看该作者
xiaxiao1127 发表于 2022-4-8 16:25
给你个可以正常仿真和运行的程序,算法和你的一样,你可以和你的对照看一下哪里有问题。

谢谢,我学习一下
回复

使用道具 举报

14#
ID:663162 发表于 2022-4-9 22:34 | 只看该作者
lkc8210 发表于 2022-4-8 17:49
既然用了Protues
就要善用他的功能
用内置的示波器观察DS18B20的电平

这个地方我弄错了,谢谢你发现了问题,我改成了for(tmp=0x01;tmp!=0;tmp<<=1) ,就可以显示了,谢谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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