User manual
8 29
Adresse Commande Données Remarque
25 7 1 A = A + 1
26 5 4 Port = A
27 5 9 PWM = A
28 2 6 Délai 100 ms
29 3 4 Saut –4
Liste 2 : compteur binaire avec sortie LED et PWM
Le programme de comptage peut être utilisé comme programme d’exercice pour la lecture de
nombres binaires. Ces derniers sont à maîtriser pour vos propres programmations. Chaque LED
représente un bit. Un nombre à 4 bits peut être affiché. Les LED sont représentées dans le circuit
selon leur valence : 8, 4, 2 et 1. Vous obtenez le nombre décimal grâce à l’addition de chaque valeur.
Pour l’écriture hexadécimale, les nombres 10 à 15 sont représentés par les lettres majuscules A à F.
8 4 2 1 Décimal Hexadécimal
0 0 0 0 0 0
0 0 0 1 1 1
0 0 1 0 2 2
0 0 1 1 3 3
0 1 0 0 4 4
0 1 0 1 5 5
0 1 1 0 6 6
0 1 1 1 7 7
1 0 0 0 8 8
1 0 0 1 9 9
1 0 1 0 10 A
1 0 1 1 11 B
1 1 0 0 12 C
1 1 0 1 13 D
1 1 1 0 14 E
1 1 1 1 15 F
Le programme peut également être utilisé comme clignotant pour différentes fréquences.
La sortie suivante la plus élevée possède soit la moitié de la fréquence soit une durée de période
doublée :
A1 : 200 ms
A2 : 400 ms
A3 : 800 ms
A4 : 1600 ms
Les valeurs numériques croissantes peuvent également être indiquées au niveau de la sortie
PWM (modulation de largeur d’impulsion).
Le signal PWM est un signal carré avec une fréquence d’env. 16 kHz. La durée d’impulsions
est alors commandée de façon à ce que le rapport impulsion-pause corresponde à la durée
d’activation moyenne et à la luminosité des LED. Cette dernière est par ailleurs commandée sur 15
niveaux en zéro et luminosité pleine.
Un signal PWM peut être égalisé comme une tension continue à l’aide d’un filtre passe-bas RC.
La sortie PWM est donc une sortie analogique. Grâce à ce programme, vous obtenez une tension
Adresse Commande Données Remarque
00 1 0 LED 0000
01 4 5 A = 5
02 5 1 B = A
03 6 9 A = AD1
04 C 1 Skip if A>B
05 1 0 LED 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 1111
0B 3 A saut –10
10 45 51 69 C1 10 49 51 69 C2 1F 3A
Liste 23 : interrupteur crépusculaire avec hystérésis
19 Variateur LED
Le but de cet exemple de programme est une lampe à LED commandable. La luminosité d’une
LED sur la sortie PWM doit pouvoir se régler via les boutons-poussoirs. Vous pouvez donc appuyer
brièvement sur un bouton pour obtenir le niveau de luminosité suivant, ou bien exercez une
pression continue pour modifier la luminosité en continu.
Les commandes skip que vous connaissez déjà interviennent au coeur du programme. Lorsqu’aucun
bouton-poussoir n’est enclenché, la commande associée pour augmenter ou réduire le contenu de
l’accu est ignorée.
La difficulté réside cependant dans le fait qu’un glissement de 15 à 0 ou de 0 à 15 peut se produire.
Cela nécessite donc un peu plus d’effort pour empêcher ce glissement. Vous devez donc vous
demander à chaque fois si l’extrémité inférieure (0) ou l’extrémité supérieure (15) est déjà atteinte ou
non. Comme, en principe, un accu est utilisé lors d’une comparaison, son état doit être mis à chaque
fois en mémoire tampon. La variable C est donc utilisée.
Adresse Commande Données Remarque
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 saut 0B
09 C F Skip if S2 = 1
0A 7 1 A = A + 1
0B 5 2 C = A
0C 4 0 A = 0