Première réalisation
pratique : “Multipin1” |
Pour cette première
réalisation pratique, copiable ou modifiable par chacun d´entre
vous, nous nous sommes arrêtés à un défilement
ininterrompu de six leds, grâce à trois
pattes du petit 12F675, mais le
principe sera le même de
4 à 20
leds (oui, 20, avec utilisation des pins 4 et 5 — voyez les
pages précédentes de la présente série si
vous êtes dubitatif. Le maximum avec un PIC courant et pas cher
(p. ex. le 16F628 avec 15 pattes utiles) serait de commander 15 ×
14, soit 210 leds...).
FAQ Séraphin,
je te vois venir : Pourquoi
encore un chenillard ? C´est niaiseux, un microP
pour un chenillard si simple ? — Eh, eh, c´est
qu´il est simple aujourd´hui, mais qu´il
pourrait bien se compliquer bientôt  |
|
|
 |
 |
 |

Et
voici le grand principe : les 3 “états”,
Tri-State, d´où le mot TRISIO...  |
|
 Voici
le petit schéma (l´alimentation a été négligée)...

 |
Il suffit de forcer,
une à une, les sorties 0, 1 et 2 à passer à l´état
(+ 5
volts), ou bien à l´état
(zéro volt) ou bien à l´état Z
de “haute impédance” (la
patte concernée peut être considérée comme dessoudée !).
Au
niveau du microP, la haute impédance se
commande via TRISIO, en forçant
le bit concerné à être une entrée,
donc au niveau
(mnémonique destinée aux angloglottes : c´est-à-dire
1, ressemble à i,
comme Input) ; les autres bits restent à zéro
(mnémo : c´est-à-dire
0, ressemble à o,
comme Output). (Attention : Z est choisi
dans le monde de l´électronique comme le symbole de
la haute impédance,
mais cela n´a rien à voir avec Z, le célèbre
bit du registre STATUS, dont nous nous fichons aujourd´hui.)
Et
comme à l´habitude, les bits forcés à être
des sorties sont portés
à via
GPIO.
 |
 |
 |
Utilisons
un tableur pour créer ce petit dessin représentant
tous les bits des deux registres TRISIO et GPIO. (Un tableur,
si, si, car plus tard nous verrons comment générer
le barbant code assembleur... automatiquement avec Excel ou
Open Office !)
Dans TRISIO,
les quatre bits de gauche sont inutilisés aujourd´hui,
et le bit 3 reste à 1 car il ne peut pas changer (par construction, GP3,
la pin 3, est toujours une entrée).
On traduit chaque
ligne du tableur en binaire (ce qui est le plus pratique pour tripoter
les bits) ou en décimal
ou en n´importe
quel autre mode qui vous serait plus habituel, naturel —par
exemple :
TRISIO pour la
Lampe 1 :
 tableur x
x x x 1 i 0 0
 soit
en binaire b´00001100´
 soit
en décimal d´12´ (8+4+0+0)
 soit
en hexadécimal h´0C´
À vot´ bon
goût.. |
|
 |
 |
 |
 |
Dans GPIO,
les quatre bits de gauche et le bit 3 sont ignorés, inutilisés.
De même que les bits marqués Z, à haute impédance.
Ne nous intéressent que les bits + ou 0 et 1. Qui passent eux
aussi à la traduction dans votre système de numérotation
préféré — par exemple : GPIO
pour la Lampe 1 :
 tableur x
x x x x z + 0
 soit
en binaire b´00000010´
 soit
en décimal d´2´ (0+0+2+0)
 soit
en hexadécimal h´02´
Vous aurez remarqué que
TRISIO est le même pour deux lampes qui se succèdent ?
Voici
le plan (vu à la
loupe !) des composants sur une plaque
d´essais sans soudure (ou sur un Cimec, c´est pareil).
ATTENTION : les
diodes sont montées tête-bêche, suivez bien le schéma de principe !
ATTENTION encore
: le 12F675 a un brochage contraire à tous les autres circuits
du monde,
avec zéro volt en haut et le pluss en bas ! Si vous
le montez à l´envers, pchhhh, et
en plus vous risquez de vous brûler (expérience vécue...). |
|
 |
Nous
ne sommes pas dans une série d´initiation aux microP (qui
existe,
et se trouve ici), mais dans du
concret, du cambouis, aussi notre intro sera sèche : le
minimum légal ! |
 |
 |
Remarquez
l´initialisation indispensable des
deux registres pièges,
CMCON et ANSEL (bizarrement, à
la mise en marche, le microP est conçu pour ne pas travailler
en tout-numérique, mais au contraire pour aller faire des galipettes
analogiques !).
Puis
Debut du programme : allumage de la led n° 1 : |
 |
 |
La
partie casse-pieds du travail (c´est ce que nous essaierons plus
tard de faire faire par un tableur), la saisie de
chiffres, et de chiffres : |
 |
 |
Toutes
leds ont été allumées, une par une... On
recommence jusqu´à la fin des temps : |
 |
 |
Un
délai ,
afin de voir les leds s´allumer lentement (n´oublions pas
que sans temporisation les leds brilleraient... un millionième de seconde !) : |
 |
 |
(Le
code ci-dessus vient de la page Cheniyou.)
Et enfin un détail...
qu´il ne faut pas oublier...  |
 |
 |
|