DS homero source
elight
elight at zalaszam.hu
Wed Mar 7 11:27:04 CET 2007
Köszi,
mekkora kvarc volt?
vagy nem számít?
egyeztetem az adatlappal,
aztán megprobálom :-)
Üdvc István
----- Original Message -----
From: "Bodosi Bal zs" <BBALAZS at phys.szote.u-szeged.hu>
To: <elektro at tesla.hu>
Sent: Wednesday, March 07, 2007 12:11 PM
Subject: DS homero source
> Szia, megis talaltam itt egyet.
> A data_pin az az PORTA,3 volt, a data_pin_dd meg az adatirany-reg.
> a TRISA,3
> Az idoziteseket ertelemszeruen a frekihez kell hangolni.
>
> ;------------------------------------------------------------
>
> rutin1820_konverzio_indito
> call INIT ; init DS1820
> mov O_BYTE,0cch ;skip rom ALL devices
> call OUT_BYTE
> mov O_BYTE,44h ;temp conv ALL devices
> call OUT_BYTE
> ret
>
> rutin1820_homerseklet_beolvaso
> call WAIT ; wait for conversion to complete
> call INIT
> mov O_BYTE,055h ;rom match
> call OUT_BYTE
> call pottyos
> mov O_BYTE,0beh
> call OUT_BYTE
> call IN_BYTE
> movwf ertek03lo
> call IN_BYTE
> movwf ertek03hi
>
> call INIT
> mov O_BYTE,055h ;rom match
> call OUT_BYTE
> call reszelt
> mov O_BYTE,0beh
> call OUT_BYTE
> call IN_BYTE
> movwf ertek04lo
> call IN_BYTE
> movwf ertek04hi
>
> call INIT
> mov O_BYTE,055h ;rom match
> call OUT_BYTE
> call rovid
> mov O_BYTE,0beh
> call OUT_BYTE
> call IN_BYTE
> movwf ertek05lo
> call IN_BYTE
> movwf ertek05hi
>
> call INIT
> mov O_BYTE,055h ;rom match
> call OUT_BYTE
> call hosszu
> mov O_BYTE,0beh
> call OUT_BYTE
> call IN_BYTE ; get from DS1820 and save
> movwf ertek06lo
> call IN_BYTE
> movwf ertek06hi
> ret
>
>
>
> ; Standard 1-Wire routines -------------------------------------------
> -----
>
> INIT:
> call pin_input
> call pin_output ;force low
> movlw D'50' ; 500 us delay
> call DELAY_10USEC
> call pin_input ;release pin
> movlw D'10' ; 100 us delay
> call DELAY_10USEC
> btfss Data_pin
> nop
> movlw D'50' ; 500 usec delay
> call DELAY_10USEC
> ret
>
> WAIT:
> call IN_BYTE
> movlw 0FFH
> subwf I_BYTE, W
> btfss STATUS, Z
> jmp WAIT
> ret
>
> IN_BYTE: ; returns byte in W
> mov INDEX,8
> clrf I_BYTE
>
> bajtotbevesz:
> call pin_output ; momentary low on DATA_PIN
> nop
> nop
> call pin_input
>
> mov delawar,8 ;wait
> delava1
> nop
> decfsz delawar
> jmp delava1
>
> clc
> btfsc Data_pin
> stc
> rrcf I_BYTE, F
> movlw 6 ; now delay 60 usecs
> call DELAY_10USEC
> decfsz INDEX, F
> jmp bajtotbevesz
>
> movf I_BYTE,w ; return the result in W
> ret
>
> OUT_BYTE:
> mov INDEX,8
> bajtkitolo_1:
> rrcf O_BYTE, F
> btfss STATUS, C
> jmp OUT_0
> jmp OUT_1
> kitolovissza:
> decfsz INDEX, F
> jmp bajtkitolo_1
> ret
>
> OUT_0:
> call pin_output ; bring DATA_PIN low
> movlw 6 ; for 60 usecs
> call DELAY_10USEC
> call pin_input
> jmp kitolovissza
>
> OUT_1:
> call pin_output ; momentary low
> nop
> nop
> nop
> nop
> call pin_input
> movlw 6
> call DELAY_10USEC
> jmp kitolovissza
>
> ;;;;;;
>
> pin_input:
> bsf Data_pin_dd ; high impedance
> ret
>
> pin_output:
> bcf Data_pin_dd ; low impedance zero
> bcf Data_pin
> ret
>
> DELAY_10USEC: ; provides a delay equal to W * 10 usecs
> movwf LOOP1
> varcik1:
> mov delawar,10
> delavara
> nop
> decfsz delawar
> jmp delavara
> decfsz LOOP1, F
> jmp varcik1
> ret
>
> rovid
> mov O_BYTE,010h
> call OUT_BYTE
> mov O_BYTE,0a3h
> call OUT_BYTE
>
> mov O_BYTE,04ch
> call OUT_BYTE
> mov O_BYTE,0ffh
> call OUT_BYTE
>
> mov O_BYTE,00h
> call OUT_BYTE
> mov O_BYTE,08h
> call OUT_BYTE
>
> mov O_BYTE,00h
> call OUT_BYTE
> mov O_BYTE,0abh
> call OUT_BYTE
> ret
>
> hosszu
> mov O_BYTE,010h
> call OUT_BYTE
> mov O_BYTE,034h
> call OUT_BYTE
>
> mov O_BYTE,09bh
> call OUT_BYTE
> mov O_BYTE,0ffh
> call OUT_BYTE
>
> mov O_BYTE,00h
> call OUT_BYTE
> mov O_BYTE,08h
> call OUT_BYTE
>
> mov O_BYTE,00h
> call OUT_BYTE
> mov O_BYTE,090h
> call OUT_BYTE
> ret
>
> pottyos
> mov O_BYTE,010h
> call OUT_BYTE
> mov O_BYTE,091h
> call OUT_BYTE
>
> mov O_BYTE,042h
> call OUT_BYTE
> mov O_BYTE,0ffh
> call OUT_BYTE
>
> mov O_BYTE,00h
> call OUT_BYTE
> mov O_BYTE,08h
> call OUT_BYTE
>
> mov O_BYTE,00h
> call OUT_BYTE
> mov O_BYTE,08ah
> call OUT_BYTE
> ret
>
> reszelt
> mov O_BYTE,010h
> call OUT_BYTE
> mov O_BYTE,036h
> call OUT_BYTE
>
> mov O_BYTE,053h
> call OUT_BYTE
> mov O_BYTE,0ffh
> call OUT_BYTE
>
> mov O_BYTE,00h
> call OUT_BYTE
> mov O_BYTE,08h
> call OUT_BYTE
>
> mov O_BYTE,00h
> call OUT_BYTE
> mov O_BYTE,0e2h
> call OUT_BYTE
> ret
> Udv:
> BBalazs
>
> http://www.phys.szote.u-szeged.hu/bbalazs/bbalazs.htm
>
>
> -----------------------------------------
> elektro[-flame|-etc]
>
> _____________ NOD32 1946 (20061229) Információ _____________
>
> Az üzenetet a NOD32 antivirus system megvizsgálta.
> http://www.nod32.hu
>
>
More information about the Elektro
mailing list