Activité |
✍ Passons à l'activité en classe
Pour celle-ci on se servira d’afficheur de la première catégorie, car ils suffisent à faire de nombreux montages et restent accessibles financièrement. L’objectif de cette activité consiste en la mise en œuvre de cet écran, sa configuration et utilisation des lignes de port (entrées/sorties) d’un microcontrôleur.
Rappels : Un afficheur LCD contient :
oune entrée de contrôle RS (Register Select)
oune entrée de validation E (Enable)
o8 entrées de données D7 à D0
RS permet de préciser si la commande présente sur les entrées D7 à D0 , est une instruction ou une donnée,
E permet de valider cette commande.
Une commande est une valeur numérique présente sur les entrées D7 à D0 et validée par une impulsion sur E.
Le protocole d'envoi des commandes précise la liste des instructions à envoyer pour configurer l'afficheur (RS=0) suivie des données à envoyer (RS=1).
L'entrée R/W sera mise à zéro (connectée à la masse) fixant ainsi l'afficheur en écriture.
Les 3 broches d'alimentation VSS, VDD et VEE n'ayant pas besoin d'être obligatoirement connectées dans ISIS Proteus, elles resteront non connectées dans les exemples ci-dessous.
La seule question qui nous intéresse ici est
" Que faut-il mettre sur les entrées de données et quel protocole faut-il utiliser pour piloter l'afficheur ? "
1re Partie : Programmation d'un afficheur LCD pas à pas en mode 8 bits :
En mode 8 bits les 8 entrées D7 à D0 sont câblées et les commandes sont sur 8 bits (1 octet).
Il faut envoyer à l'afficheur 3 octets d'initialisation afin de le configurer avant d'envoyer les caractères à afficher.
Envoi des instructions de configuration |
Envoi des données pour afficher les caractères |
||
RS=0 |
RS=1 |
||
$38 |
$0E |
$06 |
on envoie le code ASCII de chaque caractère |
Rôle de chacun des 3 octets de configuration :
$38 : configure l'afficheur en mode 8 bits avec 2 lignes
$0E : configure le curseur visible (à remplacer par $0C si on veut le curseur invisible ou par $0F pour un curseur clignotant)
$06 : configure le déplacement du curseur vers la droite
A vous de faire :
1) Dans un premier on vous demande de réaliser le schéma structurel sous Isis Proteus ci dessous permettant le pilotage manuel d'un afficheur LCD LM016L en mode 8 bits.
Liste des composants nécessaire sous Proteus :
Description du composant |
Nom exact du composant (colonne Device dans la catégorie) à saisir dans Mots clés |
Catégorie contenant le composant (bibliothèque) |
Afficheur LCD alphanumérique 16x2 16x2 Alphanumeric LCD |
LM016L |
Optoelectronics (DISPLAY) |
Simulateur d'états logique « action verrouillée » Logic State Source (Latched Action) |
LOGICSTATE |
Debugging Tools (ACTIVE) |
Simulateur d'états logique « action momentanée » Logic State Source (Momentary Action) |
LOGICTOGGLE |
Debugging Tools (ACTIVE) |
Interrupteur interactif hexadécimal (sortie 4 bits) Interactive 16 State Thumbwheel Switch (4 Bit Output) |
THUMBSWITCH-HEX |
Switches and Relays (ACTIVE) |
2) Lancer la simulation puis réalisez manuellement la séquence permettant d'afficher le caractère suivant : @
2e Partie : Programmation d'un afficheur LCD pas à pas en mode 4 bits :
En mode 4 bits seules les 4 entrées D7à D4 sont câblées et les commandes sont sur 4 bits (1 quartet).
En mode 4 bits les instructions comme les codes ASCII des caractères sont envoyés en 2 étapes :
le quartet de poids fort en premier, puis ensuite le quartet de poids faible.
Pour configurer l'afficheur en mode 4 bits il faut commencer par lui envoyer les 4 quartets $3 $3 $3 et $2.
Envoi des instructions de configuration |
Envoi des données pour afficher les caractères |
|||||||
RS=0 |
RS=1 |
|||||||
$3 |
$3 |
$3 |
$2 |
$0 |
$E |
$0 |
$6 |
on envoie le code ASCII de chaque caractère en 2 étapes |
L'instruction $0E affichant le curseur est envoyée ici en 2 quartets : $0 puis $E
L'instruction $06 configurant le déplacement du curseur vers la droite est envoyée ici en 2 quartets : $0 puis $6
Une fois l'afficheur configuré en mode 4 bits, les codes ASCII des caractères à afficher sont envoyés en 2 étapes :
le quartet de poids fort en premier, puis ensuite le quartet de poids faible.
1)Proposez un schéma structurel permettant d'utiliser l'afficheur en mode 4 bits puis faire valider celui-ci par votre professeur.
2)Rappelez pourquoi dans certain cas ce mode est utilisé.
3)Lancer la simulation puis réalisez manuellement la séquence permettant d'afficher le caractère suivant : &
3e Partie : Affichage d'un ensemble de caractères en mode 8 Bits :
Dans cette partie de l'activité on vous propose d'afficher, cette fois-ci, une suite de caractères.
Voici donc le message à afficher :
Carnot-ARRAS
SIN
Vous présenterez, à la suite de votre contre rendu, votre démarche ainsi que les informations qui sont envoyés sur les ports D7 à D0, RS et E pour chaque étapes intermédiaires avant l'obtention du résultat final.
Quelques instructions bien pratiques
Voici les instructions les plus utilisées pour chacun des afficheurs LCD utilisables dans ISIS Proteus :
Instructions valables pour tous les afficheurs LCD |
|
Action à réaliser |
Valeur de l'instruction (à envoyer avec RS=0) |
Curseur invisible |
$0C |
Curseur visible en fixe |
$0E |
Curseur visible clignotant |
$0F |
Déplacement du curseur vers la droite |
$06 |
Effacer l'écran |
$01 |
Bascule l'afficheur en mode 4 bits |
$33 $32 |
Bascule l'afficheur en mode 8 bits |
$33 $33 |
Configure l'afficheur en multi-lignes en 4 bits |
$28 |
Configure l'afficheur en multi-lignes en 8 bits |
$38 |
Séquence d'initialisation complète pour configurer un afficheur LCD en mode 8 bits |
|
Action à réaliser |
Valeur de l'instruction (à envoyer avec RS=0) |
Bascule l'afficheur en mode 8 bits |
$33 $33 |
Configure l'afficheur en multi-lignes en 8 bits |
$38 |
Affichage du curseur |
$0E |
Déplacement du curseur vers la droite |
$06 |
Ensuite on peut envoyer les codes ASCII des caractères à afficher octet par octet |
Séquence d'initialisation complète pour configurer un afficheur LCD en mode 4 bits |
|
Action à réaliser |
Valeur de l'instruction (à envoyer avec RS=0) |
Bascule l'afficheur en mode 4 bits |
$33 $32 |
Configure l'afficheur en multi-lignes en 4 bits |
$28 |
Affichage du curseur |
$0E |
Déplacement du curseur vers la droite |
$06 |
Ensuite on peut envoyer les codes ASCII des caractères à afficher quartet par quartet (avec le poids fort en premier) |
Changement de ligne sur les afficheurs possédant 2 lignes :
Instructions valables pour les afficheurs LM016L (2x16) LM032L (2x20) LM017L (2x32) et LM018L (2x40) |
|
Action à réaliser |
Valeur de l'instruction (à envoyer avec RS=0) |
Déplacer le curseur au début de la ligne 1 |
$80 |
Déplacer le curseur au début de la ligne 2 |
$C0 |
Changement de ligne sur les afficheurs possédant 4 lignes :
Instructions valables pour l'afficheur LM041L (4x16) |
|
Action à réaliser |
Valeur de l'instruction (à envoyer avec RS=0) |
Déplacer le curseur au début de la ligne 1 |
$80 |
Déplacer le curseur au début de la ligne 2 |
$C0 |
Déplacer le curseur au début de la ligne 3 |
$90 |
Déplacer le curseur au début de la ligne 4 |
$D0 |
Instructions valables pour l'afficheur LM044L (4x20) |
|
Action à réaliser |
Valeur de l'instruction (à envoyer avec RS=0) |
Déplacer le curseur au début de la ligne 1 |
$80 |
Déplacer le curseur au début de la ligne 2 |
$C0 |
Déplacer le curseur au début de la ligne 3 |
$94 |
Déplacer le curseur au début de la ligne 4 |
$D4 |
4e Partie : Pour aller plus loin: Utilisation de Flowcode et d'Isis Proteus.
Maintenant que vous avez effectué toutes ces manipulations fastidieuses dues à la programmation manuel, nous allons utiliser les outils disponibles en classe afin de faciliter notre tâche.
1) Proposez, en vous aidant de l'activité « Gestion d’un Feux Tricolores Mode Automatique » le schéma structurel, avec une carte Arduino Uno permettant de répondre à notre besoin.
2) Proposez ensuite sous Flowcode l'algorithme permettant de répondre à la troisième partie de cette activité.
3) Testez votre programme sous Flowcode puis en simulation sous Isis Proteus.
4) Enfin pour terminer, câblez et testez votre montage.
Voilà !!! c'est fini...pour le moment. N'hésitez pas à partager avec votre professeur
par l’intermédiaire de votre compte rendu
Créé avec HelpNDoc Personal Edition: Écrire des livres électroniques ePub pour l'iPad