Program na záznam teploty s PIC16F628A

Tak jsem si to upravil ponechávám tam emulaci usartu bude stačit změna GPIO na PORTB? nebo jak to mám upravit ?přikládám upravený zdroják díky

[code];**************************************************************************
; PIC12F629 + DS18B20 (C)Pandatron.cz, 2008
;--------------------------------------------------------------------------
;
; Processor : PIC12F629
; Clock : INTOSC (4MHz)
;
;**************************************************************************

    LIST P=16F628, R=DEC
    INCLUDE<P16F628.INC>
    
    __CONFIG _PWRTE_ON & _WDT_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT

UARTREG equ 0x20 ; odesilani dat do PC
UARTCNT equ 0x21
UARTROT equ 0x22
PAUS1 equ 0x23 ; 10s pauza
PAUS2 equ 0x24
PAUS3 equ 0x25
DSDL1 equ 0x26 ; komunikace s DS18B20
DSREG1 equ 0x27
DSREG2 equ 0x28
TEMPL equ 0x29
TEMPH equ 0x2A
TEMPNM equ 0x2B ; ???, °C
TEMPDP equ 0x2C ; ,? °C

#define UART PORTB,0 ; UART pin
#define DSPIN PORTB,2 ; DS18B20 pin

D550US equ 200 ; 550us
D90US equ 25 ; 90us
D1US equ 1 ; 3us

SPEED equ 34 ; SPEED - Baud
; 145 - 2400
; 71 - 4800
; 34 - 9600
; 21 - 14400
; 15 - 19200
; 5 - 38400

; ========================================================================
; Start procesoru
;
org 0x00
goto INIT

INIT MOVLW 0x7 ; komparator off
MOVWF CMCON

    GOTO    START

START CALL DSSTART ; start prevodu teploty v cidlu
CALL PAUSE ; 10s
CALL DSREAD ; vyčtení teploty z cidla
CALL TMPCNV ; prevod binarni teploty na hodnotu
CALL TEMPSND ; odeslani teploty do PC
GOTO START

; ========================================================================
; DS18B20 rutiny
;
DSSTART CALL DSPINL ; start prevodu teploty
MOVLW D550US ; reset pulse
CALL DSDEL
CALL DSPINH
MOVLW D90US
CALL DSDEL
BTFSC DSPIN
RETURN ; bez odpovedi - konec
MOVLW D550US
CALL DSDEL
MOVLW 0xCC
CALL DSSEND
MOVLW 0x44
CALL DSSEND
RETURN

;---------------------

DSREAD CLRF TEMPL ; vycteni teploty z cidla
CLRF TEMPH
CALL DSPINL
MOVLW D550US ; reset pulse
CALL DSDEL
CALL DSPINH
MOVLW D90US
CALL DSDEL
BTFSC DSPIN
RETURN ; bez odpovedi - konec
MOVLW D550US
CALL DSDEL
MOVLW 0xCC
CALL DSSEND
MOVLW 0xBE
CALL DSSEND
CALL DSREC
MOVWF TEMPL
CALL DSREC
MOVWF TEMPH
RETURN

;---------------------

DSPINL BSF STATUS,RP0 ; pin DSPIN do L
BCF DSPIN
BCF STATUS,RP0
BCF DSPIN
RETURN

;---------------------

DSPINH BSF STATUS,RP0 ; pin DSPIN do H (pull-up)
BSF DSPIN
BCF STATUS,RP0
RETURN

;---------------------

DSDEL MOVWF DSDL1 ; prodleva pro komunikaci
DECFSZ DSDL1,1
GOTO $-1
RETURN

;---------------------

DSSEND MOVWF DSREG1 ; odeslani jednoho bytu z W do DS18B20
MOVLW 8
MOVWF DSREG2
DSSND1 CALL DSPINL
BTFSC DSREG1,0
CALL DSPINH
MOVLW D90US
CALL DSDEL
CALL DSPINH
RRF DSREG1,1
DECFSZ DSREG2,1
GOTO DSSND1
MOVLW D90US
CALL DSDEL
RETURN

;---------------------

DSREC CLRF DSREG1 ; vycteni jednoho bytu z DS18B20 do W
MOVLW 8
MOVWF DSREG2
DSREC1 RRF DSREG1,1
CALL DSPINL
CALL DSPINH
MOVLW D1US
CALL DSDEL
BCF DSREG1,7
BTFSC DSPIN
BSF DSREG1,7
MOVLW D90US
CALL DSDEL
DECFSZ DSREG2,1
GOTO DSREC1
MOVLW D90US
CALL DSDEL
MOVF DSREG1,0
RETURN

; ========================================================================
; Prevod binarni hodnoty ziskane z cidla na velikost teploty
TMPCNV CLRF TEMPNM
CLRF TEMPDP
BTFSS TEMPH,7
GOTO $+5
COMF TEMPH,1
COMF TEMPL,1
MOVLW 200
MOVWF TEMPNM

    MOVF    TEMPDP,0
    BTFSC   TEMPL,1
    ADDLW   1
    BTFSC   TEMPL,2
    ADDLW   2
    BTFSC   TEMPL,3
    ADDLW   5
    MOVWF   TEMPDP
    
    MOVF    TEMPNM,0
    BTFSC   TEMPL,4
    ADDLW   1
    BTFSC   TEMPL,5
    ADDLW   2
    BTFSC   TEMPL,6
    ADDLW   4
    BTFSC   TEMPL,7
    ADDLW   8

    BTFSC   TEMPH,0
    ADDLW   16
    BTFSC   TEMPH,1
    ADDLW   32
    BTFSC   TEMPH,2
    ADDLW   64
    MOVWF   TEMPNM
  
    RETURN

; ========================================================================
; Odeslani jednoho bytu z W do UARTU
;
USEND MOVWF UARTREG
BSF STATUS,RP0
BCF UART
BCF STATUS,RP0
BSF UART
CALL UARTDEL
NOP
NOP
NOP
MOVLW 8
MOVWF UARTROT
BTFSS UARTREG,0
GOTO $+3
BCF UART
GOTO $+3
BSF UART
NOP
CALL UARTDEL
RRF UARTREG,1
DECFSZ UARTROT,1
GOTO $-9
BCF UART
CALL UARTDEL
BSF STATUS,RP0
BSF UART
BCF STATUS,RP0
RETURN

UARTDEL MOVLW SPEED
MOVWF UARTCNT
DECFSZ UARTCNT,1
GOTO $-1
RETURN

; ========================================================================
; Odeslani textu a teploty do PC
;
TEMPSND MOVLW ‘T’ ; T
CALL USEND
MOVLW ‘e’ ; e
CALL USEND
MOVLW ‘p’ ; p
CALL USEND
MOVLW ‘l’ ; l
CALL USEND
MOVLW ‘o’ ; o
CALL USEND
MOVLW ‘t’ ; t
CALL USEND
MOVLW ‘a’ ; a
CALL USEND
MOVLW ‘:’ ; :
CALL USEND
MOVLW ’ ’ ;
CALL USEND

    MOVLW   200
    SUBWF   TEMPNM,1
    BTFSS   STATUS,C
    GOTO    $+4
    MOVLW   '-'             ; -
    CALL    USEND
    GOTO    $+2
    ADDWF   TEMPNM,1

    MOVLW   100
    SUBWF   TEMPNM,1
    BTFSS   STATUS,C
    GOTO    $+4
    MOVLW   '1'             ; 100°C
    CALL    USEND
    GOTO    $+2
    ADDWF   TEMPNM,1
    
    CLRF    TEMPH
    MOVLW   10
    SUBWF   TEMPNM,1
    BTFSS   STATUS,C
    GOTO    $+3
    INCF    TEMPH,1
    GOTO    $-4
    ADDWF   TEMPNM,1
    MOVF    TEMPH,0
    ADDLW   0x30
    CALL    USEND           ; 10°C
    
    CLRF    TEMPH
    MOVLW   1
    SUBWF   TEMPNM,1
    BTFSS   STATUS,C
    GOTO    $+3
    INCF    TEMPH,1
    GOTO    $-4
    ADDWF   TEMPNM,1
    MOVF    TEMPH,0
    ADDLW   0x30
    CALL    USEND           ; 1°C
    
    MOVLW   ','             ; ,
    CALL    USEND
    
    CLRF    TEMPH
    MOVLW   1
    SUBWF   TEMPDP,1
    BTFSS   STATUS,C
    GOTO    $+3
    INCF    TEMPH,1
    GOTO    $-4
    ADDWF   TEMPDP,1
    MOVF    TEMPH,0
    ADDLW   0x30
    CALL    USEND           ; 0,1°C
 
    MOVLW   '°'             ; °
    CALL    USEND
    MOVLW   'C'             ; C
    CALL    USEND
    
    MOVLW   0x0A
    CALL    USEND           ; Enter
    MOVLW   0x0D
    CALL    USEND
    RETURN

; ========================================================================
; Prodleva cca. 10s
; ------------------------------------------------------------------------
PAUSE MOVLW 50
MOVWF PAUS3
CLRF PAUS2
CLRF PAUS1
DECFSZ PAUS1,1
GOTO $-1
DECFSZ PAUS2,1
GOTO $-3
DECFSZ PAUS3,1
GOTO $-5
RETURN

    END

[/code]