Télécharger le fichier pdf d’un mémoire de fin d’études
Présentation de la réalisation
But
L’objectif de cette réalisation est de comprendre le fonctionnement d’un système programmable basé par un microcontrôleur pour la commande d’ouverture et fermeture du portail principal et de la porte du garage d’une propriété privée.
Description générale
L’étude de la réalisation est basée sur la commanded’un système électronique programmé par un microcontrôleur. Dans cette application, nous allons utiliser : un émetteur /récepteur infrarougeIR, un détecteur de lumière LDR, deux bouton-poussoirs, un interrupteur et deux moteurs pour gérer l’ouverture et la fermeture de deux portes.
Fonctionnement global
Le fonctionnement de l’automatisme du système est le suivant :
L’ouverture du portail principal se fait de deux manières :
– la commande à distance
– l’appui du bouton poussoir BP2 qui est à l’intérieur de la maison.
Tandis que la coupure du rayon lumineux au niveau du LDR devant le garage ou l’appui du bouton-poussoir BP1 à l’intérieur du garage permet l’ouverture de sa porte.
Pour sécuriser le garage, l’interrupteur de sécurit K1 doit être activé afin que la porte ne s’ouvre pas même s’il y a une des deux actions ci-dessus. Les deux portes se ferment automatiquement par une temporisation.
La figure ci-dessous représente la synoptique générale du système.
Module d’Entrée :
– LDR
– Récepteur Infrarouge
– Bouton-poussoirs
Partie Commande
Partie Opérative
Actionneur :
– Moteur M1
– Moteur M2
Partie théorique
Module d’entrée
Module de détecteur de lumière
LDR (Light Dépendant Resistor )
Principe du LDR
Un cristal de semi-conducteur à température basse contient peu d’électrons libres. La conductivité du cristal est très faible,proche de celle d’un isolant. Lorsque la température du cristal augmente de plus en plus d’électrons qui étaient immobilisés dans les liaisons covalentes s’échappent et peuvent participer à la conduction.
A température constante si le même cristal semi-conducteur est soumis à une radiation lumineuse, l’énergie apportée par lesphotons peut suffire à libérer certains électrons utilisés dans les liaisons covalentes entre atomes du cristal.
Plus le flux lumineux sera intense, plus le nombre d’électrons disponibles pour assurer la conduction sera grand, ainsi la résistance de la LDR est inversement proportionnelle à la lumière reçue.
La sensibilité dépend de la fréquence de la radiation lumineuse : par exemple, le sulfure de cadmium a un maximum de sensibilité dansle spectre de la lumière visible aux environs de 650nm, dans le rouge du spectre lumineux.
DIFFERENTS TYPES DE CIRCUITS DE MEMOIRES
Les différents types de circuit mémoire se sont multipliés. Ci-dessous le résumé de ces différents types :
RAM : ce terme provient de « Random Acces Memory » qui désigne les mémoires centrales classiques pouvant être écritest lues à volonté. Leur adressage est rigoureux et directe. On les appelle encore des mémoires vives.
SDRAM ou RAM statique : il s’agit d’une technologie de RAM faisant appel à une cellule mémoire complexe (une bascule) capable de conserver son information quand elle est alimentée.
DRAM ou RAM dynamique : c’est encore une RAM mais pour que l’information soit conservée, il faut la rafraîchir. Son intérêt c’est que la densité de point de mémoire est élevée, mais ce type de mémoire est plus lent que SDRAM mais moins chère.
VRAM ou RAM vidéo: il s’agit toujours de RAM mais spécialisé pour al gestion d’images et comportant de la logique supplémentaire.
RAM CMOS : il s’agit de petit RAM en technologie CMOS de très faible consommation aux bornes desquelles on a connecté une pile de sauvegarde qui les alimente en courant lorsque l’ordinateur est mis hors tension. Les RAM CMOS conservent la configuration, la date,….
ROM: Ce terme provient de « Read Only Memory ». Soit mémoire a lecture seule. En effet, on ne peut que lire ces mémoires dont le contenu indésirable a été enregistré une fois pour toute par leur fabricant en créant ou non certaine connexion Internet.
PROM : le terme provient « Programmable Read Only Memory » du programmable ROM. Ce type de mémoire morte est programmé par l’utilisateur ou le fabriquant qui y stockera le Bios d’un ordinateur. La programmation s’effectue en grillant d’un fusible interne. Une fois programmer le PROM se comporte comme un ROM et ne peut plus voir son programme modifié.
EPROM ou EEPROM : le terme EPROM provient de « Electricaly PROM » ou « Electrical Erasable Programmable Read Only Memory ». Cette fois la programmation s’effectue électriquement et non plus en détruisant des fusibles.
En plus, la programmation peut être effacée à l’ultraviolet et on peut reprogrammer le circuit. Mémoire FLASH: il s’agit d’une ROM programmable et effaçable électriquement et cela très rapidement. Ce type demémoire s’inscrit entre les ROM reprogrammables et le RAM. Il est moins rapide que les RAM mais les données ne sont pas volatiles.
La théorie du PIC
Un PIC n’est rien d’autre qu’un microcontrôleur, c’ est à dire une unité de traitement d’information de type microprocesseur à laquelle on a ajouté des périphériques internes permettant de réaliser des ontagesm sans nécessiter l’ajout de composants externes. Rappelons qu’un mic roprocesseur est un circuit électronique qui intègre toutes les fonctions commecelui de l’unité central d’un ordinateur.
Les PICs sont des composants STATIQUES, c’est à dir e que la fréquence d’horloge peut être abaissée jusqu’à l’arrêt complet sans perte de données et sans dysfonctionnement.
Famille PIC
La famille des PICs est subdivisée en 3 grandes familles :
· La famille Base-Line, qui utilise des mots d’instructions de 12 bits
· La famille Mid-Range, qui utilise des mots de 14 bits (et dont font partie la 16F84 et 16F876)
· La famille High-End, qui utilise des mots de 16 bits
Identification des PICs
Pour identifier un PIC, on utilise simplement son numéro.
Les 2 premiers chiffres indiquent la catégorie du PIC, 16 indique un PIC Mid-Range.
Vient ensuite parfois une lettre L : Celle-ci indique que la PIC peut fonctionner avec une plage de tension beaucoup plus tolérante. On trouve aussi :
– C indique que la mémoire programme est une EPROM ou plus rarement une EEPROM
– CR pour indiquer une mémoire de type ROM
– F pour indiquer une mémoire de type FLASH.
Seule une mémoire FLASH ou EEPROM est susceptible d’être effacée, donc la reprogrammation des PICs de type CR n’est pas possible Puis les derniers chiffres identifient précisémentle PIC.
Enfin sur les boîtiers « -XX » dans laquelle XX représente la fréquence d’horloge maximale que la PIC peut recevoir. Par exemple –04 pour une 4MHz. Donc, une 16F84-04 est une PIC Mid-Range (16) donc la mémoire programme est de type FLASH (F) donc réinscriptible de type 84 et capable d’accepter une fréquence d’horloge de 4MHz.
Choix du PIC
Le choix d’un PIC est directement lié bien sur à l’application envisagée :
1 – Il faut dans un premier temps déterminer le nombre d’entrées – sorties nécessaires pour l’application. Ce nombre d’entrées- sorties nous donne une première famille de PIC.
2 – Il faut ensuite déterminer si l’application nécessite un convertisseur analogique – numérique ce qui va centrer un peu plus vers le choix d’une famille de PIC
3 – La rapidité d’exécution est un élément important, il faut consulter les DATA- BOOK pour vérifier la compatibilité entre lavitesse maximale du PIC choisi et la vitesse maximale nécessaire au montage.
4 – La taille de la RAM interne et la présence ou non d’une E²PROM pour mémoriser des données est également important pourl’application souhaitée.
5 – La longueur du programme de l’application détermine la taille de la mémoire programme du PIC recherché.
Dans tous les cas il est indispensable de disposer soit d’un DATA-BOOK ou bien d’un tableau comparatif pour choisir le PIC le plus adapté à l’application envisagée.
Organisation du PIC 16F84
En règle générale un PIC de base est constitué : 1 – d’une mémoire de programme laquelle contient le code binaire des instructions que doit exécuter le microcontrôleur. La capacité de cette mémoire est variable selon les PIC.
2 – d’une mémoire RAM pour sauvegarder temporairement des données. La capacité de cette RAM est variable selon les PIC.
3 – d’une Unité Arithmétique et Logique (ALU), chargée d’effectuer toutes les opérations arithmétique de base (addition, soustraction etc…) ainsi que les opérations logiques de base (ET, OU logique etc..).
4 – de ports d’entrées – sorties pour pouvoir dialoguer avec l’extérieur du microcontrôleur.
5 – d’un registre compteur de programme (CP) qui pointe l’adresse mémoire contenant l’instruction courante à réaliser par le microcontrôleur.
6 – d’un registre pointeur de pile (PP) qui est essentiellement utilisé lorsque l’on réalise des sous programmes à l’intérieur d’un programme. Le pointeur de pile est chargé de mémoriser l’adresse courante avant lesaut aux sous programmes.
7 – d’un registre d’instruction qui contient tous l es codes binaires correspondant aux instructions à réaliser par le microcontrôleur.
8 – d’un registre d’état qui est en relation avec l’UAL et qui permet de tester le résultat de la dernière opération effectuée par lemicrocontrôleur. Selon la dernière opération effectuée des bits seront positionnés dans le registre d’état ceux-ci pourront être testés pour effectuer des sauts conditionnels.
9 – d’une horloge système qui permettra de cadencer tous les échanges internes ou externes au microcontrôleur
Certains microcontrôleurs possèdent des convertisseurs analogiques – numériques et numériques – analogiques, ainsi que ed la mémoire E²PROM, également des TIMERS (etc…). Il est nécessaire deconsulter un DATA-BOOK avant la réalisation d’un projet, ceci pour optimiser et faciliter l’application.
LES MEMOIRES DU PIC 16F84
La mémoire du PIC 16F84 est divisée en 3parties :
· La mémoire programme
La mémoire programme est constituée de 1K mots de 41 bits. C’est dans cette zone que vous allez écrire votre programme.
· La mémoire EEPROM
La mémoire eeprom (Electrical Erasable Programmable Read Only Memory), est constituée de 64 octets que nous pouvons lire et écrire depuis notre programme. Ces octets sont conservés après une coupure de courant et sont très utiles pour conserver des paramètres semipermanents.
· La mémoire RAM
La mémoire RAM est celle que nous allons sans cesseutiliser. Toutes les données qui y sont stockées sont perdues lors d’unecoupure de courant. La mémoire RAM est organisée en 2 banques pour la 16F84. La RAM est subdivisée de plus en deux parties. Dans chacune des banques nous allons trouver des « cases mémoires spéciales » appelées EGISTRES SPECIAUX et des cases mémoires « libres » dont nous pouvons nous servir à notre guise.
Pour le cas de la 16F84, on dispose de 68 octets libres. L’organisation de la RAM est montrée dans le tableau suivant :
Les « timer »du PIC16F84
· Le Timer du chien de garde (WDT : Watch Dog)
C’est un compteur incrémenté en permanence (free runing) par une horloge RC indépendante. Ce compteur lorsqu’il arrive à FF (à t = WDT time out), est capable de réinitialiser (RESET MCLR) le microcontrôleur.
En cas de blocage du microcontrôleur, ceci permet d ’éviter des processus indésirables.
Le programme doit donc remettre WDT à 0 périodiquement pour que WDT Time out ne soit jamais atteint en fonctionnement normal. Ce Time Out vaut en principe 18 ms. Cependant, il est réglable au moyen d’un pré diviseur introduit par programme.
Les instructions qui réinitialisent le WDT ne doivent pas se trouver dans un sous-programme d’interruption ou dans un processus aléatoire.
En mode veille ou SLEEP le WDT continue à fonctionn er mais le microcontrôleur sortira du mode SLEEP quand le Ti me Out sera atteint. WDT est validé ou non, lors de la programmation de l’EEPROM de configuration du PIC.
· Le Timer « utilisateurs » TMR0 :
C’est au un compteur 8 bits libres (incrémenté en permanence par l’horloge interne Fosc/4) ou commandé par la broche TMR0/R4 du port A. Dans ce cas le bit RTE du registre OPTION sélectionne le front actif.
Le contenu de TMR0 est accessible dans le fichier des registres (adresse 01). Toute écriture inhibée l’incrémentation pendant deux cycles d’horloges. Lorsque son contenu passe de FF à 0, une interrupti on via le drapeau T0IF peut intervenir.
LE RESET DU PIC
Le reset peut avoir plusieurs causes :
o Mise sous tension
o Etat 0 sur broche MCLR
o Débordement du Timer du chien de garde
Lorsque le RESET intervient le microcontrôleur peut être :
o En fonctionnement normal
o En mode SLEEP
Les 2 bits d’état (registre STATUS) TO et PD peuvent être affectés par le RESET.
Jeux d’instructions
Les instructions « orientées octet »
Ce sont des instructions qui manipulent les données sous forme d’octets.
Elles sont codées de la manière suivante :
8 bits pour l’instruction : logique, car comme il y a 35 instructions, il faut 6 bits pour pouvoir les coder toutes
1 bit (d) pour indiquer si le résultat obtenu doit être conservé dans le registre de travail de l’unité de calcul (W pour Work) ou sauvédans l’opérande (F pour File).
Reste 7 bits pour encoder l’opérande (File)
Ces 7 bits ne donnent pas accès à la mémoire RAM totale, donc voici ici l’explication de la division de la RAM en deux banques.
En effet, il faudra bien trouver une solution pour remplacer le bit manquant. On utilise un bit d’un des registres. Il s’agit en réalité du bit RP0 du registre STATUS.
Or, il y a encore un RP1; dont la 16F876 possède 4 banques. Alors on a laissé RP1 à 0 pour la 16F84, afin de pouvoir « porter » l e programme sans problème vers une PIC supérieure.
Les instructions « orientées bits »
Ce sont des instructions destinées à manipuler directement des bits d’un registre particulier. Elles sont codées de la manière suivante :
4 bits pour l’instruction (dans l’espace resté libre par les instructions précédentes)
3 bits pour indiquer le numéro du bit à manipuler (bit 0 à 7 possible), et de nouveau 7 bits pour indiquer l’opérande.
Instructions générales
Ce sont les instructions qui manipulent des données qui sont codées directement dans l’instruction. Elles sont codées de la manière suivante :
L’instruction est codée sur 6 bits
Elle est suivie d’une valeur IMMEDIATE codée sur 8 bits (donc de 0 à 255). III.1.d Les sauts et appels de sous routines
Ce sont les instructions qui provoquent une rupture dans la séquence de déroulement du programme. Elles sont codées de la manière suivante : Les instructions sont codées sur 3 bits
La destination codée sur 11 bits
D’où, on en déduire que les sauts ne donnent accès qu’à 2K de mémoire programme (211).
Voir annexe : Panoramiques des instructions
Les modes d’adressage
Les instructions utilisent une manière particulière d’accéder aux informations qu’elles manipulent. Ces méthodes sont appelées « modes d’adressage ».
Ici nous allons prendre exemple concret de ce qu’est chaque mode d’adressage :
Supposons qu’on veut mettre de l’argent dans la poc he :
L’adressage littéral ou immédia t
Avec l’ADRESSAGE IMMEDIAT ou ADRESSAGE LITTERAL, on peut dire : « je mets 100Ariary en poche ».
La valeur fait immediatement partie de la phrase. Pas besoin d’un autre
renseignement.
Exemple
L’adressage direct
Avec l’ADRESSAGE DIRECT, on peut dire : « je vais mettre le contenu du coffre numéro 10 dans ma poche ».
Ici, l’emplacement contenant la valeur utile est donné directement dans la phrase. Mais il faut d’abord aller ouvrir le coffre pour savoir ce que l’on va effectivement mettre en poche. On ne met donc pas en poche le numéro 10, mais ce qu’il contient.
Exemple
Movf 0x10, W; charger le contenu de l’emplacement 0x10 dans W
L’adressage indirect
Avec l’ADRESSAGE INDIRECT, vous pouvez dire :
« Le préposé du guichet numéro 3 va me donner le numéro du coffre qui contient la somme que je vais mettre en poche ».
Ici, nous obtenons le numéro du coffre indirectement par le préposé au guichet. Nous devons donc allez demander à ce préposé qu’il nous donne le numéro du coffre que vous irez ouvrir pour prendre l’argent. On ne met donc en poche, ni le numéro du préposé, ni le numéro du coffre que celui- va nous donner. Il y a donc deux opérations préalables avant de connaître la somme que vous empocherez.
Cet adressage fait appel à deux registres, dont un est particulier, car il n’existe pas vraiment.
Les registres FSR et INDF
INDF signifie INDirect File. On voit maintenant que c’est le registre de l’adresse 0x00. Ce registre n’existe pas vraiment, ce n’est qu’un procédé d’accès particulier à FSR utilisé par la PIC pour des raisons de facilité de construction électronique interne.
Le registre FSR est à l’adresse 0x04 dans les 2 ba nques. Il n’est donc pas nécessaire de changer de banque pour y accéder, quelle que soit la banque en cours d’utilisation.
Dans l’exemple schématique précédent, le préposé gauichet, c’est le registre FSR. L’adressage indirect est un peu particulier sur les PICS, puisque c’est toujours à la même adresse que se trouvera l’adresse de destination.
Premièrement, nous devons écrire l’adresse pointéedans le registre FSR.
Ensuite, nous accédons à cette adresse pointée parle registre INDF.
On peut donc dire qu’INDF est en fait le registre FSR utilisé pour accéder à la case mémoire. Donc, quand on veut modifier la case mémoire pointée, on modifie FSR, quand on veut connaître l’adresse de l a case pointée, on accède également à FSR. Si on veut accéder au CONTENU de al case pointée, on accède via INDF.
ATTENTION : Le contenu du registre FSR pointe sur une adresse en 8 bits. Or, sur certaines PICs, la zone RAM contient 4 banques (16F876). L’adresse complète est donc une adresse sur 9 bits. L’adresse complète est obtenue, en adressage DIRECT, par l’ajout du bit 7 et 8 sous forme de RP0¨et RP1 (RP1 est inutilisé pour la 16F84 car seulement 2 banques) etpar l’ajout du bit IRP dans le cas de l’adressage INDIRECT (inutilisé sur la 16F84). Veillez donc à toujours laisser IRP (dans le registre STATUS) et RP1 à 0 po urs assurer la portabilité de votre programme.
|
Table des matières
INTRODUCTION
CHAPITRE I : LES CAPTEURS
I.1 Généralités
I.1.a Capteurs de température
I.1.b Capteurs de position
I.1.c Capteurs de vitesse
I.1.d Capteurs de proximité
I.2 Capteurs électroniques
I.2.a Définitions et classification
I.2.b Performances d’un capteur : définition métrologique
I.2.c Conditionneur associé
I.2.d Détecteur de choc 801S
I.2.e Détecteur d’approche
CHAPITREII : CAPTEUR AVEC PIC 16F84
II.1 Présentation de la réalisation
II.1.a But
II.1.b Description générale
II.1.c Fonctionnement global
II.2. Partie théorique
II.2.a Module d’entrée
II.2.b Partie commande
II.3. Le PIC 16F84
II.3.a Brochage du PIC 16F84
II.3.b Architecture interne du PIC 16F84
II.3.c. Organisation du PIC 16F84
II.3.d L’horloge du PIC
CHAPITREIII : PROGRAMMATION DU PIC ET REALISATION
III.1.Jeux d’instructions
III.1.a Les instructions « orientées octet »
III.1.b Les instructions « orientées bits »
III.1.c Instructions générales
III.1.d Les sauts et appels de sous routines
III.2. Les modes d’adressage
III.2. Les modes d’adressage
III.2.b. L’adressage direct
III.2.c L’adressage indirect
III.2.d Les registres FSR et INDF
III.3. Outils de développement pour le PIC 16F84
III.4. Réalisation du circuit
III.4.a Schéma synoptique
III.4.b Schéma de principe
III.4.c Alimentation
III.4.d Partie récepteur LDR
III.4.e Partie émetteur infrarouge
III.4.f Partie récepteur infrarouge
III.4.g Partie commande
III.4.h Algorithme
CONCLUSION
ANNEXES
BIBLIOGRAPHIE
Télécharger le rapport complet