專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫(kù)分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
十年專注單片機(jī)方案開發(fā)的深圳英銳恩分享DS18B20和PIC單片機(jī)通訊源程序。
ORG PIC54
GOTO MAIN
ORG 0
;----------------------
;----------------------------
DELAY22
MOVLW D'200' ; DELAY 2*250=500mS
MOVWF COUNT1
DE32 MOVLW D'250' ; 8*250=2mS
MOVWF COUNT2
DE42 NOP ; 1+2+1=5uS
DECFSZ COUNT2,1
GOTO DE42
DECFSZ COUNT1,1
GOTO DE32
RETLW 0
;--------------------------------
; 子程序!!!
;********************************
MAIN
MOVLW 0FFH
TRIS RA
LOOP
CALL CONVERT
CALL DELAY22
CALL DELAY22
CALL GET_TEMP
GOTO LOOP
;------------------------
GET_TEMP
CALL INI
MOVLW 0CCH
MOVWF COMD
CALL WR1820
MOVLW 0BEH
MOVWF COMD
CALL WR1820
CALL RE1820
MOVF TEM_DATE,W
MOVWF TEM_DATEL
CALL RE1820
MOVF TEM_DATE,W
MOVWF TEM_DATEH
RETLW 0
;------------------------
CONVERT
CALL INI
MOVLW 0CCH
MOVWF COMD
CALL WR1820
MOVLW 44H
MOVWF COMD
CALL WR1820
RETLW 0
;---------DS1820---------
INI
;MOVLW B'00100000'
MOVLW 0
TRIS RA
BSF RA,3
NOP
BCF RA,3
MOVLW D'200'
MOVWF COUNT1
L0
DECFSZ COUNT1,1
GOTO L0
;MOVLW B'01100000'
MOVLW 0FH
TRIS RA
MOVLW D'30'
MOVWF COUNT1
L1
DECFSZ COUNT1,1
GOTO L1
BTFSC RA,3
GOTO INI
L2
MOVLW D'80'
MOVWF COUNT1
L3
DECFSZ COUNT1,1
GOTO L3
BTFSS RA,3
GOTO L0
RETLW 0
;-------------------------
WR1820
MOVLW 8
MOVWF COUNT2
WR0
;MOVLW B'00100000'
MOVLW 0
TRIS RA
BCF RA,3
NOP
NOP
MOVLW 2
MOVWF COUNT1
WR1
DECFSZ COUNT1,1
GOTO WR1
;MOVLW B'01111111'
MOVLW 0FH
BTFSC COMD,0
BSF RA,3
BTFSC COMD,0
TRIS RA
BCF STATUS,C
RRF COMD,1
MOVLW D'20'
MOVWF COUNT1
WR2
DECFSZ COUNT1,1
GOTO WR2
BSF RA,3
;MOVLW B'01100000'
MOVLW 0FH
TRIS RA
DECFSZ COUNT2,1
GOTO WR0
RETLW 0
;--------------------------
RE1820
MOVLW 8
MOVWF COUNT2
RE0
;MOVLW B'00100000'
MOVLW 0
TRIS RA
BCF RA,3
MOVLW 2
MOVWF COUNT1
RE1
DECFSZ COUNT1,1
GOTO RE1
;MOVLW B'01100000'
MOVLW 0FH
TRIS RA
NOP
BTFSS RA,3
BCF STATUS,C
BTFSC RA,3
BSF STATUS,C
RRF TEM_DATE,1
MOVLW D'20'
MOVWF COUNT1
RE2
DECFSZ COUNT1,1
GOTO RE2
DECFSZ COUNT2,1
GOTO RE0
BSF RA,3
RETLW 0
;-------------------------
;****************************
;**************************
END