Étape 4: Exemple #2: [entrée]
Aussi étrange que cela puisse paraître, manipulation de multiples entrées numériques avec un registre à décalage est presque la même que la gestion des sorties multiples. Penchons-nous sur le circuit tout d’abord, donc je peux vous expliquer comment cela fonctionne.
Diodes sont ajoutés pour protéger les sorties du Registre à décalage, puisque plusieurs apports élevés peuvent causer un court-circuit. PB3 est relié à la masse à travers une résistance de 10K (logique 0 lorsque aucune correspondance trouvée).
L’idée générale est d’envoyer un certain ensemble de bits de données pour le registre à décalage et si il y a un match au niveau du bit avec l’entrée - nous obtiendrons un signal sur PB3. Par exemple, nous avons une entrée de 8-bit 0 x 91, qui est 10010001 en binaire.
Nous commençons avec l’envoi de 0 x 01 pour le registre à décalage (0b00000001) et voir si le premier bit est 1. Si nous avons un match (PB3 est élevé), nous effectuons des opération d’OR de l’entrée au résultat. Ensuite, nous déplacer les données de test 1 bit vers la gauche, alors nous obtenons 0 x 02 (0b00000010) et répétez la procédure pour acquérir le deuxième bit, ce qui ne donne aucune correspondance et se traduit par 0 logique... et ainsi de suite jusqu'à ce que nous testons tous les 8 bits.
Registre à décalage | PB3 | Résultat |
---|---|---|
00000001 | 1 | 00000001 |
00000010 | 0 | 00000001 |
00000100 | 0 | 00000001 |
00001000 | 0 | 00000001 |
00010000 | 1 | 00010001 |
00100000 | 0 | 00010001 |
01000000 | 0 | 00010001 |
10000000 | 1 | 10010001 |
Cette technique permet de lire assez grande variété d’entrées au détriment de la vitesse d’acquisition seulement. Il ne nécessite pas des broches supplémentaires, donc c’est une solution parfaite pour des applications de basse vitesse, comme les claviers, les tableaux ou même basse vitesse capteurs numériques. Le nombre de quilles utilisées peut être encore réduit si nous alternons les broches de données série du microcontrôleur entre sorties numériques et une entrée numérique (au lieu de PB3).
Pour notre prochain exemple nous allons utiliser le circuit presque identique, mais au lieu des transistors et des entrées numériques, nous allons utiliser les commutateurs tactiles simples.