關(guān) 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 數(shù)字溫度傳感器DS18B20的原理與應(yīng)用

        數(shù)字溫度傳感器DS18B20的原理與應(yīng)用

        作者: 時間:2010-04-02 來源:網(wǎng)絡(luò) 收藏

        4 與單片機(jī)的典型接口設(shè)計

        圖4以MCS-51系列單片機(jī)為例,畫出了與微處理器的典型連接。圖4(a)中采用寄生電源方式,其VDD和GND端均接地,圖4(b)中DS18B20采用外接電源方式,其VDD端用3V~5.5V電源供電。


        a)寄生電源工作方式
        (b)外接電源工作方式


        圖4DS18B20與微處理器的典型連接圖

        假設(shè)單片機(jī)系統(tǒng)所用的晶振頻率為12MHz,根據(jù)DS18B20的初始化時序、寫時序和讀時序,分別編寫了3個子程序:INIT為初始化子程序,WRITE為寫(命令或數(shù)據(jù))子程序,READ為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫均由最低位開始。

        DATEQUP1.0
        ……
        INIT:CLREA
        INI10:SETBDAT
        MOVR2,#200
        INI11:CLRDAT
        DJNZR2,INI11;主機(jī)發(fā)復(fù)位脈沖持續(xù)3μs×200=600μs
        SETBDAT;主機(jī)釋放總線,口線改為輸入
        MOVR2,#30
        IN12:DJNZR2,INI12;DS18B20等待2μs×30=60μs
        CLRC
        ORLC,DAT;DS18B20數(shù)據(jù)線變低(存在脈沖)嗎?
        JCINI10;DS18B20未準(zhǔn)備好,重新初始化
        MOVR6,#80
        INI13:ORLC,DAT
        JCINI14;DS18B20數(shù)據(jù)線變高,初始化成功
        DJNZR6,INI13;數(shù)據(jù)線低電平可持續(xù)3μs×80=240μs
        SJMPINI10;初始化失敗,重來
        INI14:MOVR2,#240
        IN15:DJNZR2,INI15;DS18B20應(yīng)答最少2μs×240=480μs
        RET
        ;------------------------
        WRITE:CLREA
        MOVR3,#8;循環(huán)8次,寫一個字節(jié)
        WR11:SETBDAT
        MOVR4,#8
        RRCA;寫入位從A中移到CY
        CLRDAT
        WR12:DJNZR4,WR12
        ;等待16μs
        MOVDAT,C;命令字按位依次送給DS18B20
        MOVR4,#20
        WR13:DJNZR4,WR13
        ;保證寫過程持續(xù)60μs
        DJNZR3,WR11
        ;未送完一個字節(jié)繼續(xù)
        SETBDAT
        RET



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 黔南| 姜堰市| 保德县| 长白| 东光县| 德保县| 乐亭县| 临颍县| 胶州市| 安顺市| 拉萨市| 炎陵县| 中方县| 虞城县| 阜平县| 新干县| 建德市| 商都县| 锡林郭勒盟| 环江| 永昌县| 乌兰县| 平舆县| 张家川| 宁阳县| 长武县| 东乡县| 江西省| 固镇县| 余姚市| 大宁县| 九龙坡区| 上犹县| 禄劝| 昆山市| 扶风县| 渭源县| 陈巴尔虎旗| 富阳市| 乌兰察布市| 厦门市|