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

標題: 求助調用ds18b20.h文件到主函數里讀出溫度? [打印本頁]

作者: hempfish    時間: 2022-4-2 20:56
標題: 求助調用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)

仿真就是這種顯示

仿真就是這種顯示

作者: 一事無成    時間: 2022-4-2 22:14
直接調用get_temp_ds(), 讀取溫度的全局變量。
不建議用這個代碼,不規范 .c文件都寫到了.h文件里。

ps 建議去看看c語言和通信協議。
作者: hempfish    時間: 2022-4-2 23:23
一事無成 發表于 2022-4-2 22:14
直接調用get_temp_ds(), 讀取溫度的全局變量。
不建議用這個代碼,不規范 .c文件都寫到了.h文件里。

是直接將get_temp_ds()寫進main函數嗎?我開始就寫了,但是讀不出來的
作者: hempfish    時間: 2022-4-2 23:27
一事無成 發表于 2022-4-2 22:14
直接調用get_temp_ds(), 讀取溫度的全局變量。
不建議用這個代碼,不規范 .c文件都寫到了.h文件里。

就是我想將溫度輸出到lcd1602上,最后應該輸出哪幾個參數啊
作者: 人工置頂員    時間: 2022-4-4 01:43
頂一下
作者: angmall    時間: 2022-4-4 09:10
ds18b20是單總線器件,對時序要求非常高。


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



作者: hempfish    時間: 2022-4-4 13:38
angmall 發表于 2022-4-4 09:10
ds18b20是單總線器件,對時序要求非常高。

晶振是12mhz
作者: hempfish    時間: 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仿真上所測的溫度就是不對,而且調溫度傳感器上的溫度也不變化,就感覺傳感器是沒有工作的
作者: angmall    時間: 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. }
復制代碼

作者: hempfish    時間: 2022-4-4 14:55
angmall 發表于 2022-4-4 14:28
試試這樣

行了,謝謝老哥
作者: hempfish    時間: 2022-4-4 14:58
angmall 發表于 2022-4-4 14:28
試試這樣

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




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1