$regfile = "m32def.dat" $crystal = 16000000 'LCD einstellungen Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.3 , Db6 = Porta.2 , _ Db7 = Porta.1 , E = Porta.6 , Rs = Porta.5 Config Lcd = 20x4 Cursor Off Cls 'Relais setzen Config Portc.2 = Output Nikon Alias Portc.2 'Lüfter Config Portc.7 = Output Lüfter Alias Portc.7 'Tasten einstellen Config Pind.3 = Input 'richtig Config Pind.2 = Input 'richtig Config Pinb.2 = Input 'richtig Config Pinb.4 = Input Portd.3 = 1 Portd.2 = 1 Portb.2 = 1 Portb.4 = 1 Runter Alias Pind.3 Rechts Alias Pind.2 Links Alias Pinb.2 Hoch Alias Pinb.4 'Timer1 Config Timer1 = Timer , Prescale = 256 On Timer1 Kamer_nikon Enable Timer1 Enable Interrupts Stop Timer1 'Ventile einstellem Config Portd.4 = Output Config Portd.5 = Output Config Portb.3 = Output Config Portd.7 = Output Ventil2 Alias Portd.4 Ventil1 Alias Portd.5 Ventil3 Alias Portb.3 Ventil7 Alias Portd.7 'variabeln Dim Menü As Byte Dim Kamera As Word Dim Kamera_x As Eram Word Dim Tat As Word Dim Tat_x As Eram Word Dim Tropfen1 As Word Dim T1_x As Eram Word Dim Tropfen2 As Word Dim T2_x As Eram Word Dim A As Byte Dim Timer1_load As Word Dim Flag As Bit Dim X As Single Dim Kamera_load As Word 'Vatiabeln setzten Menü = 1 Anfang: 'anfang Cls Locate 1 , 1 Lcd "Willkommen" Locate 2 , 1 Lcd " Svens -" Locate 3 , 1 Lcd "Tropfengenerator" Locate 4 , 1 Lcd "www.Shp-art.de" Wait 1 Cls Locate 1 , 1 Lcd "Ertstellt von" Locate 2 , 1 Lcd "Sven Hube" Locate 3 , 1 Lcd "Version 4.6.1" Wait 1 Cls Start_menü: Gosub Lesen 'Startmenü----------------------- Gosub Beschreibung_lcd Do If Runter = 0 Then Waitms 25 If Runter = 0 Then Do If Runter = 1 Then Exit Do Loop Menü = Menü + 1 If Menü = 5 Then Menü = 1 End If End If End If If Hoch = 0 Then Waitms 25 If Hoch = 0 Then Do If Hoch = 1 Then Exit Do Loop Menü = Menü - 1 If Menü = 0 Then Menü = 4 End If End If End If If Links = 0 Then Waitms 25 If Links = 0 Then Do Locate Menü , 1 Lcd "X" If Links = 1 Then Exit Do Loop Menü = 1 End If End If If Rechts = 0 Then Waitms 25 If Rechts = 0 Then Do Locate Menü , 1 Lcd "=" If Rechts = 1 Then Exit Do Loop Select Case Menü Case 1 Gosub Lesen Gosub Foto Gosub Beschreibung_lcd Case 2 Gosub Einstellen Gosub Beschreibung_lcd Case 3 Gosub Entfüften Gosub Beschreibung_lcd Case 4 Gosub Tropfen Gosub Beschreibung_lcd End Select End If End If Select Case Menü Case 1 Locate 1 , 1 Lcd ">" Locate 2 , 1 Lcd " " Locate 3 , 1 Lcd " " Locate 4 , 1 Lcd " " Case 2 Locate 1 , 1 Lcd " " Locate 2 , 1 Lcd ">" Locate 3 , 1 Lcd " " Locate 4 , 1 Lcd " " Case 3 Locate 1 , 1 Lcd " " Locate 2 , 1 Lcd " " Locate 3 , 1 Lcd ">" Locate 4 , 1 Lcd " " Case 4 Locate 1 , 1 Lcd " " Locate 2 , 1 Lcd " " Locate 3 , 1 Lcd " " Locate 4 , 1 Lcd ">" End Select Loop '------------------------------------------------------------------------------- Foto: Lüfter = 1 Cls 'Foto Programm ------------------------------ Locate 1 , 1 Lcd "Foto machen" Locate 2 , 1 Lcd "warte bis Foto:" ; " " ; " s" For A = 5 To 1 Step -1 Locate 2 , 17 Lcd A Waitms 250 Next Cls Locate 3 , 6 Lcd "...LOS..." Flag = 0 X = Kamera / 1000 X = X * 62500 X = 65536 - X Kamera_load = X Timer1_load = Kamera_load Timer1 = Timer1_load Enable Interrupts Start Timer1 nop Ventil1 = 1 'Ventile zeit steuern Waitms Tropfen1 Ventil1 = 0 Waitms Tat Ventil1 = 1 Waitms Tropfen2 Ventil1 = 0 If Flag = 0 Then Do If Flag = 1 Then Exit Do Loop End If Cls Locate 3 , 6 Lcd "..OK.." Waitms 500 Lüfter = 0 Nikon = 0 Return Kamer_nikon: Nikon = 1 Flag = 1 Stop Timer1 Return Einstellen: 'einstell Programm ----------------------------- Gosub Einstellen_lcd Do If Runter = 0 Then Waitms 25 If Runter = 0 Then Do If Runter = 1 Then Exit Do Loop Menü = Menü + 1 If Menü = 5 Then Menü = 1 End If End If End If If Hoch = 0 Then Waitms 25 If Hoch = 0 Then Do If Hoch = 1 Then Exit Do Loop Menü = Menü - 1 If Menü = 0 Then Menü = 4 End If End If End If If Links = 0 Then Waitms 25 If Links = 0 Then Do Locate Menü , 1 Lcd "<" If Links = 1 Then Exit Do Loop Gosub Speicher Return End If End If Select Case Menü Case 1 Locate 1 , 1 Lcd ">" Locate 2 , 1 Lcd " " Locate 3 , 1 Lcd " " Locate 4 , 1 Lcd " " Case 2 Locate 1 , 1 Lcd " " Locate 2 , 1 Lcd ">" Locate 3 , 1 Lcd " " Locate 4 , 1 Lcd " " Case 3 Locate 1 , 1 Lcd " " Locate 2 , 1 Lcd " " Locate 3 , 1 Lcd ">" Locate 4 , 1 Lcd " " Case 4 Locate 1 , 1 Lcd " " Locate 2 , 1 Lcd " " Locate 3 , 1 Lcd " " Locate 4 , 1 Lcd ">" End Select If Rechts = 0 Then Waitms 25 If Rechts = 0 Then Do If Rechts = 1 Then Exit Do Loop Select Case Menü Case 1 'Tropfen 1 Do Locate 1 , 15 Lcd Tropfen1 ; " ms" ; " " If Rechts = 0 Then Waitms 25 If Rechts = 0 Then Do Locate Menü , 1 Lcd "+" If Rechts = 1 Then Exit Do Loop Tropfen1 = Tropfen1 + 1 If Tropfen1 > 200 Then Tropfen1 = 200 End If End If End If If Links = 0 Then Waitms 25 If Links = 0 Then Do Locate Menü , 1 Lcd "-" If Links = 1 Then Exit Do Loop Tropfen1 = Tropfen1 - 1 If Tropfen1 < 0 Then Tropfen1 = 0 End If End If End If If Hoch = 0 Then Waitms 25 If Hoch = 0 Then Do If Hoch = 1 Then Exit Do Loop Exit Do End If End If If Runter = 0 Then Waitms 25 If Runter = 0 Then Do If Runter = 1 Then Exit Do Loop Exit Do End If End If Loop Case 2 'Tropfen 2 Do Locate 2 , 15 Lcd Tropfen2 ; " ms" ; " " If Rechts = 0 Then Waitms 25 If Rechts = 0 Then Do Locate Menü , 1 Lcd "+" If Rechts = 1 Then Exit Do Loop Tropfen2 = Tropfen2 + 1 If Tropfen2 > 200 Then Tropfen2 = 200 End If End If End If If Links = 0 Then Waitms 25 If Links = 0 Then Do Locate Menü , 1 Lcd "-" If Links = 1 Then Exit Do Loop Tropfen2 = Tropfen2 - 1 If Tropfen2 < 0 Then Tropfen2 = 0 End If End If End If If Hoch = 0 Then Waitms 25 If Hoch = 0 Then Do If Hoch = 1 Then Exit Do Loop Exit Do End If End If If Runter = 0 Then Waitms 25 If Runter = 0 Then Do If Runter = 1 Then Exit Do Loop Exit Do End If End If Loop Case 3 'TaT Zeit Do Locate 3 , 15 Lcd Tat ; " ms" ; " " If Rechts = 0 Then Waitms 25 If Rechts = 0 Then Do Locate Menü , 1 Lcd "+" If Rechts = 1 Then Exit Do Loop Tat = Tat + 1 If Tat > 200 Then Tat = 200 End If End If End If If Links = 0 Then Waitms 25 If Links = 0 Then Do Locate Menü , 1 Lcd "-" If Links = 1 Then Exit Do Loop Tat = Tat - 1 If Tat < 0 Then Tat = 0 End If End If End If If Hoch = 0 Then Waitms 25 If Hoch = 0 Then Do If Hoch = 1 Then Exit Do Loop Exit Do End If End If If Runter = 0 Then Waitms 25 If Runter = 0 Then Do If Runter = 1 Then Exit Do Loop Exit Do End If End If Loop Case 4 'kamera auslöse zeit Do Locate 4 , 15 Lcd Kamera ; " ms" If Rechts = 0 Then Waitms 25 If Rechts = 0 Then Do Locate Menü , 1 Lcd "+" If Rechts = 1 Then Exit Do Loop Kamera = Kamera + 1 If Kamera > 300 Then Kamera = 0 End If End If End If If Links = 0 Then Waitms 25 If Links = 0 Then Do Locate Menü , 1 Lcd "-" If Links = 1 Then Exit Do Loop Kamera = Kamera - 1 If Kamera < 0 Then Kamera = 300 End If End If End If If Hoch = 0 Then Waitms 25 If Hoch = 0 Then Do If Hoch = 1 Then Exit Do Loop Exit Do End If End If If Runter = 0 Then Waitms 25 If Runter = 0 Then Do If Runter = 1 Then Exit Do Loop Exit Do End If End If Loop End Select End If End If Loop Return Entfüften: 'entfüften Programm ---------------------------- Cls Locate 1 , 1 Lcd "Enfuefungsprogramm" Locate 2 , 1 Lcd "< = zurueck" Locate 3 , 1 Lcd "> = Ventil oeffnen" Locate 4 , 1 Lcd "Ventil =" Lüfter = 1 Do If Rechts = 0 Then Waitms 25 If Rechts = 0 Then Ventil1 = 1 Locate 4 , 8 Lcd "offen" End If Else Ventil1 = 0 Locate 4 , 8 Lcd " zu " End If If Links = 0 Then Waitms 50 If Links = 0 Then Do If Links = 1 Then Exit Do Locate 2 , 1 Lcd "|" Loop Ventil1 = 0 Lüfter = 0 Return End If End If Loop Return Tropfen: Lüfter = 1 Cls '1x tropfen Programm ---------------------------- Locate 1 , 1 Lcd "^" ; "/v" ; "Zeit veraendern" Locate 2 , 1 Lcd "> = Tropfen" Locate 3 , 1 Lcd "< = zurueck" Locate 4 , 1 Lcd "Tropfenzeit =" Locate 4 , 15 Lcd Tropfen1 ; " ms " Do If Rechts = 0 Then Waitms 50 If Rechts = 0 Then Do If Rechts = 1 Then Exit Do Loop Gosub Tropfen_shut End If End If If Links = 0 Then Waitms 50 If Links = 0 Then Do If Links = 1 Then Exit Do Locate 3 , 1 Lcd "|" Loop Ventil1 = 0 Lüfter = 0 Gosub Speicher Return End If End If If Hoch = 0 Then Waitms 25 If Hoch = 0 Then Do If Hoch = 1 Then Exit Do Loop Tropfen1 = Tropfen1 + 1 If Tropfen1 > 200 Then Tropfen1 = 1 End If Locate 4 , 15 Lcd Tropfen1 ; " ms " End If End If If Runter = 0 Then Waitms 25 If Runter = 0 Then Do If Runter = 1 Then Exit Do Loop Tropfen1 = Tropfen1 - 1 If Tropfen1 < 1 Then Tropfen1 = 200 End If Locate 4 , 15 Lcd Tropfen1 ; " ms " End If End If Loop Return Tropfen_shut: Ventil1 = 1 Waitms Tropfen1 Ventil1 = 0 Return Speicher: 'speichern If Tropfen1 <> T1_x Then T1_x = Tropfen1 End If If Tropfen2 <> T2_x Then T2_x = Tropfen2 End If If Tat <> Tat_x Then Tat_x = Tat End If If Kamera <> Kamera_x Then Kamera_x = Kamera End If Return Lesen: 'lese Tropfen1 = 0 Tropfen2 = 0 Tat = 0 Kamera = 0 Tropfen1 = T1_x Tropfen2 = T2_x Tat = Tat_x Kamera = Kamera_x Return Beschreibung_lcd: Cls Locate 1 , 1 Lcd " " ; " Foto " Locate 2 , 1 Lcd " " ; " Einstellen" Locate 3 , 1 Lcd " " ; " Entfueften" Locate 4 , 1 Lcd " " ; " 1x Tropfen" Return Einstellen_lcd: Cls Locate 1 , 3 Lcd "Tropfen 1" Locate 2 , 3 Lcd "Tropfen 2" Locate 3 , 3 Lcd "TaT Zeit" Locate 4 , 3 Lcd "Kamera" Locate 1 , 15 Lcd Tropfen1 ; " ms" ; " " Locate 2 , 15 Lcd Tropfen2 ; " ms" ; " " Locate 3 , 15 Lcd Tat ; " ms" ; " " Locate 4 , 15 Lcd Kamera ; " ms" ; " " Return End