Vous êtes sur la page 1sur 12

Microcontrôleur

Chapitre IV :
Programmation du PIC16F84

Plan
-------------------------------------------------------------------------------------
1. Introduction
2. Le langage assembleur
3. Règles de rédaction en langage d'assemblage
4. Le jeu d'instruction et modes d'adressage du PIC 16F84
5. Le logiciel MPLAB
6. Le programmateur
7. Le logiciel ISIS Proteus
8. Applications (Voir TD/TP)

1. INTRODUCTION
- Maintenant que nous avons acquis les rudiments du microcontrôleur .Il est le temps de passer à
pratique.
- Au début on a créé un programme qui répond au cahier des charges de notre projet.
Pour créer le programme source il faut uniquement un éditeur de texte, un logiciel spécifique
permet de compiler le programme. (le plus connu MPLAB chez microchip) c'est - à - dire la
transformation du programme source en un programme dit hexadécimal ou Binaire, suite de 0 et
1.
- Une fois compilé le fichier source est transféré via un logiciel approprié vers la mémoire de
programme du PIC, Cette logiciel appelé « ic-prog » ou bien on utilise un logiciel de simulation
ISIS.
- Cette dernière opération de transformation du programme à mémoire de PIC, elle est faite à
l'aide d'un outil appelé «programmateur des PICs ».

2. LE LANGAGE ASSEMBLEUR
- Le langage assembleur est une interface entre l'homme et le microcontrôleur pour la
compréhension d'un programme.
- En effet, il est difficile pour l'homme d'écrire ou de comprendre une représentation binaire
d'une suite d'instructions .Quant au microcontrôleur, il ne reconnaît qu'une suite de 0 et de 1
(langage binaire).
- Pour une représentation plus explicite d'un langage binaire on utilise le langage assembleur ou
les instructions sont représentées par leur mnémonique .un fichier source contient le programme
écrit dans un langage compréhensible pour l'homme. Edité sous le format ASCII, il décrit sous
une forme le plus souvent mnémonique les instructions que doit exécuter le microcontrôleur.

65 Prof. KHOULJI S.
Microcontrôleur
3. REGLES DE REDACTION EN LANGAGE D'ASSEMBLAGE
3.1. Les pseudo-instruction ou directives d'assemblage .
- Les directives ne sont utiles qu'un logiciel d'assemblage, elles ne font pas partie du programme.
 La directive ORG précise à l'assembleur ou sont implantés les codes machines dans la
mémoire de programme. Elle s'écrit après une tabulation (un espace minimum).
On peut placer plusieurs ORG dans un programme.
 La directive LIST détermine le type de microcontrôleur utilisé.
Exemple :
LIST P = 16F84
 La directive END précise ou doit s'arrêter l'assemblage, les instructions situées après sont
ignorées. En aucun cas cette directive ne signifie la fin du programme.
 La directive CONFIG permet de définir les paramètres de fonctionnement du PIC
CONFIG_CP_OFF & _WDT_OFF &_PWRTE_ON & _HS_OSC
Chaque définition est séparée par le symbole &.
- Dans l'exemple ci-dessus le bit CP est à 0, le bit WDT (watchdog) est à 0, le bit PWRTE est à 1
et le terme HS définit le type d'horloge utilisé.

3.2. Les assignations


- Une assignation se comporte comme une simple substitution. Au moment de l'assemblage,
Chaque fois que l'assembleur va trouver une étiquette avec assignation, il la remplacera
automatiquement par valeur.
Exemple :
TEMP0 EQU 0A ; le registre temporaire 0 se trouve à ; l'adresse 0Ah ( en hexa ).

3.3. Les fichiers « include »


- La directive << include >> permet d'introduire dans le programme les assignations contenues
dans le fichier P16F84. INC, c'est-à-dire toutes les constantes utiles du microcontrôleur.
Par exemple :
Include ? p16F84 . inc ?

3.4. Les définitions.


- Une définition << # define>> fonctionne comme une assignation. Les assignations sont
utilisées pour les valeurs. Et les définitions pour remplacer un texte plus complexe ou le résultat
d'un calcul.
- La directive # DEFINE, écrite en bordure de marge est suivie par l'étiquette, puis la chaîne à
substituer.
Par exemple :
# DEFINE led PORTB , 2
- Ceci veut dire que l'étiquette << led >> désigne le bit 2 du port B .

3.5. Les macros.


- Une macro permet de nommer une séquence d'instructions souvent utilisée et qui peut être
insérée dans un programme par simple appel de son nom. Elle simplifie l'écriture et apparaît
comme une instruction.
- Elle se compose d'un nom (étiquette) écrit en première colonne, puis de la directive
<<macro>>. A la ligne suivante on place le logiciel qui constitue la macro.

66 Prof. KHOULJI S.
Microcontrôleur
- La macro se termine par la directive << endm >> ( end of macro ).
Exemple de définition :
ALUM macro
Bsf led ;( mise à 1 du bit correspondant à led ) Endm

3.6. La zone des variables .


- Cette directive CBLOCK permet de définir l'adresse du début d'une zone de variables
Exemple :
CBLOCK 0×0C ; début de la zone de variables.
- Ensuite , il suffit d'écrire le nom de la variable suivi du signe << : >> et de la taille utilisée.
Cmpt : 1 ; zone de 1 octet
Table : 8 ; zone de 8 octet
- La fin de la zone en coures est définie par la directive
ENDC ;Fin de la zone

3.7. Les étiquettes.


- Afin de faciliter la relecture et aussi de permettre la modification multiple, plus facile, de
données ou d'adresses, l'utilisateur a intérêt à utiliser des étiquettes (labels ), une étiquette permet
aussi de retrouver un emplacement mémoire utilisé par exemple pour un branchement ou un saut.
L'assembleur remplace l'étiquette par sa valeur ou par l'adresse du programme ou elle se trouve.

3.8. Les commentaires.


- L'utilisateur, pour faciliter la relecture, à long terme, de son texte source ou du listing
d'assemblage, a intérêt à y introduire des commentaires :
- soit entre les lignes du programme, dans ce cas il commence chaque ligne par un point virgule
{;} en bordure de marge.
Exemple :
; ceci est un commentaire soit après une instruction.
Exemple :
decfsz compt 1 , f ; décrémenter le compteur compt 1

4. LE JEU D'INSTRUCTION ET MODES D'ADRESSAGE DU PIC 16F84


- Un microcontrôleur est caractérisé non seulement par sa structure matérielle mais aussi par son
jeu d'instructions qui permet de traiter les données. Le PIC 16F84 a un jeu d'instructions
relativement limité mais possède une architecture interne (RISC) qui permet une programmation
efficace et rapide (toutes les instructions, exceptées les sauts, s'exécute en un cycle d'horloge ).
De plus, le microcontrôleur utilise (6) modes d'adressage différents.

4.1. Les différents modes d'adressage


4.1.1. Adressage immédiat.
- Le code opératoire est suivi par l'opérande et ne fait appel à aucune adresse .
- L'opérande est la valeur à utiliser par l'instruction. le constructeur l'appelle « literal» et le note
K.
Exemple :
MOVLW 0×34 ; charge la valeur hexadécimale 34 dans l'accumulateur W avec MOV pour
move, L pour literal (immédiat) et W pour l'accumulateur w.

67 Prof. KHOULJI S.
Microcontrôleur
4.1.2. Adressage direct.
- Le code opératoire est suivi d'un octet non signé qui est l'adresse effective (on appelle adresse
effective, l'adresse qui est directement manipulée par l'instruction) de l'opérande à traiter.

L'opérande est l'adresse de la valeur à utiliser par l'instruction. Exemple :


MOVF 0×5,W ; charge l'accumulateur W avec la donnée située dans la case mémoire 5 .
- Avec MOV pour move et F pour File (registre).

4.1.3. Adressage indirect.


- L'adresse de l'opérande est cette fois écrite avec un pointeur d'adresse.
- L'adressage indirect utilise deux registres du microcontrôleur : INDF et FSR.
- Pour accéder à la donnée contenue dans la case mémoire X, il suffit d'écrire dans le registre
FSR l'adresse X. En lisant le registre INDF, on trouve la valeur contenue dans la case mémoire
X.

4.1.4. Adressage relatif.


- Ce mode d'adressage s'applique aux opérations de branchement ou de saut CALL et GOTO. Il
permet de faire exécuter des instructions placées dans une autre portion de l'espace mémoire de
programme.
Exemple :
BOU decfsz Tl , f ; decremente T1 , si resultat =0
; saute 1 ' instruction
suivante
GOTO BOU ; branche a BOU

4.1.5. Mode manipulation de bit .


- Il permet de modifier un bit dans un registre. L'instruction a besoin de l'adresse du registre et de
la position du bit.
EXEMPLE :
BCF PORTA, 3 ; met à 0 le bit 3 du registre PORTA
BSF PORTB, 5 ; met à 1 le bit 5 du PORTB

4.1.6. Mode test de bit et branchement.


- Ce mode permet de tester la valeur d'un bit d'une donnée en mémoire et d'effectuer ou non un
branchement en fonction de l'état de ce bit.
EXEMPLE :
BOU btfss INTCON , T0IF ; test si TMR0 a débordé ?
GOTO BOU ; si non recommence
Bcf VERIN ; si oui avance verin
- Dans cet exemple l'instruction BTFSS teste la valeur du bit TOIF du registre INTCON et
effectue ou non un branchement à la deuxième lige qui suit (bcf VERIN).

4.2. LES INSTRUCTIONS


4.2.1. L'INSTRUCTION « GOTO » ( Aller à ) . SYNTAX: GOTO K ; K est un label.
- Le programme saute à l'adresse K.
4.2.2. L'INSTRUCTION « INCF » (INCrement File)
SYNTAX: INCF F, D ;(F) + 1 > (D) ; D=0 ou 1.
- La valeur contenue dans le registre fichier F est incrémentée de 1. si D=0, le
résultat sera alors dans le registre W. D=1, le résultat est stocké dans le registre F.
- Les bits du STATUS affectent Z

68 Prof. KHOULJI S.
Microcontrôleur
4.2.3. L'INSTRUCTION « DECF » (DECrement File)
SYNTAX: DECF F,D ; (F) - 1 > (D) ,D=0 ou 1
- La valeur contenue dans le registre fichier F est décrémenté de 1. si D=0, le résultat sera alors
dans le registre W. si D=1, le résultat est stocké dans le registre F.
- Les bits du STATUS affectent Z

4.2.4. L'INSTRUCTION « MOVLW » (MOVe Literal to W)


SYNTAX: k > (w), MOVLW K ; K compris entre 0 et 255.
- Charge le registre W avec la valeur litéral K.

4.2.5. L'INSTRUCTION « MOVF » (MOVe File)


SYNTAX: MOVF F, D ; (F) > (D), D=0 ou 1.
- Le contenu du registre F est déplacé dans le registre de destination. si D=0, il sera alors dans le
registre W. si D=1, le résultat est stocké dans le registre F.
- Les bits du STATUS affectent Z

4.2.6. L'INSTRUCTION « MOVWF » (MOVe W to File) SYNTAX: MOVWF F ; (W) > (F)
- Déplace le contenu du registre W dans le registre fichier F.

4.2.7. L'INSTRUCTION « ADDLW » (ADD Literal and W)


SYNTAX: (w)+k->(w) ADDLW K ; K compris entre 0 et 255
- Additionne le contenu du registre W avec la valeur K. le résultat se trouve dans le registre W.
- Les bits du STATUS affectent C Z DC

4.2.8. L'INSTRUCTION « ADDWF » (ADD W and F)


SYNTAX: ADDWF F,D ,(w) + (f) > (d) ; D=0 ou 1.
- Additionne le contenu du registre W avec la valeur contenue dans le registre fichier F. - Si
D=0, alors le résultat sera dans le registre W. si D=1, le résultat est stocké dans le registre F.
- Les bits du STATUS affectent C Z DC

4.2.9. L'INSTRUCTION « SUBLW » (SUBtract W from Literal) SYNTAX: SUBLW, k -


(w) > (w) K ; K compris entre 0 et 255.
- Soustrait la valeur littérale K au registre W. le résultat se trouve dans le registre W.
- Les bits du STATUS affectent : C Z DC

4.2.10. L'INSTRUCTION « SUBWF » (SUBtract W from F)


SYNTAX: SUBWF F,D ; (F) - (W) > (D) ; D=0 ou 1.
- Si D=0, le résultat sera alors dans le registre W. si D=1, le résultat est stocké dans le registre F.
- Les bits du STATUS affectent : C Z DC

4.2.11. L'INSTRUCTION « ANDLW » (AND Literal with W)


SYNTAX: ANDLW K (w) et k > (w) ; K compris entre 0 et 255
- Réalise un ET logique entre la valeur du registre W et la valeur littéral K. le résultat se trouve
dans le registre W.
- Les bits du STATUS affectent : Z

4.2.12. L'INSTRUCTION « ANDWF » (AND W with F)


SYNTAX: ANDWF F, D ; (F) AND (W) > (D) ,D=0 ou 1.
- Réalise un ET logique entre le contenu du registre W et la valeur contenue dans le registre
fichier F. si D=0 , alors le résultat sera dans le registre W. si D=1, le résultat est stocké dans le
registre F.

69 Prof. KHOULJI S.
Microcontrôleur
- Les bits du STATUS affectent : Z

4.2.13. L'INSTRUCTION « IORLW » ( Inclusive OR Literal with W ) SYNTAX: (w) OR k


> (w) , IORLW K ; K compris entre 0 et 255
- Réalise un OU logique entre la valeur du registre W et la valeur littéral. Le résultat se trouve
dans le registre W.
- Les bits du STATUS affectent : Z

4.2.14. L'INSTRUCTION « IORWF » (Inclusive OR W with File)


SYNTAX : IORWF F,D ;(W) OR (F) > (D) ;. D=0 ou 1.
- Réalise un OU logique entre le contenu du registre W et la valeur contenue dans le registre
fichier F. si D=0, le résultat sera alors dans le registre W. si D=1, le résultat est stocké dans le
registre F.
- Les bits du STATUS affectent : Z

4.2.15. L'INSTRUCTION << XORLW >> (eXclusive OR Literal with W


) SYNTAX: XORLW K , (W) XOR K > (W) ; K compris entre 0 et 255.-
Effectue un OU EXCLUSIF entre le contenu du registre W et la valeur littéral K . le résultat se
trouve dans le registre W. Les bits du STATUS affectent : Z

4.2.16. L'INSTRUCTION << XORWF >> (eXclusive OR W with F)


SYNTAX: XORWF F,D ; (W) XOR (F) > (D) ; D=0 ou 1.
- Effectue un OU exclusif entre le contenu du registre W et le contenu du registre F. Si D=0, le
résultat sera alors dans le registre W. si D=1, le résultat est stocké dans le registre F.
- Les bits du STATUS affectent : Z

4.2.17. L'INSTRUCTION << BSF >> (Bit Set F)


SYNTAX: BSF F,D ; Le bit n°D est mis a 1 dans la case mémoire (F)
; D est evidemment compris entre 0 et 7.
- Met à "1" le bit D du registre F.

4.2.18. L'INSTRUCTION << BCF >> (Bit Clear F)


SYNTAX: BCF F,DIR ; Le bit n°D est mis a 0 dans la case mémoire (F).
; D est evidemment compris entre 0 et 7.
- Met à zéro le bit D du registre F.

4.2.19. L'INSTRUCTION << RLF >> (ROTATE LEFT THROUGH


CARRY) SYNTAX: RLF F,D ; (F) Rotation gauche avec CARRY -> (D) ; D = 0 ou
1.
- Le contenu dans le registre fichier F est décalé de 1 bit vers la gauche. - Le bit qui s'intercale
est le reflet du drapeau de retenue. si D=0, le résultat sera alors dans le registre W. si D=1, le
résultat est stocké dans le registre F.
EXEMPLE: SI C=1
MOVLW 00 ; stocke la valeur 00 dans W
MOVWF VAL ; stocke la valeur dans VAL
RLF VAL,0 ; effectue une rotation du registre F. le résultat est stocké dans W. - Si le drapeau de
retenue est à 1, alors on aura dans W la valeur 01.
- Les bits du STATUS affectent : C

70 Prof. KHOULJI S.
Microcontrôleur
4.2.20. L'INSTRUCTION << RRF >> ( ROTATE RIGHT THROUGH
CARRY) SYNTAX: RRF F,D ; (F) Rotation droite avec CARRY-> (D) =0 ou
1.
- Le contenu dans le registre fichier F est décalé de 1 bit vers la droite . Le bit qui s'intercale est
le reflet du drapeau de retenue. si D=0, le résultat sera alors dans le registre W. Si D=1, le
résultat est stocké dans le registre F.
- Les bits du STATUS affectent : C

4.2.21. L'INSTRUCTION << BTFSC >> (Bit Test F, Skip if Clear)


SYNTAX: BTFSC F,D ;. D compris entre 0 et 7.
- Si le bit D du registre F est à zéro, alors la prochaine instruction est "sautée". EXEMPLE :
BTFSC VAL,3 ; Test le bit 3 du registre F.
ICI NOP ; Si le bit est à "0" alors cette instruction ne sera pas
exécutée et passera directement à LA. NOP

4.2.22. L'INSTRUCTION << BTFSS >> (Bit Test F, Skip if Set )


SYNTAX: BTFSS F,D ; D compris entre 0 et 7.
- Si le bit D du registre F est à "1" , alors la prochaine instruction est "sautée".

4.2.23. L'INSTRUCTION << DECFSZ >> (DECrement F, Skip if Z )


SYNTAX : DECFSZ F,D ; (F) -1 -> (D). SAUT SI (D) = 0 ;. D=0 ou 1.
-La valeur contenue dans le registre fichier F est décrémentée de 1.Si D=0, alors le résultat sera
dans le registre W. si D=1,le résultat est stocké dans le registre F. si le résultat est nul, alors
l'instruction suivante est sautée.
EXEMPLE:
MOVLW 0X1E ; stocke la valeur 30 dans W
MOVWF VAL ; stocke la valeur dans VAL
DECFSZ VAL ,0 ; décrémente F. le résultat est stocké dans W. comme le résultat est nul alors :
ICI NOP ; le programme saute à l'adresse NOICI.

4.2.24. L'INSTRUCTION << INCFSZ >> (INCrement F, Skip if Zero) SYNTAX: INCFSZ
F,D ; (F) + 1 -> (D) : SAUT SI (D) = 0 , D=0 ou 1.
- La valeur contenue dans le registre fichier Fest incrémentée de 1. Si D=0, alors le résultat sera
dans le registre W. si D=1, le résultat est stocké dans le registre F.Si le résultat est nul,
l'instruction suivante est alors sautée.

4.2.25. L'INSTRUCTION << SWAPF >> (SWAP nibbles in F)


-Inversion des B0 a B3 de (F) avec B4 a B7
SYNTAX : SWAPF F,D ; Inversion des B0 a B3 de (F) avec B4 a B7 ->(D)
; D=0 ou 1.
- Effectue une inversion des deux quartets du registre F. Si D=0 alors le résultat sera dans le
registre W. Si D=1, le résultat est stocké dans F
EXEMPLE:
MOVWF VAL ; VAL=0F
SWAPF VAL,1 ;VAL=F0

4.2.26. L'INSTRUCTION << CALL >> (CALL subroutine )


SYNTAX: CALL K ; Appel de la sous-routine a l'adresse étiquette.
; K est un label.
- Appelle le sous- programme k. Le PC est chargé avec l'adresse du label, l'adresse de retour
(PC+1) est stockée dans la pile.

71 Prof. KHOULJI S.
Microcontrôleur

4.2.27. L'INSTRUCTION << RETURN >> (RETURN from subroutine


) SYNTAX: RETURN
- Fin d'un sous- programme. Le PC est chargé avec l'adresse contenue dans la pile.

4.2.28. L'INSTRUCTION << RETLW >> (RETurn with Literal in W) SYNTAX: retlw k ;
(w) = k puis return ; K compris entre 0 et 255.
Instruction utilisée lors d'un retour d'un sous-programme. Le registre W est chargé avec la valeur
littérale K et le PC avec la valeur de l'adresse de retour (la pile).
EXEMPLE:
CALL LAS-BAS ; appelle le sous programme LAS-BAS.
; autres instructions.
LAS-BAS RETLW 0X30 ; le registre W est chargé avec la valeur 30 ; et retour au programme
principal.

4.2.29. L'INSTRUCTION << RETFIE >> (RETURN FROM INTERRUPT) SYNTAX


: RETFIE ; retour d’interruption.
- Fin d'une routine d’interruption. le PC est charge avec l'adresse contenue dans la pile.

4.2.30. L'INSTRUCTION << CLRF >> (CLeaR F) SYNTAX: CLRF F ; (F)=0


- Le contenu du registre F est effacé.
- Les bits du STATUS affectent : Z

4.2.31. L'INSTRUCTION << CLRW >> (CLeaR W ) SYNTAXE: CLRW ; (W) = 0


- Cette instruction efface w .
- Les bits du STATUS affectent : Z

4.2.32. L'INSTRUCTION << CLRWDT >> (CLeaR WATCHDOG )


SYNTAX: CLRWDT ; Remet le timer du Watchdog a 0 .
- Efface le WDT , Les bits TO et PD sont mis à "1".

4.2.33. L'INSTRUCTION << COMF >> (COMplement F)


SYNTAX: COMF F,D ; NOT (F)>(D) , D=0 ou 1.
- Effectue le complément a 1 du registre fichier F. si D=0 , le résultat sera alors dans le registre
W. si D=1, le résultat est stocké dans le registre F.
- Les bits du STATUS affectent : Z

4.2.34. L'INSTRUCTION << SLEEP >> (MISE EN SOMMEIL)


SYNTAX: SLEEP ; Arret du PIC .
- Le microcontrôleur est en mode SLEPP. l'oscillateur est arrêté. le bit TO est à "1". - Le bit PD
est à "0". Le WDT sont effacés.

72 Prof. KHOULJI S.
Microcontrôleur

4.2. 35. L'INSTRUCTION << NOP >> (NO OPERATION )


SYNTAX: NOP ; Aucune opération
- Effectue aucune opération ( NO Operation).utilisé dans des boucles de temporisation

5. Le logiciel MPLAB :
- Est un logiciel outil de développement fourni gratuitement par la société Microchip . Il
comprend un éditeur, un assembleur et un simulateur. Il permet la programmation des
composants ( PICs ) en connectant entre l'ordinateur et le programmateur a l'aide d'un logiciel
appelé "ICPROG".

Pour créer un projet sur MPLAB X IDE voici toutes les étapes sur ce lien
:https://www.youtube.com/watch?v=NO9GyHF-MFQ

6. LE PROGRAMMATEUR :
- Une fois le programme compilé, il faut le transférer dans la mémoire du microcontrôleur. Pour
cela il vous faut, Une petite interface matérielle (figure : 2-1 )
- Est l'élément qui permet de charger le programme dans la mémoire du PIC. Il est relié à
l'ordinateur par une liaison série ou parallèle, le programmateur n'a pas les supports pour tous les
PICs .

7. LE LOGICIEL ISIS PROTEUS:


Proteus est une suite logicielle permettant la CAO électronique éditée par la société Labcenter
Electronics. Proteus est composé de deux logiciels principaux : ISIS, permettant entre autres la
création de schémas et la simulation électrique, et ARES, dédié à la création de circuits
imprimés.
Grâce à des modules additionnels, ISIS est également capable de simuler le comportement d'un
microcontrôleur (PIC, Atmel, 8051, ARM, HC11...) et son interaction avec les composants qui
l'entourent.
*****************************************************************************
8. APPLICATIONS (Voir TP)

Cahier des charges :

-A base de pic 16F84 nous gérons un afficheur à cristaux liquides (LCD), seize caractères sur
deux lignes pour afficher un message.
- Avec bouton marche permet de lancer l'écriture de ce message
- transformation des données sur huit bits
- Une led allumée pendant le temps d'écriture
- Un potentiomètre permet de régler le contraste de l'afficheur
- Utilisant un oscillateur XT à quartz 4 MHZ pour cadence le PIC .
- Utilisant battrait de 9 V et alimentation stabiliser fournir un tension de 5V.

Afficheur LCD :

Introduction :

73 Prof. KHOULJI S.
Microcontrôleur
- Dans notre projet on utilise un afficheur à cristaux liquides, donc il faut connaître le principe de
fonctionnement
- Les afficheurs à cristaux liquides , autrement appelés afficheurs LCD (Liquid Crystal Display)
figure :2-2 .Sont des modules compacts intelligents et nécessitent peu de composants externes
pour un bon fonctionnement .Ils consomment relativement peu de 1 à 5 mA ; les afficheurs sont
caractérisés par le nombre de caractères affichables ainsi que par le nombre de lignes disponibles
.Dans notre exemple l'afficheur possède seize caractères sur deux lignes,soit trente-deux
caractères .

(Figure : 2 -2 ) Afficheur à cristaux liquides 2X16 caractère

Brochage d'un afficheur :

-Un circuit intégré spécialisé est chargé de la gestion du module . Il remplit une double fonction
d'une part il commande l'afficheur et de l'autre se charge de la communication avec l'extérieur.
Voire (figure : 2-3 )

(Figure : 2-3) Brochage d'un afficheur à cristaux liquides 2X16 caractère

Broche Nom fonction


1 Vss Masse
2 Vdd Alimentation positive +5V
3 Vo Cette tension permet, en la faisant varier entre 0 et +5V, le réglage du contraste
de l'afficheur.
Grâce à cette broche, l'afficheur est capable de faire la différence
4 RS entre une commande et une donnée. Un niveau bas indique une commande et un
niveau haut indique une donnée (affichage).
Lecture ou écriture (Read/Write)
5 R/W 0 : Écriture

74 Prof. KHOULJI S.
Microcontrôleur
1 : Lecture (le contrôleur nous offre la possibilité de lire certain paramètres
interne à l'afficheur.)
C'est l'horloge de l'afficheur,celle-ci va cadencer et valider touts
6 E les échange (transfert d'instruction ou bien pour l'affichage d'un caractère).
7 D0

8 D1
Permettent de transmettre un ordre à l'afficheur selon un code déterminé
9 D2

10 D3 Exemple : effacement.
11 D4
12 D5
13 D6
14 D7
15 A Anode rétroéclairage (+5V)

16 K Cathode rétroéclairage (masse)

(Tableau : 2-1 ) , Brochage d'un afficheur

Les caractères affichables :

-Les broches de données permettent également d'afficher un caractère selon le code fournit avec
l'afficheur, il est ainsi possible d'afficher des caractères spéciaux. Ces codes sont mémorisés dans
la CG RAM (Caractère Générator), chaque caractère est formé sur une matrice 5*8 points, Voire
(Tableau 2-2).

- Le transfert peut se faire sur l'ensemble des huit bites (D0 à D7) ou bien sur quatre bits (D4 à
D7) , dans ce dernier cas on économise quatre lignes du PIC mais il faut réaliser le transfert en
deux fois , le choix de huit lignes ou quatre lignes se fait par programme selon le positionnement
de certains bits (voir le tableaux qui suivent).

75 Prof. KHOULJI S.
Microcontrôleur

(Tableau 2-2), les caractères affichables.)

Organigramme :

COMMENTAIRES
-On utilisera les registres
retard1, retard2 .
-Le port B dans notre exemple est Programmé en sortie et le port A Partiellement en sortie
(RA4 en entrée). -On paramètre l'afficheur en 2 lignes Validation afficheur et curseur
8 bits de données Effacement de l'afficheur .
Déplacement du curseur vers la droite
-Si l'inter est actionné on affiche les caractères.
-On envoie le cod ASCII du 1er caractère à afficher.
-On valide avec une impulsion sur la broche e ( RA2 du port A ) .
-On envoie le cod ASCII du nième caractère à afficher.
-On valide avec une impulsion sur la broche e ( RA2 du port A ) .
-Si l'inter est relâché on refait
l'initialisation de l'afficheur puis on recommence le cycle d'affichage .

76 Prof. KHOULJI S.

Vous aimerez peut-être aussi