I. Introduction :
Le but de ce
Mini-projet on général est le développement d'une calculatrice simple
(En utilisant un microcontrôleur PIC18F452), Seras capable d’exécuté les
opérations suivante : Addition, Soustraction, Multiplication, Division.
opérations suivante : Addition, Soustraction, Multiplication, Division.
Les principales
composantes du projet sont:
- Le cœur du projet est microcontrôleur PIC 18F452.
- 2 lignes alpha numérique LCD.
- Clavier pour l'entrée.
II. Généralité
a. Microcontrôleur :
1. Datasheet de PIC18F452 : il constitue de 40 pattes
2.
Les portes entres /sorties :
Le PIC 18F452 a cinq type de
porte : PORTA, PORTB, PORTC, PORTD, PORTE, La plupart des ces portes
ont de nombreuses utilisation, par exemple on peut l’utilise le PORTA comme entre et aussi comme sortie.
3. Caractéristique
de PIC 18F452 :
- Le PIC18F452 présente un compilateur 'de C’.
- un ICD, 2 fonctions de capture/compare/PWM.
- 8 canaux d'Analogue-à-numérique de 10 bit convertisseur (A/D).
b. Claviers :
Sont de petits claviers utilisés pour entrer des données numériques
dans les systèmes de microcontrôleurs. Les Claviers sont disponibles dans une
variété de tailles et de styles, de 2 x 2 à 4 x 4 ou même plus grand. Dans
Ce Mini- projet on a utilise un clavier 4 x 4 et un écran LCD de
concevoir une simple calculatrice.
La structure du clavier utilisé dans ce projet se compose de seize interrupteurs formés dans une matrice 4 x 4, et les chiffres cités 0-9, Entrez, "+", ".", "-", "*" et "/ ".
Les rangées et les colonnes du clavier sont
connectées à PORTB d'un microcontrôleur qui balaie le clavier pour détecter le
moment où un commutateur est enfoncé.
L’utilisation du clavier est la suivante
:
:
La
l'utilisation du clavier
est la suivante:
-
1 logique est appliquée à la première colonne
par l'intermédiaire d'RB0.
2 broches Port RB4 à RB7 sont lues. Si la donnée est différente de zéro, un commutateur est actionné. Si RB4 est 1, la touche 1 est pressé, si RB5 est 1, la touche 4 est pressé, si RB6 est 1, la touche 9 est pressé, et ainsi de suite.
2 broches Port RB4 à RB7 sont lues. Si la donnée est différente de zéro, un commutateur est actionné. Si RB4 est 1, la touche 1 est pressé, si RB5 est 1, la touche 4 est pressé, si RB6 est 1, la touche 9 est pressé, et ainsi de suite.
-
Un niveau logique 1 est appliqué à la seconde colonne par
l'intermédiaire de RB1.
4 Encore une fois, broches du port RB4 à RB7 sont lus. Si la donnée est différente de zéro, un commutateur est actionné. Si RB4 est 1, la touche 2 est pressée, si RB5 est 1, touche 6 est pressée, si RB6 est 1, la touche 0 est pressé, et ainsi de suite.
5 Ce processus est répété pour toutes les quatre colonnes en continu.
Dans ce projet, une calculatrice simple entière est conçue. La calculatrice peut additionner, soustraire, multiplier et diviser des nombres entiers et afficher le résultat sur l'écran LCD.
4 Encore une fois, broches du port RB4 à RB7 sont lus. Si la donnée est différente de zéro, un commutateur est actionné. Si RB4 est 1, la touche 2 est pressée, si RB5 est 1, touche 6 est pressée, si RB6 est 1, la touche 0 est pressé, et ainsi de suite.
5 Ce processus est répété pour toutes les quatre colonnes en continu.
Dans ce projet, une calculatrice simple entière est conçue. La calculatrice peut additionner, soustraire, multiplier et diviser des nombres entiers et afficher le résultat sur l'écran LCD.
c. LCD (Liquid Crystal Display) :
Les afficheurs à
cristaux liquides généralement appelés
LCD (Liquid Crystal
Display) sont des
modules compacts qui nécessitent
peu de composants
pour leur mise
en œuvre. Plusieurs afficheurs
sont disponibles sur
le marché, ils se différencient
les uns des autres par leurs dimensions (de 1 à 4
lignes de 6 à 80
caractères).
Pour communiquer avec
l'extérieur tout afficheur
à besoin d'un
circuit spécialisé de gestion
appelé « contrôleur d'affichage
», il
en existe différents
modèles sur le
marché mais ils
ont tous le
même fonctionnement.
Communication avec l’afficheur
Le but du driver est de gérer le bus CONTROL afin que le
contrôleur d'affichage comprenne Le bus DATA et affiche ce que l'on souhaite
sur l'écran LCD.
Le contrôleur d'affichage peut recevoir deux types
d'information sur le bus DATA, un ordre (ex: effacer l'écran) ou une donnée
(ex: le caractère A). Ordres ou données sont envoyés sur le bus DATA sous forme
d'octets (8 bits). Mais pour ne pas utiliser toutes les broches de sorties d'un
microcontrôleur pour communiquer avec un
LCD, les contrôleurs d'affichage
fonctionnent également en 4 bits, un nombre codé sur 4 bits s'appelle un
quart et .En mode 4 bits, un octet est
Envoyé en deux fois : le quart et de poids fort puis le
quart et de poids faible.
Le bus CONTROL est constitué de trois lignes:
La
ligne RS (Register
Select) qui permet au
contrôleur d'affichage de
savoir si le contenu
du bus DATA est un ordre ou une donnée .Un niveau
bas indiquera un ordre et un niveau haut une donnée.
La ligne RW (Read Write) informe le contrôleur
si on vient lire ou écrire dans sa mémoire, un niveau bas correspondant à une
action d'écriture.
La ligne
E (Enable) qui informe le
contrôleur d'affichage qu'un quartet (mode 4 bits) ou un octet (mode 8
bits) est disponible.
Cette ligne est
active sur front
descendant. Elle réalise
la synchronisation entre
le microcontrôleur et
l'afficheur.
v Bibliothèque pour LCD
La programmation en assembleur d'un écran LCD en mode parallèle ou en série est généralement une
tâche complexe et nécessite d’une bonne compréhension du fonctionnement interne
de l'écran LCD. La langue mikroC fournit des fonctions pour les
deux modes de programmation basée sur le texte déjà préparé, ce qui simplifie
l'utilisation d'écrans LCD.
- Le contrôleur LCD HD44780
Le HD44780 est
l'un des contrôleurs de cristaux
liquides les plus appréciés, étant utilisé
dans l'industrie et dans les applications commerciales.
Le module est monochrome et vient dans différentes formes et
tailles. Des modules avec 8, 16, 20, 24, 32 et 40 caractères sont disponibles.
Selon le modèle, l'écran LCD est fabriqué avec 14 ou 16
pattes pour l'interface.
Le tableau suivant
présente la configuration des pattes et les
fonctions des pattes
d’un LCD à 14 pattes.
- La patte VSS est à 0V ou du sol. La patte VDD doit être connectée à la borne positive d’alimentation. Bien que les fabricants spécifient une alimentation 5V DC, les modules travaillent habituellement aussi avec une alimentation un peu bas que 3V ou aussi haut que 6V.
- La patte 3 VEE est désigné pour réglage du contraste de l'affichage et doit être reliée à une alimentation en courant continu. Un potentiomètre est généralement connecté à l'alimentation avec son curseur raccordé à la patte VEE et l'autre patte du potentiomètre relié à la masse. De cette façon la tension à la patte VEE, et où le contraste de l'affichage, peut être réglée à volonté.
- La patte 4 est le registre de sélection (RS) et lorsque cette patte à 0 V, les données sont transférés à l'affichage à cristaux liquides. Lorsque RS est à +5 V, les données de caractères peuvent être transférés à partir du module LCD.
- La patte 5 est le registre de sélection de lecture / écriture (R / W). Cette patte est reliée avec la masse (état logique bas) afin d'écrire des données de caractères au module LCD. Lorsque cette broche est à +5 V (états logique haut) donc les informations sortants du module LCD peuvent être lues.
- La patte 6 est la validation (EN), qui est utilisé pour initier le transfert de commandes ou de données entre le module et le microcontrôleur. Lors de l'écriture à l'écran, les données sont transférés uniquement sur le front descendant (haut-bas) sur cette patte. Lors de la lecture de l’affichage, les données deviennent accessibles après le front montant (bas-haut) de la patte de validation, et ces données demeurent tant que la patte de validation est au niveau logique haut.
- Les broches 7 à 14 sont les huit lignes de bus de données (D0 à D7). Les données peuvent être transférées entre le microcontrôleur et le module LCD à l'aide soit d'un seul octet de 8 bits soit de deux 4-bits. Dans ce dernier cas, seuls les quatre lignes de données supérieures (D4 à D7) sont utilisées. Le 4-bits mode a l'avantage de nécessiter moins de lignes d'E / S pour communiquer avec l'écran LCD
Le mikroC LCD
bibliothèque fournit un grand nombre de fonctions pour contrôler du texte LCD avec 4-bits et
les interfaces de
données 8-bit, et pour les
graphiques LCD. La plus courante est la 4-bit interface en mode texte
sur écran LCD. Ce qui suit sont les
fonctions disponibles, pour LCD 4-bit interface en mode texte LCD :
Lcd_Config
Lcd_Init
Lcd_Init
Lcd_Out
Lcd_Out_Cp
Lcd_Chr
Lcd_Chr
Lcd_Chr_Cp
Lcd_Cmd
Lcd_Config
La fonction Lcd_Config
est utilisée pour configurer l'interface LCD. La connexion par défaut entre le
LCD et le microcontrôleur est la suivante :
LCD Patte du port
de microcontrôleurs
RS → 2
FR → 3
D4 → 4
D5 → 5
D6 → 6
D7 → 7
La patte R / W de
l'écran n'est pas utilisé et doit être reliée à la masse.
Cette fonction
devrait être utilisée
pour modifier la
connexion par défaut.
Il devrait être appelé avec les paramètres dans l'ordre
suivant :
Nom de port, RS patte, EN patte, R/W patte, D7 patte, D6
patte, D5 patte, D4 patte , Le
nom du port
doit être spécifié
en passant son
adresse. Par exemple,
si RS patte est connectée à
RB0, EN patte à RB1,
D7 patte à RB2,
D6 patte à RB3,
D5 patte à RB4, et D4 patte à RB5, alors la fonction doit être
appelée comme suit :
- Lcd_Init
La fonction Lcd_Init
est appelée pour configurer l'interface
entre le microcontrôleur et
l'écran LCD lorsque
les connexions sont faites
par défaut que vient d'être
illustré. Le nom du
port doit être spécifié en passant son
adresse. Par exemple, en supposant que LCD est reliée à PORTB et les connexions par défaut précédentes sont
utilisées, la fonction doit être appelée en tant que :
Lcd_Init();
- Lcd_Out
La fonction Lcd_Out
affiche du texte
à la ligne
indiquée et la
position des colonnes de l'écran LCD. La fonction doit
être appelée avec des paramètres dans l'ordre suivant :ligne, colonne, texte
Exemple :
pour afficher du texte "Ordinateur" à la ligne 1 et la colonne 2 de
l'écran LCD nous devrions appeler la
fonction comme suit :
Lcd_Out (1, 2, "Ordinateur");
- Lcd_Out_Cp
La fonction Lcd_Out_Cp
affiche le texte
à la position
actuelle du curseur.
Exemple : pour afficher
le texte
"Ordinateur" à la position actuelle
du curseur, la fonction devrait être appelé en tant que :
Lcd_Out_Cp ("Ordinateur");
- Lcd_Chr
La fonction Lcd_Chr
affiche un caractère à la ligne indiquée et la colonne la position du curseur. La fonction doit être appelée avec
les paramètres dans le l'ordre suivant ligne, colonne, caractère
Exemple : pour afficher caractère "K" à la ligne 2
et la colonne 4 de l'écran LCD nous devrions appeler la fonction de :
Lcd_Chr(2, 4, ‘K’);
- Lcd_Chr_Cp
La fonction Lcd_Chr_Cp
affiche un caractère à la position actuelle du courser. Par exemple, pour
afficher le caractère "M" à la position actuelle du curseur, la
fonction doit être appelée en tant que :
Lcd_Chr_Cp ('M');
- Lcd_Cmd
La fonction Lcd_Cmd
est utilisée pour
envoyer une commande
à l'écran LCD.
Avec ce commande, nous
pouvons déplacer le
curseur vers n'importe
quelle ligne, désactiver l'écran LCD, faire
clignote le curseur,
décaler l'affichage, etc. Une liste des
plus couramment utilisés
commandes LCD est donnée dans Tableau suivant :
Aucun commentaire:
Enregistrer un commentaire