DEPARTEMENT DE PHYSI QUE PARCOURS : ELECTRONIQUE ET INFORMATIQUE INDUSTRIELE
Prsent par : Encadr par : *Ben dlala Aly *M. ELHAKIKI Mohamed *Mohamed ouzouiz *Ait malouk lahcen *Darija soufian
Conception et ralisation dune serrure code sur quatre chiffres Page 2
REMERCI EMENT
Il nous est agrable de nous acquitter dune dette de reconnaissance auprs de toutes les personnes, dont lintervention au cours de ce projet, a favoris son aboutissement.
Nous tenons, avant tout, dexprimer nos vifs et profonds remerciements M. MOHMED HAKIKI, notre encadrant pour Ses irremplaables conseils qui nous ont permis de conduire le travail bien. Merci infiniment nos enseignants du dpartement de physique, ainsi quaux membres du jury pour avoir accept de juger notre travail. Enfin, nous remercions tous ceux qui sont particip de prs ou de loin llaboration de ce modeste travail dont nous navons pas cit les noms.
Page 3
INTRODUCTION Dans notre projet on va concevoir et raliser une serrure code sur 4 chiffres base dun microcontrleur 16F84A. En premier lieu, ce modle possdant une mmoire EEPROM effaable lectriquement simpose comme la solution idale pour ceux qui veulent apprendre utiliser un microcontrleur PIC, du fait quil est reprogrammable jusqu' plus de 100 fois (selon les spcifications du fabricant), Le microcontrleur 16F84A reprsente loutil dapprentissage par excellence car ltudiant peut tester tous les programmes avec le mme microcontrleur et revenir sur les serrures, les corriger et rapidement r-tester lapplication. De plus la capacit mmoire de ce modle (ni trop petit ni trop gronde) le prdestine comme le compromis idal non seulement pour lauto-apprentissage, mais aussi pour les premiers applications personnels que chacun aura envie dinventer. Cest pourquoi ce modest travail sadresse tout particulirement qui veut vraiment savoir lun des applications de microcontrleur 16F84A.
CHAPITRE I : INTRODUCTION AUX MICROCONTROLEURS
Page 4
1 .Introduction Le Microcontrleur est un Circuit programmable capable dexcuter un programme et qui possde des circuits dinterface intgrs avec le monde extrieur. Les microcontrleurs sont apparus : Quand on a sut les fabriquer, cest dire quand les technologies dintgrations ont suffisamment progresses Quand dans les applications domestiques ou industrielles ont avait besoin de systmes intelligents ou tout au moins programmables. Les microcontrleurs sont frquemment utiliss dans les systmes embarqus, comme les contrleurs des moteurs automobiles, les tlcommandes, les appareils de bureau, l'lectromnager, la tlphonie mobile, etc. Quand utiliser un microcontrleur ? Toutes les solutions base de composants programmables ont pour but de rduire le nombre de composants sur le circuit lectronique et donc fiabiliser le circuit. Le microcontrleur est en concurrence avec dautres technologies Suivants les applications : Logique cble : trs rapide, fonctions ralises par une voie matrielle non programmable, peu conomique quand lapplication est complexe peu de souplesse dure dtudes prohibitives et circuit difficilement modifiable. Logique programmables : rapide, adapt au traitement de signaux complexes, prix lev et langage de programmation non standard. Les microprocesseurs : fonctions sont ralises par voie logicielle puissance de calcul, langage volu nombre important de composant runir. Les avantages du microcontrleur : Diminution de lencombrement du matriel et du circuit imprim Simplification du trac du circuit imprim Intgration en technologie MOS, CMOS, ou HCMOS moins cher que les composants quil remplace Diminution des cots de main duvre (conception et montage) Augmentation de la fiabilit du systme
Page 5
2 .Architecture Le microcontrleur est un driv du microprocesseur. Sa structure est celle des systmes base de microprocesseurs. Il est donc compos d'une unit centrale de traitement et de commande, de mmoires et de ports d'entres/sorties. En plus de cette configuration minimale, les microcontrleurs sont dots d'un ou plusieurs systmes de comptage (TIMER). Quelques uns sont dots d'un convertisseur analogique/numrique (CAN) intgr. Ces atouts supplmentaires permettent de nombreuses applications telles que : - acquisition et traitement de donnes analogiques (CAN) - comptage d'vnements (TIMER) - mesure de frquence ou de priode (TIMER) - Generation dimpulsions (TIMER)
Un systme minimal programmable pour fonctionner besoin : dune unit centrale de mmoires mortes pour le programme (PROM, EPROM,.) de mmoire vive, pour les calculs, pour stocker les donnes. de circuits interfaces, pour connecter les priphriques qui vont permettre la communication avec lextrieur do lapparition des microcontrleurs. Dans un seul circuit on va trouver : Une Horloge (oscillateur) processeur (Unit centrale) Des interfaces qui vont dpendre du type de microcontrleurs choisi Page 6
o Compteurs/Trimer o Convertisseurs Analogiques/numriques (C.A.N.) o Chine de garde ( Watch Dog ) o Gestion dun port parallle (dentre/sortie) o Gestion des interruptions o Gestion dcran LCD o Etc Il suffit de choisir le microcontrleur le mieux adapt lapplication que lon doit raliser. !
Les diffrents types de mmoires dans les microcontrleurs Le prix du microcontrleur dpend fortement du type du mmoire quil contient. Outre diffrents priphriques possible, les diffrents types de mmoire constituent les diffrentes gammes de microcontrleurs de mme architecture : La mmoire RAM (Radom Acces Memory). C'est une mmoire vive dont le contenu peut varier volont. Le processeur peut y lire ou y crire des informations. En cas de coupure d'alimentation, son contenu est perdu. La mmoire ROM (Read Only Memory). C'est une mmoire morte que l'on peut seulement lire. Elle est programme de faon dfinitive par le fabricant du systme. PROM. (Programmable Read Only memory) La programmation de ce type de mmoires consiste faire claquer des fusibles (qui sont en fait des jonctions semi-conductrices) EPROM (Erasable Programmable Read Only Memory) ou UVPROM Ce sont des mmoires programmables lectriquement et effaable par UV donc rutilisables. Ncessite une petite fentre en quartz pour laisser passer les UV. EEPROM (Electrical Erasable Programmable Read Only Memory) Ce sont des mmoires programmables et effaables lectriquement. FLASH. Procd beaucoup plus rapide que lors dune exposition UV.
Les entres sorties Permettent de dialoguer avec l'extrieur du microcontrleur, par exemple pour prendre en compte l'tat d'un interrupteur (entre logique) ou encore pour commander un relais Le bus de systme Lunit centrale doit pouvoir communiquer avec les mmoires et les priphriques. Page 7
On distingue 3 types de bus : le bus dadresses le bus de donnes le bus de contrle 3 . Les Familles Actuellement les modles Microchip, sont classs en 3 grandes familles, comportant chacune plusieurs rfrences. Ces familles sont : Base-line : les instructions sont codes sur 12 bits. Mid-line : les instructions sont codes sur 14 bits. High-End : les instructions sont codes sur 16 bits. Les microcontrleurs sont aujourd'hui implants dans la plupart des applications grand public ou professionnelles, il en existe plusieurs familles : la famille Atmel AVR le C167 de Siemens/Infineon la famille Hitachi H8 la famille Intel 8051 la famille des PIC de Microchip etc La socit Amricaine Microchip Technologie a mis au point dans les annes 90 un microcontrleur CMOS (Complmentary Mtal Oxyde Semi-conducteur) : le PIC (Peripheral Interface Controller). Ce composant encore trs utilis l' heure actuelle, est un compromis entre simplicit d' emploi, rapidit et prix de revient.
Identification des PIC s
Un PIC est identifi par un numro de la forme suivant : xxXXyy zz - xx : Famille du composant (12, 14, 16, 17, 18) - XX : Type de mmoire de programme C - EPROM ou EEPROM CR - PROM F - FLASH - yy : Identification Page 8
- zz : Vitesse maximum du quartz
Exemple :
Il existe de nombreuses versions de PIC possdant chacune des caractristiques diffrentes, des tableaux comparatifs permettent de choisir le PIC le plus adquat par rapport l'application envisage( voir le tableau dans lannexe ) 4 . Environnement du Programmation l'origine, les microcontrleurs se programmaient en assembleur, il pose toujours d'normes problmes pour la maintenance et l'volution des logiciels embarqus. Dsormais, on utilise de plus en plus des langages de haut niveau, notamment le langage C, capable de faciliter la programmation de microcontrleurs toujours plus puissants. Ces compilateurs C prsentent gnralement certaines restrictions lies aux spcificits des microcontrleurs (mmoire limite, par exemple). Le compilateur GCC peut produire du code pour certains microcontrleurs. Avec laugmentation de la puissance et de la quantit de mmoire de stockage (FLASH) disponible dans les microcontrleurs, les programmes de ces derniers peuvent dsormais tre crits en C++. Des simulateurs sont disponibles pour certains microcontrleurs, comme l'environnement MPLAB de Microchip. Une fois le programme compil, le fichier binaire doit tre envoy au microcontrleur. On utilise donc un programmateur, pour microcontrleurs et souvent galement dEEPROM. On parle alors de programmateur universel.
Page 9
CHAPITRE II : CONCEPTION ET SIMULATION DE LA SERRURE CODEE
1 .Introduction Une serrure lectronique code permet de bloquer laccs une porte, un coffre, une portire de voiture, aux personnes nayant pas leur connaissance le code secret permettant louverture. Si les quatre chiffres du code secret sont entrs dans lordre, le systme technique commande un relais pendant un temps prdfini et une alarme est active un(dans ce cas 2 seconde). Dans le cas contraire une lampe va claire. Lusager dispose dun clavier lectronique compos des touches 0 9 et des alphabets de A D et des touches * et #. Cest partir de ce clavier quil entre le code daccs. Domaine dapplication Les serrures lectroniques sont utilises dans plusieurs domaines : Dans la vie courante : - Verrouillages des portes et des coffres de voiture - Verrouillages des portes ordinaires - Verrouillages de coffre fort - Ouverture et fermeture de barrire code - Chambre forte - Etc. Dans le domaine professionnel - Contrle daccs dans les entreprises - Verrouillages de coffre fort bancaire - Etc. Dans le domaine industriel - Commande de processus code (dmarrer un processus laide dun code) - Etc. Dans le domaine aronautique - Verrouillages des portes des avions - Escalier roulant code Page 10
- etc. 2. Principe de fonctionnement La serrure lectronique ne sert pas seulement bloquer laccs elle peut aussi servir commander plusieurs dispositif lectroniques. Un code de 4 chiffres est saisi sur le clavier si le code saisi correspond au code daccs stock en mmoire, la LED verte allum et relais ouvre laccs pendant un temps de 2 seconde. Dans le cas contraire une LED rouge reste allume comme indique le schma suivant :
3 .schma synoptique La structure principale dune serrure lectronique code est compose principalement dun microcontrleur qui assure la programmation des codes dactivations et de dsactivations. Il sagit dont de mettre sur pied un systme de commande laide du microcontrleur. Ce systme aura pour but dactiver des relais pour la commande des dispositifs lectroniques ou mcanique (porte, coffre-fort...). Ce systme de commande reprsente le cerveau mme de la serrure lectronique .il est constitu des parties bien visibles par lutilisateur et dautre qui ne sont pas visible. Sur le schma suivant nous talons la structure interne dune serrure lectronique classique avec ses diffrents composants lectronique : Page 11
4. Unit de traitement (pic16f84) Ce modle de PIC est un circuit de petite taille, fabriqu par la Socit amricaine Arizona MICROCHIP Technologies.
Architecture interne Larchitecture du pic 16F84, commune la majorit des microcontrleurs pic. Le pic 16F84 est un microcontrleur de 8bits darchitecture de type RISC. RISC de langlais (Reduced Instruction Set Computer), signifie calculateur jeux dinstruction rduit .
Page 12
Structure externe
Page 13
Ses principales caractristiques sont : 13 lignes dentres/sorties, rparties en un port de 5 lignes (Port A) et un port de 8 lignes (Port B) Alimentation sous 5 Volts(V DD et V SS ). architecture interne rvolutionnaire lui confrant une extraordinaire rapidit une mmoire de programme pouvant contenir 1024 instructions de 14 bits chacune (allant de ladresse 005 ladresse 3FF) une mmoire RAM utilisateur de 68 emplacements 8 bits (de ladresse 0C l4F) une mmoire RAM de 2x12 emplacements rserve aux registres spciaux une mmoire EEPROM de 64 emplacements une horloge interne, avec prdiviseur et chien de garde possibilit dtre programm in-circuit, cest dire sans quil soit ncessaire de le retirer du support de lapplication Un vecteur de Reset situ ladresse 000 un vecteur dinterruption, situ ladresse 004 bus dadresses de 13 lignes prsence dun code de protection permettant den empcher la duplication facilit de programmation simplicit. faible prix. La mmoire RAM de 68 octet est utilise pour stocker des donnes temporaires. Baptis registre usage gnral par Microchip, chacune de ces mmoires est adressable directement. A ce bloc de 68 registre usage gnral, est associ 11 registres internes et lorganisation des adresses est donne par le tableau suivant : Page 14
5 .Le clavier
Le clavier est un ensemble de boutons, organis en matrice xy. Il ressemble ceci : Colonne 0 Colonne 1 Colonne 2 Colonne Ligne 0 1 2 3 A Ligne 1 4 5 6 B Ligne 2 7 8 9 C Ligne 3 * 0 # D
Page 15
Fonctionnement du clavier matriciel xy : Ce clavier est une matrice de 4 x 4 touches. Les 8 broches (lignes et colonnes) utilises par le clavier sont tous indpendantes les unes des autres. Il se cre un court circuit entre deux broches seulement lorsquune touche est enfonce. Exemple: - lorsque la touche 5 est enfonce, il y a contact entre la ligne 1 et la colonne 1 - lorsque la touche 1 est enfonce, il y a contact entre la ligne 0 et la colonne 0 - etc 7. Rgulateur Dans le cas o nous ne possdons pas d'alimentation stabilise, il est possible d'alimenter le montage avec une pile 9 v suivie par un rgulateur 5 v du type 7805
Page 16
Il permet de fournir un 5V stable partir du 9V de la pile. La patte de gauche est l'entre 9V, la patte du milieu la masse commune et la droite la sortie 5V. - Ce modle tient 500mA. - Facilit d'emploi (peu de composants externes). - Protection contre les surcharges thermiques. - diode : 1N4001, en srie avec la pile 9 v, protge le montage contre les inversions de polarit. - Les condensateurs : permet de filtrer l'alimentation de 5 v.
Maquette de rgulateur Apres la ralisation du montage sur la maquette on mesure la tension de sortie de rgulateur a laide de voltmtre et on a trouv la valeur suivante : 4.56v
8.Relais Un relais est un organe lectrique permettant la commutation de liaisons lectriques. Il est charg de transmettre un ordre de la partie commande la partie puissance d'un appareil lectrique et permet, entre autres, un isolement galvanique entre les deux parties. Le relais est donc utile pour effectuer une commande de puissance de type tout ou rien. Page 17
la fiche technique du relais est disponible lannexe.
8 . Horloge du systme Le fonctionnement de l'horloge peut tre ralise avec un quartz : 4MHz, la frquence maximale d'utilisation va dpendre du microcontrleur utilis . En utilise ici un rsonateur quartz ou cramique 4MHz pour ralise un oscillateur (le cur du microcontrleur), c'est lui qui cadence le droulement du programme . Il fournir un signal carr priodique au microcontrleur. Pour gnrer le signal d'horloge, plusieurs type doscillateurs peuvent tre ralise soit avec un quartz ( figure 1 ) soit avec une horloge extrieure ( figure 2 ) ou bien soit avec un circuit RC ( figure 3 ) , dans ce dernier cas, la stabilit du montage est limit.
9.Chronogramme fonctionnel
Page 18
Algorigramme de serrure code
Sous programme
oui non
oui non
Dbut Configuration des ports A et B initialisations des E/S, initialisation des variables internes Lecture du clavier Touche appui Validation de code complet Comparisation de code
Bon code LED verte allume (Ouverture de porte) LED rouge reste allume (dclenchement dalarme) Remise zro le code entr Page 19
10.Programme base de lassembleur Programmer un microcontrleur consiste crire une suite de 0 et de1 en mmoire programme. Cette suite sera dcrite dans un fichier .hex gnr par MPLAB partir de lassociation de mnmoniques et de directive dassemblage. Dans un programme en assembleur, on peut distinguer une partie prliminaire qui est systmatique c..d. qui ne change pas d'un programme l'autre. La premire partie concerne l'en-tte qui dfinit, le plus clairement possible, la fonction du programme ainsi que divers informations permettant de grer l'historique du code (auteur, date d'critures et de modifications, numro de version, etc.)
La dclaration du microcontrleur permet au compilateur de gnrer un code machine qui soit comprhensible pour le microcontrleur que vous souhaitez programmer.
Une directive au prprocesseur demande l'inclusion d'un fichier de dfinition spcifique au microcontrleur qui dfinit certaines configurations matrielles par dfaut et permet de simplifier l'criture des programmes.
(pour le programme complet de serrure code voir lannexe ) 11. Logiciel Porteus ISIS Porteus est une suite logicielle destine l'lectronique. Dvelopp par la socit Labcenter Electronics, les logiciels incluent dans Proteus permettent la CAO (conception assiste par ordinateur) dans le domaine lectronique. Deux logiciels principaux composent cette suite logicielle: ISIS et ARES. ; Titre : Serrure code ; Date : ; Auteur : ; PIC utilis : PIC 16 F 84 ; On ralise un dcodage de clavier sur les broches RB0 RB5 d' un PIC 16 F 84. ; Si la squence des 4 touches appuyes correspond aux codes de l ' EPROM alors ; on valide la sortie pendant 2 secondes. ; on utilise la mmoire EPROM pour stocker le code qui valide la sortie relais
list p=18F84A ; Dfinition du microcontrleur utilis #include <p18f84A.inc> ; Dfinitions des emplacements mmoires des registres ; et configurations matrielles par dfaut __CONFIG H3FF9 ;prcise les paramtres encods dans le processeur au ;moment de la programmation du processeur. Page 21
Cette suite logicielle est trs connue dans le domaine de l'lectronique. De nombreuses entreprises et organismes de formation (incluant lyce et universit) utilisent cette suite logicielle. Outre la popularit de l'outil, Proteus possde d'autres avantages Pack contenant des logiciels facile et rapide comprendre et utiliser Le support technique est performant L'outil de cration de prototype virtuel permet de rduire les cots matriel et logiciel lors de la conception d'un projet ISIS Le logiciel ISIS de Proteus est principalement connu pour diter des schmas lectriques. Par ailleurs, le logiciel permet galement de simuler ces schmas ce qui permet de dceler certaines erreurs ds l'tape de conception. Indirectement, les circuits lectriques conus grce ce logiciel peuvent tre utilis dans des documentations car le logiciel permet de contrler la majorit de l'aspect graphique des circuits.
12. simulation de serrure code
Page 22
Chapitre : III REALISATION DE LA SERRURE CODE
1. Le programmateur - Une fois le programme compil, il faut le transfrer dans la mmoire du microcontrleur. Pour cela il vous faut, Une petite interface matrielle - Est l'lment qui permet de charger le programme dans la mmoire du PIC. Il est reli l'ordinateur par une liaison srie ou parallle, le programmateur n'a pas les supports pour tous lePICs Page 23
Lecture du rsultat dans le programmateur 1.schma de cblage Avant le tapage de code Page 24
Apres tapage de code (led verte allume) Page 25
Schma avec relais et un buzzer.
Page 26
CONCLUSION
Ce genre de projet a pour objectif de faire dcouvrir llectronique sous un nouvel angle, donc de concrtiser la pratique aborde en classe.
travers de ce travail, nous avons eu loccasion dutiliser plusieurs outils informatiques qui sont ncessaire pour la ralisation de ce projet. Nous avons appris raliser des schmas lectroniques qui taient nouveaux pour nous.
En autres ce projet, nous a donn la possibilit de travailler en groupe, surtout de sorganiser le mieux possible et dynamiser le travail pour arriver au but fix.
Page 27
Bibliographie La programmation des PICs, Premire partie PIC16F84, Rev 5, Bigonff http://fabrice.sincere.pagesperso-orange.fr/cm_electronique/pic_accueil.htm
Programme assembleur avec lextension .asm ;------ Exemple d'application avec un PIC : Une serrure code ------- ; Titre : Serrure code ; Date : ; Auteur : ; PIC utilis : PIC 16 F 84 ; On ralise un dcodage de clavier sur les broches RB0 RB5 d' un PIC 16 F 84. ; Si la squence des 4 touches appuyes correspond aux codes de l ' EPROM alors ; on valide la sortie pendant 2 secondes. ; on utilise la mmoire EPROM pour stocker le code qui valide la sortie relais ;------------ Directive d' assemblage pour PLAB --------------- list p=16f84A #include p16f84A.inc __config H'3FF9' ;------------ Dfinition des constantes ---------------
W EQU 0x00 ; variable W = 0 F EQU 0x01 ; variable F = 1 ;------------ Dfinition des registres temporaires --------------- retard1 EQU 0x0C ; le registre temporaire retard1 se trouve l' adresse 0C retard2 EQU 0x0F ; le registre temporaire retard2 se trouve l' adresse 0F retard3 EQU 0x14 tampon EQU 0x10 ; le registre tampon est l'adresse 10 rang EQU 0x11 key EQU 0x12 ;------------ Mise en EPROM des valeurs ---------------
org H'2100' ; Donnes EEPROM DE 0x44,0x84,0x06,0x05, 0 ; les 4 codes qui valident la sortie relais ;------------ Init des ports A et B --------------- ORG 0 bsf STATUS,5 ; on met 1 le 5eme bit du registre status pour accder ; la 2eme page mmoire ( pour trisa et trisb ) MOVLW B'11000011' ; on met C3 dans le registre W MOVWF TRISB ; on met C3 dans le port B il est programm partiellement en E/S MOVLW 0x00 ; on met 00 dans le registre W MOVWF TRISA ; on met 00 dans le port A il est programm en sortie bcf STATUS,5 ; on remet 0 le 5eme bit du registre status pour accder ; la 1eme page mmoire ;------------ Init --------------- MOVLW 00 ; on met 0 dans le registre W MOVWF PORTB ; on met W sur le port B MOVWF tampon ; on met 00 dans le registre tampon init Page 30
MOVLW 04 ; on met 4 dans le registre W MOVWF rang ; on met W rang MOVLW 0x01 ; on met 01 dans le registre W led rouge MOVWF PORTA ; on met 01 sur le port A ;-------------------- Programme principal ---------------------- debut bcf PORTA,2 ; on met 0 le CA2 movf rang,w ; on met rang dans W MOVWF PORTB ; on met W sur le port B ( N rang= N ligne alimente ) BTFSC PORTB,6 ; on teste le bit RB6 si = 0 on saute la prochaine instruction call sauve BTFSC PORTB,7 ; on teste le bit RB7 si = 0 on saute la prochaine instruction call sauve BTFSC PORTB,1 ; on teste le bit RB1 si = 0 on saute la prochaine instruction call sauve BTFSC PORTB,0 ; on teste le bit RB0 si = 0 on saute la prochaine instruction call sauve movf rang,W ; on met rang dans W SUBLW 0x20 ; W - 32 -> W BTFSC STATUS,2 ; on teste le bit Z si Z=0 on saute la prochaine instruction GOTO init movf rang,W ; on met rang dans W ADDWF rang, F ; on additionne rang + rang GOTO debut ;------------ sauvegarde de la touche --------------- sauve ; bsf PORTA,2 ; on met 1 le CA2 movf PORTB,W ; on met le port B (clavier) dans W MOVWF key ; on sauve W dans key MOVF tampon, W ; on met tampon dans W MOVWF EEADR ; on met W sur EEADR ( adresse EPROM ) bsf STATUS,5 ; on met 1 le 5eme bit du registre status pour accder ; la 2eme page mmoire ( EECON1 ) MOVLW 0x01 ; on met 01 dans le registre W MOVWF EECON1 ; on met 01 dans le registre EECON1 bcf STATUS,5 ; on remet 0 le 5eme bit du registre status MOVLW 0x01 ; on met 1 dans le registre W ADDWF tampon, F ; on additionne tampon + 1 MOVF EEDATA, W ; on met la donne EPROM dans W SUBWF key,F ; key - W -> f ( la touche correspond l' EPROM ? ) BTFSS STATUS,2 ; on teste le bit Z si Z=1 on saute la prochaine instruction GOTO raz MOVLW 0x04 ; on met 5 dans W SUBWF tampon,W ; tampon - W -> W ( on a eu les 4 touches ? ) BTFSC STATUS,2 ; on teste le bit Z si Z=0 on saute la prochaine instruction Page 31
goto ouvre ;---------------- test de l'appui maintenu --------------------- appui BTFSC PORTB,6 ; on teste le bit RB6 si = 1 on va appui GOTO appui BTFSC PORTB,7 ; on teste le bit RB7 si = 1 on va appui GOTO appui BTFSC PORTB,1 ; on teste le bit RB1 si = 1 on va appui GOTO appui BTFSC PORTB,0 ; on teste le bit RB0 si = 1 on va appui GOTO appui CALL tempo_c goto debut raz MOVLW 0x00 ; on met 00 dans le registre W MOVWF tampon ; on met 01 dans le registre tampon return ouvre MOVLW 0x06 ; on met 06 dans le registre W MOVWF PORTA ; on met 06 sur le port A ( led verte + relais ) call tempo goto init ;------------ Programme de temporisation --------------- tempo MOVLW 0xFF ; on met ff dans le registre W MOVWF retard1 ; on met W dans le registre retard1 MOVWF retard2 ; on met W dans le registre retard2 MOVLW 0x10 ; on met 03 dans le registre W MOVWF retard3 ; on met W dans le registre retard3 attente DECFSZ retard1,F ; on dcrmente retard1 et on saute la prochaine instruction si GOTO attente ; le registre retard1 = 0 sinon retour tempo movlw 0xFF ; on recharge retard1 movwf retard1 DECFSZ retard2,F ; on dcrmente retard2 et on saute la prochaine instruction si GOTO attente ; le registre retard2 = 0 sinon retour tempo movlw 0xFF ; on recharge retard2 movwf retard2 DECFSZ retard3,F ; on dcrmente retard3 et on saute la prochaine instruction si GOTO attente ; le registre retard3 = 0 sinon retour tempo RETURN ; retour au programme principal aprs l 'instruction CALL ;------------ Programme de temporisation courte --------------- tempo_c MOVLW 0x30 ; on met 10 dans le registre W MOVWF retard1 ; on met W dans le registre retard1 Page 32
MOVWF retard2 ; on met W dans le registre retard2 attend DECFSZ retard1,F ; on dcrmente retard1 et on saute la prochaine instruction si GOTO attend ; le registre retard1 = 0 sinon retour tempo movlw 0xFF ; on recharge retard1 movwf retard1 DECFSZ retard2,F ; on dcrmente retard2 et on saute la prochaine instruction si GOTO attend ; le registre retard2 = 0 sinon retour tempo RETURN ; retour au programme principal aprs l 'instruction CALL END