新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 經典數字溫度傳感器DS18B20試驗

        經典數字溫度傳感器DS18B20試驗

        作者: 時間:2013-01-15 來源:網絡 收藏

        測溫實驗原理圖見下面圖3

        圖3

        新建Keil工程ds18sy.UV2,輸入下面的測溫實驗源程序,編譯得到HEX格式目標文件ds18sy.hex。

        ;--------- 下面是測溫實驗源程序 ---------

            ORG  0000H
        START: MOV  SP,#60H     ;開機初始化
            MOV  P0,#0FFH
            MOV  P1,#0FEH
            MOV  P2,#0FFH
            MOV  P3,#0FFH

        MAIN:  LCALL  GET_TEMPER   ;調用讀溫度子程序
            LCALL  DISP      ;調用數碼管顯示子程序
            AJMP  MAIN      ;重復循環

        ;------ 讀DS18B20傳感器的溫度值 ------
        GET_TEMPER:
            SETB  P3.3
            LCALL  RST18B20    ;復位DS18B20
            JB    00H,DSS2
            RET
        DSS2:  MOV   A,#0CCH    ;跳過ROM匹配
            LCALL  WR18B20
            MOV   A,#44H     ;向DS18B20發出溫度轉換命令
            LCALL  WR18B20
            LCALL  RST18B20    ;準備讀溫度前先復位DS18B20
            MOV   A,#0CCH    ;跳過ROM匹配
            LCALL  WR18B20
            MOV   A,#0BEH    ;向DS18B20發出讀溫度命令
            LCALL  WR18B20
            LCALL  RE18B20    ;讀出溫度數據
            RET

        ;------ DS18B20復位初始化程序 ------
        RST18B20:
            SETB  P3.3
            NOP
            CLR   P3.3
            MOV   R0,#06BH    ;主機發出復位低脈沖
            MOV   R1,#03H
        DSR1:  DJNZ  R0,DSR1
            MOV   R0,#6BH
            DJNZ  R1,DSR1
            SETB  P3.3      ;拉高數據線
            NOP
            NOP
            NOP
            MOV   R0,#25H
        DSR2:  JNB   P3.3,DSR3    ;等待DS18B20回應
            DJNZ  R0,DSR2
            LJMP  DSR4
        DSR3:  SETB  00H       ;置標志位,表示DS1820存在
            LJMP  DSR5
        DSR4:  CLR   00H        ;清標志位,表示DS1820不存在
            LJMP  DSR7
        DSR5:  MOV   R0,#06BH
        DSR6:  DJNZ  R0,DSR6     ;延時一段時間
        DSR7:  SETB  P3.3
            RET

        ;------ 寫DS18B20的子程序 ------
        WR18B20:
            MOV   R2,#8
            CLR   C
        WR1:  CLR   P3.3
            MOV   R3,#6
            DJNZ  R3,$
            RRC   A
            MOV   P3.3,C
            MOV   R3,#23
            DJNZ  R3,$
            SETB  P3.3
            NOP
            DJNZ  R2,WR1
            SETB  P3.3
            RET



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 盐城市| 涞源县| 库车县| 广昌县| 瓦房店市| 大悟县| 靖边县| 武义县| 德令哈市| 霍山县| 武威市| 大名县| 秦皇岛市| 慈溪市| 云和县| 华安县| 宜都市| 高要市| 上栗县| 镇赉县| 南宫市| 炉霍县| 广州市| 仙游县| 屯留县| 普宁市| 广饶县| 富川| 沾益县| 肥东县| 广元市| 青浦区| 敦煌市| 盐城市| 沾益县| 斗六市| 佳木斯市| 韶关市| 六枝特区| 平乡县| 文化|