User manual
29
C5: if Din.1 = 1 then Adr = Adr + 1
C6: if Din.2 = 1 then Adr = Adr + 1
C7: if Din.3 = 1 then Adr = Adr + 1
C8: if Din.0 = 0 then Adr = Adr + 1
C9: if Din.1 = 0 then Adr = Adr + 1
CA: if Din.2 = 0 then Adr = Adr + 1
CB: if Din.3 = 0 then Adr = Adr + 1
CC: if S1 = 0 then Adr = Adr + 1
CD: if S2 = 0 then Adr = Adr + 1
CE: if S1 = 1 then Adr = Adr + 1
CF: if S2 = 1 then Adr = Adr + 1
D0–DF: oproep subroutine (Call) Adr-high, Adr-
low (0-15) E0–EF: terugsprong vanuit een subroutine
(Return)
Een voorbeeld voor de toepassing van voorwaardelijke sprongen vindt u in het
voorbeeldprogramma in hoofdstuk 6. Het is is hier enigszins aangepast op adres 0 gezet. Omdat
het bovenste deel van het adres (Adr-hi) in rusttoestand 0 is, de controller dus op pagina 0 begint,
mag de instructie 80 hier niet worden gebruikt. Hiermee wordt gemeten en weergegeven hoelang
de toets wordt ingedrukt. Alle wachtopdrachten zijn uit het programma verwijdert zodat het nu met
een hogere resolutie (tijd) werkt.
Adres
Instructie
Gegevens
Commentaar
00 C C S1 = 0?
01 3 1 Spring –1
02 4 0 A = 0
03 7 1 A = A + 1
04 5 4 Port = A
05 C E S1 = 1?
06 3 3 Spring –3
07 3 7 Spring –7
CC 31 40 71 54 CE 33 37
Listing 15: reactie op de toets S1
De sprongopdracht CC op adres 00 leest de toestand van de schakelaar S1 uit. In rusttoestand is
S1 = 1. De voorwaarde is dus niet waar en de instructie op adres 01 wordt niet overgeslagen. Daar
staat een relatieve sprongopdracht naar het begin. Het programma herhaalt de instructies op de
adressen 00 en 01 totdat de toets wordt ingedrukt. Dan wordt aan de voorwaarde voldaan en wordt
het adres 01 overgeslagen. Daarmee begint de eigenlijke meting. De accu wordt gewist en
vervolgens steeds met 1 opgehoogd en aan de LED's uitgevoerd. Op adres 05 staat een andere
voorwaardelijke sprongopdracht CE. Hier is de voorwaarde voor het overslaan van een instructie
S1=1. Omdat de toets in eerste instantie nog was ingedrukt, is niet aan de voorwaarde voldaan. De
instructie op adres 06 wordt dus uitgevoerd en er wordt teruggesprongen naar 03. Pas wanneer de
toets wordt losgelaten loopt het programma door naar adres 07 en daardoor via de terugsprong
naar het begin.