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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1308|回復(fù): 0
收起左側(cè)

DS18B20

[復(fù)制鏈接]
ID:289194 發(fā)表于 2018-3-9 08:27 | 顯示全部樓層 |閱讀模式
DS18B20時(shí)序詳解
初始化時(shí)序:
DS18B20的所有通信都是以由復(fù)位脈沖組成的初始化序列開(kāi)始。該初始化序列由主機(jī)發(fā)出,后跟由DS18B20發(fā)出的存在脈沖(presence pulse)。下圖闡述了這一點(diǎn)。
file:///C:\Users\houwanyou\AppData\Local\Temp\ksohtml\wps709D.tmp.jpg
DS18B20發(fā)出存在脈沖,通知主機(jī)它在總線(xiàn)上并且準(zhǔn)備好操作了。
在初始化時(shí)序中,總線(xiàn)上的主機(jī)通過(guò)拉低單總線(xiàn)至少480μs來(lái)發(fā)送復(fù)位脈沖。然后總線(xiàn)主機(jī)釋放總線(xiàn)并進(jìn)入接收模式?偩(xiàn)釋放后,4.7kΩ的上拉電阻把單總線(xiàn)上的電平拉回高電平。當(dāng)DS18B20檢測(cè)到上升沿后等待1560us,然后以拉低總線(xiàn)60-240us的方式發(fā)出存在脈沖。
所述,主機(jī)將總線(xiàn)拉低最短480us,之后釋放總線(xiàn)。由4.7kΩ上拉電阻總線(xiàn)恢復(fù)到高電平。DS18B20檢測(cè)到上升沿后等待1560us,發(fā)出存在脈沖:拉低總線(xiàn)60-240us。至此,初始化和存在時(shí)序完畢。

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

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区av在线 | 黄色国产在线播放 | 国产精品久久久久一区二区三区 | 一级在线观看 | 国产精品一区二区三区免费观看 | 亚洲视频一区在线 | 黄色片在线免费看 | 国产在线播放一区二区三区 | 中文字幕1区2区3区 日韩在线视频免费观看 | 精品国产一区二区三区在线观看 | 九九热精品视频 | 日韩av在线一区 | 91欧美激情一区二区三区成人 | 国产区精品 | 亚洲二区在线 | 伊人焦久影院 | 一本色道精品久久一区二区三区 | 大陆一级毛片免费视频观看 | 欧美成人激情 | 欧美xxxx色视频在线观看免费 | 精品国产乱码久久久久久蜜臀 | 日韩在线免费视频 | 国产精品69久久久久水密桃 | 一区二区免费在线视频 | 在线日韩在线 | 91精品国产91久久久久游泳池 | 蜜桃在线视频 | 亚洲成人播放器 | 国产美女视频黄a视频免费 国产精品福利视频 | 色姑娘av | av午夜激情 | 欧美日韩国产一区二区三区 | 亚洲视频一区在线观看 | 91热在线| 2019天天操 | 国产91在线观看 | 美女福利视频 | 国产精品视频一区二区三区四区国 | 免费亚洲成人 | 农村黄性色生活片 | 国产精品一区二区无线 |