新聞中心

        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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 西宁市| 洛南县| 仲巴县| 奈曼旗| 科尔| 海丰县| 白朗县| 昔阳县| 鸡西市| 建昌县| 尤溪县| 宁乡县| 堆龙德庆县| 雷山县| 开阳县| 凌云县| 小金县| 宣恩县| 峡江县| 金沙县| 林州市| 海伦市| 阿坝县| 孙吴县| 永善县| 蓬莱市| 岫岩| 黄梅县| 青海省| 凤凰县| 霍城县| 凯里市| 饶河县| 龙口市| 雅江县| 镇远县| 仁布县| 三原县| 黔西县| 揭西县| 抚州市|