0% ont trouvé ce document utile (0 vote)
44 vues2 pages

TD2 Mic

Le document traite de l'interfaçage d'un clavier à 12 touches via une liaison PS2, en expliquant comment détecter les touches en utilisant un PORT de 8 bits pour gérer jusqu'à 16 touches. Il présente également des exercices pratiques, notamment la détermination des numéros de colonne et de ligne des touches pressées, ainsi que la conversion de ces numéros en caractères correspondants. Enfin, il aborde la réalisation d'un chenillard à l'aide de LEDs connectées au PORTB, avec un exemple de code en MikroC.

Transféré par

supptic.stm.yde
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
44 vues2 pages

TD2 Mic

Le document traite de l'interfaçage d'un clavier à 12 touches via une liaison PS2, en expliquant comment détecter les touches en utilisant un PORT de 8 bits pour gérer jusqu'à 16 touches. Il présente également des exercices pratiques, notamment la détermination des numéros de colonne et de ligne des touches pressées, ainsi que la conversion de ces numéros en caractères correspondants. Enfin, il aborde la réalisation d'un chenillard à l'aide de LEDs connectées au PORTB, avec un exemple de code en MikroC.

Transféré par

supptic.stm.yde
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 PDF, TXT ou lisez en ligne sur Scribd

Cours de microcontrôleurs en ITT2

Travaux dirigés N°2


Exercice 1 : Interfaçage d'un clavier 12 touches avec liaison PS2

Sur un PC, le clavier est complètement décodé, c'est-à-dire que lorsqu'une touche est
appuyée, sa position sur le clavier est envoyée sur la liaison PS2. Le fait d'envoyer la
position et non le code ASCII permet de gérer les claviers en divers langues.
Pour de petites applications, on utilise un clavier à 12 touches. Il est composé de
simples contacts et le décodage est réalisé par le système informatique. Avec
seulement 8 touches, un PORT de 8 bits en entrée suffit. Si le clavier possède plus de 8
touches, il faut :
- soit utiliser d'avantage d'entrées,
- soit multiplexer les entrées en deux étapes
En utilisant 4 fils pour les lignes et 4 fils pour les colonnes, on peut différencier par
croisement 16 touches. On utilise donc 8 fils reliés à 8 bits d'un PORT pour 16 touches.
Pour nos 12 touches on peut câbler comme indiqué ci-dessus.
Il s'agit ensuite de procéder en deux phases, une pour la détection de la colonne et une
autre pour la détection de ligne.
Hypothèse : On considère que :
- les broches du PORTB sont configurées en entrée (la programmation des
directions avec TRISB),
- les broches RB2-RB0 sont utilisées pour désigner les colonnes et
- les broches RB6-PB3 sont utilisées pour désigner les lignes,
- le bit RB7 peut servir autrement.

Question 1 : détermination du numéro de colonne


Ecrire un code permettant de tester si une touche est appuyée.
Si oui sauvegarder dans une variable la valeur lue sur PORTB puis transformer cette
valeur en numéro de colonne (0 à gauche et 2 à droite)
Ecrire la fonction correspondante à travers le sous-programme :

1
Cours de microcontrôleurs en ITT2

char lecture_numColonne()

Question 2 : détermination du numéro de ligne


Ecrire un code permettant de tester si une touche est appuyée.
Si oui sauvegarder dans une variable la valeur lue sur PORTB puis transformer cette
valeur en numéro de ligne (3 en haut à 6 à droite)
Ecrire la fonction correspondante à travers le sous-programme:
char lecture_numLigne ()

Question 3 : détermination du caractère

A partir des deux fonctions précédentes, proposer un code qui transforme le numéro de
colonne et le numéro de ligne en caractère correspondant sur le clavier : '1' ou '2' ou ...
ou '0' ou '#'

Exercice 2 : chenillards
Le PORTB est relié à un ensemble de LEDs permettant la réalisation de chenillards. Un
chenillard est donné par le programme suivant
// MikroC
main(){
int i;
TRISB=0x00;
for(;;) {
for(i=0;i<6;i++) {
PORTB=(0x03<<i|0xC0>>i);
Delay_ms(1000);
}
}
}
Question : Compléter la suite des états (en binaire et en hexadécimal) de ce chenillard
(ceux où une ou plusieurs leds sont allumées).

Vous aimerez peut-être aussi