Les affichages à sept segments sont des unités d'affichage importantes en électronique et largement utilisés pour afficher des nombres de 0 à 9. Il peut également afficher certains alphabets de caractères tels que A, B, C, H, F, E, etc. Dans ce tutoriel, nous allons apprendre comment interfacer un affichage 7 segments avec le microcontrôleur 8051. Nous utilisons le microcontrôleur AT89S52 de la série 8051.
Avant l'interfaçage, nous devrions en apprendre davantage sur l'affichage à 7 segments. C'est l'unité la plus simple pour afficher des nombres et des caractères. Il se compose simplement de 8 LED, chaque LED utilisée pour éclairer un segment de l'unité et la 8 e LED utilisée pour éclairer le DOT dans l'affichage à 7 segments. Nous pouvons faire référence à chaque segment comme une LIGNE, comme nous pouvons le voir, il y a 7 lignes dans l'unité, qui sont utilisées pour afficher un nombre / caractère. Nous pouvons référencer chaque ligne / segment "a, b, c, d, e, f, g" et pour le caractère point nous utiliserons "h". 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.
Il existe deux types d'affichages à 7 segments: Anode commune et Cathode commune:
Anode 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.
Cathode 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.
Schéma de circuit et extension de travail
Ici, nous utilisons un type d'anode commun à 7 segments car nous devons connecter les LED à l'envers. Comme nous savons que le microcontrôleur ne fournit pas assez de puissance pour allumer la LED, nous devons donc connecter la cathode de la LED à la broche du microcontrôleur et l'anode de la LED à l'alimentation. Vous pouvez comprendre ce concept de logique négative dans cet article «Interfaçage des LED avec le microcontrôleur 8051». Vous devriez également lire cet article pour comprendre la connexion de base du microcontrôleur comme le cristal et les circuits de réinitialisation.
Comme indiqué ci-dessus, le schéma de circuit pour l' interfaçage de l'affichage à 7 segments avec le microcontrôleur 8051, nous avons connecté a, b, c, d, e, f, g, h aux broches 2.0 à 2.7 signifie que nous connectons 7 segments au port 2 du microcontrôleur. Supposons maintenant que nous voulions afficher 0, alors nous devons allumer toutes les LED sauf la LED qui appartient à la ligne «g» (voir schéma ci-dessus), donc les broches 2.0 à 2.6 devraient être à 0 (devraient être 0 pour ALLUMER la LED comme par logique négative) et les broches 2.7 et 2.8 doivent être à 1 (doit être 1 pour ÉTEINDRE la LED selon la logique négative). Ainsi, les LED connectées aux broches 2.0 à 2.6 (a, b, c, d, e, f) seront allumées et les LED connectées à 2.7 et 2.8 (g et h) seront éteintes, ce qui créera un «0» en 7 segment. Nous avons donc besoin du modèle de bits 11000000 (la broche 8 est le bit le plus élevé, donc à partir de P2.7 à P2.0), et le code HEX pour le binaire 11000000 est «C0». De même, nous pouvons calculer pour tous les chiffres. Ici, nous devons noter que nous gardons «point / h» toujours OFF,nous devons donc lui attribuer la LOGIQUE «1» à chaque fois. Un tableau a été donné ci-dessous pour tous les nombres lors de l'utilisation du segment Common Anode 7.
Chiffre à afficher |
hgfedcba |
Code hexadécimal |
0 |
11000000 |
C0 |
1 |
11111001 |
F9 |
2 |
10100100 |
A4 |
3 |
10110000 |
B0 |
4 |
10011001 |
99 |
5 |
10010010 |
92 |
6 |
10000010 |
82 |
sept |
11111000 |
F8 |
8 |
10000000 |
80 |
9 |
10010000 |
90 |
Explication du code
Nous avons créé la fonction ms_delay pour fournir le délai en millisecondes, ce délai est généralement fourni dans n'importe quel programme de microcontrôleur afin que le microcontrôleur puisse terminer son fonctionnement interne.
Ensuite, nous avons créé un tableau des codes hexadécimaux pour 0 à 9 (voir le tableau ci-dessus), et enfin nous avons envoyé les codes hexadécimaux au port 2, qui est connecté au segment d'anode 7 commun. Ainsi, les chiffres sont affichés sur l'affichage à 7 segments.
Maintenant, nous n'avons que 4 ports dans le microcontrôleur et que faire si nous voulons afficher les données dans plus de quatre 7 segments ?? Pour résoudre ce problème, la technique de multiplexage entre en scène. Nous devons multiplexer plusieurs unités à 7 segments. Lisez également l'interface d'affichage à 7 segments avec le microcontrôleur AVR.