|
Avant d'aller plus loin, voici quelques applications
à base de PIC:
2.
AFFICHAGE LCD

Schéma 2
Le circuit de base est toujours le même: le
16F84, l'alimentation, le master clear et le quartz. On y rajoute maintenant un
affichage LCD standard de 1 ligne de 16 caractères, ses 6 fils de liaison au PIC
et son potentiomètre de réglage du contraste de l'affichage. Sur le schéma
ci-dessus, on trouve également un interrupteur câblé sur la pin 6 du PIC, en
prévision de la prochaine commande à étudier, l'entrée de données par des
switches.

Fig 5: Câblage sur une plaque d'expérimentation
Le câblage de l'affichage LCD est déterminé par la command LCDOUT du
basic, avec ses valeurs par défaut. On peut utiliser n'importe-quelles pins pour
attaquer l'affichage mais il faut alors en donner l'équivalence avec des
commandes DEFINE. Nous ne le ferons pas pour ce premier exemple.
L'affichage doit être du type compatible avec le contrôleur d'affichage
intelligent Hitachi 44780 bien connu. On en trouve toutes sortes de modèles dans
le commerce, allant d'une ligne de 8 caractères à plusieurs lignes, mais
toujours des caractères alphanumériques, pas de graphique. On peut lui envoyer
des données soit en mode 8 bits, qui doivent toutes être envoyées par le même
port du PIC ou en mode 4 bits, plus flexible. C'est ce dernier qui est illustré
sur le schéma ci-dessus.
Sur l'affchage LCD, on a:
-
données = pins 11, 12, 13 et 14, envoyées depuis
les pins RA0, RA1, RA2 et RA3 du PIC
-
RS (Registre sélect) sur la pin 4, envoyée
depuis la pin RA4
-
R/W (Read/Write, lit/écrit) sur la pin 5 mis à
la masse ici car la commande LCDIN n'est pas utilisée dans ce premier
exemple
-
E (chip Enable) sur la pin 6 , envoyée par la
pin RB3 du PIC
La commande basic est LCDOUT, suivie des
données:
En principe, chaque envoi de texte aura la forme:
|
LCDOUT $FE,1, "Hello" soit
effacement du texte précédent et affichage de Hello |
Programme basic: Il est dérivé du
précédent. Il continue à allumer une LED mais en plus il affiche
alternativement "HB9AFO" et "Indicatif" sur l'écran LCD.
' Michel Vonlanthen 2007
' Clignotement d'une LED et afichage LCD
' Connectée au PORTB.0
' 1 fois par seconde
Loop:
High PORTB.0
' allume la LED
LCDOut $FE,1
' efface contenu LCD
LCDOut "HB9AFO"
Pause 1000
' attente 1 sec
Low PORTB.0
' éteint la LED
LCDOut $FE,1
' efface contenu LCD
LCDOut "Indicatif"
Pause 1000
' attente 1 sec
GoTo Loop
End |
3. LECTURE D'UN
BOUTON
Le schéma 2, ci-dessus, est utilisé. Il s'agit de
programmer l'action du poussoir S1. Nous allons programmer le PIC pour qu'une
pression sur S1 affiche "S1 pressé" sur l'affichage à cristaux liquides et "S1
off" lorsque S1 n'est pas pressé.
La commande de lecture d'un port est la suivante:
|
BUTTON pin, Down, Delay, Rate, bVar,
Action, Label |
| Où |
|
| Pin = |
Nom de la pin (ex: Port B.1), ou
variable ou constante |
| Down = |
Etat de la pin lorsque le bouton est
pressé (0 ou 1) |
Delay =
|
Nombre de cycles avant
l''auto-répétition.
0 = pas de debounce ou d'auto-repeat
255 = debounce mais pas d'autorepeat |
| Rate = |
Nombre d'auto-repeat (0..255) |
bVar =
|
Variable Bytenutilisée en interne
pour le décomptedu delay/repeat. Doit être initialisé à 0 avant
utilisation |
| Action =
|
Etat du bouton à la pression (0 si
pas pressé, 1 si pressé) |
| Label =
|
L'exécution du programme se poursuit
à ce label |
| |
|
ex:
BUTTON PortB.1, 0, 100y, 10, B2, pressed, Pressed
Le programme va à "pressed" lorsque le bouton connecté au Port B.1
est pressé |
' Michel Vonlanthen 2007
' Lecture d'un poussoir (ou commutateur)
' Connectée au PORTB.1
Loop:
Low PORTB.0
' éteint la LED
LCDOut $FE,1 ' efface contenu LCD
LCDOut "S1 off"
' affiche "S1 off"
BUTTON PortB.1, 0, 100y, 10,
B2, pressed, Pressed ' Lecture bouton
GoTo Loop
Pressed:
High PORTB.0
' allume la LED
LCDOut $FE,1 ' efface contenu LCD
LCDOut "S1 pressé" ' affiche "S1 pressé"
GoTo Loop
End |
Au Microclub on
rencontre des kings du PIC
en Suisse romande (partie francophone de la
Suisse) Voici quelques
photos de la séance du 8 février à laquelle j'ai eu le plaisir d'assister
après pas mal d'absences. Heureux hasard, nombre d'honorables membres de ma
génération avaient eu la même idée que moi et étaient présents ce soir-là.
On y voit entre autres le
professeur Jean-Daniel
Nicoud, le "pape" du microprocesseur, celui par qui ce composant a été
introduit dans le milieu activiste de la Suisse romande électronique des
années 70. C'est lui qui a développé le Smaky
et qui continue à nous enthousiasmer par ses développements à base de PIC,
surtout dans le domaine des robots. Ici sa dernière petite bête, le Microbot
(site web actif très prochainement). A voir sur le site de
Didel SA.

La séance dont le
diaporama de photos montre une
partie de l'assistance, était dédiée au logiciel de création de site web
Joomla, présenté par
Charles Eberhard,
le légendaire Carlos, secrétaire nommé à vie du Microclub. J'animerai
personnellement la prochaine (21 février 2008) en présentant l'aspect
radioamateurs du projet de premier satellite entièrement conçu et construit
en Suisse, projet piloté par l'EPFL.
Les séances du Microclub ont lieu tous les 2
vendredis à 19h00 dans la
salle de conférence
du CIT à l'EPFL. Le
programme des exposés se trouve sur le site web. La cotisation annuelle
est de Fr. 75.-.
Comment comprendre les
microprocesseurs
Le 21 février,
Jean-Daniel Nicoud distribuera des exemplaires gratuits de son opuscule
"Comment comprendre les microprocesseurs". Il s'agit du manuel
d'apprentissage de la programmation en langage machine d'un système de type
"Dauphin", utilisé dans les années 70. Mais point n'est besoin d'un
quelconque montage à microprocesseur puisque cet apprentissage se fait au
moyen d'un Simulateur de Dauphin, logiciel pour PC téléchargeable
gratuitement sur le site d'Epsitec.
On peut également y downloader la version PDF du manuel.

|