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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

DS18B20

[復制鏈接]
跳轉到指定樓層
樓主
ID:289194 發表于 2018-3-9 08:27 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
DS18B20時序詳解
初始化時序:
DS18B20的所有通信都是以由復位脈沖組成的初始化序列開始。該初始化序列由主機發出,后跟由DS18B20發出的存在脈沖(presence pulse)。下圖闡述了這一點。
file:///C:\Users\houwanyou\AppData\Local\Temp\ksohtml\wps709D.tmp.jpg
DS18B20發出存在脈沖,通知主機它在總線上并且準備好操作了
在初始化時序中,總線上的主機通過拉低單總線至少480μs發送復位脈沖。然后總線主機釋放總線并進入接收模式。總線釋放后,4.7kΩ的上拉電阻把單總線上的電平拉回高電平。當DS18B20檢測到上升沿后等待1560us,然后以拉低總線60-240us的方式發出存在脈沖。
所述,主機將總線拉低最短480us,之后釋放總線。由4.7kΩ上拉電阻總線恢復到高電平。DS18B20檢測到上升沿后等待1560us,發出存在脈沖:拉低總線60-240us。至此,初始化和存在時序完畢。

    /*延時函數:(由于DS18B20延時均以15us為單位,故編寫了延時單位為15us的延時函數,注意:以下延時函數晶振為12MHz*/
    /*
    ************************************
    函數:Delayxus_DS18B20
    功能:DS18B20延時函數
    參數:t為定時時間長度
    返回:無
    說明: 延時公式:15n+15(近似),晶振12Mhz
    ******************************************
    */
    void Delayxus_DS18B20(unsigned int t)
    {
          for(t;t>0;t--)
          {
                 _nop_();_nop_();_nop_();_nop_();
          }     
          _nop_(); _nop_();
    }
/*
    ************************************
    函數:RST_DS18B20
    功能:復位DS18B20,讀取存在脈沖并返回
    參數:無
    返回:1:復位成功 ;0:復位失敗
    說明: 拉低總線至少480us ;可用于檢測DS18B20工作是否正常
    ******************************************
    */
    bit RST_DS18B20()
    {            
          bit ret="1";
          DQ=0;/*拉低總線 */
          Delayxus_DS18B20(32);/*為保險起見,延時495us */
          DQ=1;/*釋放總線 ,DS18B20檢測到上升沿后會發送存在脈沖*/
          Delayxus_DS18B20(4);/*需要等待15~60us,這里延時75us后可以保證接受到的是存在脈沖 */
          ret=DQ;
          Delayxus_DS18B20(14);/*延時495us,讓ds18b20釋放總線,避免影響到下一        步的操作 */
       DQ=1;/*釋放總線 */
          return(~ret);
    }
寫時序:
主機在寫時隙向DS18B20寫入數據,在讀時隙從DS18B20數據。在單總線上每個時隙只傳送一位數據。
有兩種寫時隙:寫“0”時間隙和寫“1”時間隙。總線主機使用寫“1”時間隙向DS18B20寫入邏輯1,使用寫“0”時間隙向DS18B20寫入邏輯0.所有的寫時隙必須有最少60us的持續時間,相鄰兩個寫時隙必須要有最少1us的恢復時間。兩種寫時隙都通過主機拉低總線產生(見圖)。
file:///C:\Users\houwanyou\AppData\Local\Temp\ksohtml\wps709E.tmp.jpg
產生寫1時隙,在拉低總線后主機必須在15μs內釋放總線。在總線被釋放后,由于4.7kΩ上拉電阻總線恢復為高電平。為產生寫0時隙,在拉低總線后主機必須繼續拉低總線以滿足時隙持續時間的要求(至少60μs)
在主機產生寫時隙后,DS18B20會在其后的1560us的一個時間窗口內采樣單總線。在采樣的時間窗口內,如果總線為高電平,主機會向DS18B20寫入1;如果總線為低電平,主機會向DS18B20寫入0
所述,所有的寫時隙必須至少有60us的持續時間。相鄰兩個寫時隙必須要有最少1us的恢復時間。所有的寫時隙(寫0和寫1)都由拉低總線產生。
寫函數為:
    /*
    ************************************
    函數:WR_Bit
    功能:向DS18B20寫一位數據
    參數:i為待寫的位
    返回:無
    說明: 總線從高拉到低產生寫時序
    ******************************************
    */
    void WR_Bit(bit i)
    {
          DQ=0;//產生寫時序
          _nop_();
          _nop_();//總線拉低持續時間要大于1us
          DQ=i;//寫數據 ,01均可
          Delayxus_DS18B20(3);//延時60us,等待ds18b20采樣讀取
          DQ=1;//釋放總線
    }
    /*
/*
    ***********************************
    函數:WR_Byte
    功能:DS18B20寫字節函數,先寫最低位
    參數:dat為待寫的字節數據
    返回:無
    說明:無
    ******************************************
    */
    void WR_Byte(unsigned char dat)
    {
          unsigned char i="0";
          while(i++<8)
          {
                 WR_Bit(dat&0x01);//從最低位寫起
                 dat>>=1; //注意不要寫成dat>>1
          }
    }
讀時序:
DS18B20只有在主機發出讀時隙后才會向主機發送數據。因此,在發出讀暫存器命令 [BEh]或讀電源命令[B4h]后,主機必須立即產生讀時隙以便DS18B20提供所需數據。另外,主機

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久草资源在线视频 | 成人3d动漫一区二区三区91 | 成人国产免费视频 | 久久高清精品 | 欧美成视频在线观看 | 亚洲看片网站 | 精品日韩一区 | 瑞克和莫蒂第五季在线观看 | 亚洲va国产日韩欧美精品色婷婷 | 国产精品日产欧美久久久久 | 国产亚洲第一页 | 国产露脸对白88av | 一区二区成人 | 夜夜撸av | 中文字幕免费在线 | 亚洲精品888 | 四虎网站在线观看 | 久久国产一区二区三区 | 久久最新网址 | av黄色国产| 狠狠亚洲| 日韩视频中文字幕 | www.中文字幕.com | 欧美一级久久 | 成人国产精品久久久 | 一区二区三区四区在线 | 精品一区二区三区免费视频 | 久草资源| 欧美在线视频一区 | 中文字幕在线免费观看 | 国产农村妇女毛片精品久久麻豆 | 午夜在线观看视频 | 欧美成人a | 第一av | 精品一区二区三区在线视频 | 日韩精品一区二区三区中文在线 | 久久av网| www.午夜 | 国产成人在线免费 | 欧美在线一区视频 | 国产伦精品一区二区三区在线 |