Avant
propos :
Dans
cette nouvelle application, le PIC16F84A
se
comporte comme un
circuit encodeur de clavier matriciel
conçu pour interfacer un
clavier matriciel 4x4
(4 rangées x 4 colonnes à
16 touches) ou 4x3
(4
rangées x 3 colonnes à
12 touches) vers un autre
microcontrôleur ou vers un PC. Pour ce faire, deux interfaces
(sérielle
et / ou parallèle)
transmettent l'information d'activation
d'une touche en synchronisme
avec un
signal de "données valides"
pour
l'utilisation d'applications faisant appel à
une interrogation par
interruption.
D'autre
part, vous pouvez utiliser ce PIC pour
remplacer le très célèbre
décodeur de clavier
TTL référencé 74C922.
Dans ce cas, vous utiliserez uniquement
les quatre sorties parallèles. Bien
entendu, l'encodeur de clavier dispose
de fonctions additionnelles
telles que l'anti-rebond
et l'anti-répétition
des touches.
Enfin,
l'encodeur à en autre l'avantage
d'être
"silencieux"
électriquement s'entend ! En
effet, nombre d'encodeurs scrutent inlassablement le clavier,
ce qui se traduit par un rayonnement
d'interférences électromagnétiques
(EMI) produit par les conducteurs
allant vers le clavier. Cette scrutation
continue peut poser des problèmes
lors des tests de CEM (Compatibilité
ElectroMagnétique) requis pour
la certification d'un produit. En revanche,
l'encodeur présenté dans
cette page réduit ces problèmes par une surveillance du clavier sans
changement de signal,
la scrutation ayant lieu
qu'après détection d'une
action sur une touche.
Principales
caractéristiques
de l'interface CAN - RS232 & // :
Accepte les claviers multiplexés 12
ou 16
touches.
Deux "vitesses"
de transmission série : 2400 / 9600 bauds.
Choix par softs des niveaux
logiques pour communication sérielle : NRZ (
PC ) ou TTL
(
µc ). Sortie
parallèle sur 1
quartet
(4 bits) représentative de
la touche pressée.
Sortie interruption
destinée au dispositif interprétant
les données parallèles (ou
séries).
Alimentation du montage sous 12 volts à
partir d'un
adaptateur secteur conventionnel.
Repérage des principales entrées
- sorties :
Sélection de la
"vitesse" de transmission série
RS232 :
Les
picots SW1 permettent de sélectionner la vitesse
de transmission série tel que : Si
les picots SW1
sont
court-circuités => le transfert s'effectue
en 2400
bauds. Si
les picots SW1
sont laissés ouverts => le transfert
s'effectue en 9600
bauds.
Sorties parallèles
sur un quartet :
La
sortie parallèle s'effectue sur
quatre lignes RB0
(LSB),
RB1,
RB2,
RB3
(MSB).

Les
sorties parallèles
fournissent
une
suite binaire
représentative
de la touche pressée
tel que :
Clavier
12 touches
|
Clavier
16 touches
|
Sorties
parallèles %RB3
RB2 RB1 RB0 (binaire)
|
1
|
1
|
%0001
|
2
|
2
|
%0010
|
3
|
3
|
%0011
|
4
|
4
|
%0100
|
5
|
5
|
%0101
|
6
|
6
|
%0110
|
7
|
7
|
%0111
|
8
|
8
|
%1000
|
9
|
9
|
%1001
|
*
|
*
|
%1010
|
0
|
0
|
%0000
|
#
|
#
|
%1011
|
|
A
|
%1100
|
|
B
|
%1101
|
|
C
|
%1110
|
|
D
|
%1111
|
Sorties séries RS232
NRZ (pour un PC) et TTL (pour un microcontrôleur)
:
Vous
avez la possibilité d'utiliser deux
sorties séries
: Encadré
en
vert
: la sortie RS232
(NRZ)
compatible avec les niveaux logiques de
l'entrée RS232 de votre PC
(Hyper - Terminal, etc...). Encadré
en
bleu
: la sortie DATA
OUT
(TTL)
avec des niveaux logiques TTL compatibles
avec l'entrée d'un microcontrôleur,
circuits logiques,
etc...
Les
sorties séries fournissent un
code ASCII
représentatif
de la touche pressée
tel que :
Clavier
12 touches
|
Clavier
16 touches
|
Sorties
RS232 (valeur
ASCII => valeur Hexa)
|
1
|
1
|
"1"
=> $31
|
2
|
2
|
"2"
=> $32
|
3
|
3
|
"3"
=> $33
|
4
|
4
|
"4"
=> $34
|
5
|
5
|
"5"
=> $35
|
6
|
6
|
"6"
=> $36
|
7
|
7
|
"7"
=> $37
|
8
|
8
|
"8"
=> $38
|
9
|
9
|
"9"
=> $39
|
*
|
*
|
"*"
=> $2A
|
0
|
0
|
"0"
=> $30
|
#
|
#
|
"#'
=> $23
|
|
A
|
"A"
=> $41
|
|
B
|
"B"
=> $42
|
|
C
|
"C"
=> $43
|
|
D
|
"D"
=> $44
|
Sortie interruption INT
:
Cette sortie INT
génère un créneau logique positif
de 50ms synchrone
avec les données parallèles
RB0 à RB3. Succède
à l'interruption (front descendant)
les données
séries représentatives de
la touche pressée. Voir
chronogrammes de la page [
Fonctionnement
] pour de plus
amples détails.
Le clavier matricé :
Caractéristiques
du clavier :
Dans
le cadre de cette application, j'ai
choisi un clavier
matricé 4x4 - 16 touches du
distributeur Velleman
possédant les spécifications
suivantes :
Caractéristiques
des contacts : 20mA, 24VDC; Résistance
des contacts : 200 ohms max; Durée
de vie des contacts : 1.000.000 cycles; Température
de fonctionnement : -20°C à
+60°C; Matériau
: ABS.

Brochage du clavier Velleman
16 touches :
Brochage
du connecteur du clavier Velleman 16
touches :

Câblage interne équivalent
du clavier Velleman 16 touches
:

Adaptation du brochage
du clavier Velleman 16 touches au circuit
imprimé :
Afin
d'assurer la connexion de plusieurs
types de claviers matricés, j'ai
opté pour l'emploi d'un connecteur
de clavier configurable à volonté
au moyen de multiples liaisons électriques
(straps).
Dans le cas présent, les
spécificités d'agencement
des 8 broches
du connecteur
de clavier Velleman répondent
aux 8 liaisons électriques (straps)
dessinées
en bleues sur le croquis suivant :

Note
:
Si
vous utilisez un autre type de clavier
matricé 16 touches (différent
du modèle Velleman) et pourvu
d'un brochage différent, il vous
suffira de modifier l'agencement des
liaisons électriques (straps)
du circuit imprimé.
Brochage d'un clavier matricé
4x3 composé de 12 touches :
A titre d'illustration, voici le
câblage interne d'un clavier 12
touches. Dans ce cas, la colonne
numéro 4
(Col 4) n'existe pas.

Voici un exemple d'agencement des
liaisons électriques pour un connecteur de
clavier 4x3 répondant
par exemple au brochage L4
L3 L2 L1 C3 C2 C1
:
|