$regfile = "m88def.dat" $crystal = 8000000 '$baud = 38400 $hwstack = 40 ' default use 32 for the hardware stack $swstack = 40 ' default use 10 for the SW stack $framesize = 40 ' default use 40 for the frame space 'LCD config##################################################################### Ddrc = &B11111111 'LCD-Output Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Lcd = 16 * 2 Initlcd Cls Cursor Off Noblink 'Taster Alias Pind.2 'Config Taster = Input 'On Int0 On_int0 'Config Int0 = Falling 'Enable Int0 'Timer Config################################################################### 'Declare Sub T0_isr 'Declare Sub On_int0 'declare sub ausgabe 'WS2801######################################################################### 'Config Spi = Soft , Din = Portd.4 , Dout = Portd.1 , Ss = None , Clock = Portd.0 'Spiinit Config Spi = Hard , Master = Yes Spiinit Dim Rgb(12) As Byte 'Sensoreingänge################################################################# Kap1 Alias Pind.5 Config Kap1 = Input Portd.5 = 1 Kap2 Alias Pind.6 Config Kap2 = Input Portd.6 = 1 Kap3 Alias Pind.7 Config Kap3 = Input Portd.7 = 1 Kap4 Alias Pinb.0 Config Kap4 = Input Portb.0 = 1 'Timer Config################################################################### 'Config Timer1 = Timer , Prescale = 64 'On Timer1 T0_isr 'Enable Timer1 '############################################################################### '############################################################################### 'Variablen###################################################################### Dim S1 As String * 3 Dim S2 As String * 3 Dim S3 As String * 3 Dim S4 As String * 3 '############################################################################### 'Ventile######################################################################## Dim Valves(3)as Byte '#098765# 20-15 Valves(1) = &B00000000 '4321098# 14-8 Valves(2) = &B00000000 '7654321# 7-1 Valves(3) = &B00000000 Spiout Valves(1) , 3 'Drinks######################################################################### Dim 1caipirinha As Byte Dim 2tequilasunrise As Byte Dim 3cubalibre As Byte Dim 4mochito As Byte '############################################################################### Enable Interrupts '############################################################################### '############################################################################### '############################################################################### Do If 1caipirinha > 0 Then Select Case 1caipirinha Case 1 To 20: 'Zitronensaft '#098765# 20-15 Valves(1) = &B01000000 + Valves(1) '4321098# 14-8 Valves(2) = &B00000000 + Valves(2) '7654321# 7-1 Valves(3) = &B00000000 + Valves(3) Case 21 To 80: 'Cachaca '#098765# 20-15 Valves(1) = &B00100000 + Valves(1) '4321098# 14-8 Valves(2) = &B00000000 + Valves(2) '7654321# 7-1 Valves(3) = &B00000000 + Valves(3) End Select If 1caipirinha < 255 Then Incr 1caipirinha End If If 2tequilasunrise > 0 Then Select Case 2tequilasunrise Case 1 To 40: 'Tequila '#098765# 20-15 Valves(1) = &B00010000 + Valves(1) '4321098# 14-8 Valves(2) = &B00000000 + Valves(2) '7654321# 7-1 Valves(3) = &B00000000 + Valves(3) Case 41 To 55: 'Zitronensaft '#098765# 20-15 Valves(1) = &B00001000 + Valves(1) '4321098# 14-8 Valves(2) = &B00000000 + Valves(2) '7654321# 7-1 Valves(3) = &B00000000 + Valves(3) Case 61 To 180: 'Orangensaft '#098765# 20-15 Valves(1) = &B00000100 + Valves(1) '4321098# 14-8 Valves(2) = &B00000000 + Valves(2) '7654321# 7-1 Valves(3) = &B00000000 + Valves(3) Case 171 To 254: 'Grenadine '#098765# 20-15 Valves(1) = &B00000010 + Valves(1) '4321098# 14-8 Valves(2) = &B00000000 + Valves(2) '7654321# 7-1 Valves(3) = &B00000000 + Valves(3) End Select If 2tequilasunrise < 255 Then Incr 2tequilasunrise End If If 3cubalibre > 0 Then Select Case 3cubalibre Case 1 To 40: 'Rum '#098765# 20-15 Valves(1) = &B00000000 + Valves(1) '4321098# 14-8 Valves(2) = &B10000000 + Valves(2) '7654321# 7-1 Valves(3) = &B00000000 + Valves(3) Case 61 To 200: 'Cola '#098765# 20-15 Valves(1) = &B00000000 + Valves(1) '4321098# 14-8 Valves(2) = &B01000000 + Valves(2) '7654321# 7-1 Valves(3) = &B00000000 + Valves(3) End Select If 3cubalibre < 255 Then Incr 3cubalibre End If If 4mochito > 0 Then Select Case 4mochito Case 1 To 35: 'Rum '#098765# 20-15 Valves(1) = &B00000000 + Valves(1) '4321098# 14-8 Valves(2) = &B00100000 + Valves(2) '7654321# 7-1 Valves(3) = &B00000000 + Valves(3) Case 36 To 130: 'Soda '#098765# 20-15 Valves(1) = &B00000000 + Valves(1) '4321098# 14-8 Valves(2) = &B00010000 + Valves(2) '7654321# 7-1 Valves(3) = &B00000000 + Valves(3) End Select If 4mochito < 255 Then Incr 4mochito End If 'Spiout Valves(1) , 3 '#####################################################################Caipirinha If 1caipirinha = 0 Then Rgb(1) = 0 Rgb(2) = 0 Rgb(3) = 254 If Kap1 = 0 Then Incr 1caipirinha 'Sensor für Caipirinha meldet etwas Elseif 1caipirinha = 255 Then If Kap1 = 1 Then 'Sensor für Caipirinha meldet nichts 1caipirinha = 0 Rgb(1) = 0 Rgb(2) = 0 Rgb(3) = 254 End If End If If 1caipirinha > 0 Then Rgb(1) = 255 - 1caipirinha Rgb(2) = 1caipirinha Rgb(3) = 0 End If '#################################################################Tequilasunrise If 2tequilasunrise = 0 Then Rgb(4) = 0 Rgb(5) = 0 Rgb(6) = 254 If Kap2 = 0 Then Incr 2tequilasunrise 'Sensor für Tequilasunrise meldet etwas Elseif 2tequilasunrise = 255 Then If Kap2 = 1 Then 'Sensor für Tequilasunrise meldet nichts 2tequilasunrise = 0 Rgb(4) = 0 Rgb(5) = 0 Rgb(6) = 254 End If End If If 2tequilasunrise > 0 Then Rgb(4) = 255 - 2tequilasunrise Rgb(5) = 2tequilasunrise Rgb(6) = 0 End If '######################################################################Cubalibre If 3cubalibre = 0 Then Rgb(7) = 0 Rgb(8) = 0 Rgb(9) = 254 If Kap3 = 0 Then Incr 3cubalibre 'Sensor für Cubalibre meldet etwas Elseif 3cubalibre = 255 Then If Kap3 = 1 Then 'Sensor für Cubalibre meldet nichts 3cubalibre = 0 Rgb(7) = 0 Rgb(8) = 0 Rgb(9) = 254 End If End If If 3cubalibre > 0 Then Rgb(7) = 255 - 3cubalibre Rgb(8) = 3cubalibre Rgb(9) = 0 End If '########################################################################Mochito If 4mochito = 0 Then Rgb(10) = 0 Rgb(11) = 0 Rgb(12) = 254 If Kap4 = 0 Then Incr 4mochito 'Sensor für Mochito meldet etwas Elseif 4mochito = 255 Then If Kap4 = 1 Then 'Sensor für Mochito meldet nichts 4mochito = 0 Rgb(10) = 0 Rgb(11) = 0 Rgb(12) = 254 End If End If If 4mochito > 0 Then Rgb(10) = 255 - 4mochito Rgb(11) = 4mochito Rgb(12) = 0 End If '############################################################################### Config Spi = Soft , Din = Pind.4 , Dout = Portd.1 , Ss = None , Clock = Portd.0 Spiinit Spiout Rgb(1) , 12 Waitms 1 '( Config Spi = Hard , Master = Yes Spiinit Spiout Valves(1) , 3 Waitms 20 '#098765# 20-15 Valves(1) = &B00000000 '4321098# 14-8 Valves(2) = &B00000000 '7654321# 7-1 Valves(3) = &B00000000 Spiout Valves(1) , 3 ') '############################################################################### Loop End