LE PIC PAR LA PRATIQUE (2)

Précédent [1]    Suivant [3]
Par Michel Vonlanthen
 

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:

  • LCDOUT $FE,1    = effacement du display

  • LCDOUT "texte"   = affichage du mot "texte" sur l'affichage

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

 

 
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.


Précédent [1]    Suivant [3]
Michel Vonlanthen Septembre 2007