
Le microcontrôleur
Le
microcontrôleur n' a pas été étudié lors de ce projet.
Ca référence technique est : 8035
Documentation
constructeur (pdf)
L'afficheur LCD
Schéma structurel de
la carte Microcontrôleur
Documentation constructeur
(pdf)
La fonction principale FP 6 permet d’afficher les paramètres, les
valeurs de consignes saisies par l’utilisateur et les valeurs mesurées
par le système. Celle-ci est
divisée en 2 fonctions secondaires :
-FS61 : régler le
contraste de l’afficheur à l’aide du potentiomètre P1.
-FS62 : afficher
les paramètres sur 8 bits.
L’afficheur à cristaux liquides comporte 2 lignes de 16 caractères
chacune. L’afficheur comprend un électronique intégré permettant d’être
piloté par un microcontrôleur par exemple.
L’afficheur comporte des signaux de contrôle :
-RS : choix
du registre : - 0→ registre de contrôle
- 1 → registre de donnée
D’après le câblage du microcontrôleur : le DDRA→C8
le DDRC→FF (tout en sortie)
-R\W : écriture \
lecture (toujours validé en écriture)
L’envoi des signaux de données ou de contrôle se fait par le bus de D0 à
D7 les données sont codées en ASCII.
Pour configurer les ports il faut mettre : - en sortie 1
- en entrée 0
Pour envoyer un code de contrôle il faut mettre
{ RS = 0 ; // choix du registre de contrôle
PORT C= c ; // envoi du code de contrôle
delay_ms (1) ; // appel tempo de 1 ms
E = 1; // créer un front descendant
E = 0; // sur l’entrée de validation E
}
Pour envoyer un code de donnée il faut mettre
{ RS = 1 ; // choix du registre de contrôle
PORT C= c ; // envoi du code de contrôle
delay_ms (1) ; // appel tempo de 1 ms
E = 1; // créer un front descendant
E = 0; // sur l’entrée de validation E
}
Tableau de valeurs :
Instruction |
Action ou état
désiré |
Octet de contrôle |
hexa |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
Mode
(Func.Set) |
8 bits
2 lignes
carac : 5x8 |
0 |
0 |
1 |
1 |
1
|
0 |
0 |
0 |
38 |
ALL /EXT
(Display On/off control) |
Aff allumé
Curseur invisi.
Sans clignot. |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0C |
Effacem.
d’écran
(clear display) |
Efface l’écran |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
01 |
Init curseur
(curseur home) |
Positionner
Le curseur à l’origine : L1 et C1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
02 |
Configuration de l’afficheur :
{RS = 0; // choix du registre de contrôle
lcd_write_instr( 0x 38 ); // envoi du code (L1 de votre
tableau)
lcd_write_instr( 0x 0C ); // envoi du code (L2 de votre
tableau)
lcd_write_instr( 0x 02 ); // envoi du code (L4 de votre
tableau)
lcd_write_instr( 0x 01 ); // envoi du code (L3 de votre
tableau)
delay_ms ( 10 ) ; // appel tempo de 10 ms
}
Maintenant l’afficheur est configuré et il peut transmettre des messages
à l'utilisateur.
Pour pouvoir afficher une variable il faut la déclarer au début du
programme par : « int i » pour une variable i.
Pour afficher un texte il faut aussi l’indiquer par :
« unsigned char*titre0="BAC STI 2005" » pour afficher BAC STI 2005. Il
Faut l’appeler dans le programme principal mais avant il faut le
positionner sur l’afficheur et l’indiquer lors de la programmation :
« lcd_pos(ligne,colonne) »
Pour donner le numéro de la ligne il ne faut pas oublier que la première
aura le numéro 0 et non pas 1. C’est le même principe pour les colonnes.
Ensuite on marque « lcd_chaine(titre0); »
Décodeur et clavier
La fonction principale FP4 permet la saisie et la
modification des paramètres et des valeurs de consigne.
Elle est divisée en deux fonctions secondaires :
-FS41 : sélectionner successivement les 4 colonnes du
clavier alphanumérique 16 touches à partir des deux
sorties PD et PD1 du port D.
-FS42 : Saisir et modifier les valeurs des paramètres de
fonctionnement et des consignes à l’aide du clavier
alphanumérique.
Fonctionnement du décodeur (74HC139) :
Il possède 2 entrées de sélection, 1 entrée de
validation sur niveau bas et 4 sorties actives sur
niveau bas. Pour une combinaison n en entrée c’est la
sortie n qui sera sélectionnée.
Pour sélectionner une colonne il faut que le décodeur
envoie un code binaire (0111, 1011, 1101, 1110). La
colonne est activée au niveau bas. Si aucune touche
n’est actionnée le décodeur enverra le code 1111.
L’identification de la touche est réalisée par le microcontrôleur en
comparant le code ASCII de la touche émise vers le clavier et le code
ligne reçu..
Code ASCII :
-1→31
-A→41
-2→32
-B→42
-3→33
-C→43
-4→34
-D→44
-5→35
-E→45
-6→36
-F→46
-7→37
-8→38
-9→39
Les résistances R3 à R6 sont des résistances de tirage elles
maintiennent un niveau logique haut à la sortie des colonnes aux points
test T7 à T10 si aucune touche n’est sélectionnée. Si une touche est
sélectionnée il y aura un niveau logique 0 au même point test que
précédemment.
Le temps de réponse du clavier peut être modifié en jouant sur la tempo
dans le programme, plus elle est grande plus le clavier sera long pour
envoyer des informations sur l’afficheur. De même pour le temps de
réaction du clavier entre 2 touches actionnées, plus il est faible plus
on peut écrire de caractères dans un même temps t.
 

Système d'aquariophilie
Brun Olivier |
|