claudiopolis
Üye
- Katılım
- 6 Ocak 2009
- Mesajlar
- 5
- Puanları
- 1
- Yaş
- 39
Arkadaslar merhaba;
benim sorunum kısaca 16f628a ve ds1822 ile bir devre üzerine çalısıyorum.
yapmak istediğim 3 farklı sıcaklıkta 3 ayrı röle tetiklemek.ds1822 den sıcaklıgı aşagıdaki program sayesinde okuyup lcd ekrana yazdırabiliyorum.
bu programa ilaveten "programın içine yazdıgım" bir ısıya gelince pic den röle tetiklemek için cıkıs almak isiyorum.
bana yardımcı olabilirmsiniz...?
diğer bir sorumda;3 tane ds1822 kullanmak yerine tek sensörle bu işi halledebilirmiyim...?
SENSOROKU1:
OWOUT Comm_Pin1, 1, [$CC, $44]' ISI değerini oku
Bekle1:
OWIN Comm_Pin1, 4, [Busy] ' Busy değerini oku
IF Busy = 0 THEN Bekle1 ' hala meşgulmü? , evet ise goto Bekle..!
OWOUT Comm_Pin1, 1, [$CC, $BE]' scratchpad memory oku
OWIN Comm_Pin1, 2, [HAM.Lowbyte, HAM.Highbyte]' İki byte oku ve okumayı bitir.
GOSUB Hesapla1
RETURN
Hesapla1: ' Ham değerden Santigrat derece hesabı
Sign = "+"
IF SIGN_BITI = NEGAT_ISI THEN
Sign = "-"
temp=($ffff-ham+1)*625
ISI = DIV32 10
GOTO GEC1
endif
TEMP = 625 * (HAM+1) '
ISI = DIV32 10 ' Div32 hassas derece hesabı için 32 bit bölme yapıyoruz.
GEC1:
FLOAT = (ISI //1000)/100
ISI=(ISI/1000)
LCDOUT $fe,1," EKOCLIMATE"
lcdout $FE,$C0,"1.SENSOR",": ",Sign,DEC ISI,".",DEC1 (Float),4,"C " '2. satırda ısı
pause 1500
if ISI=65535 then
lcdout $FE,$80,"1. SENSORU TAKIN"
endif
RETURN
benim sorunum kısaca 16f628a ve ds1822 ile bir devre üzerine çalısıyorum.
yapmak istediğim 3 farklı sıcaklıkta 3 ayrı röle tetiklemek.ds1822 den sıcaklıgı aşagıdaki program sayesinde okuyup lcd ekrana yazdırabiliyorum.
bu programa ilaveten "programın içine yazdıgım" bir ısıya gelince pic den röle tetiklemek için cıkıs almak isiyorum.
bana yardımcı olabilirmsiniz...?
diğer bir sorumda;3 tane ds1822 kullanmak yerine tek sensörle bu işi halledebilirmiyim...?
SENSOROKU1:
OWOUT Comm_Pin1, 1, [$CC, $44]' ISI değerini oku
Bekle1:
OWIN Comm_Pin1, 4, [Busy] ' Busy değerini oku
IF Busy = 0 THEN Bekle1 ' hala meşgulmü? , evet ise goto Bekle..!
OWOUT Comm_Pin1, 1, [$CC, $BE]' scratchpad memory oku
OWIN Comm_Pin1, 2, [HAM.Lowbyte, HAM.Highbyte]' İki byte oku ve okumayı bitir.
GOSUB Hesapla1
RETURN
Hesapla1: ' Ham değerden Santigrat derece hesabı
Sign = "+"
IF SIGN_BITI = NEGAT_ISI THEN
Sign = "-"
temp=($ffff-ham+1)*625
ISI = DIV32 10
GOTO GEC1
endif
TEMP = 625 * (HAM+1) '
ISI = DIV32 10 ' Div32 hassas derece hesabı için 32 bit bölme yapıyoruz.
GEC1:
FLOAT = (ISI //1000)/100
ISI=(ISI/1000)
LCDOUT $fe,1," EKOCLIMATE"
lcdout $FE,$C0,"1.SENSOR",": ",Sign,DEC ISI,".",DEC1 (Float),4,"C " '2. satırda ısı
pause 1500
if ISI=65535 then
lcdout $FE,$80,"1. SENSORU TAKIN"
endif
RETURN