音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

為什么讀出來的溫度一直為85度不變?

作者:dongfan 欄目:單片機
為什么讀出來的溫度一直為85度不變?
;實驗?zāi)康模?a target="_blank" href="http://m.58mhw.cn/stock-ic/1820.html">1820的應(yīng)用
;實驗現(xiàn)象:將1820測量出來的溫度在P1口上顯示出來

DQ      BIT    P2.0

    ORG 0
    AJMP MAIN
    ORG 30H
MAIN:    MOV SP,#30H

LOOP:    LCALL FUWEI        ;復(fù)位
    
    MOV A,#0CCH    
    LCALL WRITE        ;跳過64位指令代碼,即向1820寫CCH
    MOV A,#44H
    LCALL WRITE        ;啟動溫度變換,即向1820寫44H
    
    LCALL FUWEI        ;復(fù)位
    
    MOV A,#0CCH    
    LCALL WRITE        ;跳過64位指令代碼,即向1820寫CCH
    MOV A,#0BEH
    LCALL WRITE        ;發(fā)讀溫度數(shù)據(jù)指令,即向1820寫B(tài)EH
    
    LCALL READ        ;讀數(shù)據(jù)
    
    MOV A,7FH
    MOV P1,0FFH
    MOV P1,A
    AJMP LOOP
    
;*********************************子程序區(qū)*********************************

;*************************復(fù)位子程序*************************
FUWEI:
    SETB    DQ
    NOP
    CLR    DQ
    MOV    R0,#06BH
TSR1:
    DJNZ    R0,TSR1        ; 延時
    SETB    DQ
    MOV    R0,#25H
TSR2:
    JNB    DQ,TSR3
    DJNZ    R0,TSR2
    LJMP    TSR4            ; 延時
TSR3:
    SETB    F0            ; 置標(biāo)志位,表示DS1820存在
    LJMP    TSR5
TSR4:
    CLR    F0            ; 清標(biāo)志位,表示DS1820不存在
    LJMP    TSR7
TSR5:
    MOV    R0,#06BH
TSR6:
    DJNZ    R0,TSR6        ; 延時
TSR7:
    SETB    DQ
    RET
    
;//*****************************************//
;寫DS18B20的子程序

WRITE:    MOV    R2,#8        ;共寫8位
        CLR    C

WR1:    CLR    DQ        ;寫之前先送一低脈沖
        NOP
        SETB    DQ        ;然后再拉高
        RRC    A
        MOV    DQ,C
        MOV    R3,#20
        DJNZ    R3,$
        SETB    DQ
        NOP
        DJNZ    R2,WR1
        SETB    DQ
        RET
        
;//*****************************************//
; 讀DS18B20的程序,從DS18B20中讀出兩個字節(jié)的溫度數(shù)據(jù)

READ:      MOV     R4,#2           ;將溫度高位和低位從DS18B20中讀出
        MOV     R1,#7FH            ;低位存入7FH,高位存入7EH
RE00:      MOV     R2,#8
RE01:    CLR     DQ
        NOP
        NOP
        SETB    DQ
        MOV     R3,#7
        DJNZ    R3,$
        MOV     C,DQ
        NOP
        RRC     A
        DJNZ    R2,RE01
        MOV     @R1,A
        DEC     R1
        DJNZ    R4,RE00
        RET
    END
;問題:為什么讀出來的溫度一直為85度不變?
    

2樓: >>參與討論
maychang
18B20轉(zhuǎn)換一次需要大約0.85秒
你給芯片的轉(zhuǎn)換時間不夠,尚未轉(zhuǎn)換完,所以讀出的是芯片上電后的默認值,即85度。試試延時一秒再讀。

3樓: >>參與討論
yuxing276
在寫讀命令后延時一下再進行讀操作可能問題就沒了。。
maychang 說的對,在寫讀命令后延時一下再進行讀操作可能問題就沒了。。

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
拋轉(zhuǎn)引玉 SM5964 開發(fā)心得!
關(guān)于雙單片機系統(tǒng)的問題
請教有關(guān)IO口擴展
請問各位老兄這句話咋翻譯?
請教前輩關(guān)于430的ADC的問題,有測量數(shù)據(jù).
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號