la deuxiéme Partie de Mini-Projet : Calculatrice - Cours Technique

Nouveau

Post Top Ad

Post Top Ad

la deuxiéme Partie de Mini-Projet : Calculatrice

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. 

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 :
                                    
                          D’autre caractéristique :

  •          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.

-  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.

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.
Le contrôleur sert donc d'interface entre le microcontrôleur et l'afficheur .

    
                                                           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_Out
        Lcd_Out_Cp 
  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

Post Top Ad