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