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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

需要DS1820的C51單片機源程序看看這里

[復制鏈接]
跳轉到指定樓層
樓主
ID:323716 發表于 2018-5-6 20:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
需要DS1820的C51源程序看看這里,這邊需要雙DS1820.正在研究中。。。。
  1. 網上有很多這樣的例程啊。給你一個STC的,STC的下載程序方便,上手也比較快

  2. CPU:STC12C5A48S2

  3. #include "18B20.h"  
  4. #include<intrins.h>
  5. #include <math.h>  //要用到取絕對值函數abs()
  6. /**************************************
  7. 延時X微秒(STC12C5A60S2@12M)
  8. 不同的工作環境,需要調整此函數
  9. 此延時函數是使用1T的指令周期進行計算,與傳統的12T的MCU不同
  10. **************************************/
  11. sbit  DQ=P1^0;   //定義18B20數據腳為P1.0端口

  12. void DelayXus(uint n)
  13. {
  14.     while (n--)
  15.     {                                                         
  16.         _nop_();
  17.         _nop_();
  18.     }
  19. }
  20. void getTmp_Update()
  21. {  
  22.     uint TPL,TPH,tmpvalue,value;
  23.     float t;
  24.        
  25.     Room_tmep=0;
  26.     DS18B20_Reset();                //設備復位
  27.     DS18B20_WriteByte(0xCC);        //跳過ROM命令
  28.     DS18B20_WriteByte(0x44);        //開始轉換命令
  29.        
  30.     while (!DQ){};                    //等待轉換完成
  31.     DS18B20_Reset();                //設備復位
  32.     DS18B20_WriteByte(0xCC);        //跳過ROM命令
  33.     DS18B20_WriteByte(0xBE);        //讀暫存存儲器命令
  34.     TPL = DS18B20_ReadByte();       //讀溫度低字節
  35.     TPH = DS18B20_ReadByte();       //讀溫度高字節
  36.         tmpvalue = TPH;
  37.     tmpvalue <<= 8;
  38.     tmpvalue |= TPL;
  39.     value = tmpvalue;

  40. t = value * 0.0625;          //使用DS18B20的默認分辨率12位, 精確度為0.0625度, 即讀回數據的最低位代表0.0625度
  41.                           /* 如果將它放大100倍, 使顯示時可顯示小數點后兩位, 并對小數點后第三進行4舍5入, 如t=11.0625, 進行計數后, 得到value = 1106, 即11.06 度,
  42.                                                  如t=-11.0625, 進行計數后, 得到value = -1106, 即-11.06 度 */
  43.          Room_tmep=        t;                 //得到最終溫度
  44. }
  45. /**************************************
  46. 復位DS18B20,并檢測設備是否存在
  47. **************************************/
  48. void DS18B20_Reset()
  49. {         
  50.     uchar  i=0;
  51.     CY = 1;
  52.     while (CY)
  53.     {       
  54.             
  55.         DQ = 0;                     //送出低電平復位信號
  56.         DelayXus(240);              //延時至少480us
  57.         DelayXus(240);
  58.         DQ = 1;                     //釋放數據線
  59.         DelayXus(60);               //等待60us
  60.         CY = DQ;                    //檢測存在脈沖
  61.         DelayXus(240);              //等待設備釋放數據線
  62.         DelayXus(180);       
  63.                 i++;
  64.                 if (i>50){AD_Error_code=1;return;}else{if (AD_Error_code==1)        {AD_Error_code=0;}}
  65.     }
  66. }
  67. /**************************************
  68. 從DS18B20讀1字節數據
  69. **************************************/
  70. uint DS18B20_ReadByte()
  71. {
  72.     uchar i;
  73.     uchar dat = 0;
  74.     for (i=0; i<8; i++)             //8位計數器
  75.     {
  76.         dat >>= 1;
  77.         DQ = 0;                     //開始時間片
  78.         DelayXus(1);                //延時等待
  79.         DQ = 1;                     //準備接收
  80.         DelayXus(1);                //接收延時
  81.         if (DQ) dat |= 0x80;        //讀取數據
  82.         DelayXus(60);               //等待時間片結束
  83.     }
  84.     return dat;
  85. }
  86. /**************************************
  87. 向DS18B20寫1字節數據
  88. **************************************/
  89. void DS18B20_WriteByte(uint dat)
  90. {
  91.     uchar i;
  92.     for (i=0; i<8; i++)             //8位計數器
  93.     {
  94.         DQ = 0;                     //開始時間片
  95.         DelayXus(1);                //延時等待
  96.         dat >>= 1;                  //送出數據
  97.         DQ = CY;
  98.         DelayXus(60);               //等待時間片結束
  99.         DQ = 1;                     //恢復數據線
  100.         DelayXus(1);                //恢復延時
  101.     }
  102. }

復制代碼


Ds1820 源程序.zip

42.39 KB, 下載次數: 10, 下載積分: 黑幣 -5

C51 讀DS1820

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 夜夜夜夜夜夜曰天天天 | xxx视频 | 日韩中文字幕网 | 国产一区二区三区四区五区加勒比 | 亚洲成年人免费网站 | 国产91精品久久久久久久网曝门 | 丁香一区二区 | 一级大片| 九九热这里 | 国产a区| 国产精品日韩一区 | 日韩中文一区二区三区 | 视频羞羞| 久久成人人人人精品欧 | 在线视频成人 | 在线视频一区二区 | 久久久综合 | 日韩欧美亚洲一区 | 国产精品一区二区不卡 | 成人在线小视频 | 成人福利视频 | 精品一区国产 | 国产精品夜间视频香蕉 | 久久国产视频一区 | 日本一区二区三区四区 | 亚洲欧美日韩在线 | 精品久久久久久亚洲精品 | 亚洲成人一区二区 | 精品欧美久久 | 中文字幕在线第一页 | 亚洲小视频在线观看 | av在线免费网 | 国产精品久久久久久亚洲调教 | 欧洲国产精品视频 | 97福利在线| 男人的天堂中文字幕 | 四虎永久在线精品免费一区二 | 一级片免费在线观看 | 亚洲欧美日韩精品久久亚洲区 | 男女羞羞视频在线 | 欧美日韩中文字幕在线 |