技术热线: 4007-888-234

DS18b20同PIC16C54单片机通讯源程序

更新时间: 2019-03-23
阅读量:1963

十年专注单片机方案开发的方案公司英锐恩,分享DS18b20同PIC16C54单片机通讯源程序。英锐恩现提供服务产品涉及主控芯片: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