Full Kontrol AQUAMATIC FC914
Üye imzalarını sadece giriş yapan üyelerimiz görebilir
Üye imzalarını sadece giriş yapan üyelerimiz görebilir
Kerem bey çeşitli pic'e gerek yok 16F877 yeterli 1 haftaya kadar sizin için toparlamaya çalışıcam inşaallah...yani siz sıkıştırmasanız el atacağım yok valla iş güç söz vermiyorum ama 1 haftaya kadar sizin işinize yarayacak hale getiricem inşaallah ha bu arada hayırlı ramazanlar diliyorum size ve herkese..
Üye imzalarını sadece giriş yapan üyelerimiz görebilir
Su ekleme için piyasada satılan elekronik şamandıralar var. Şamandıranın paslanma ve takılma ihtimaline karşın ara devreye apartman otomatı bağlanırsa, devreye girme süresi boyunca pompa su basar. Atıyorum otomata 20 sn. belirledik şamandıra devreyi açtı, su pompalandı fakat şamandıra devreyi kapamadı ise otomat 20 sn sonra devreyi kapayacaktır. Bu işte artık risk olmaktan çıktı sanırım.
Saygılarımla
Üye imzalarını sadece giriş yapan üyelerimiz görebilir
Üye imzalarını sadece giriş yapan üyelerimiz görebilir
'* Name : AQUAMATIC.BAS *
'* Author : [ ] *
'* Notice : Copyright (c) 2007 [zcemix2007] *
'* : All Rights Reserved *
'* Date : 06.07.2007 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
DEFINE LCD_DREG PORTC
DEFINE LCD_DBIT 0
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 2
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
trisa = 0
trisd=0
PORTC=0
portd=0
porta=0
trisc=%01110000
option_reg.7 = 0
adcon1=7
'DQ var Portc.6
'temp var word
;_______________SAAT PROGRAMI DEĞİŞKENLERİ__________________________________________________________________
Comm_Pin VAR Portb.6 ' One-wire Data-Pin "DQ" PortB.0 da
Busy VAR BIT ' Busy Status-Bit
poz var BIT
GOR VAR BYTE
HAM VAR WORD ' Sensör HAM okuma değeri
ISI VAR WORD ' Hesaplanmış ISI değeri
Float VAR BYTE ' Holds remainder for + temp C display
X VAR WORD
Y VAR WORD
'SIGN_BITI VAR HAM.Bit11 ' +/- sıcaklık İşaret biti, 1 = olursa eksi sıcaklık
'NEGAT_ISI CON 1 ' Negatif_Cold = 1
Deg CON 223 ' ° işareti
'SIGN VAR BYTE ' ISI değeri için +/- işaret
TEMP VAR byte ' Div32 bit hesap için geçici değişken
SAYAC VAR BYTE
'DAK VAR BYTE
'ESN VAR BYTE
AC_SAAT VAR BYTE
KAPAT_SAAT VAR BYTE
AC_DAKIKA VAR BYTE
KAPAT_DAKIKA VAR BYTE
ACMAZAMANI VAR WORD
KAPAMAZAMANI VAR WORD
REELZAMAN VAR WORD
yil var byte
ay var byte
bugun var byte
gun var byte
saat var byte
dakika var byte
yil1 var byte
ay1 var byte
gun1 var byte
saat1 var byte
dakika1 var byte
saniye var byte
derece var byte
MEM var byte
ONLAR VAR BYTE
BIRLER VAR BYTE
menuno var byte
menusure var byte
lcdsure var byte
altmenuno var byte
ISIKMOD VAR BYTE
ISITICIMOD VAR BYTE
FANMOD VAR BYTE
HAVAMOD VAR BYTE
FILTREMOD VAR BYTE
HAVAAC_SAAT VAR BYTE
HAVAAC_DAKIKA VAR BYTE
HAVAKAPAT_SAAT VAR BYTE
HAVAKAPAT_DAKIKA VAR BYTE
FILTREAC_SAAT VAR BYTE
FILTREAC_DAKIKA VAR BYTE
FILTREKAPAT_SAAT VAR BYTE
FILTREKAPAT_DAKIKA VAR BYTE
ISIKAC_SAAT VAR BYTE
ISIKAC_DAKIKA VAR BYTE
ISIKKAPAT_SAAT VAR BYTE
ISIKKAPAT_DAKIKA VAR BYTE
SICAKLIK VAR BYTE
SICAKLIK_KUSUR VAR BYTE
FANSICAKLIK VAR BYTE
FANSICAKLIK_KUSUR VAR BYTE
SICAKLIK_KUSUR=0
ISI_KUSUR VAR BYTE
i var byte
j var BYTE
hane var byte
blink var byte
YEM_MIKTAR VAR BYTE
YEMLEMENO VAR BYTE
YEMNO VAR BYTE
ISITICI VAR BYTE
ISITICISAY VAR BYTE
FAN VAR BYTE
FANSAY VAR BYTE
ISITICISAY=100
FANSAY=100
ISITICI=0
FAN=0
kilitsure var byte
kilitsure =3
YEMNO=0
YEMLEMENO=1
YEMLEME VAR BYTE [12]
lcdsure = 20
blink=0
hane = 0
i=0
j=0
ISI_KUSUR=0
altmenuno=0
menuno=0
menusure=0
SAYI VAR BYTE
SN VAR BYTE
SYMBOL RTC_DTA=PORTE.1
SYMBOL RTC_CLK=PORTE.0
SYMBOL RTC_RST=PORTE.2
low RTC_RST
low RTC_CLK
'LCDOut $fe,1," AQUAMATIC"
'gosub ZAMAN_OKU
'gosub YEMLE
READ 254,J
if J !=0 then
for i = 0 to 255
write i,0
i=i+1
next i
J=0
WRiTE 254,J
endif
PAUSE 500
EKAR_OKU:
read 0 , SICAKLIK : READ 1 , SICAKLIK_KUSUR : READ 2 , ISITICIMOD
READ 3 , FANSICAKLIK : READ 4 ,FANSICAKLIK_KUSUR : READ 5 ,FANMOD
READ 6,ISIKAC_SAAT : READ 7,ISIKAC_DAKIKA :READ 8,ISIKKAPAT_SAAT : READ 9,ISIKKAPAT_DAKIKA :READ 10,ISIKMOD
read 11,YEM_MIKTAR : READ 12,YEMLEME[0] :READ 13,YEMLEME[1]:READ 14,YEMLEME[2]:READ 15,YEMLEME[3]
READ 16,YEMLEME[4] :READ 17,YEMLEME[5]:READ 18,YEMLEME[6]:READ 19,YEMLEME[7]:READ 20,YEMLEME[8]
READ 21,YEMLEME[9] :READ 22,YEMLEME[10]:READ 23,YEMLEME[11]
READ 24,HAVAAC_SAAT : READ 25,HAVAAC_DAKIKA :READ 26,HAVAKAPAT_SAAT : READ 27,HAVAKAPAT_DAKIKA :READ 28,HAVAMOD
READ 29,FILTREAC_SAAT : READ 30,FILTREAC_DAKIKA :READ 31,FILTREKAPAT_SAAT : READ 32,FILTREKAPAT_DAKIKA :READ 33,FILTREMOD
'WRITE 34,0
READ 34,YEMNO
'loop:
'LCDOut $fe,1," ",Sign,DEC ISI,".",DEC1 (Float)," ",Deg,"C " '2. satırda ısı
'gosub SENSOROKU
'goto loop
main:
if sn <> saniye then
if FANSAY >0 THEN FANSAY=FANSAY-1
if ISITICISAY >0 THEN ISITICISAY=ISITICISAY-1
REELZAMAN = SAAT DIG 1 * 1000+saat DIG 0 * 100 +dakika DIG 1 * 10+ dakika DIG 0
if menusure > 0 then
menusure = menusure - 1
if menusure = 0 then menuno=0 :altmenuno=0:hane=0:GOTO EKAR_OKU
endif
portd.1=0
if lcdsure = 0 then kilitsure=3
if lcdsure > 0 then
portd.1=1
lcdsure =lcdsure-1
kilitsure=0
endif
if menuno=0 then
GOSUB SENSOROKU
LCDOut $fe,1,dec2 gun,"/",dec2 ay,"/",dec2 yil," ",#YEMNO,".YEM"
LCDOut $fe,$c0,dec2 saat ,":",dec2 dakika,":",dec2 saniye," ",DEC2 ISI,".",DEC1 (Float),Deg,"C"
endif
'*******************ISITMA ve SOĞUTMA BÖLÜMÜ************************
iF ISI != 0 THEN
if ISITICIMOD=1 THEN
X=SICAKLIK * 10 + SICAKLIK_KUSUR
IF Y=>X THEN
iF ISITICI = 1 THEN ISITICI=0:ISITICISAY=100
if ISITICISAY=0 then PORTD.6=0
ELSE
iF ISITICI = 0 THEN ISITICI=1:ISITICISAY=100
if ISITICISAY=0 then PORTD.6=1
ENDiF
ENDiF
if FANMOD=1 THEN
X=FANSICAKLIK * 10 + FANSICAKLIK_KUSUR
IF X=>Y THEN
iF FAN = 1 THEN FAN=0:FANSAY=100
if FANSAY=0 then PORTD.7=0
ELSE
iF FAN = 0 THEN FAN=1:FANSAY=100
if FANSAY=0 then PORTD.7=1
ENDiF
endif
endif
'*******************ISITMA ve SOĞUTMA BÖLÜMÜ BİTTİ*************
'**************************************************************
'***********************YEMLEME BÖLÜMÜ*************************
YEM:
if YEM_MIKTAR > 0 AND menusure = 0 THEN
iF YEM_MIKTAR=6 and YEMNO != 6 THEN
AC_SAAT = YEMLEME[10]:AC_DAKIKA = YEMLEME[11]
GOSUB ZAMANI_HESAPLA
iF REELZAMAN =>ACMAZAMANI THEN YEMNO = 6:WRITE 34,YEMNO : GOSUB YEMLE
ENDiF
iF YEM_MIKTAR =>5 and YEMNO != 5 THEN
AC_SAAT = YEMLEME[8]:AC_DAKIKA = YEMLEME[9]:KAPAT_SAAT = YEMLEME[10]:KAPAT_DAKIKA = YEMLEME[11]
GOSUB ZAMANI_HESAPLA
if REELZAMAN =>ACMAZAMANI AND REELZAMAN < KAPAMAZAMANI then YEMNO = 5:WRITE 34,YEMNO : GOSUB YEMLE
endif
iF YEM_MIKTAR =>4 and YEMNO != 4 THEN
AC_SAAT = YEMLEME[6]:AC_DAKIKA = YEMLEME[7]:KAPAT_SAAT = YEMLEME[8]:KAPAT_DAKIKA = YEMLEME[9]
GOSUB ZAMANI_HESAPLA
if REELZAMAN =>ACMAZAMANI AND REELZAMAN < KAPAMAZAMANI then YEMNO = 4:WRITE 34,YEMNO : GOSUB YEMLE
endif
iF YEM_MIKTAR =>3 and YEMNO != 3 THEN
AC_SAAT = YEMLEME[4]:AC_DAKIKA = YEMLEME[5]:KAPAT_SAAT = YEMLEME[6]:KAPAT_DAKIKA = YEMLEME[7]
GOSUB ZAMANI_HESAPLA
if REELZAMAN =>ACMAZAMANI AND REELZAMAN < KAPAMAZAMANI then YEMNO = 3:WRITE 34,YEMNO : GOSUB YEMLE
endif
iF YEM_MIKTAR =>2 and YEMNO != 2 THEN
AC_SAAT = YEMLEME[2]:AC_DAKIKA = YEMLEME[3]:KAPAT_SAAT = YEMLEME[4]:KAPAT_DAKIKA = YEMLEME[5]
GOSUB ZAMANI_HESAPLA
if REELZAMAN =>ACMAZAMANI AND REELZAMAN < KAPAMAZAMANI then YEMNO = 2:WRITE 34,YEMNO : GOSUB YEMLE
endif
iF YEM_MIKTAR =>1 and YEMNO != 1 THEN
AC_SAAT = YEMLEME[0]:AC_DAKIKA = YEMLEME[1]:KAPAT_SAAT = YEMLEME[2]:KAPAT_DAKIKA = YEMLEME[3]
GOSUB ZAMANI_HESAPLA
if REELZAMAN =>ACMAZAMANI AND REELZAMAN < KAPAMAZAMANI then YEMNO = 1:WRITE 34,YEMNO : GOSUB YEMLE
endif
ENDiF
'********************YEMLEME BÖLÜMÜ BİTTİ***********************
if FANMOD=0 THEN PORTD.7=0
if FANMOD=2 THEN PORTD.7=1
if HAVAMOD=0 THEN PORTD.4=0
if HAVAMOD=2 THEN PORTD.4=1
if FILTREMOD=0 THEN PORTC.7=0
if FILTREMOD=2 THEN PORTC.7=1
if ISIKMOD=0 THEN PORTD.5=0
if ISIKMOD=2 THEN PORTD.5=1
if ISITICIMOD=0 THEN PORTD.6=0
if ISITICIMOD=2 THEN PORTD.6=1
if ISIKMOD = 1 THEN
AC_SAAT =ISIKAC_SAAT :KAPAT_SAAT =ISIKKAPAT_SAAT
AC_DAKIKA =ISIKAC_DAKIKA:KAPAT_DAKIKA=ISIKKAPAT_DAKIKA
GOSUB ZAMANI_HESAPLA
if ACMAZAMANI <= KAPAMAZAMANI THEN
IF REELZAMAN => ACMAZAMANI THEN PORTD.5=1
IF REELZAMAN => KAPAMAZAMANI or REELZAMAN < ACMAZAMANI THEN PORTD.5=0
ENDiF
if ACMAZAMANI > KAPAMAZAMANI THEN
IF REELZAMAN => ACMAZAMANI OR REELZAMAN < KAPAMAZAMANI THEN PORTD.5=1
IF REELZAMAN <= ACMAZAMANI and REELZAMAN > KAPAMAZAMANI THEN PORTD.5=0
ENDiF
endif
if HAVAMOD = 1 THEN
AC_SAAT =HAVAAC_SAAT :KAPAT_SAAT =HAVAKAPAT_SAAT
AC_DAKIKA =HAVAAC_DAKIKA:KAPAT_DAKIKA=HAVAKAPAT_DAKIKA
GOSUB ZAMANI_HESAPLA
if ACMAZAMANI <= KAPAMAZAMANI THEN
IF REELZAMAN => ACMAZAMANI THEN PORTD.4=1
IF REELZAMAN => KAPAMAZAMANI or REELZAMAN < ACMAZAMANI THEN PORTD.4=0
ENDiF
if ACMAZAMANI > KAPAMAZAMANI THEN
IF REELZAMAN => ACMAZAMANI OR REELZAMAN < KAPAMAZAMANI THEN PORTD.4=1
IF REELZAMAN <= ACMAZAMANI and REELZAMAN > KAPAMAZAMANI THEN PORTD.4=0
ENDiF
endif
if FILTREMOD = 1 THEN
AC_SAAT =FILTREAC_SAAT :KAPAT_SAAT =FILTREKAPAT_SAAT
AC_DAKIKA =FILTREAC_DAKIKA:KAPAT_DAKIKA=FILTREKAPAT_DAKIKA
GOSUB ZAMANI_HESAPLA
if ACMAZAMANI <= KAPAMAZAMANI THEN
IF REELZAMAN => ACMAZAMANI THEN PORTC.7=1
IF REELZAMAN => KAPAMAZAMANI or REELZAMAN < ACMAZAMANI THEN PORTC.7=0
ENDiF
if ACMAZAMANI > KAPAMAZAMANI THEN
IF REELZAMAN <= ACMAZAMANI and REELZAMAN > KAPAMAZAMANI THEN PORTC.7=0
IF REELZAMAN => ACMAZAMANI OR REELZAMAN < KAPAMAZAMANI THEN PORTC.7=1
ENDiF
endif
sn = saniye
endif
buton:
if portc.4=0 then
pause 50
if portc.4=0 then
gosub tuskilit
gosub buzzer
lcdsure=20
ISIKMOD = ISIKMOD+1
if ISIKMOD>2 THEN ISIKMOD=0
write 10,ISIKMOD
altmenuno=2
gosub altmenugoster
pause 500
altmenuno=0
menuno=0
ENDiF
endif
if portc.5=0 then
pause 50
if portc.5=0 then
gosub tuskilit
gosub buzzer
lcdsure=20
HAVAMOD = HAVAMOD+1
if HAVAMOD>2 THEN HAVAMOD=0
write 28,HAVAMOD
altmenuno=5
gosub altmenugoster
altmenuno=0
menuno=0
pause 500
ENDiF
endif
if portc.6=0 then
pause 50
if portc.6=0 then
gosub tuskilit
gosub buzzer
lcdsure=20
FILTREMOD = FILTREMOD+1
if FILTREMOD>2 THEN FILTREMOD=0
write 33,FILTREMOD
altmenuno=6
gosub altmenugoster
altmenuno=0
menuno=0
pause 500
ENDiF
endif
'*****************YUKARI BUTONU**********************
if portb.0 = 0 then
pause 50
if portb.0=0 then
gosub tuskilit
gosub buzzer
menusure = 10
lcdsure = 20
if altmenuno=0 then
menuno=menuno+1
if menuno > 7 then menuno=1
gosub menugoster
endif
if altmenuno=7 then
if hane=1 then
gun1=gun1+1
if gun1 > 31 then gun1 = 1
endif
if hane=2 then
ay1=ay1+1
if ay1 > 12 then ay1 = 1
endif
if hane=3 then
yil1=yil1+1
if yil1 > 99 then yil1 = 0
endif
if hane=4 then
saat1=saat1+1
if saat1 > 23 then saat1 = 0
endif
if hane=5 then
dakika1=dakika1+1
if dakika1 > 59 then dakika1 = 0
endif
endif
if altmenuno=1 then
if hane = 0 then
YEM_MIKTAR = YEM_MIKTAR + 1
if YEM_MIKTAR >6 THEN YEM_MIKTAR = 0
ENDif
if hane > 0 then
YEMLEME[HANE-1] = YEMLEME[HANE-1]+1
if hane*5//2 = 1 and YEMLEME[hane-1] > 23 then YEMLEME[hane-1] = 0
if hane*5//2 = 0 and YEMLEME[hane-1] > 59 then YEMLEME[hane-1] = 0
endif
ENDiF
if altmenuno=5 then
if hane=1 then
HAVAAC_SAAT = HAVAAC_SAAT + 1
if HAVAAC_SAAT > 23 then HAVAAC_SAAT = 0
endif
if hane=2 then
HAVAAC_DAKIKA = HAVAAC_DAKIKA + 1
if HAVAAC_DAKIKA > 59 then HAVAAC_DAKIKA = 0
endif
if hane=3 then
HAVAKAPAT_SAAT = HAVAKAPAT_SAAT + 1
if HAVAKAPAT_SAAT > 23 then HAVAKAPAT_SAAT = 0
endif
if hane=4 then
HAVAKAPAT_DAKIKA = HAVAKAPAT_DAKIKA + 1
if HAVAKAPAT_DAKIKA > 59 then HAVAKAPAT_DAKIKA = 0
endif
if hane = 0 then
HAVAMOD = HAVAMOD+1
if HAVAMOD>2 THEN HAVAMOD=0
ENDiF
endif
if altmenuno=6 then
if hane=1 then
FILTREAC_SAAT = FILTREAC_SAAT + 1
if FILTREAC_SAAT > 23 then FILTREAC_SAAT = 0
endif
if hane=2 then
FILTREAC_DAKIKA = FILTREAC_DAKIKA + 1
if FILTREAC_DAKIKA > 59 then FILTREAC_DAKIKA = 0
endif
if hane=3 then
FILTREKAPAT_SAAT = FILTREKAPAT_SAAT + 1
if FILTREKAPAT_SAAT > 23 then FILTREKAPAT_SAAT = 0
endif
if hane=4 then
FILTREKAPAT_DAKIKA = FILTREKAPAT_DAKIKA + 1
if FILTREKAPAT_DAKIKA > 59 then FILTREKAPAT_DAKIKA = 0
endif
if hane = 0 then
FILTREMOD = FILTREMOD+1
if FILTREMOD>2 THEN FILTREMOD=0
ENDiF
endif
if altmenuno=2 then
if hane=1 then
ISIKAC_SAAT = ISIKAC_SAAT + 1
if ISIKAC_SAAT > 23 then ISIKAC_SAAT = 0
endif
if hane=2 then
ISIKAC_DAKIKA = ISIKAC_DAKIKA + 1
if ISIKAC_DAKIKA > 59 then ISIKAC_DAKIKA = 0
endif
if hane=3 then
ISIKKAPAT_SAAT = ISIKKAPAT_SAAT + 1
if ISIKKAPAT_SAAT > 23 then ISIKKAPAT_SAAT = 0
endif
if hane=4 then
ISIKKAPAT_DAKIKA = ISIKKAPAT_DAKIKA + 1
if ISIKKAPAT_DAKIKA > 59 then ISIKKAPAT_DAKIKA = 0
endif
if hane = 0 then
ISIKMOD = ISIKMOD+1
if ISIKMOD>2 THEN ISIKMOD=0
ENDiF
endif
if altmenuno=3 then
if hane=1 then
SICAKLIK_KUSUR = SICAKLIK_KUSUR + 5
if SICAKLIK_KUSUR = 10 then SICAKLIK_KUSUR = 0 : SICAKLIK=SICAKLIK+1
endif
if hane = 0 then
ISITICIMOD = ISITICIMOD+1
if ISITICIMOD>2 THEN ISITICIMOD=0
ENDiF
endif
if altmenuno=4 then
if hane=1 then
FANSICAKLIK_KUSUR = FANSICAKLIK_KUSUR + 5
if FANSICAKLIK_KUSUR = 10 then FANSICAKLIK_KUSUR = 0 : FANSICAKLIK=FANSICAKLIK+1
endif
if hane = 0 then
FANMOD = FANMOD+1
if FANMOD>2 THEN FANMOD=0
ENDiF
endif
if altmenuno > 0 then gosub altmenugoster
endif
endif
'*****************YUKARI BUTONU BİTTİ*****************
'*****************************************************
'**********AŞAĞI BUTONU*******************************
if portb.3 = 0 then
pause 50
if portb.3=0 then
gosub tuskilit
gosub buzzer
menusure = 10
lcdsure = 20
if altmenuno = 0 then
if menuno=0 then menuno=8
menuno=menuno-1
if menuno < 1 then menuno=7
gosub menugoster
endif
if altmenuno=7 then
if hane=1 then
if gun1=1 then gun1 = 32
gun1=gun1-1
endif
if hane=2 then
if ay1 = 1 then ay1 = 13
ay1=ay1-1
endif
if hane=3 then
if yil1 = 0 then yil1 = 100
yil1=yil1-1
endif
if hane=4 then
if saat1 = 0 then saat1 = 24
saat1=saat1-1
endif
if hane=5 then
if dakika1 = 0 then dakika1 = 60
dakika1=dakika1-1
endif
endif
if altmenuno=1 then
if hane = 0 then
if YEM_MIKTAR =0 THEN YEM_MIKTAR = 7
YEM_MIKTAR = YEM_MIKTAR - 1
ENDif
if hane > 0 then
if hane*5//2 = 1 and YEMLEME[hane-1] = 0 then YEMLEME[hane-1] = 24
if hane*5//2 = 0 and YEMLEME[hane-1] = 0 then YEMLEME[hane-1] = 60
YEMLEME[HANE-1] = YEMLEME[HANE-1]-1
endif
ENDiF
if altmenuno=5 then
if hane = 1 then
if HAVAAC_SAAT = 0 then HAVAAC_SAAT =24
HAVAAC_SAAT = HAVAAC_SAAT - 1
endif
if hane = 2 then
if HAVAAC_DAKIKA = 0 then HAVAAC_DAKIKA =60
HAVAAC_DAKIKA = HAVAAC_DAKIKA - 1
endif
if hane = 3 then
if HAVAKAPAT_SAAT = 0 then HAVAKAPAT_SAAT =24
HAVAKAPAT_SAAT = HAVAKAPAT_SAAT - 1
endif
if hane = 4 then
if HAVAKAPAT_DAKIKA = 0 then HAVAKAPAT_DAKIKA =60
HAVAKAPAT_DAKIKA = HAVAKAPAT_DAKIKA - 1
endif
if hane = 0 then
if HAVAMOD=0 THEN HAVAMOD=3
HAVAMOD = HAVAMOD-1
ENDiF
ENDiF
if altmenuno=6 then
if hane = 1 then
if FILTREAC_SAAT = 0 then FILTREAC_SAAT =24
FILTREAC_SAAT = FILTREAC_SAAT - 1
endif
if hane = 2 then
if FILTREAC_DAKIKA = 0 then FILTREAC_DAKIKA =60
FILTREAC_DAKIKA = FILTREAC_DAKIKA - 1
endif
if hane = 3 then
if FILTREKAPAT_SAAT = 0 then FILTREKAPAT_SAAT =24
FILTREKAPAT_SAAT = FILTREKAPAT_SAAT - 1
endif
if hane = 4 then
if FILTREKAPAT_DAKIKA = 0 then FILTREKAPAT_DAKIKA =60
FILTREKAPAT_DAKIKA = FILTREKAPAT_DAKIKA - 1
endif
if hane = 0 then
if FILTREMOD=0 THEN FILTREMOD=3
FILTREMOD = FILTREMOD-1
ENDiF
ENDiF
if altmenuno=2 then
if hane = 1 then
if ISIKAC_SAAT = 0 then ISIKAC_SAAT =24
ISIKAC_SAAT = ISIKAC_SAAT - 1
endif
if hane = 2 then
if ISIKAC_DAKIKA = 0 then ISIKAC_DAKIKA =60
ISIKAC_DAKIKA = ISIKAC_DAKIKA - 1
endif
if hane = 3 then
if ISIKKAPAT_SAAT = 0 then ISIKKAPAT_SAAT =24
ISIKKAPAT_SAAT = ISIKKAPAT_SAAT - 1
endif
if hane = 4 then
if ISIKKAPAT_DAKIKA = 0 then ISIKKAPAT_DAKIKA =60
ISIKKAPAT_DAKIKA = ISIKKAPAT_DAKIKA - 1
endif
if hane = 0 then
if ISIKMOD=0 THEN ISIKMOD=3
ISIKMOD = ISIKMOD-1
ENDiF
ENDiF
if altmenuno=3 then
if hane = 1 then
if SICAKLIK_KUSUR = 0 then SICAKLIK_KUSUR =10
SICAKLIK_KUSUR = SICAKLIK_KUSUR - 5
if SICAKLIK_KUSUR = 5 then SICAKLIK=SICAKLIK-1
endif
if hane = 0 then
if ISITICIMOD=0 THEN ISITICIMOD=3
ISITICIMOD = ISITICIMOD-1
ENDiF
endif
if altmenuno=4 then
if hane = 1 then
if FANSICAKLIK_KUSUR = 0 then FANSICAKLIK_KUSUR =10
FANSICAKLIK_KUSUR = FANSICAKLIK_KUSUR - 5
if FANSICAKLIK_KUSUR = 5 then FANSICAKLIK=FANSICAKLIK-1
endif
if hane = 0 then
if FANMOD=0 THEN FANMOD=3
FANMOD = FANMOD-1
ENDiF
endif
if altmenuno > 0 then gosub altmenugoster
endif
endif
'**********AŞAĞI BUTONU BİTTİ***************
'*******************************************
'**********SAĞA BUTONU *********************
if portb.1 = 0 then
pause 50
if portb.1=0 then
gosub tuskilit
gosub buzzer
menusure = 10
lcdsure = 20
HANE=HANE+1
if ALTMENUNO=3 OR ALTMENUNO=4 AND HANE > 1 THEN HANE = 0
if altmenuno=2 OR altmenuno=5 OR altmenuno=6 and hane>4 then hane=0
if altmenuno=7 and hane>5 then hane=1
if altmenuno=1 and hane>12 then hane=0
if altmenuno=2 and ISIKMOD != 1 THEN hane=0
if altmenuno=3 and ISITICIMOD != 1 THEN hane=0
if altmenuno=4 and FANMOD != 1 THEN hane=0
if altmenuno=5 and HAVAMOD != 1 THEN hane=0
if altmenuno=6 and FILTREMOD != 1 THEN hane=0
gosub ALTmenugoster
endif
endif
'**********SAĞA BUTONU BİTTİ***************
'*******************************************
'**********SOLA BUTONU *********************
if portb.2 = 0 then
pause 50
if portb.2=0 then
gosub tuskilit
gosub buzzer
menusure = 10
lcdsure = 20
if altmenuno=1 and hane=0then hane=13
if altmenuno=2 OR altmenuno=5 OR altmenuno=6 and hane=0 then hane=5
if altmenuno=7 and hane=1 then hane=6
if ALTMENUNO=3 OR ALTMENUNO=4 AND HANE =0 THEN HANE = 2
HANE=HANE-1
if altmenuno=2 and ISIKMOD != 1 THEN hane=0
if altmenuno=3 and ISITICIMOD != 1 THEN hane=0
if altmenuno=4 and FANMOD != 1 THEN hane=0
if altmenuno=5 and HAVAMOD != 1 THEN hane=0
if altmenuno=6 and FILTREMOD != 1 THEN hane=0
gosub ALTmenugoster
endif
endif
'**********SOLA BUTONU BİTTİ**************
'*****************************************
'**********ENTER BUTONU****************
if portb.4 = 0 then
pause 50
if portb.4=0 then
gosub tuskilit
gosub buzzer
if portb.5=0 then
PAUSE 3000
if portb.5=0 then
gosub yemle
endif
ENDiF
menusure = 10
lcdsure = 20
if altmenuno=7 then
gun=gun1: ay=ay1:yil=yil1:saat=saat1:dakika=dakika1
menuno=ALTMENUNO:ALTMENUNO=0:HANE=0
gosub ZAMAN_YAZ
'LCDOut $fe,1,"SAAT"
'LCDOut $fe,$c0,"AYARLANDI"
PAUSE 1000
gosub menugoster
goto main
endif
if altmenuno >0 then goto EKAR_YAZ
if menuno > 0 then altmenuno=menuno
if menuno=7 then gun1=gun: ay1=ay:yil1=yil:saat1=saat:dakika1=dakika:hane=1
gosub altmenugoster
endif
endif
'*****************************************
'***********İPTAL BUTONU******************
if portb.5 = 0 then
pause 50
if portb.5=0 then
if menuno=0 then goto main
gosub buzzer
if altmenuno = 0 then
menuno=0
menusure=0
GOTO EKAR_OKU
else
altmenuno=0
endif
gosub menugoster
endif
endif
'************************************************
'GOSUB SENSOROKU
if altmenuno > 0 then gosub altmenugoster
gosub ZAMAN_OKU
GOTO main
end
'*****************************************
menugoster:
if menuno > 7 then menuno=1
'GOSUB TUS_BIRAK_KONTROL
if menuno = 1 then
LCDOut $fe,1,"YEM"
endif
if menuno = 2 then
LCDOut $fe,1,"ISIK"
endif
if menuno = 3 then
LCDOut $fe,1,"ISI"
endif
if menuno = 4 then
LCDOut $fe,1,"FAN"
endif
if menuno = 5 then
LCDOut $fe,1,"HAVA"
endif
if menuno = 6 then
LCDOut $fe,1,"FiLTRE"
endif
if menuno = 7 then
LCDOut $fe,1,"SAAT"
endif
LCDOut $fe,$c0,"AYARI"
pause 100
return
'***************************
altmenugoster:
'GOSUB TUS_BIRAK_KONTROL
if altmenuno>7 then altmenuno=0 :goto main
if menuno = 1 then
if hane <= 2 then YEMLEMENO=1 :j=0
if hane => 3 then YEMLEMENO=2 :j=2
if hane => 5 then YEMLEMENO=3 :j=4
if hane => 7 then YEMLEMENO=4 :j=6
if hane => 9 then YEMLEMENO=5 :j=8
if hane => 11 then YEMLEMENO=6 :j=10
LCDOut $fe,1,"YEM MiKTARI=",#YEM_MIKTAR
LCDOut $fe,$c0,#YEMLEMENO,".YEMLEME=",DEC2 YEMLEME[j],":",DEC2 YEMLEME[j+1]
endif
if ALTmenuno = 2 then
if ISIKMOD=1 then
LCDOut $fe,1,"ISIK OTO."
LCDOut $fe,$c0,"ON",dec2 ISIKAC_SAAT,":",dec2 ISIKAC_DAKIKA," OFF",dec2 ISIKKAPAT_SAAT,":",dec2 ISIKKAPAT_DAKIKA
endif
if ISIKMOD=0 then
LCDOut $fe,1,"ISIK KAPALI"
'LCDOut $fe,$c0,"ON",dec2 ISIKAC_SAAT,":",dec2 ISIKAC_DAKIKA," OFF",dec2 ISIKKAPAT_SAAT,":",dec2 ISIKKAPAT_DAKIKA
endif
if ISIKMOD=2 then
LCDOut $fe,1,"ISIK ACIK"
'LCDOut $fe,$c0,"ON",dec2 ISIKAC_SAAT,":",dec2 ISIKAC_DAKIKA," OFF",dec2 ISIKKAPAT_SAAT,":",dec2 ISIKKAPAT_DAKIKA
endif
ENDiF
if ALTmenuno = 3 then
if ISITICIMOD=1 THEN
if SICAKLIK_KUSUR >10 then SICAKLIK_KUSUR=0
LCDOut $fe,1,"ISITICI OTO."
LCDOut $fe,$c0,"ISI=",dec2 SICAKLIK,".",#SICAKLIK_KUSUR," C"
ENDiF
if ISITICIMOD=2 THEN
LCDOut $fe,1,"ISITICI ACIK"
'LCDOut $fe,$c0,"SICAKLIK=",dec2 SICAKLIK,".",#SICAKLIK_KUSUR," C"
ENDiF
if ISITICIMOD=0 THEN
LCDOut $fe,1,"ISITICI KAPALI"
'LCDOut $fe,$c0,"SICAKLIK=",dec2 SICAKLIK,".",#SICAKLIK_KUSUR," C"
ENDiF
endif
if ALTmenuno = 4 then
iF FANMOD=1 THEN
if FANSICAKLIK_KUSUR >10 then FANSICAKLIK_KUSUR=0
LCDOut $fe,1,"FAN OTO."
LCDOut $fe,$c0,"ISI=",dec2 FANSICAKLIK,".",#FANSICAKLIK_KUSUR," C"
ENDiF
iF FANMOD=2 THEN
LCDOut $fe,1,"FAN ACIK"
'LCDOut $fe,$c0,"SICAKLIK=",dec2 FANSICAKLIK,".",#FANSICAKLIK_KUSUR," C"
ENDiF
iF FANMOD=0 THEN
LCDOut $fe,1,"FAN KAPALI"
'LCDOut $fe,$c0,"SICAKLIK=",dec2 FANSICAKLIK,".",#FANSICAKLIK_KUSUR," C"
ENDiF
endif
if ALTmenuno = 5 then
if HAVAMOD=1 then
LCDOut $fe,1,"HAVA OTO."
LCDOut $fe,$c0,"ON",dec2 HAVAAC_SAAT,":",dec2 HAVAAC_DAKIKA," OFF",dec2 HAVAKAPAT_SAAT,":",dec2 HAVAKAPAT_DAKIKA
endif
if HAVAMOD=0 then
LCDOut $fe,1,"HAVA KAPALI"
'LCDOut $fe,$c0,"ON",dec2 ISIKAC_SAAT,":",dec2 ISIKAC_DAKIKA," OFF",dec2 ISIKKAPAT_SAAT,":",dec2 ISIKKAPAT_DAKIKA
endif
if HAVAMOD=2 then
LCDOut $fe,1,"HAVA ACIK"
'LCDOut $fe,$c0,"ON",dec2 ISIKAC_SAAT,":",dec2 ISIKAC_DAKIKA," OFF",dec2 ISIKKAPAT_SAAT,":",dec2 ISIKKAPAT_DAKIKA
endif
endif
if ALTmenuno = 6 then
if FILTREMOD=1 then
LCDOut $fe,1,"FiLTRE OTO."
LCDOut $fe,$c0,"ON",dec2 FILTREAC_SAAT,":",dec2 FILTREAC_DAKIKA," OFF",dec2 FILTREKAPAT_SAAT,":",dec2 FILTREKAPAT_DAKIKA
endif
if FILTREMOD=0 then
LCDOut $fe,1,"FiLTRE KAPALI"
'LCDOut $fe,$c0,"ON",dec2 ISIKAC_SAAT,":",dec2 ISIKAC_DAKIKA," OFF",dec2 ISIKKAPAT_SAAT,":",dec2 ISIKKAPAT_DAKIKA
endif
if FILTREMOD=2 then
LCDOut $fe,1,"FiLTRE ACIK"
'LCDOut $fe,$c0,"ON",dec2 ISIKAC_SAAT,":",dec2 ISIKAC_DAKIKA," OFF",dec2 ISIKKAPAT_SAAT,":",dec2 ISIKKAPAT_DAKIKA
endif
endif
if altmenuno=7 then
LCDOut $fe,1,"SAATi AYARI"
LCDOut $fe,$c0,dec2 gun1,"/",dec2 ay1,"/",dec2 yil1," ",dec2 saat1 ,":",dec2 dakika1
endif
if menusure > 0 then
if blink=1 then
if hane= 0 then
lcdout $FE,254," "
endif
if hane= 1 and altmenuno > 2 and altmenuno < 5 then
LCDOut $fe,196," "
endif
if altmenuno = 2 OR altmenuno = 5 OR altmenuno = 6 then
if hane=1 then LCDOut $fe,194," "
if hane=2 then LCDOut $fe,197," "
if hane=3 then LCDOut $fe,203," "
if hane=4 then LCDOut $fe,206," "
endif
if altmenuno = 7 then
if hane=1 then LCDOut $fe,192," "
if hane=2 then LCDOut $fe,195," "
if hane=3 then LCDOut $fe,198," "
if hane=4 then LCDOut $fe,201," "
if hane=5 then LCDOut $fe,204," "
endif
if altmenuno=1 then
if hane != 0 then
if hane*5//2 = 1 then LCDOut $fe,202," "
if hane*5//2 = 0 then LCDOut $fe,205," "
endif
endif
blink = 0
else
blink=1
endif
endif
pause 100 ' menuhızı
return
ZAMAN_OKU:
'LCDOUT 254,1," Zaman Oku"
' sayac=1-sayac: 'if sayac=1 then low porta.3
high RTC_RST : PAUSE 10
shiftout RTC_DTA, RTC_CLK, 0, [$BF]
SHIFTIN RTC_DTA, RTC_CLK, 1, [Saniye, Dakika, Saat,gun , ay, MEM, yil, MEM] 'OKU
MEM=Saniye:GOSUB CEVIR:Saniye=SAYI
MEM=Dakika:GOSUB CEVIR:Dakika=SAYI
MEM=Saat:GOSUB CEVIR:Saat=SAYI
MEM=gun:GOSUB CEVIR:gun=SAYI
MEM=ay:GOSUB CEVIR:ay=SAYI
MEM=yil:GOSUB CEVIR:yil=SAYI
low RTC_RST : PAUSE 10
return
ZAMAN_YAZ:
MEM=SN:GOSUB TERSCEVIR:SN=SAYI
MEM=Dakika:GOSUB TERSCEVIR:Dakika=SAYI
MEM=saat:GOSUB TERSCEVIR:saat=SAYI
MEM=gun:GOSUB TERSCEVIR:gun=SAYI
MEM=ay:GOSUB TERSCEVIR:ay=SAYI
MEM=yil:GOSUB TERSCEVIR:yil=SAYI
high RTC_RST : pause 10
SHIFTOUT RTC_DTA, RTC_CLK, 0, [$8E, 0] 'YAZMAK İÇİN HAZIRLA
low RTC_RST:PAUSE 10
high RTC_RST
SHIFTOUT RTC_DTA, RTC_CLK, 0, [$BE, Saniye, Dakika, Saat,gun , ay, 0, yil, 0]
PAUSE 10 'YAZ
low RTC_RST
return
CEVIR:
ONLAR=MEM & %01110000
ONLAR=ONLAR>>4
BIRLER=MEM & %00001111
SAYI=ONLAR*10+BIRLER
RETURN
TERSCEVIR:
ONLAR=MEM DIG 1
ONLAR=ONLAR<<4
BIRLER=MEM DIG 0
SAYI=ONLAR+BIRLER
RETURN
EKAR_YAZ:
if altmenuno=2 then write 6,ISIKAC_SAAT : write 7,ISIKAC_DAKIKA :write 8,ISIKKAPAT_SAAT : write 9,ISIKKAPAT_DAKIKA :write 10,ISIKMOD
if altmenuno=3 then write 0 ,SICAKLIK : write 1 ,SICAKLIK_KUSUR : write 2 ,ISITICIMOD
if altmenuno=4 then write 3 ,FANSICAKLIK : write 4 ,FANSICAKLIK_KUSUR : write 5 ,FANMOD
if altmenuno=1 then
if YEM_MIKTAR < 6 THEN YEMLEME [YEM_MIKTAR*2]=23 :YEMLEME [YEM_MIKTAR*2+1]=59
write 11,YEM_MIKTAR : write 12,YEMLEME[0] :write 13,YEMLEME[1]:write 14,YEMLEME[2]:write 15,YEMLEME[3]
write 16,YEMLEME[4] :write 17,YEMLEME[5]:write 18,YEMLEME[6]:write 19,YEMLEME[7]:write 20,YEMLEME[8]
write 21,YEMLEME[9] :write 22,YEMLEME[10]:write 23,YEMLEME[11]
endif
iF altmenuno=5 then
write 24,HAVAAC_SAAT : write 25,HAVAAC_DAKIKA :write 26,HAVAKAPAT_SAAT : write 27,HAVAKAPAT_DAKIKA :write 28,HAVAMOD
endif
if altmenuno=6 then
write 29,FILTREAC_SAAT : write 30,FILTREAC_DAKIKA :write 31,FILTREKAPAT_SAAT : write 32,FILTREKAPAT_DAKIKA :write 33,FILTREMOD
endif
LCDOut $fe,1,"KAYDEDiLDi"
'LCDOut $fe,$c0,"KAYDEDiLDi"
menuno=ALTMENUNO:ALTMENUNO=0:HANE=0
PAUSE 1000
gosub menugoster
GOTO main
'----------------ISI SENSÖR OKUMA BÖLÜMÜ --------------------------------
'----------------ISI SENSÖR OKUMA BÖLÜMÜ --------------------------------
'----------------ISI SENSÖR OKUMA BÖLÜMÜ --------------------------------
SENSOROKU:
OWOUT Comm_Pin, 1, [$CC, $44]' ISI değerini oku
Bekle:
OWIN Comm_Pin, 4, [Busy] ' Busy değerini oku
OWOUT Comm_Pin, 1, [$CC, $BE]' scratchpad memory oku
OWIN Comm_Pin, 0, [HAM.Lowbyte, HAM.Highbyte]' İki byte oku ve okumayı bitir.
GOSUB Hesapla
RETURN
Hesapla: ' Ham değerden Santigrat derece hesabı
'Sign = "+"
'IF SIGN_BITI = NEGAT_ISI THEN
' Sign = "-"
' temp=($ffff-ham+1)*625
' ISI = DIV32 10
' GOTO GEC
'endif
'TEMP = 625 * HAM '
'ISI = DIV32 10 ' Div32 hassas derece hesabı için 32 bit bölme yapıyoruz.
GEC:
TEMP=HAM//2
FLOAT = TEMP*5
ISI =HAM/2
Y=ISI*10+FLOAT
RETURN
YEMLE:
portd.1=0
LCDOUT $fe,1,"YEM"
'LCDOut $fe,$c0,"A",#ACMAZAMANI," K",#KAPAMAZAMANI
i=0
FOR i = 0 to 23
porta.2=0:porta.0=1
pause 400
porta.3=0:porta.1=1
pause 400
porta.0=0:porta.2=1
pause 400
porta.1=0:porta.3=1
pause 400
i=i+1
next i
porta=0
i=0
j=0
return
ZAMANI_HESAPLA:
ACMAZAMANI = AC_SAAT DIG 1 * 1000+AC_SAAT DIG 0 * 100 +AC_DAKIKA DIG 1 * 10+ AC_DAKIKA DIG 0
KAPAMAZAMANI= KAPAT_SAAT DIG 1 * 1000+KAPAT_SAAT DIG 0 * 100 +KAPAT_DAKIKA DIG 1 * 10+ KAPAT_DAKIKA DIG 0
RETURN
tuskilit:
if kilitsure > 0 then
kilitsure =kilitsure-1
pause 1000
goto buton
endif
return
buzzer:
portd.0=1
pause 30
portd.0=0
return
'********************TUSLAR BIRAKILMISMI KONTROLET******************************
'TUS_BIRAK_KONTROL:
'PAUSE 50
'if PORTB.0 = 0 or PORTB.1 = 0 or PORTB.2 = 0 or PORTB.3 = 0 or PORTB.4 = 0 or PORTB.5 = 0 THEN TUS_BIRAK_KONTROL
'RETURN
Üye imzalarını sadece giriş yapan üyelerimiz görebilir
Maalesef uğraşamadım bi türlü vakit bulup ama en kısa zamanda bakıcam inşaallah..Aslında neresinden başlasam bi türlü kararda veremedim sizin yemliğin resmini yada videosunu görebilseydim belki bi fikir edinebilirdim..
Üye imzalarını sadece giriş yapan üyelerimiz görebilir
Üye imzalarını sadece giriş yapan üyelerimiz görebilir
Üye imzalarını sadece giriş yapan üyelerimiz görebilir
Üye imzalarını sadece giriş yapan üyelerimiz görebilir
Üye imzalarını sadece giriş yapan üyelerimiz görebilir