欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1847|回復: 10
打印 上一主題 下一主題
收起左側

求助調用ds18b20.h文件到主函數里讀出溫度?

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 hempfish 于 2022-4-4 15:02 編輯

調用了頭文件ds18b20.h文件是在一老哥那里下的,文件是http://www.raoushi.com/bbs/dpj-29490-1.html
想問一下主函數里面應該寫什么才能將溫度讀出來啊,主函數如下
  1. #include <REGX51.H>
  2. #include "ds18b20.h"
  3. #define uchar unsigned char
  4. #define uint unsigned  int
  5. sbit AD0832_CS = P1^0 ;
  6. sbit AD0832_CLK = P1^1;
  7. sbit AD0832_DI = P1^2;
  8. uchar code table[8]={0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00};
  9. sbit RS = P2^0;
  10. sbit RW = P2^1;
  11. sbit EN = P2^2;
  12. sbit LED=P3^0;
  13. uchar data disdata[7];
  14. uchar data  data1[7];
  15. int v,v1=0;
  16. sbit K1=P3^2;
  17. sbit K2=P3^3;
  18. sbit K3=P3^4;
  19. sbit K4=P3^5;
  20. bit flag_KEY;
  21. int v3=120
  22. int v4=80
復制代碼


51hei截圖20220403193526.png (15.49 KB, 下載次數: 32)

仿真就是這種顯示

仿真就是這種顯示
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1007932 發表于 2022-4-2 22:14 | 只看該作者
直接調用get_temp_ds(), 讀取溫度的全局變量。
不建議用這個代碼,不規范 .c文件都寫到了.h文件里。

ps 建議去看看c語言和通信協議。
回復

使用道具 舉報

板凳
ID:864872 發表于 2022-4-2 23:23 | 只看該作者
一事無成 發表于 2022-4-2 22:14
直接調用get_temp_ds(), 讀取溫度的全局變量。
不建議用這個代碼,不規范 .c文件都寫到了.h文件里。

是直接將get_temp_ds()寫進main函數嗎?我開始就寫了,但是讀不出來的
回復

使用道具 舉報

地板
ID:864872 發表于 2022-4-2 23:27 | 只看該作者
一事無成 發表于 2022-4-2 22:14
直接調用get_temp_ds(), 讀取溫度的全局變量。
不建議用這個代碼,不規范 .c文件都寫到了.h文件里。

就是我想將溫度輸出到lcd1602上,最后應該輸出哪幾個參數啊
回復

使用道具 舉報

5#
ID:301191 發表于 2022-4-4 01:43 | 只看該作者
頂一下
回復

使用道具 舉報

6#
ID:155507 發表于 2022-4-4 09:10 | 只看該作者
ds18b20是單總線器件,對時序要求非常高。


你的單片機主時鐘頻率是多少?


回復

使用道具 舉報

7#
ID:864872 發表于 2022-4-4 13:38 | 只看該作者
angmall 發表于 2022-4-4 09:10
ds18b20是單總線器件,對時序要求非常高。

晶振是12mhz
回復

使用道具 舉報

8#
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仿真上所測的溫度就是不對,而且調溫度傳感器上的溫度也不變化,就感覺傳感器是沒有工作的
回復

使用道具 舉報

9#
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. }
復制代碼
回復

使用道具 舉報

10#
ID:864872 發表于 2022-4-4 14:55 | 只看該作者

行了,謝謝老哥
回復

使用道具 舉報

11#
ID:864872 發表于 2022-4-4 14:58 | 只看該作者

我后頭重新檢查練一哈時序問題,然后再根據你說的把這個調到循環里面就行了,謝謝啦老哥,搞了兩三天了,就一直不行,最后還真是時序問題
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表