L'affichage est une partie très importante de toute application système intégrée car il aide les utilisateurs à connaître l'état du système et montre également la sortie ou tout message d'avertissement généré par le système. Il existe de nombreux types d'écrans utilisés dans l'électronique comme l'affichage à 7 segments, l'écran LCD, l'écran tactile TFT, l'écran LED, etc.
Nous avons déjà interfacé un écran LCD 16x2 avec ARM7-LPC2148 dans notre tutoriel précédent. Aujourd'hui, dans ce tutoriel, nous allons interfacer un affichage à 7 segments avec ARM7-LPC2148. Avant d'entrer dans les détails, nous allons voir comment contrôler le module 7 segments pour afficher n'importe quel nombre de caractères.
Affichage à 7 segments
Les affichages à 7 segments sont parmi les unités d'affichage les plus simples pour afficher les chiffres et les caractères. Il est généralement utilisé pour afficher des nombres et a un éclairage plus brillant et une construction plus simple que l'affichage matriciel. Et grâce à un éclairage plus lumineux, la sortie peut être visualisée à une plus grande distance que l'écran LCD. Comme le montre l'image ci-dessus d'un affichage à 7 segments, il se compose de 8 LED, chaque LED utilisée pour éclairer un segment de l'unité et la 8ème LED utilisée pour éclairer le DOT dans l'affichage à 7 segments. 8thLED est utilisé lorsque deux ou plusieurs modules à 7 segments sont utilisés, par exemple pour afficher (0,1). Un seul module est utilisé pour afficher un seul chiffre ou caractère. Pour afficher plus d'un chiffre ou caractère, plusieurs 7 segments sont utilisés.
Broches de l'affichage à 7 segments
Il y a 10 broches, dans lesquelles 8 broches sont utilisées pour désigner a, b, c, d, e, f, g et h / dp, les deux broches du milieu sont une anode / cathode commune à toutes les LED. Ces anodes / cathodes communes sont court-circuitées en interne, nous devons donc connecter une seule broche COM
En fonction de la connexion, nous classons 7 segments en deux types:
Cathode commune
En cela, toutes les bornes négatives (cathode) de toutes les 8 LED sont connectées ensemble (voir schéma ci-dessous), nommées COM. Et toutes les bornes positives sont laissées seules ou connectées aux broches du microcontrôleur. Si nous utilisons un microcontrôleur, nous définissons la logique HIGH pour éclairer le particulier et définissons LOW pour éteindre la LED.
Anode commune
En cela, toutes les bornes positives (anodes) de toutes les 8 LED sont connectées ensemble, nommées COM. Et tous les thermiques négatifs sont laissés seuls ou connectés aux broches du microcontrôleur. Si nous utilisons un microcontrôleur, nous définissons la logique LOW pour éclairer la logique particulière et la logique High pour éteindre la LED.
Ainsi, en fonction de la valeur de la broche, un segment particulier ou une ligne de 7 segments peut être activé ou désactivé pour afficher le numéro ou l'alphabet souhaité. Par exemple, pour afficher 0 chiffre, nous devons définir les broches ABCDEF sur HIGH et seulement G sur LOW. Comme les LED ABCDEF sont allumées et que G est éteint, cela forme le chiffre 0 dans le module à 7 segments. (Ceci est pour la cathode commune, pour l'anode commune, elle est opposée).
Le tableau ci-dessous montre les valeurs HEX et le chiffre correspondant selon les broches LPC2148 pour la configuration de cathode commune.
Chiffre |
Valeurs HEX pour LPC2148 |
UNE |
B |
C |
ré |
E |
F |
g |
0 |
0xF3 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0x12 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
2 |
0x163 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
3 |
0x133 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
4 |
0x192 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
5 |
0x1B1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
6 |
0x1F1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
sept |
0x13 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
8 |
0x1F3 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
9 |
0x1B3 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
IMPORTANT: Dans le tableau ci-dessus, j'ai donné les valeurs HEX en fonction des broches que j'ai utilisées dans LPC2148, vérifiez le schéma de circuit ci-dessous. Vous pouvez utiliser les broches de votre choix, mais modifier les valeurs hexadécimales en fonction de cela.
Pour en savoir plus sur l'affichage à 7 segments, passez par le lien. Vérifiez également les interfaces d'affichage à 7 segments avec d'autres microcontrôleurs:
- Interfaçage d'affichage à 7 segments avec Raspberry Pi
- Interfaçage de l'affichage à 7 segments avec le microcontrôleur PIC
- Interface d'affichage à 7 segments avec Arduino
- Interface d'affichage à 7 segments avec le microcontrôleur 8051
- Compteur 0-99 utilisant le microcontrôleur AVR
Matériaux nécessaires
Matériel
- ARM7-LPC2148
- Module d'affichage à sept segments (un seul chiffre)
- Planche à pain
- Connexion des fils
Logiciel
- Keil uVision5
- Flash magique
Schéma
Pour interfacer 7 segments avec LPC2148, aucun composant externe n'est nécessaire comme indiqué dans le schéma de circuit ci-dessous:
Le tableau ci-dessous montre les connexions de circuit entre le module 7 segments et le LPC2148
Broches du module à sept segments |
LPC2148 broches |
UNE |
P0.0 |
B |
P0.1 |
C |
P0.4 |
ré |
P0.5 |
E |
P0.6 |
F |
P0.7 |
g |
P0.8 |
Commun |
GND |
Programmation ARM7 LPC2148
Nous avons appris à programmer ARM7-LPC2148 à l'aide de Keil dans notre précédent tutoriel. Nous utilisons le même Keil uVision 5 ici pour écrire le code et créer un fichier hexadécimal, puis télécharger le fichier hexadécimal vers LPC2148 à l'aide de l'outil magique flash. Nous utilisons un câble USB pour alimenter et télécharger le code sur LPC2148
Le code complet avec une explication vidéo est donné à la fin de ce tutoriel. Nous expliquons ici quelques parties importantes du code.
Nous devons d'abord inclure le fichier d'en-tête du microcontrôleur de la série LPC214x
#comprendre
Ensuite, définissez les broches comme sortie
IO0DIR = IO0DIR-0xffffffff
Cela définit les broches P0.0 à P0.31 comme sortie mais nous utiliserons uniquement les broches (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7 et P0.8).
Ensuite, réglez certaines broches sur LOGIC HIGH ou LOW en fonction du chiffre numérique à afficher. Ici, nous afficherons les valeurs de (0 à 9). Nous utiliserons un tableau composé de valeurs HEX pour les valeurs 0 à 9.
unsigned int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Les valeurs seront affichées en permanence que le code a été mis en en boucle
while (1) { pour (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // définit le délai HIGH des broches correspondantes (9000); // Appelle la fonction de retard IO0CLR = IO0CLR-a; // Définit les broches correspondantes LOW } }
Ici, IOSET et IOCLR sont utilisés pour définir respectivement les broches HIGH et LOW. Comme nous avons utilisé des broches PORT0, nous avons IO0SET et IO0CLR .
La boucle For est utilisée pour incrémenter le i à chaque itération et à chaque fois que i augmente, 7 segment incrémente également le chiffre qui y est affiché.
la fonction de retard est utilisée pour générer le temps de retard entre SET et CLR
void delay (int k) // Fonction de création de delay { int i, j; pour (i = 0; i
Le code complet et la description de la vidéo de travail sont donnés ci-dessous. Vérifiez également tous les projets liés à l'affichage à 7 segments ici.