Prostorovy termostat
Kosta
kosta
Středa Březen 17 11:42:46 CET 2004
----- Původní zpráva -----
Od: <Kaspar@ceb.cz>
Komu: Multiple recipients of list <hw-news@list.gin.cz>
Odesláno: 7. října 1999 10:44
Předmět: RE: Prostorovy termostat
>Mam to vyreseno pomoci DS1820 a AT89C51. Meri mi to teplotu v rozvadecich
>strukturovane kabelaze. Vyhledove to chci pouzit i na topeni. Rele je primo
>na PCB a lze pouzit az dalsich 5 externe. Jinak celou konstrukci jsem
poslal
>do Konkurzu PE, treba to i nekdy vyjde. Protokol neni az tak komplikovany,
>ale narocnejsi na casovani.
>
>Zdravim
>
>Pavel
>Kaspar, kaspar@ceb.cz
Jednoducha rutinka pro '51 a Dallas DS1820, bez preruseni, pro xtal
11.0592Mhz
;===========================================================================
==
;
; RUTINA MERENI TEPLOTY POMOCI DS1820
;
;===========================================================================
==
Dalas: call Rst ;
mov A,#0CCH ; Skip ROM command
call Write ;
mov A,#044H ; Convert T
call Write ;
mov 2FH,#0 ;
Da1: mov A,2FH ;
cjne A,#200,Da1 ;
cpl F0
call Rst ;
mov A,#0CCH ; Skip ROM command
call Write ;
mov A,#0BEH ; Read scratchpad
call Write ;
call Read ;
mov 2AH,A ; LSB Temp
call Read ;
mov 2BH,A ; MSB Temp
call Rst ;
mov A,2BH ;
jz Plus ;
Minus: mov A,2AH ;
cpl A ;
inc A ;
mov 33H,#11 ; minus
jmp Pis ;
Plus: mov A,2AH ;
mov 33H,#12 ; nic
Pis: clr C ;
rrc A ;
mov B,#10 ;
div AB ;
mov 31H,B ; jednotky
mov B,#10 ;
mov 32H,A
mov 30H,#10 ; znak stupne
jmp Loop
;---------------------------------------------
Rst: clr IE.7 ;
mov R2,#0 ;
clr P3.1 ; 1
Rst1: djnz R2,Rst1 ; 2*R2 cyklu -> 512
setb P3.1 ;
Rst2: jb P3.1,Rst2 ;
Rst3: jnb P3.1,Rst3 ; cekame na potvzeni z DS1820
setb IE.7 ;
ret ;
;---------------------------------------------
Write: clr IE.7 ;
mov R3,#8 ; vysilame 8 bitu
Write1: clr P3.1 ;
rrc A ;
jc Write3 ;
mov R2,#40 ; pri '0' cekame 80 mikrosekund
Write2: djnz R2,Write2 ; 2*R2 cyklu -> 10 nebo 80 mikrosekund
mov R2,5 ;
sjmp Write5 ;
Write3: mov R2,#5 ; pri '1' cekame 10 mikrosekund
Write4: djnz R2,Write4 ; 2*R2 cyklu -> 10 nebo 80 mikrosekund
mov R2,#35 ;
Write5: setb P3.1 ;
Write6: djnz R2,Write6 ; no a dopocitame do 90 mikrosekund
djnz R3,Write1 ;
setb IE.7 ;
ret ;
;---------------------------------------------
Read: clr IE.7 ;
mov R3,#8 ; prijimame 8 bitu
clr A ;
Read1: clr P3.1 ; inicializujeme vysilani z DS1820
nop ;
setb P3.1 ; > 1 mikrosekunda
mov R2,#5 ;
Read2: djnz R2,Read2 ;
mov C,P3.1 ;
rrc A ; C=0 <-> R2>5 -> >15 mikrosekund
mov R2,#25 ;
Read3: djnz R2,Read3 ;
djnz R3,Read1 ;
setb IE.7 ;
ret ;
;---------------------------------------------
;===========================================================================
==
kosta@iol.cz
-------------------------------------------
Kosta
P.O.Box 38
Posta 41
141 00 Praha 4 - Sporilov
-------------------------------------------
0603 / 33 87 47
-------------------------------------------
Další informace o konferenci Hw-list