Vous êtes sur la page 1sur 6

Interface MAX7219 avec affichage 7 segments à 8

chiffres et PIC16F877A
Dans ce document, vous apprendrez à interfacer le circuit intégré de
contrôleur à 7 segments à 8 chiffres MAX7219 avec le microcontrôleur PIC. Le
MAX7219 dispose d'un circuit intégré pour contrôler 8 affichages à sept
segments. Premièrement, il communique avec les microcontrôleurs via la
communication SPI. Par conséquent, seules trois broches sont nécessaires pour
contrôler 8 afficheurs à sept segments. Deuxièmement, nous pouvons
également utiliser le MAX7219 pour contrôler les écrans matriciels.
Le MAX7221 est un circuit intégré de pilote d'affichage équivalent. Mais la
seule différence est que le MAX7221 a une faible vitesse de balayage et est
compatible avec le mode de communication SPI complet.

Présentation du circuit intégré du pilote d'affichage MAX7219


Contrairement au registre à décalage 74HC595, nous n'avons pas besoin de
contrôler chaque chiffre de l'affichage à 7 segments individuellement en
ajoutant un délai. Nous envoyons simplement des données à 7 segments et des
données de contrôle à sept segments. Il dispose d'un décodeur BCD à 7
segments intégré. Plus important encore, il dispose d'une RAM 8 × 8 sur puce
que nous pouvons utiliser pour stocker les codes d'affichage des chiffres que
nous voulons afficher.
L'un des principaux avantages de ce pilote d'affichage est que nous pouvons
mettre à jour des bits individuels sans mettre à jour l'ensemble de l'affichage,
ce qui n'est pas possible avec le registre à décalage 74HC595. Par conséquent,
nous pouvons économiser du temps et de l'énergie d'exécution du
microcontrôleur.

De plus, il dispose d'un circuit de contrôle de luminosité intégré et en utilisant


un registre de limite de balayage, nous pouvons configurer le nombre
d'affichage de chiffres que nous voulons utiliser.

Schéma de brochage
Comme vous pouvez le voir sur ce schéma de brochage, il s'agit d'un circuit
intégré à 24 broches. Huit broches fournissent des données aux segments que
les broches AG. Les broches DIG0 à DIG7 sont utilisées pour se connecter aux
broches communes de 8 affichages à sept segments de type cathode
commune. La configuration des broches est la même pour le MAX7219 et le
MAX7212.

1
Ce tableau montre la fonction de chaque broche. Sur 14 broches, 16 broches
sont utilisées pour connecter des écrans LED à 8 chiffres.

Selon le tableau ci-dessus, le MAX7219/MAX7212 reçoit et transmet des


données via la communication SPI. La broche 1 (DIN) est une broche d'entrée
de données série. Nous connectons le DIN du MAX7219 avec une broche
DOUT de la broche SPI du microcontrôleur PIC16F877A. Transfert de
données série vers un registre interne de 16 bits sur chaque horloge de front
positif sur la broche 13 (Clk). Nous fournissons des signaux d'horloge à partir
de la broche d'horloge de communication SPI du microcontrôleur PIC (SCK).

2
Registres MAX7219/MAX7212
Ce schéma fonctionnel montre les registres de configuration du circuit intégré
de pilote de LED MAX7219. Il a des pilotes pour les segments et les chiffres.

Modes d'adressage série


Pour le MAX7219, les données série sur DIN, envoyées par paquets de 16 bits, sont
décalées dans le registre à décalage interne de 16 bits avec chaque front montant de
CLK, quel que soit l'état de LOAD. Pour le MAX7221, CS doit être bas pour pouvoir
entrer et sortir les données. Les données sont ensuite verrouillées dans le chiffre ou
registres de contrôle sur le front montant de LOAD / CS.

LOAD / CS doit monter haut simultanément ou après le 16e front montant de


l'horloge, mais avant le prochain front montant, les données seront perdues. Les
données au format DIN sont propagées dans le registre à décalage et apparaissent
plus tard à DOUT 16.5 cycles. Les données sont enregistrées sur le front descendant de
CLK. Les bits de données sont étiquetés D0 – D15 (Tableau 1).

D8 – D11 contiennent l'adresse du registre. D0 – D7 contiennent les données et D12 –


D15 sont des bits «ne s’inquiètent pas». Le premier reçu est D15, le bit le plus
<significatif (MSB).

3
Voici les principaux registres utilisés pour configurer et contrôler l'affichage.
Registre d'arrêt (Shutdown Register)
Lors de la mise sous tension initiale, tous les registres de contrôle passent en
mode de réinitialisation. L'écran n'imprimera rien. Il est également utilisé
pour éteindre ou activer l'affichage. L'adresse de ce registre est
0xXC. L'écriture de 0x00 dans ce registre éteindra le CI et si vous souhaitez le
réactiver, écrivez 0x01 via la communication SPI. Par example:
SPI1_write(0x0c); //Selection shutdown-register
SPI1_write(0x00); //selection shutdown mode
SPI1_write(0x01); //selection normal operation

Registre de mode de décodage (Decode-Mode Register)


(0x09)
Il est utilisé pour sélectionner le nombre de chiffres à sept segments que
nous voulons utiliser. Nous pouvons également sélectionner une opération de
code BCD ou une opération sans décodage. Mais si vous souhaitez utiliser des
affichages à 7 segments, vous devez sélectionner le mode de décodage
BCD. Son adresse est 0x09. Nous pouvons sélectionner le format codé BCD
pour les affichages à 1 chiffre, 4 chiffres ou 8 chiffres en définissant les valeurs
de ce registre sur 0x01, 0x0F et 0XFF respectivement.
SPI1_write(0x09); //selection decode-Register
SPI1_write(0x01); //mettre un seul digit en affichage BCD
SPI1_write(0x0F); //mettre les 4 digits de poids faibles en affichage BCD
SPI1_write(0xFF); //metre les 8 digits en affichage BCD

Format du registre d'intensité (Intensity Register Format)


(adresse = 0xXA)
Le circuit intégré du pilote d'affichage MAX7219 fournit également une
fonction de contrôle de la luminosité pour économiser de l'énergie. Vous
pouvez facilement contrôler la luminosité en connectant une résistance
externe entre la broche Iset et la broche Vdd. De plus, vous pouvez également
régler l'intensité en réglant les valeurs de ce registre entre 0 et 15 comme ceci :
SPI1_write(0xXA); // Selection intensity adjustment mode
SPI1_write(0x00); // niveau d'intensité ou de luminosité 0
SPI1_write(0x01); // niveau d'intensité ou de luminosité 1
SPI1_write(0x02); // niveau d'intensité ou de luminosité 2
SPI1_write(0xXF); // niveau d'intensité ou de luminosité 15

4
Registre de limite de balayage (Scan-limit Register) (Adresse
= 0xXB)
Vous pouvez sélectionner le nombre de chiffres affichés (1-8) avec le registre
de limite de balayage. Comme vous le savez, les afficheurs à 7 segments sont
généralement multiplexés pour afficher des nombres. De même, le MAX7219
effectue la numérisation uniquement sur le nombre de segments que vous
souhaitez utiliser. Le taux de balayage de ce pilote d'affichage est de 800 Hz
avec 8 chiffres affichés. Pour sélectionner le nombre de chiffres, envoyez
d'abord l'adresse du limiteur de balayage, puis envoyez le nombre de chiffres
comme ceci :
SPI1_write(0xXB); // addressage de registre scan-limiter
SPI1_write(0x07); // afficher les données sur tous les 8 chiffres

Registre de test d'affichage (Display-Test Register) (adresse =


0xXF)
Il est utilisé pour tester le CI. Par exemple, si vous travaillez avec ce CI et que
vous souhaitez vérifier si quelque chose ne va pas avec votre code ou si
MAX7221 est défectueux. Nous pouvons tester le MAX7219 facilement avec ce
testeur d'affichage. Il peut tester le circuit intégré dans deux modes tels que le
test d'affichage et le fonctionnement normal. Dans une opération de test
d'affichage, il allume toutes les LED

Schéma d'interfaçage MAX7219/MAX7221


À des fins de démonstration, nous utiliserons les 8 sept segments avec le
microcontrôleur PIC16F877A. Ce schéma de circuit montre l'interfaçage du
MAX7219 avec un affichage à sept segments à 8 chiffres à l'aide d'un
microcontrôleur PIC.
Dans cette manipulation, nous avons utilisé les broches de communication SPI
du microcontrôleur PIC16F877A pour envoyer des données et fournir une
horloge au MAX7219. Nous connectons également la broche RC2 à la broche
LOAD du pilote d'affichage. Après le transfert des données, la broche de
chargement load_pin reconnaît que les données ont été chargées et prêtes à
être reflétées sur les broches de sortie. Effectuez les connexions entre le
PIC16F877A et le MAX7219 conformément à ce tableau.

PIC16F877A MAX7219/MAX7221
RC0 Charger
RC3/SCK CLK
RC5/SDO VACARME

5
Comme nous l'avons mentionné précédemment, ce circuit intégré de pilote
d'affichage LED prend en charge un affichage de type cathode commun. Mais
nous pouvons l'utiliser avec des affichages de type à anode commune
également en utilisant un transistor PNP avec des broches de commande
individuelles. L'interfaçage entre le MAX7219 et l'appareil à 8 chiffres et 7
segments est simple et direct.

Vous aimerez peut-être aussi