Programmation du PIC16F84A destiné à l'interface
LCD - RS232 :
Téléchargement du soft "SERLCD1.ZIP"
destiné au microcontrôleur IC1 : 1,54 ko AVIS
: Le programme source ne sera pas
diffusé La programmation de ce microcontrôleur
est simplifiée dans la mesure où le paramétrage
de ICPROG.EXE est automatique.
Lancez le logiciel de programmation ICPROG.EXE.
Sélectionnez le microcontrôleur 16F84A dans la liste des circuits.
Ouvrez le fichier hexadécimal nommé SERLCD1.HEX.
Le paramétrage automatique doit être le suivant : - Le
"chien de garde" => WDT est activé, - Le
"Timer" => PWRT est activé, - La
"Protection en relecture" => CP est désactivée.
Vous devez sélectionner
l'oscillateur de type XT.
Attention, si vous utilisez un
16F84A-I/P
de dernière génération,
choisissez un oscillateur
HS et
pas XT.
Configuration
de l'Hyper Terminal Windows 9x, 2000, NT, Millennium
:
L'Hyper
Terminal vous permettra de piloter simplement votre carte
LCD - RS232 sous Windows. Rien ne vous empêche d'utiliser
vos propres applications développées sous QBasic,
Visual Basic, Visual C++, etc... pour piloter cet afficheur. D'autre
part, vous pouvez utiliser un microcontrôleur (PIC, 68HCxx,
Basic Stamp, etc...) pour piloter en série l'interface LCD
- RS232.
Installation
de l'Hyper Terminal :
L'Hyper
Terminal est rarement présent par défaut lors de
l'installation du système d'exploitation Windows. Pour vous
en assurer, cliquez sur : Démarrer,
Programme,
Accessoires,
Communications
et cliquez sur Hyper Terminal
comme ci-dessous :
Si
vous ne trouvez pas l'Hyper Terminal dans votre arborescence, veuillez l'installer
en utilisant le CD-ROM original de Windows.
Configuration
de l'Hyper Terminal :
Démarrez l'Hyper
Terminal. Double - cliquez sur l'icône.
Attribuez un nom à
votre connexion série, par exemple "TEST à 9600
bauds" :
Cliquez sur OK. Sélectionnez
le port série auquel est connecté l'interface LCD
:
Cliquez sur OK. Sélectionnez
la vitesse de transmission et cliquez sur OK :
L'Hyper Terminal est
désormais configuré (9600 bauds sur le Com 2) :
Paramétrage de l'interface LCD - RS232 :
Nous
allons passer en revu les différentes configurations de l'interface
en utilisant les quatre interrupteurs
de programmation DIL.
Configuration
du titre et copyright => RB5 :
Selon
la position de l'interrupteur RB5, vous pouvez à la mise
sous tension de l'interface activer ou non le titre du montage et les copyrights.
Titre et copyrights actifs au démarrage - RB5
= Niveau 0
:
Titre et copyrights inactifs au démarrage - RB5
= Niveau 1
:
Configuration
de la vitesse de transmission => RB0 :
Selon
la position de l'interrupteur RB0, vous pouvez sélectionner
un transfert à 2400 bauds ou 9600 bauds.
Vitesse de transfert à 9600 bauds - RB0
= Niveau 0 :
Vitesse de transfert à 2400 bauds - RB0
= Niveau 1 :
Configuration
du type de liaison MAX 232 ou niveaux TTL => RB1:
Selon
la position de l'interrupteur RB1, vous pouvez sélectionner
une liaison série faisant appel à un convertisseur
TTL
- NRZ
(Non Retour à Zéro) de type MAX
232
ou alors utiliser une liaison directe de type TTL.
Liaison série utilisant le convertisseur MAX232 - RB1
= Niveau 0
:
Si
vous souhaitez utiliser le convertisseur MAX232, vous devez retirer
de la carte la résistance R7
de 33kohms.
Le
MAX232 (IC2) et les condensateurs chimiques C5, C6, C7, C8, C12
doivent être en place.
|
|
Encadré
en bleu clair : Encadré en vert clair :
|
MAX232 picots
sans la résistance R7
|
Note
: Je
vous conseille de monter la résistance R7 sur des picots
tulipes afin de rendre son montage et démontage plus aisé.
Positionnez
l'interrupteur RB1 de la manière suivante (MAX232) :
Liaison série utilisant la liaison directe avec la résistance
R7 - RB1
= Niveau 1
:
Si
vous souhaitez utiliser la liaison directe via la résistance
R7 (33kohms), vous devez retirer de son support le circuit MAX232
(IC2).
Vous pouvez retirer ou laisser en place les condensateurs chimiques
C5, C6, C7, C8, C12.
|
|
Encadré
en bleu clair : Encadré en vert clair :
|
support
vierge du MAX232 résistance R7 positionnée
sur les deux picots
|
Positionnez
l'interrupteur RB1 de la manière suivante (TTL) :
Configuration
du retour des caractères avec le MAX232 => RB2 :
Selon
la position de l'interrupteur RB2, vous pouvez activer
ou désactiver le retour des caractères ASCII (mode
écho)
afin de les visualiser par exemple dans la fenêtre de l'Hyper-Terminal
fourni
avec Windows 9x, 2000, NT, Millennium.
Activation du mode écho (retour des caractères)
en utilisant le MAX232 - RB2
= Niveau 0 & RB1 = Niveau 0 :
Attention
: Cette configuration ne fonctionne pas avec la liaison série
utilisant la résistance R7 mais seulement avec la liaison
série utilisant le MAX232.
Ainsi, vous devez placer le MAX232 et les condensateurs chimiques
C5, C6, C7, C8, C12 sur le circuit imprimé et retirer la
résistance R7 de 33kohms. D'autre part, RB1
doit se trouver dans la position "Niveau
0" afin
d'activer le MAX232.
Aspect
du mode écho sur l'Hyper Terminal et sur l'afficheur LCD :
Visualisation
des caractères tapés au clavier sur l'écran
de l'Hyper Terminal (Configuration adoptée 9600 bauds,
MAX232, ECHO ON)
Visualisation
sur l'écran de l'afficheur LCD des caractères tapés
au clavier
Désactivation du mode écho (pas de retour des caractères)
- RB2
= Niveau 1 & RB1 = Niveau 0 ou 1 :
|
Mode
sans écho : RB2
= Niveau 1 Utilisation
du MAX232 :
RB1 = Niveau 0
|
|
ou bien :
|
|
|
Mode
sans écho : RB2
= Niveau 1 Utilisation
de la résistance R7 (33kohms) :
RB1 = Niveau 1
|
Attention
: Cette configuration fonctionne à la fois avec la liaison
série utilisant la résistance R7
ainsi qu'avec le MAX232. Si vous souhaitez utiliser le MAX232
et
les condensateurs chimiques C5, C6, C7, C8, C12 vous devez retirer
la résistance R7 et placer RB1
en
position "Niveau
0". Si vous souhaitez utiliser la résistance
R7,
vous devez retirer le circuit MAX232 du circuit imprimé et
placer RB1
en position "Niveau
1".
Aspect
du mode sans écho sur l'Hyper Terminal et l'afficheur LCD
:
Aucun des caractères
tapés au clavier ne s'affichent dans la fenêtre de l'Hyper Terminal (Configuration adoptée 9600 bauds, Résistance
R7, ECHO OFF)
Visualisation
sur l'écran de l'afficheur LCD des caractères tapés
au clavier
Liste des codes réservés ASCII utilisables
avec l'interface LCD - RS232 :
Les
afficheurs à logique intégrée disposent de
deux registres : -
Le registre de données : Les
caractères ASCII sont affichés dès que l'on
écrit dans ce registre. -
Le registre de commande :
Il permet de définir différentes options de l'affichage
(effacement de l'écran LCD, saut de ligne, affichage du curseur,
etc...). Pour plus de renseignements
sur cette gestion avancée, cliquez sur [ Registres
].
Afin
de simplifier la gestion du registre de commande de l'afficheur,
j'ai choisi d'employer des
codes ASCII réservés
permettant d'adresser automatiquement le registre de commande. Bien
évidemment, c'est le PIC16F84A qui se charge d'effectuer
automatiquement la procédure de configuration des registres à partir des codes ASCII envoyés en série.
Liste
des codes réservés ASCII et des touches
du clavier PC correspondantes
|
Code
ASCII
|
Valeur
Hexadécimale
|
Touche
clavier PC
|
Fonction
LCD
|
36
|
$10
|
$
|
Efface l'écran
LCD
|
13
|
$0D
|
ENTER
|
Saut à
la ligne suivante
|
8
|
$08
|
DELETE
|
Efface le
caractère précédent
|
231
|
$E7
|
ç
|
Affiche le
curseur
|
224
|
$E0
|
à
|
Efface le
curseur
|
Note
concernant le clavier PC : - La touche "DELETE"
correspond à la touche située au-dessus de la touche
"ENTER". -
La touche "à"
correspond à la touche "a"
avec accent. -
La touche "ç"
correspond à la touche "c"
avec cédille.
Repérage
des touches du clavier PC correspondantes aux codes réservés
ASCII :
Touche
ROUGE ($)
:
|
Efface l'écran
LCD
|
Touche
BLEUE
(ENTER) :
|
Saut à
la ligne suivante
|
Touche
VERTE
(DELETE) :
|
Efface le
caractère précédent
|
Touche
VIOLETTE
(ç) :
|
Affiche le
curseur
|
Touche
JAUNE
(à) :
|
Efface le
curseur
|
|