.include "m8def.inc" ; Versenkregnersteuerung über Magnetventile ; Magnetventile an Port PD0 ...PD4 PB6,PB7,PD5,PD5,PD7,PB0,PB1 über Mosfet angesteuert ; Start über Betriebsspannung ; Halten der Betriebsspannung bis Programmende über PB2. PB2 = 0 beendet das Programm ; Einstellung von Zeitschleifen über PC4,PC5 ; Zeitausgabe Binär über PC0...PC3 ; Microprozessor 1 Mhz sbi PortB,2 ; Port B2 setzen für Stromhaltung sbi PortD,0 ; Setzen Rasensprenger 1 auf 1 sbis Pinc,Pin4 ; Überspringe den nächsten Befehl wenn Bit 4 in Pinc gesetzt ist rjmp Zeit_8_Minuten sbi PortC,3 ; Binär 10 Minuten 1010 sbi PortC,1 ; Binär 10 Minuten 1010 ; ============================= ; Warteschleifen-Generator ; 60000000 Zyklen: ; ----------------------------- ; warte 49939965 Zyklen: ldi R17, $FF WGLOOP0: ldi R18, $FF WGLOOP1: ldi R19, $FF WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; ----------------------------- ; warte 10060014 Zyklen: ldi R17, $83 WGLOOP3: ldi R18, $8F WGLOOP4: ldi R19, $B2 WGLOOP5: dec R19 brne WGLOOP5 dec R18 brne WGLOOP4 dec R17 brne WGLOOP3 ; ----------------------------- ; warte 21 Zyklen: ldi R17, $07 WGLOOP6: dec R17 brne WGLOOP6 ; ============================= cbi Portc,1 ;löschen Binär 10 Minuten 1010 sbi PortC,3 ; Binär 9 Minuten 1001 sbi PortC,0 ; Binär 9 Minuten 1001 ; ============================= ; Warteschleifen-Generator ; 60000000 Zyklen: ; ----------------------------- ; warte 49939965 Zyklen: ldi R17, $FF WGLOOP0: ldi R18, $FF WGLOOP1: ldi R19, $FF WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; ----------------------------- ; warte 10060014 Zyklen: ldi R17, $83 WGLOOP3: ldi R18, $8F WGLOOP4: ldi R19, $B2 WGLOOP5: dec R19 brne WGLOOP5 dec R18 brne WGLOOP4 dec R17 brne WGLOOP3 ; ----------------------------- ; warte 21 Zyklen: ldi R17, $07 WGLOOP6: dec R17 brne WGLOOP6 ; ============================= Zeit_8_Minuten: ; Behandlungsroutine für Bit 4 = 0 cbi PortC,0 ;löschen Binär 9 Minuten 1001 sbi PortC,3 ; Binär 8 Minuten 1000 ; ============================= ; Warteschleifen-Generator ; 60000000 Zyklen: ; ----------------------------- ; warte 49939965 Zyklen: ldi R17, $FF WGLOOP0: ldi R18, $FF WGLOOP1: ldi R19, $FF WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; ----------------------------- ; warte 10060014 Zyklen: ldi R17, $83 WGLOOP3: ldi R18, $8F WGLOOP4: ldi R19, $B2 WGLOOP5: dec R19 brne WGLOOP5 dec R18 brne WGLOOP4 dec R17 brne WGLOOP3 ; ----------------------------- ; warte 21 Zyklen: ldi R17, $07 WGLOOP6: dec R17 brne WGLOOP6 ; ============================= cbi PortC,3 ; löschen Binär 8 Minuten 1000 sbi PortC,0 ; Binär 7 Minuten 0111 sbi PortC,1 ; Binär 7 Minuten 0111 sbi PortC,2 ; Binär 7 Minuten 0111 ; ============================= ; Warteschleifen-Generator ; 60000000 Zyklen: ; ----------------------------- ; warte 49939965 Zyklen: ldi R17, $FF WGLOOP0: ldi R18, $FF WGLOOP1: ldi R19, $FF WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; ----------------------------- ; warte 10060014 Zyklen: ldi R17, $83 WGLOOP3: ldi R18, $8F WGLOOP4: ldi R19, $B2 WGLOOP5: dec R19 brne WGLOOP5 dec R18 brne WGLOOP4 dec R17 brne WGLOOP3 ; ----------------------------- ; warte 21 Zyklen: ldi R17, $07 WGLOOP6: dec R17 brne WGLOOP6 ; ============================= cbi PortC,0 ; löschen Binär 7 Minuten 0111 sbi PortC,1 ; Binär 6 Minuten 0110 sbi PortC,2 ; Binär 6 Minuten 0110 ; ============================= ; Warteschleifen-Generator ; 60000000 Zyklen: ; ----------------------------- ; warte 49939965 Zyklen: ldi R17, $FF WGLOOP0: ldi R18, $FF WGLOOP1: ldi R19, $FF WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; ----------------------------- ; warte 10060014 Zyklen: ldi R17, $83 WGLOOP3: ldi R18, $8F WGLOOP4: ldi R19, $B2 WGLOOP5: dec R19 brne WGLOOP5 dec R18 brne WGLOOP4 dec R17 brne WGLOOP3 ; ----------------------------- ; warte 21 Zyklen: ldi R17, $07 WGLOOP6: dec R17 brne WGLOOP6 ; ============================= cbi PortC,1 ; löschen Binär 6 Minuten 0110 sbi PortC,0 ; Binär 5 Minuten 0101 sbi PortC,2 ; Binär 5 Minuten 0101 ; ============================= ; Warteschleifen-Generator ; 60000000 Zyklen: ; ----------------------------- ; warte 49939965 Zyklen: ldi R17, $FF WGLOOP0: ldi R18, $FF WGLOOP1: ldi R19, $FF WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; ----------------------------- ; warte 10060014 Zyklen: ldi R17, $83 WGLOOP3: ldi R18, $8F WGLOOP4: ldi R19, $B2 WGLOOP5: dec R19 brne WGLOOP5 dec R18 brne WGLOOP4 dec R17 brne WGLOOP3 ; ----------------------------- ; warte 21 Zyklen: ldi R17, $07 WGLOOP6: dec R17 brne WGLOOP6 ; ============================= cbi PortC,0 ; löschen Binär 5 Minuten 0101 sbi PortC,2 ; Binär 4 Minuten 0100 ; ============================= ; Warteschleifen-Generator ; 60000000 Zyklen: ; ----------------------------- ; warte 49939965 Zyklen: ldi R17, $FF WGLOOP0: ldi R18, $FF WGLOOP1: ldi R19, $FF WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; ----------------------------- ; warte 10060014 Zyklen: ldi R17, $83 WGLOOP3: ldi R18, $8F WGLOOP4: ldi R19, $B2 WGLOOP5: dec R19 brne WGLOOP5 dec R18 brne WGLOOP4 dec R17 brne WGLOOP3 ; ----------------------------- ; warte 21 Zyklen: ldi R17, $07 WGLOOP6: dec R17 brne WGLOOP6 ; ============================= cbi PortC,2 ; löschen Binär 4 Minuten 0100 sbi PortC,0 ; Binär 3 Minuten 0011 sbi PortC,1 ; Binär 3 Minuten 0011 ; ============================= ; Warteschleifen-Generator ; 60000000 Zyklen: ; ----------------------------- ; warte 49939965 Zyklen: ldi R17, $FF WGLOOP0: ldi R18, $FF WGLOOP1: ldi R19, $FF WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; ----------------------------- ; warte 10060014 Zyklen: ldi R17, $83 WGLOOP3: ldi R18, $8F WGLOOP4: ldi R19, $B2 WGLOOP5: dec R19 brne WGLOOP5 dec R18 brne WGLOOP4 dec R17 brne WGLOOP3 ; ----------------------------- ; warte 21 Zyklen: ldi R17, $07 WGLOOP6: dec R17 brne WGLOOP6 ; ============================= cbi PortC,0 ; löschen Binär 3 Minuten 0011 sbi PortC,1 ; Binär 2 Minuten 0010 ; ============================= ; Warteschleifen-Generator ; 60000000 Zyklen: ; ----------------------------- ; warte 49939965 Zyklen: ldi R17, $FF WGLOOP0: ldi R18, $FF WGLOOP1: ldi R19, $FF WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; ----------------------------- ; warte 10060014 Zyklen: ldi R17, $83 WGLOOP3: ldi R18, $8F WGLOOP4: ldi R19, $B2 WGLOOP5: dec R19 brne WGLOOP5 dec R18 brne WGLOOP4 dec R17 brne WGLOOP3 ; ----------------------------- ; warte 21 Zyklen: ldi R17, $07 WGLOOP6: dec R17 brne WGLOOP6 ; ============================= cbi PortC,1 ; löschen Binär 2 Minuten 0010 sbi PortC,1 ; Binär 1 Minuten 0001 ; ============================= ; Warteschleifen-Generator ; 60000000 Zyklen: ; ----------------------------- ; warte 49939965 Zyklen: ldi R17, $FF WGLOOP0: ldi R18, $FF WGLOOP1: ldi R19, $FF WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; ----------------------------- ; warte 10060014 Zyklen: ldi R17, $83 WGLOOP3: ldi R18, $8F WGLOOP4: ldi R19, $B2 WGLOOP5: dec R19 brne WGLOOP5 dec R18 brne WGLOOP4 dec R17 brne WGLOOP3 ; ----------------------------- ; warte 21 Zyklen: ldi R17, $07 WGLOOP6: dec R17 brne WGLOOP6 ; ============================= cbi PortC,0 ; löschen Binär 1 Minuten 0001 ; Binär 0 Minuten 0000 ; ============================= ; Warteschleifen-Generator ; 60000000 Zyklen: ; ----------------------------- ; warte 49939965 Zyklen: ldi R17, $FF WGLOOP0: ldi R18, $FF WGLOOP1: ldi R19, $FF WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; ----------------------------- ; warte 10060014 Zyklen: ldi R17, $83 WGLOOP3: ldi R18, $8F WGLOOP4: ldi R19, $B2 WGLOOP5: dec R19 brne WGLOOP5 dec R18 brne WGLOOP4 dec R17 brne WGLOOP3 ; ----------------------------- ; warte 21 Zyklen: ldi R17, $07 WGLOOP6: dec R17 brne WGLOOP6 ; ============================= sbi PortD,1 ; Setzen Rasensprenger 2 auf 1 (Druckstoßreduzierung) ; ============================= ; Warteschleifen-Generator ; 10000000 Zyklen: ; ----------------------------- ; warte 9999990 Zyklen: ldi R17, $42 WGLOOP0: ldi R18, $D6 WGLOOP1: ldi R19, $EB WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0 ; ----------------------------- ; warte 9 Zyklen: ldi R17, $03 WGLOOP3: dec R17 brne WGLOOP3 ; ----------------------------- ; warte 1 Zyklus: nop ; ============================= cbi PortD,0 ; Zurücksetzen Rasensprenger 1 auf 0 cbi PortB,2 ; Stromhaltung ausschalten