找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

求助调用ds18b20.h文件到主函数里读出温度?

查看数: 1858 | 评论数: 10 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-4-2 20:56

正文摘要:

本帖最后由 hempfish 于 2022-4-4 15:02 编辑 调用了头文件ds18b20.h文件是在一老哥那里下的,文件是http://www.51hei.com/bbs/dpj-29490-1.html 想问一下主函数里面应该写什么才能将温度读出来啊,主函数如下#i ...

回复

ID:864872 发表于 2022-4-4 14:58

我后头重新检查练一哈时序问题,然后再根据你说的把这个调到循环里面就行了,谢谢啦老哥,搞了两三天了,就一直不行,最后还真是时序问题
ID:864872 发表于 2022-4-4 14:55

行了,谢谢老哥
ID:155507 发表于 2022-4-4 14:28
试试这样

  1. void main()   
  2. {
  3.         uchar AD_val1;   
  4.         uchar AD_val2;
  5.         lcd_init();   
  6. while(1)
  7. {
  8.         get_temp_ds();
  9.          wr_com(0xc9);
  10.           wr_dat('0'+bwei_ds);
  11.           wr_dat('0'+shwei_ds);
  12.           wr_dat('0'+gwei_ds);
  13.           wr_dat('.');
  14.           wr_dat('0'+shfen_ds);
  15.            wr_dat(0xdf);
  16.            wr_dat(0x43);
  17.     }
  18. }
复制代码
ID:864872 发表于 2022-4-4 14:09
angmall 发表于 2022-4-4 09:10
ds18b20是单总线器件,对时序要求非常高。

时序问题我下这个.h文件上作者写的应该没问题吧,主要就是这个温度传感器不知道它有没有工作,主函数:
  1. void main()   
  2. {
  3.         uchar AD_val1;  
  4.         uchar AD_val2;
  5.         lcd_init();      
  6.         get_temp_ds();
  7. wr_com(0xc9);
  8.                  wr_dat('0'+bwei_ds);
  9.           wr_dat('0'+shwei_ds);
  10.                 wr_dat('0'+gwei_ds);
  11.                 wr_dat('.');
  12.           wr_dat('0'+shfen_ds);
  13.                 wr_dat(0xdf);
  14.                 wr_dat(0x43);
复制代码

在protues仿真上所测的温度就是不对,而且调温度传感器上的温度也不变化,就感觉传感器是没有工作的
ID:864872 发表于 2022-4-4 13:38
angmall 发表于 2022-4-4 09:10
ds18b20是单总线器件,对时序要求非常高。

晶振是12mhz
ID:155507 发表于 2022-4-4 09:10
ds18b20是单总线器件,对时序要求非常高。


你的单片机主时钟频率是多少?


ID:301191 发表于 2022-4-4 01:43
顶一下
ID:864872 发表于 2022-4-2 23:27
一事无成 发表于 2022-4-2 22:14
直接调用get_temp_ds(), 读取温度的全局变量。
不建议用这个代码,不规范 .c文件都写到了.h文件里。

就是我想将温度输出到lcd1602上,最后应该输出哪几个参数啊
ID:864872 发表于 2022-4-2 23:23
一事无成 发表于 2022-4-2 22:14
直接调用get_temp_ds(), 读取温度的全局变量。
不建议用这个代码,不规范 .c文件都写到了.h文件里。

是直接将get_temp_ds()写进main函数吗?我开始就写了,但是读不出来的
ID:1007932 发表于 2022-4-2 22:14
直接调用get_temp_ds(), 读取温度的全局变量。
不建议用这个代码,不规范 .c文件都写到了.h文件里。

ps 建议去看看c语言和通信协议。

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

Powered by 单片机教程网

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