專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力
提供最新的單片機資訊,行業(yè)消息以及公司新聞動態(tài)
十年專注單片機方案開發(fā)的方案公司英銳恩,分享DS18b20同PIC16C54單片機通訊源程序。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機、16位單片機、32位單片機及各類運算放大器等。
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