标题: 单片机LCD1602显示DS18B20数据读取求解 [打印本页]

作者: task2008    时间: 2022-4-8 09:35
标题: 单片机LCD1602显示DS18B20数据读取求解
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

程序文件


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

我的程序是照着哔哩哔哩上金善愚老师的视频讲解,我照着老师的敲的一样的代码,我的怎么弄都不能运行。我看时序,我把延时都改过,也没解决问题。
作者: man1234567    时间: 2022-4-8 14:56
学以致用,而非仅纸上谈兵。
所以建议先用硬件搭一个,不搞壕华版本的话也就20元内的事。
仿真这东东和软件啥的关联太多而且搞成了可能仅仿真成功。
所以,实物搞成后,如果有兴趣仿真,再弄也就不难了。

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

硬件我用的是普中A2开发板,也试过了,没反应
作者: wc86110    时间: 2022-4-8 15:18
新版的仿真有人可能打不开哦
作者: xiaxiao1127    时间: 2022-4-8 16:25
给你个可以正常仿真和运行的程序,算法和你的一样,你可以和你的对照看一下哪里有问题。

18B20.rar

36.34 KB, 下载次数: 24

代码

proteus.rar

15.55 KB, 下载次数: 15

仿真


作者: man1234567    时间: 2022-4-8 16:55
task2008 发表于 2022-4-8 15:11
硬件我用的是普中A2开发板,也试过了,没反应

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

普中的视频我没理解,这个老师讲的我容易理解,所以我就用这个程序,然后用普中的开发板,但是搞不懂,程序错在哪里?
作者: lkc8210    时间: 2022-4-8 17:49
既然用了Protues
就要善用他的功能
用内置的示波器观察DS18B20的电平

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

每读一次电平后要在拉高一次电平
作者: 小象    时间: 2022-4-9 09:35
task2008 发表于 2022-4-8 15:11
硬件我用的是普中A2开发板,也试过了,没反应

普中有他自已的实验程序啊,何必舍近求远。。。先把几个延时时间调准了再说其他的。。再调复位,复位成功了要亮灯或声音提示。。。再调其他的。一步一步来。。我也是这么过来的。。。
作者: 余英杰    时间: 2022-4-9 21:35
ds18b20是单总线协议,这个找到ds18b20的手册对应去设置时间就可以解决,实在不行去b站找视频学。这个只有自己学会以后就不怕了,别人写的始终不是自己的。
作者: task2008    时间: 2022-4-9 22:33
xiaxiao1127 发表于 2022-4-8 16:25
给你个可以正常仿真和运行的程序,算法和你的一样,你可以和你的对照看一下哪里有问题。

谢谢,我学习一下
作者: task2008    时间: 2022-4-9 22:34
lkc8210 发表于 2022-4-8 17:49
既然用了Protues
就要善用他的功能
用内置的示波器观察DS18B20的电平

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1