赞助论坛
  • 3588阅读
  • 0回复

学习单片机之---DS18B20和PIC单片机通讯源程序 [复制链接]

楼层直达
jswr  
发帖
339
精华
1
金币
264
威望
8
贡献
7
好评
15
注册
2008-06-30
楼主    jswr 发表于: 2008-08-06 15:49:56 
DS18B20和PIC单片机通讯源程序


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