0% ont trouvé ce document utile (0 vote)
59 vues3 pages

Gestion clavier avec microcontrôleur PIC

Ce document décrit un projet qui vise à gérer un clavier matriciel à l'aide d'un microcontrôleur PIC16F877. Le programme scanne les lignes et colonnes du clavier pour déterminer la touche pressée et affiche le code ASCII correspondant sur un écran LCD.

Transféré par

Hafsa Kahi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
59 vues3 pages

Gestion clavier avec microcontrôleur PIC

Ce document décrit un projet qui vise à gérer un clavier matriciel à l'aide d'un microcontrôleur PIC16F877. Le programme scanne les lignes et colonnes du clavier pour déterminer la touche pressée et affiche le code ASCII correspondant sur un écran LCD.

Transféré par

Hafsa Kahi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

TP : Gestion d’un clavier à l’aide d’un microcontrôleur

Objectif : Cette manipulation a pour objectif de gérer un clavier matriciel via le


pic 16f877.

Introduction :

Un clavier matriciel est composé de lignes ( L1 L2 L3 L4) et de colonnes ( C1 C2


C3), à l'appui sur une touche une connexion entre une ligne et une colonne est
établi, exemple si on appui sur 2, L1 et C2 seront interconnectées Le rôle du pic
est de balayer les lignes et les colonnes en envoyant des codes appropriés
contenus dans un tableau, pour déterminer la touche appuyée sur un écran
LCD.

2. Travail demandé :

2.1. Lancer ISIS et le Compilateur mikroC PRO.

2.2. Réaliser le schéma et le programme ci-dessous:

Programme

// connexions du module Keypad char keypadPort at PORTC;


// connexions du module LCD sbit LCD_RS at RB1_bit;
sbit LCD_E! at RB0_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_RS_Direction at TRISB1_bit;
sbit LCD_E!_Direction at TRISB0_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
void main() {
unsigned short kp = 0;
Keypad_Init(); // Initialisation du Keypad
Lcd_Init(); // Initialisation du Lcd
Lcd_Cmd(_LCD_CLEAR); // effacement de l’écran
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1, 1, "Key :"); // écrire un message dans Lcd
do { kp = 0; // Reset la variable
// attendre que le bouton soit pressé et relâché
do kp = Keypad_Key_Click(); // sauvegarder le code
while (!kp); // transformation du code en valeur ASCII
switch (kp) {
case 1: kp = 49; break; // 1
case 2: kp = 50; break; // 2
case 3: kp = 51; break; // 3
case 4: kp = 52; break; // 4
case 5: kp = 53; break; // 5
case 6: kp = 54; break; // 6
case 7: kp = 55; break; // 7
case 8: kp = 56; break; // 8
case 9: kp = 57; break; // 9
case 10: kp = 42; break; // *
case 11: kp = 48; break; // 0
case 12: kp = 35; break; // #
}
Lcd_Chr(1, 10, kp);
// affichage de la valeur ASCII en Lcd
} while (1); }

Vous aimerez peut-être aussi