Problem s DS18B20 a 51
Michal Grunt
michal.grunt@volny.cz
Pátek Prosinec 30 23:31:40 CET 2005
Zdravim, poradil by mi nekdo kde bych mohl mit chybu z programu? Cele
se to chova tak ze mi cidlo vyhodi dve hodnoty po 0xffh. Uz se s tim
peru tri dny a uz nevim co s tim, zkousel jsem menit casove konstanty,
ale je to porad to same... R6 a R7 si nechavam vypisovat na LCD (kod
jsem zkratil jenom na ovladani cidla).
Diky moc za rady, s 51 zacinam, takze je mozne ze tam budu mit nejakou
botu. P89V51RD2, 24Mhz
dallas equ p2.0
org 0
jmp start
;------------ INIT ----------------
init:
push psw
clr dallas ; stahni sbernici na 0
mov R2,#2 ; cekej 480us
mov R1,#221
TT1:
djnz R1,TT1
djnz R2,TT1
setb dallas ; uvolni sbernici
init1:
mov c,dallas ; precti sbernici 1=zarizeni neni pripojeno, 0=zarizeni je pripojeno
jc init1
mov R2,#2 ; cekej 480us
mov R1,#221
TT3:
djnz R1,TT3
djnz R2,TT3
pop psw
ret
;--------------- ZAPIS ----------------
zapis:
mov r3,#8 ; orotuje 8x'a'
zapis3:
rrc a
jnc zapis1 ; kdyz je c=0 zapis log 0, jinak zapis log 1
clr dallas ; zapis log 1
mov R1,#0eh ; cekej 15us
TT4:
djnz R1,TT4
setb dallas
mov R1,#37h ; cekej 55us
TT5:
djnz R1,TT5
ajmp zapis2
zapis1: ; zapis log 0
clr dallas
mov R1,#96 ; cekej 100us
TT6:
djnz R1,TT6
setb dallas
zapis2:
nop ; cekej 1us
nop
nop
nop
djnz r3,zapis3
ret
;-------------- CTENI -------------
cti:
mov R5,#8
cti1:
mov r3,#0eh ; cekej 15us
clr dallas ; stahne sbernici na 0
cti2:
djnz r3,cti2
setb dallas ; uvolni sbernici
nop
nop
mov c,dallas
rrc a
nop
nop
djnz R5,cti1
ret
;-------------- start ----------------
start:
acall init
mov a,#0cch ; skip ROM = jedno zarizeni
acall zapis ; zapise 'a'
mov a,#044h ; mereni teploty
acall zapis ; zapise 'a'
mov r3,#4 ; cekej 200ms na mereni
mov r2,#14
mov r1,#42
TT11:
djnz r1,TT11
djnz r2,TT11
djnz r3,TT11
acall init ; cteni teploty
mov a,#0cch ; skip ROM = jedno zarizeni
acall zapis ; zapise 'a'
mov a,#0beh ; precte hodnoty
acall zapis ; zapise 'a'
acall cti
mov r7,a ; nizsi byte
acall cti
mov r6,a ; vyssi byte
end
--
Michal Grunt
Další informace o konferenci Hw-list