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
D0DF: alprogram felhívása (Call) Adr-high, Adr-low (0-15)
E0EF: visszaugrás az alprogramból (Return)
A feltételes ugrás parancs alkalmazására egy példát talál a 6. fejezet példaprogramjaitt. A
program itt kissé módosítva a nulla címre lett beállítva. Mivel a cím felsõ része (Adr-hi) nyugalmi
állapotban 0, a kontroller tehát a 0 oldalon kezd, a 80. parancsot itt nem szabad alkalmazni.
Ismét egy gombnyomás hosszúságát méri és jelzi ki a program. Az összes várakozási parancs
el lett távolítva a programból, úgyhogy most nagyobb idõfelbontással dolgozik.
Parancs
Adatok
Megjegyzés
CC 31 40 71 54 CE 33 37
15. kilistázás: Reakció az S1 gomb megnyomására
A 00 címben lévõ CC ugrásparancs az S1 gomb állapotát értékeli ki. Nyugalmi állapotában az
S1 = 1. A feltétel tehát nem igaz, és a 01 címben lévõ parancs nem kerül átugrásra. Ott egy
relatív parancs van a kezdetre való ugrásra. A program addig ismétli a 00 és a 01 címben lé
parancsokat, amíg csak meg van nyomva a gomb. Ezután a feltétel igaz lesz, és a 01 cím
átugrásra kerül. Ezzel elkezdõdik a tulajdonképpeni mérési mûvelet. Az akkumulátor törlõdik,
majd újra és újra 1-gyel növekszik, és kiadódik a LED-ekre. A 05 címben egy további feltételes
ugrásparancs, a CE áll. Itt egy parancs átugrásának a feltétele S1 = 1. Mivel a gomb egyelõre
még meg van nyomva, a feltétel nem igaz. A 06 címben lévõ parancs is végrehajtásra kerül, és
a 03 címre törté visszaugráshoz vezet. A program csak akkor jut el a 07 címre, amikor
felengedi a gombot, és ezáltal a kezdetre történõ visszaugráshoz.