Etude et application de microcontroleur 16f84( Télécharger le fichier original )par Mustapha BOUZIANE Université de Mascara, Algérie - Génie électrique et électronique 2007 |
Annexe1) les instructions
F: adresse 7 bits k: valeur immediate 8 bits ( 0 à 127) TO: Time Out PD: Power Down C: Carry (retenue) DC: Demi carry d = 0, destination w,f 2) Le programme : ; Application avec un PIC : SOYEZ LES BIENVENUS ; 2X16 caractères ;Date : 06 mai 2007 ; Auteur : B.B ; PIC utilisé : PIC 16F84A ; Ce montage d'initiation à base de PIC 16F84 permet de gérer ;un afficheur de deux fois 16 caractères à accès parallèle . ;dans ce montage on affichera un message dès que l'interrupteur ;marche - arrêt sera actionné . ; configuration : ;les broches rb0 à rb7 sont configurées en sortie elles pilotent ;les broches DB0 à DB7 de l'afficheur . ;les broches RA0 à RA3 sont en sortie la broche RA2 pilote ;la broche RS de l'afficheur ;la broche RA4 est en entrée elle est connectée à l'interrupteur ;marche - arrêt . ; Directive d'assemblage pour MPLAB list p = 16f84A #include p16f84A.inc _configH3FF9 ; Définition des constants #define F 0x01 ;variable F=1 #define inter 0x04 ;inter = 4 (broche RA4 ) #define rs 0x03 ;la broche rs est sur RA3 #define e 0x02 ;la broche e est sur RA2 ; Définition des registres temporaires retard1 EQU 0x0C ;le registre temporaire retard1 ;pour la temporisation retard2 EQU 0x0D ;le registre temporaire retard2 ;pour la temporisation ; Numéro de version org h'2100' de "Soyez les bienvenus ver 1.0 06/05/07" ; Programme principal ORG 0 ; Programme d'init bsf STATUS,5 ;on met à 1 le 5eme bit du registre status ;pour accéder à la 2eme page mémoire ; ( pour trisa et trisb ) MOVLW B'00000000' ; rb0 - rb7 en sortie MOVWF TRISB ;on met 00 dans le port b il est programmé ; en sortie ;en sortie ra4 en entrée bcf STATUS,5 ;on remet à 0 le 5eme bit du registre ;status pour accéder à la 1ere page mémoire clrf PORTA clrf PORTB call top_h ;impulsion d'horloge ; Configuration de l'afficheur init bsf PORTA,e ;le bit e est mis à 1 bcf PORTA,rs ;la broche rs de l'afficheur à 0 ;mode commande MOVLW B'00111000' ;on met 38 dans le registre W MOVWF PORTB ;accès 8 bites , 2 lignes pour l'afficheur Call top_h MOVLW B'00000001' ;on met 01 dans le registre W MOVWF PORTB ;reset l'afficheur (clear display ) MOVLW B'00001110' ;on met 0E dans le register W MOVWF PORTB ;display 'on' et cursor 'on' Call top_h ;impulsion d'horloge MOVLW B'00000110' ;on met 06 dans le register W MOVWF PORTB ;incrémentation du curseur vers la droite Call top_h ;impulsion d'horloge MOVLW B'10000101' ;on met la dd ram à l'adresse 05 MOVWF PORTB ;le curseur clignote à la lere rangée digit 6 Call top_h ;impulsion d'horloge bsf PORTA,rs ;on repasse la broche rs de l'afficheur à 1 ;pour le fonctionnement normal en data ; Attente de l'appui sur
l'inter btfsc PORTA,inter ;interrupteur marche - arrêt appuyé ? ;si oui on va à l'étiquette affiche 1 goto affiche GOTO debut ; top d'horloge top_h call tempo ;on appel le sous-programme de ;temporisation bcf PORTA,e ;le bit e est mis à 0 call tempo bsf PORTA,e ;le bit e est mis à 1 return ; Temporisation courte T1 tempo MOVLW 0x75 ;on met 75 dans le registre W MOVWF retard1 ;on met W dans le registre retard1 MOVWF retard2 ;on met W dans le registre retard2 attente DECFSZ retard],F ;on décrémente retard] et on saute ;la prochaine instruction si GOTO attente ;le registre retard] = 0 sinon retour à ;l'étiquette 'attente' movlw 0x90 ;on recharge retard] avec 90 movwf retard] DECFSZ retard2,F ;on décrémente retard2 et on saute ;la prochaine instruction si GOTO attente ;le registre retard2 = 0 sinon retour à ;l'étiquette 'attente' RETURN ; retour au programme principal après ;l'instruction CALL affiche ; Envoie du message sur l'afficheur ;le message est envoyé caractère par caractère ; 'SOYEZ LES BIENVENUS' bsf PORTA,0 ;on allume la led connectée sur RA0 MOVLW 'S' ;on met le caractère 'S' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h ;impulsion d'horloge MOVLW 'O' ;on met le caractère 'O' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'y' ;on met le caractère 'y' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'E' ;on met le caractère 'E' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'Z' ;on met le caractère 'Z' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW ' ` ;on met le caractère ' ' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h ;saut sur la 2eme rangée bcf PORTA,rs ;on repasse la broche rs de l'afficheur à 0 ;pour envoyer une commande MOVLW B'0]00000]' ;on met la dd ram à l'adresse 4] MOVWF PORTB ;le curseur se trouve donc sur la 2eme ;rangée digit 2 call top_h bsf PORTA,rs ;on repasse la broche rs de l'afficheur à 1 ;pour le fonctionnement normal en data MOVLW 'L' ;on met le caractère 'L' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'E' ;on met le caractère 'E' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'S' ;on met le caractère 'S' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW ' ' ;on met le caractère ' ' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'B' ;on met le caractère 'B' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'I' ;on met le caractère 'I' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'E' ;on met le caractère 'E' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'N' ;on met le caractère 'N' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'V' ;on met le caractère 'v' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'E' ;on met le caractère 'E ' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'N' ;on met le caractère 'N ' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'U' ;on met le caractère 'U' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h MOVLW 'S' ;on met le caractère 'S ' dans le registre W MOVWF PORTB ;on transfert le contenu du registre W sur ;le port B ( vers l'afficheur ) call top_h boucle btfsc PORTA,inter ;interrupteur marche - arrêt appuyé ? ;si oui on va à l'étiquette boucle goto boucle bcf PORTA,0 ;on éteint la led GOTO init ;on retourne à l'init de l'afficheur END 3) Pour débuter avec MPLAB - MPLAB est un outil fournit gratuitement par la société Microchip, Dans un premier temps si vous ne possédez pas le logiciel connecter vous sur www.microchip.com afin de le télécharger. - Dans cette page vous trouverez les vues d'écran vous permettant de créer une application - Attention selon les versions de MPLAB certains écrans risquent de changer 1 - Creation d 'une application
4) Le logiciel ICPROG : - Un logiciel qui assure le transfert des données, entre l'ordinateur et le microcontrôleur. Lancer le logiciel ICPROG vous visualisez alors cet écran : Dans le menu settings cliquez sur" hardware "et choser votre com , votre PIC et votre oscillateur . Pour efface la mémoire du PIC cliquez sur "Erase All " , et pour programmer le PIC cliquez sur "Program All ".
Les sites : - membres . lycos . fr / Pmonphe / Chapitre / PIC 16F84. - www . microchip .com tous les composants électroniques utilisés disponibles chez: ADC Electronique rue mostaganem ORAN tél : 041291515 / 041292626 TELECT2000 07 bouleverd emir abdelkader SIDI BEL ABBES Tél : 048549016 :ÉÈáØáÇ ????
??? ÁÇÚÏáÇ ???? ìäãÊäæ ??????? ??? ????? ?? ÁÇØÎ ??? íæÊÍÊ ÏÞæ |
|