久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機+ds18b20溫度讀取錯誤 求幫助

查看數(shù): 3054 | 評論數(shù): 7 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2020-8-15 09:10

正文摘要:

是不是代碼錯誤了 #include"temp.h" /******************************************************************************* * 函 數(shù) 名         : Delay1ms * 函數(shù)功能  &nbs ...

回復

ID:745303 發(fā)表于 2020-8-21 14:08

你好我把實物做了出來之后有時會出現(xiàn)數(shù)據(jù)讀取錯誤的現(xiàn)象,是不是在源代碼中l(wèi)cd顯示時溫度值得計算有錯誤
ID:745303 發(fā)表于 2020-8-20 14:29
楓城落 發(fā)表于 2020-8-17 18:37
Ds18b20Init定義有問題

可以幫忙再修改下嗎
ID:745303 發(fā)表于 2020-8-18 15:06
wulin 發(fā)表于 2020-8-17 17:47
把temp.h頭文件里函數(shù)聲明也改成bit Ds18b20Init();即可。

可以了謝謝
ID:814418 發(fā)表于 2020-8-17 18:37
Ds18b20Init定義有問題
ID:213173 發(fā)表于 2020-8-17 17:47
66584 發(fā)表于 2020-8-17 13:21
你好,你的函數(shù)在35到48這一段出現(xiàn)了Ds18b20Init重新定義的問題

把temp.h頭文件里函數(shù)聲明也改成bit Ds18b20Init();即可。
ID:745303 發(fā)表于 2020-8-17 13:21
wulin 發(fā)表于 2020-8-15 21:13
給你修改一下,經(jīng)驗證正常。

你好,你的函數(shù)在35到48這一段出現(xiàn)了Ds18b20Init重新定義的問題
ID:213173 發(fā)表于 2020-8-15 21:13
給你修改一下,經(jīng)驗證正常。
  1. #include"temp.h"
  2. /*------------------------------------------------
  3. * 函 數(shù) 名         : DelayUs2x 長度如下 T=tx2+5 uS
  4. * 函數(shù)功能         : 延時函數(shù)
  5. * 輸    入         : 無
  6. * 輸    出         : 無
  7. ------------------------------------------------*/
  8. void DelayUs2x(uchar t)
  9. {   
  10.         while(--t);
  11. }
  12. /*******************************************************************************
  13. * 函 數(shù) 名         : Delay1ms
  14. * 函數(shù)功能         : 延時函數(shù)
  15. * 輸    入         : 無
  16. * 輸    出         : 無
  17. *******************************************************************************/

  18. void Delay1ms(uint y)
  19. {
  20.         while(y--)
  21.         {
  22.                 //大致延時1mS
  23.                 DelayUs2x(245);
  24.                 DelayUs2x(245);
  25.         }
  26. }
  27. /*******************************************************************************
  28. * 函 數(shù) 名         : Ds18b20Init
  29. * 函數(shù)功能         : 初始化
  30. * 輸    入         : 無
  31. * 輸    出         : 初始化成功返回1,失敗返回0
  32. *******************************************************************************/

  33. bit Ds18b20Init()
  34. {
  35.         bit dat=0;
  36.         DSPORT = 1;    //DSPORT復位
  37.         DelayUs2x(5);   //稍做延時
  38.         DSPORT = 0;         //單片機將DSPORT拉低
  39.         DelayUs2x(200); //精確延時 大于 480us 小于960us
  40.         DelayUs2x(200);
  41.         DSPORT = 1;        //拉高總線
  42.         DelayUs2x(50); //15~60us 后 接收60-240us的存在脈沖
  43.         dat=DSPORT;        //如果x=0則初始化成功, x=1則初始化失敗
  44.         DelayUs2x(25); //稍作延時返回
  45.         return dat;
  46. }

  47. /*******************************************************************************
  48. * 函 數(shù) 名         : Ds18b20WriteByte
  49. * 函數(shù)功能         : 向18B20寫入一個字節(jié)
  50. * 輸    入         : com
  51. * 輸    出         : 無
  52. *******************************************************************************/

  53. void Ds18b20WriteByte(uchar dat)
  54. {
  55.         uchar i=0;
  56.         for(i=8; i>0; i--)
  57.         {
  58.                 DSPORT = 0;
  59.                 DSPORT = dat&0x01;
  60.                 DelayUs2x(25);
  61.                 DSPORT = 1;
  62.                 dat>>=1;
  63.         }
  64.         DelayUs2x(25);
  65. }
  66. /*******************************************************************************
  67. * 函 數(shù) 名         : Ds18b20ReadByte
  68. * 函數(shù)功能         : 讀取一個字節(jié)
  69. * 輸    入         : com
  70. * 輸    出         : 無
  71. *******************************************************************************/
  72. uchar Ds18b20ReadByte()
  73. {
  74.         uchar i=0;
  75.         uchar dat = 0;
  76.         for (i=8;i>0;i--)
  77.         {
  78.                 DSPORT = 0; // 給脈沖信號
  79.                 dat>>=1;
  80.                 DSPORT = 1; // 給脈沖信號
  81.                 if(DSPORT)
  82.                 dat|=0x80;
  83.                 DelayUs2x(25);
  84.         }
  85.         return(dat);
  86. }
  87. /*******************************************************************************
  88. * 函 數(shù) 名         : Ds18b20ChangTemp
  89. * 函數(shù)功能         : 讓18b20開始轉(zhuǎn)換溫度
  90. * 輸    入         : com
  91. * 輸    出         : 無
  92. *******************************************************************************/

  93. void  Ds18b20ChangTemp()
  94. {
  95.         Ds18b20Init();
  96. //        Delay1ms(1);
  97.         Ds18b20WriteByte(0xcc);                //跳過ROM操作命令                 
  98.         Ds18b20WriteByte(0x44);            //溫度轉(zhuǎn)換命令
  99.         Delay1ms(10);                                                //等待轉(zhuǎn)換成功
  100. }
  101. /*******************************************************************************
  102. * 函 數(shù) 名         : Ds18b20ReadTempCom
  103. * 函數(shù)功能         : 發(fā)送讀取溫度命令
  104. * 輸    入         : com
  105. * 輸    出         : 無
  106. *******************************************************************************/

  107. void  Ds18b20ReadTempCom()
  108. {        
  109.         Ds18b20Init();
  110. //        Delay1ms(1);
  111.         Ds18b20WriteByte(0xcc);         //跳過ROM操作命令
  112.         Ds18b20WriteByte(0xbe);         //發(fā)送讀取溫度命令
  113. }
  114. /*******************************************************************************
  115. * 函 數(shù) 名         : Ds18b20ReadTemp
  116. * 函數(shù)功能                   : 讀取溫度
  117. * 輸    入         : com
  118. * 輸    出         : 無
  119. *******************************************************************************/

  120. int Ds18b20ReadTemp()
  121. {
  122.         int temp = 0;
  123.         uchar tmh, tml;
  124.         Ds18b20ChangTemp();         //先寫入轉(zhuǎn)換命令
  125.         Ds18b20ReadTempCom();       //然后等待轉(zhuǎn)換完后發(fā)送讀取溫度命令
  126.         tml = Ds18b20ReadByte();    //讀取溫度值共16位,先讀低字節(jié)
  127.         tmh = Ds18b20ReadByte();    //再讀高字節(jié)
  128.         temp = tmh<<8|tml;
  129.         return temp;
  130. }
復制代碼

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91视频国产精品 | 求个av网址 | 欧美片网站免费 | 一级黄色生活视频 | 亚洲欧美日韩电影 | 老司机深夜福利网站 | 欧洲视频一区二区 | 欧美日韩在线成人 | 亚洲色图综合 | 一区二区三区视频在线免费观看 | 久久国产精品99久久久久 | 欧洲免费视频 | 亚洲精品一二三区 | 国产精品一卡 | 色婷婷综合久久久中文字幕 | a级在线观看 | 福利一区在线观看 | 视频在线h| 91色在线 | 久久在线 | 国内自拍偷拍视频 | 久久精品免费观看 | 国产日韩精品在线 | 亚洲综合色丁香婷婷六月图片 | 99精品久久 | 狠狠av| 日韩一区二区三区视频在线观看 | 国产精品高潮呻吟久久av黑人 | 啪啪免费 | 国产一区二区三区免费视频 | 日韩成人在线观看 | 久久精品在线 | 天天综合永久入口 | 中文字幕亚洲区一区二 | 成人在线视频免费播放 | 国产精品视频一区二区三区不卡 | 男人天堂久久 | 国产蜜臀97一区二区三区 | 国产精品一区在线播放 | 亚洲精品久久 | 国产一区二区三区四区 |