Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Programmation PIC pour gestion clavier matriciel



  1. #1
    Pitt64

    Lightbulb Programmation PIC pour gestion clavier matriciel

    Bonjour à tous, je suis un élève de terminale S-SI et j'ai pour projet scolaire de programmer la gestion d'un PIC sous "Flowcode" afin que celui-ci puisse interpréter les touches entrées dans un clavier matriciel (3x4) et afficher
    le bon caractère sur un écran LCD. Le programme devra ainsi faire en sorte de retenir les touches entrées et les comparées à un code; pour cela, j'ai d'abord mis sous tension les broches de la Colonne (matrice) du clavier pour
    que lorsqu'il y a appui sur une touche, un cours circuit mettra la Ligne du clavier en position haut. Il ne restera donc plus qu'à inverser la mise sous tension des Lignes et Colonnes afin d'identifier la touche saisie.
    Les valeurs obtenues pour les Lignes et les Colonnes sont sous forme binaire:
    - en sortie donc les valeurs 00000001, 00000010, 00000100, pour les Colonnes
    - en sortie donc les valeurs 00001000, 00010000, 00100000, 01000000 pour les Lignes
    J'additionne ensuite ces deux valeurs qui sont comparées avec un tableau; cela a pour effet d'incrémenter la variable "i" qui sert a parcourir le tableau tant que la valeur de la somme n'est pas égale à celle du tableau.
    La même variable "i" sert ensuite à faire le lien entre la valeur binaire du tableau et la valeur de référence d'un autre tableau, c'est le caractère voulu.
    La touche "#" servira à valider le code saisi et la touche "*" à enlever le dernier caractère. Je n'ai pas encore créer les fonctions nécessaires à l’interprétation de ces touches.
    Le programme devra fonctionner en tant que simulation sous "Proteus": le problème que je rencontre est que la première saisie fonctionne, mais les saisies juste après ne fonctionnent pas.
    J'en ai déduit que cela est du peut être à la vitesse à laquelle le processeur exécute les instructions et lors d'un appui de touche celui-ci "retient" comme si la touche avait été appuyée plusieurs fois.
    J'ai essayé plusieurs solutions "d'anti-rebond" mais aucune ne semble fonctionner...
    C'est donc pour cela que j'aurai besoin d'un peu d'aide afin de m'expliquer la solution a mon problème.
    Merci d'avance, cordialement,

    Pitt64

    ps: le programme et les ressources se trouvent dans les pièces jointes.

    -----

    Fichiers attachés Fichiers attachés

  2. #2
    DAUDET78

    Re : Programmation PIC pour gestion clavier matriciel

    Citation Envoyé par Pitt64 Voir le message
    ps: le programme et les ressources se trouvent dans les pièces jointes.
    Je n'ai pas vu le schéma hard.....
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  3. #3
    vincent66

    Re : Programmation PIC pour gestion clavier matriciel

    Bonsoir,
    Les fichiers .zip me rebutent mais...
    Dans tes solutions "anti-rebond" soft as-tu intégré une temporisation..?
    Perso une foi un appui détecté en utilisant la "interrupt on pin state change" sur les entrées du port B reliées aux lignes de la matrice je lance un scan séquentiel et si toutes les 5 millisecondes quatre fois de suite la même touche est détectée pressée je valide l'appui de cette touche pour la suite du soft...
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

Sur le même thème :

Discussions similaires

  1. pic 16F877 et clavier matriciel 12 touches
    Par pasalva dans le forum Électronique
    Réponses: 11
    Dernier message: 20/05/2014, 06h48
  2. Clavier matriciel !
    Par yass7 dans le forum Électronique
    Réponses: 17
    Dernier message: 03/01/2014, 21h39
  3. Clavier matriciel
    Par lovelovelove dans le forum Électronique
    Réponses: 1
    Dernier message: 01/04/2009, 16h54
  4. [PPE] langage C et clavier matriciel
    Par Icezzz dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 02/05/2008, 19h04
  5. gestion de clavier matriciel i2c
    Par miko76300 dans le forum Électronique
    Réponses: 2
    Dernier message: 26/01/2007, 22h49