- EEPROM dans PIC16F877A:
- Schéma de circuit et explication:
- Simulation de l'utilisation de PIC EEPROM:
- Programmation PIC pour EEPROM:
- Travail:
Dans ce tutoriel, nous allons apprendre à quel point il est facile de sauvegarder des données à l'aide de l' EEPROM présente dans le microcontrôleur PIC16F877A. Dans la plupart des projets en temps réel, il se peut que nous devions enregistrer certaines données qui ne doivent pas être effacées même lorsque l'alimentation est coupée. Cela peut sembler un processus compliqué, mais avec l'aide du compilateur XC8, cette tâche peut être effectuée en utilisant simplement une seule ligne de code. Si les données sont volumineuses en méga octets, nous pouvons interfacer un périphérique de stockage comme une carte SD et stocker ces données dessus. Mais nous pouvons éviter ces processus fatigants si les données sont petites, nous pouvons simplement utiliser l'EEPROM présente dans le microcontrôleur PIC pour sauvegarder nos données et les récupérer à tout moment.
Ce tutoriel PIC EEPROM fait partie d'une séquence de tutoriels PIC Microcontroller dans laquelle nous sommes partis d'un niveau très basique. Si vous n'avez pas appris les didacticiels précédents, il serait préférable de les consulter maintenant, car ce didacticiel suppose que vous êtes familiarisé avec l'interfaçage de l'écran LCD avec le microcontrôleur PIC et l'utilisation de l'ADC avec le microcontrôleur PIC.
EEPROM dans PIC16F877A:
EEPROM signifie «mémoire morte électroniquement effaçable et programmable». Comme son nom l'indique, il s'agit d'une mémoire présente à l'intérieur du microcontrôleur PIC dans laquelle nous pouvons écrire / lire des données en les programmant pour le faire. Les données enregistrées dans celui-ci ne seront effacées que s'il est mentionné de le faire dans le programme. La quantité d'espace de stockage disponible dans l'EEPROM varie selon chaque microcontrôleur; les détails seront donnés dans la fiche technique comme d'habitude. Dans notre cas pour PIC16F877A, l'espace disponible est de 256 octets comme mentionné dans sa fiche technique. Voyons maintenant comment nous pouvons utiliser ces 256 octets pour lire / écrire des données en utilisant une configuration expérimentale simple.
Schéma de circuit et explication:
Le schéma de circuit du projet est illustré ci-dessus. Nous avons interfacé un écran LCD pour visualiser les données enregistrées et récupérées. Un potentiomètre normal est connecté au canal analogique AN4 afin d'introduire une tension variable, cette tension variable sera utilisée comme données à enregistrer dans l'EEPROM. Nous avons également utilisé un bouton poussoir sur RB0, lorsque ce bouton est enfoncé, les données du canal analogique seront sauvegardées dans l'EEPROM.
Cette connexion peut être établie sur une maquette. Le brochage du microcontrôleur PIC est indiqué dans le tableau ci-dessous.
S.Non: |
Code PIN |
Nom de la broche |
Connecté à |
1 |
21 |
RD2 |
RS de l'écran LCD |
2 |
22 |
RD3 |
E de l'écran LCD |
3 |
27 |
RD4 |
D4 de l'écran LCD |
4 |
28 |
RD5 |
D5 de l'écran LCD |
5 |
29 |
RD6 |
D6 de l'écran LCD |
6 |
30 |
RD7 |
D7 de l'écran LCD |
sept |
33 |
RBO / INT |
Bouton poussoir |
8 |
sept |
AN4 |
Potentiomètre |
Simulation de l'utilisation de PIC EEPROM:
Ce projet implique également une simulation conçue à l'aide de Proteus, à l'aide de laquelle nous pouvons simuler le fonctionnement du projet sans aucun matériel. Le programme de cette simulation est donné à la fin de ce tutoriel. Vous pouvez simplement utiliser le fichier Hex à partir d'ici et simuler l'ensemble du processus.
Pendant la simulation, vous pouvez visualiser la valeur actuelle de l'ADC et les données enregistrées dans l'EEPROM sur l'écran LCD. Pour enregistrer la valeur ADC actuelle dans l'EEPROM, appuyez simplement sur le commutateur connecté à RB0 et elle sera enregistrée. Un instantané de la simulation est présenté ci-dessous.
Programmation PIC pour EEPROM:
Le code complet de ce tutoriel est donné à la fin de ce tutoriel. Dans notre programme, nous devons lire les valeurs du module ADC et lorsqu'un bouton est enfoncé, nous devons enregistrer cette valeur dans notre EEPROM. Puisque nous avons déjà appris les ADC et l'interfaçage LCD, j'expliquerai plus en détail le code pour enregistrer et récupérer les données de l'EEPROM.
Selon la fiche technique «Ces appareils ont 4 ou 8K mots de programme Flash, avec une plage d'adresses de 0000h à 1FFFh pour le PIC16F877A». Cela signifie que chaque espace de stockage EEPROM a une adresse à travers laquelle il est accessible et que dans notre MCU, l'adresse commence de 0000h à 1FFFh.
Pour enregistrer des données dans une adresse EEPROM particulière, utilisez simplement la ligne ci-dessous.
eeprom_write (0, adc);
Ici «adc» est une variable de type entier dans laquelle les données à sauvegarder sont présentes. Et «0» est l'adresse de l'EEPROM sur laquelle nos données sont enregistrées. La syntaxe «eeprom_write» est fournie par notre compilateur XC8, donc les registres seront automatiquement pris en charge par le compilateur.
Pour récupérer une donnée qui est déjà stockée dans l'EEPROM et l'enregistrer dans une variable, la ligne de code suivante peut être utilisée.
Sadc = (entier) eeprom_read (0);
Ici, «Sadc» est la variable dans laquelle les données de l'EEPROM seront sauvegardées. Et «0» est l'adresse de l'EEPROM à partir de laquelle nous récupérons les données. La syntaxe «eeprom_read» est fournie par notre compilateur XC8 donc les registres seront automatiquement pris en charge par le compilateur. Les données enregistrées dans l'EEPROM seront de type hexadécimal. Par conséquent, nous les convertissons en type entier en préfixant un (int) avant la syntaxe.
Travail:
Une fois que nous comprenons comment le code fonctionne et que nous nous préparons avec le matériel, nous pouvons tester le code. Téléchargez le code sur votre microcontrôleur PIC et mettez la configuration sous tension. Si tout fonctionne comme prévu, vous devriez voir les valeurs ADC actuelles affichées sur l'écran LCD. Vous pouvez maintenant appuyer sur le bouton pour enregistrer la valeur ADC dans l'EEPROM. Vous vérifiez maintenant si la valeur est enregistrée en éteignant l'ensemble du système et en le rallumant. Lors de la mise sous tension, vous devriez voir la valeur précédemment enregistrée sur l'écran LCD.
Le fonctionnement complet de ce projet d'utilisation de l' EEPROM du microcontrôleur PIC est montré dans la vidéo ci-dessous. J'espère que vous avez compris le didacticiel et que vous l'avez apprécié. Si vous avez des doutes, vous pouvez les écrire dans la section commentaires ci-dessous ou les publier sur nos forums.