User manual

02 5 1 B = A
03 6 9 A = AD1
04 C 1 Skip if A>B
05 1 0 LED’s 0000
06 4 9 A = 9
07 5 1 B = A
08 6 9 A = AD1
09 C 2 Skip if A<B
0A 1 F LED’s 1111
0B 3 A Spring –10
10 45 51 69 C1 10 49 51 69 C2 1F 3A
Listing 23: schemerschakelaar met hysterese
19 LED-dimmer
Het doel van dit voorbeeldprogramma is een regelbare LED-lamp. De helderheid van een LED aan
de PWM-uitgang moet via toetsen kunnen worden ingesteld. Hierbij kan met steeds kort op een
toets drukken om het volgende helderheidsniveau in te stellen of men drukt langer op de toets
waarbij de helderheid ook continue veranderd.
In de kern van het programma worden de bekende skip- instructies toegepast. Wanneer de resp.
toets niet wordt ingedrukt, wordt de bijbehorende instructie voor het ophogen of verlagen van de
inhoud van de accu overgeslagen. Het probleem is echter dat er normaal gesproken ook een
overdracht van 15 naar 0 of van 0 naar 15 kan voorkomen. Het is iets ingewikkelder om deze
overdracht te voorkomen. Hiervoor moet namelijk steeds worden uitgelezen of de onderste grens
(0) of de bovenste grens (15) al is bereikt. Omdat bij een vergelijking altijd de accu wordt gebruikt,
moet de inhoud daarvan tussendoor steeds worden opgeslagen. Hiervoor wordt gebruik gemaakt
van variabele C.
Adres
Instructie
Gegevens
Commentaar
00 8 0 AdrHi = 0
01 5 9 PWM = A
02 2 7 200 ms
03 5 2 C = A
04 4 F A = 15
05 5 1 B = A
06 6 2 A = C
07 C 2 Skip if A<B
08 9 B Spring 0B
09 C F Skip if S2 = 1
0A 7 1 A = A + 1
0B 5 2 C = A