User manual
22 15
12 Sauts et branchements
Il y avait jusqu’à présent un simple retour (commande 3) qui remontait 15 adresses max. Maintenant
s’ajoute également un saut absolu (jump). Comme la destination de saut ne peut indiquer que 4 bits,
il faut une commande supplémentaire qui détermine le nibble élevé de l’adresse. C’est pourquoi on
obtient l’espace d’adressage 0-255.
C’est plus que nécessaire, car l’EEPROM du contrôleur contient uniquement 128 octets, soit la
plage 00 à 7F (décimal 0 à 127). La mémoire est donc répartie en huit pages, de la page 0 à la
page 7 (page 0-7).
La page de la destination de saut doit être déterminée avec un saut absolu.
Deux boucles de comptage avec les variables C et D effectuent des sauts absolus. La page de
l’adresse doit également être définie au préalable.
Les sauts conditionnels fonctionnent comme commande «skip» (omettre, ignorer). Lorsque chaque
condition est possible, l’adresse est ignorée. Une commande de saut ou une commande de calcul
peuvent, p. ex., être disponibles. Les comparaisons entre A et B ainsi que la requête directe de bit
du port d’entrée sont disponibles comme conditions.
Il existe en outre encore un appel de sous-programme (Call) et la commande de retour associée
(Return). Plusieurs sous-programmes sont autorisés, mais aucun sous-programme supplémentaire
ne doit être appelé depuis un sous-programme. En effet, l’interpréteur ne se souvient que d’une
adresse de retour.
80–8F: Adr-high = 0–15
90-0F : saut direct (Jump) sur Adr-high, Adr-low (0-15)
A0-AF : boucle de comptage Cx Adr-high, Adr-low (0-15)
A0-AF : boucle de comptage Dx Adr-high, Adr-low (0-15)
C1–CF: saut conditionnel : lorsque (condition 1-15) alors ignorer
C1: if A > B then Adr = Adr + 1
C2: if A < B then Adr = Adr + 1
C3: if A = B then Adr = Adr + 1
C4: if Din.0 = 1 then Adr = Adr + 1
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 : appel sous-programme (Call) Adr-high, Adr-low (0-15)
E0-EF : retour du sous-programme (Return)
Retrouvez un exemple d’utilisation de la commande de saut conditionnel dans le programme
d’exemple du chapitre 6. Il a été placé légèrement modifié à l’adresse 0. Comme la partie supérieure
de l’adresse (Adr-hi) est en état de repos 0, le contrôle commence alors à la page 0. La commande
80 ne doit pas être utilisée ici.
La longueur d’une pression est de nouveau mesurée et affichée. Toutes les commandes d’attente ont
été supprimées du programme, de sorte qu’il fonctionne désormais avec une résolution temporelle
plus élevée.
Img. 15 : S1 et S2 pour le mode de programmation
Img. 16 : trois boutons-poussoirs et témoin LED
- Première du bouton S2
- Afficher adresse (inférieure à 4 bits), 300 ms
- Affichage éteint, 300 ms
- Afficher commande
- Deuxième pression du bouton S2