26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

17
CHAPITRE 1 Introduction Notre projet a donc pour but de réaliser un HACHEUR piloté par microcontrôleur PIC permet d'envisager une commande de la vitesse d'une machine à courant continu, ce dispositif de l'électronique de puissance mettant en œuvre un interrupteur commandé et qui permet de modifier la valeur moyenne de la tension d'une source de tension continue. Ce mini-projet a pour but de réialisé ce système basé sur un microcontrôleur. On définit le rapport cyclique par : Pour un hacheur dévolteur, le rapport de la tension de sortie sur la tension d'entrée est égal au rapport cyclique. Certains hacheurs sont également réversibles : ils peuvent alors fournir de l'énergie à la charge, généralement une machine à courant continu dans ce type d'application, ou bien en prélever ce qui permet de freiner la machine. Les hacheurs de puissance sont utilisés pour la variation de vitesse des moteurs à courant continu. En plus faible puissance, ils sont un élément essentiel des alimentations à découpage. La vitesse de rotation d'un moteur à courant continu à aimants permanents est alors directement proportionnelle à la tension d'alimentation de l'induit.

Transcript of 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

Page 1: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

CHAPITRE 1 Introduction

Notre projet a donc pour but de réaliser un HACHEUR piloté par microcontrôleur PIC permet d'envisager une commande de la vitesse d'une machine à courant continu, ce dispositif de l'électronique de puissance mettant en œuvre un interrupteur commandé et qui permet de modifier la valeur moyenne de la tension d'une source de tension continue.

Ce mini-projet a pour but de réialisé ce système basé sur un microcontrôleur.

On définit le rapport cyclique par :

Pour un hacheur dévolteur, le rapport de la tension de sortie sur la tension d'entrée est égal au rapport cyclique.

Certains hacheurs sont également réversibles : ils peuvent alors fournir de l'énergie à la charge, généralement une machine à courant continu dans ce type d'application, ou bien en prélever ce qui permet de freiner la machine.

Les hacheurs de puissance sont utilisés pour la variation de vitesse des moteurs à courant continu. En plus faible puissance, ils sont un élément essentiel des alimentations à découpage. La vitesse de rotation d'un moteur à courant continu à aimants permanents est alors directement proportionnelle à la tension d'alimentation de l'induit.

Page 2: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

CHAPITRE 2 Hacheur série

1. Définition et symboleDéfinition:

Le hacheur est un interrupteur que l’on place en serie ou en parallèle avec la charge .

Le hacheur est un convertisseur statique continu-continu. La frequence de commutation dans les hacheurs est beaucoup elevée que dans les redresseurs ou les gradateurs.(100Hz jusqu'à 10khz).

Symbole :

2. Principe du hacheur série

Montage de principe : débit sur une charge résistive (en réalité l’interrupteur est remplacé par un transistor)Un hacheur peut etre realiser a l’aide d’un interrupteur electronique commandable a l’ouverture et a la fermeture tels que les thyristors GTO ou les transitor bipolaires ou effet de champ a grille isolée.

Page 3: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

3.Transistors bipolaires:

Ils sont robustes mais leur mise en conduction necessite un courant a travers leurs circuit Base-emetteur.La commande consomme une energie telle que l’on doit ecarter ce type de transistor dans certains cas . est symbolisé par:

On choisit une période T et une fraction a de cette période. a s’appelle le rapport cyclique, 0 < a < 1, sans dimension.• de 0 à aT : K est fermé Þ uK = 0 v = U i = v/R= U /R • de aT à T : K est ouvert Þ i = 0 v = Ri = 0 uK = U Commentaires :• La tension de sortie du hacheur (tension v) n’est pas continue mais toujours positive. Lorsque la période est assez faible (fréquence de 100 à 1000 Hz) la charge ne « voit » pas les créneaux mais la valeur moyenne de la tension.• le rapport cyclique a peut être réglé. Par conséquent la valeur moyenne v (ou < v >) de v va varier.• il s’agit d’un hacheur série car l’interrupteur K est monté en série entre la source et la charge.

Page 4: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

4 .Valeur moyenne de la tension en sortie du hacheurExprimons la valeur moyenne de u en fonction du rapport cyclique a.Pour cela nous calculons sa valeur moyenne sur une période :v =aT.U +(1- a)T.0/T= aU Valeur moyenne : v = aU

5. Application au moteurLe hacheur série est souvent employé pour commander un moteur à courant continu.On rappelle que la vitesse d’un tel moteur est proportionnel à la tension d’alimentation.

Montage :

Commentaire :Pour un bon fonctionnement du moteur, il estpréférable que le courant soit le plus régulierpossible, d’où la présence d’une bobine delissage. Si son inductance est suffisammentgrande, on pourra considérer le courantcomme constant (Di » 0).

Page 5: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

CHAPITRE III Le microcontrôleur 16F84

1.Présentation générale :

Ce modèle de PIC (Programmable Interface Controler) est un circuit de petite taille, fabriqué par la Société américaine Arizona MICROCHIP Technology.En le regardant pour la première fois, il fait d’avantage penser à un banal circuit intégré logique TTL ou MOS, plutôt qu’à un microcontrôleur.Son boîtier est un DIL (Dual In Line) de 2x9 pattes.En dépit de sa petite taille, il est caractérisé par une architecture interne qui lui confère souplesse et vitesse incomparables.Ses principales caractéristiques sont :- 13 lignes d’entrées/sorties, réparties en un port de 5 lignes (Port A) et un port de 8 lignes (Port B)- alimentation sous 5 Volts- architecture interne révolutionnaire lui conférant une extraordinaire rapidité- une mémoire de programme pouvant contenir 1019 instructions de 14 bits chacune (allant de l’adresse 005 à l’adresse 3FF)- une mémoire RAM utilisateur de 68 emplacements à 8 bits (de l’adresse 0C à l’adresse 4F)- une mémoire RAM de 2x12 emplacements réservée aux registres spéciaux- une mémoire EEPROM de 64 emplacements- une horloge interne, avec prédiviseur et chien de garde- possibilité d’être programmé in-circuit, c’est à dire sans qu’il soit nécessaire de le retirer du support de l’application- vecteur de Reset situé à l’adresse 000- un vecteur d’interruption, situé à l’adresse 004- bus d’adresses de 13 lignes- présence d’un code de protection permettant d’empêcher la duplication- facilité de programmation- simplicité- faible prix .

2.Brochage du PIC 16F84 :

Page 6: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

Les Entrées/SortiesA part les cinq pins réservées au cortège des invariants devant nécessairement figurer dans tout montage, les treize autres pins du 16F84 servent d’entrées/sorties.Elles sont regroupées en deux ports : Port A et Port B.Le Port A possède 5 lignes, nommées:RA0..........pin 17RA1..........pin 18RA2..........pin 1RA3..........pin 2RA4..........pin 3 (RA4/T0CKI)(NB : RA = Register A)

Le Port B possède 8 lignes, nommées:RB0..........pin 6 (RB0/INT)RB1..........pin 7RB2..........pin 8RB3..........pin 9RB4..........pin 10RB5..........pin 11RB6..........pin 12RB7..........pin 13(NB : RB = Register B)A remarquer que RB0 (pin 6) et RA4 (pin 3), outre qu’à pouvoir servir d’entrées/sorties, selon la façon dont on les programme peuvent respectivement servir l’une comme entrée d’interruption et l’autre comme entrée d’horloge externe pour le pilotage du timer (TMR0).

Le cortège des invariants

Indépendamment de ce qu’on veut faire de ses 13 lignes (que l’on définit par lignes d’entrée/sortie) et quelle que soit l’application à laquelle on le destine, un microcontrôleur PIC 16F84, pour pouvoir fonctionner, a nécessairement besoin de :- une alimentation de 5 Volts ;

Page 7: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

- un quartz et deux condensateurs (si un pilotage précis par base de temps à quartz est nécessaire), ou une résistance et un condensateur (pour une base de temps de type RC, économique, utilisable dans les cas ne demandant pas une extrême précision de cadencement) ;- un condensateur de découplage (pour réduire les transitoires se formant inévitablement dans tout système impulsionnel) ;- un bouton poussoir et une résistance, pour la mise en place d’une commande de Reset.Ces éléments - qu’il convient de considérer comme des invariantsdevant nécessairement figurer dans tout montage - représentent le cortègeobligatoire de tout microcontrôleur PIC 16F84, de la même façon -pourrais-je dire - qu’un transistor demande, pour fonctionner, une résistancede Base et une résistance de Collecteur.Les applications types sont les suivantes :

1) Pilotage par quartz 2) Pilotage par oscillateur RC

3.Mémoire de données :

Page 8: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

INDF (00h - 80h) : Utilise le contenu de FSR pour l'accès indirect à la mémoire.

TMR0 (01h) : Registre lié au compteur

PCL (02h - 82h) : Contient les poids faibles du compteur de programme (PC).

PCLATH (0Ah-8Ah) : contient les poids forts.

STATUS (03h - 83h) : Il contient l'état de l'unité arithmétique et logique ainsi que les bits de la sélection des banques.

FSR (04h - 84h) : Permet l'adressage indirect.

PORTA (05h) : Donne l’accès en lecture ou écriture au port A 5 bits. Les sorties sont à drain ouvert.Le bit 4 peut être utilisé en entrée de comptage.

PORTB (06h) : Donne l’accès en lecture ou écriture au port B. Les sorties sont à drain ouvert.Le bit 0 peut être utilisé en entrée d'interruption.

EEDATA (08h) : Permet l'accès aux données dans la mémoire EEPROM.

EEADR (09h) : Permet l'accès aux adresses de la mémoire EEPROM.

Page 9: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

PCLATCH (0Ah - 8Ah) : Donne accès en écriture aux bits de poids forts du compteur de programme.

INTCON (0Bh - 8Bh) : Masque d'interruptions.

OPTION_REG (81h) : Contient des bits de configuration pour divers périphériques.

TRISA (85h) : Indique la direction (entrée ou sortie) du port A.

TRISB (86h) : Indique la direction (entrée ou sortie) du port B.

EECON1 (88h) : Permet le contrôle d'accès à la mémoire EEPROM.

EECON2 (89h) : Permet le contrôle d'accès à la mémoire

4.Le jeu d'instructions :

1 .L’instruction « GOTO » (ALLER À)2 .L’instruction « INCF » (INCREMENT FILE) 3 .L’instruction « DECF » (DECREMENT FILE)4 .L’instruction « MOVLW » (MOVE LITERAL TO W) 5 .L’instruction « MOVF » (MOVE FILE)6 .L’instruction « MOVWF » (MOVE W TO FILE(7 .L’instruction « ADDLW » (ADD LITERAL AND W)8 .L’instruction « ADDWF » (ADD W AND F)9 .L’instruction « SUBLW » (SUBTRACT W FROM LITERAL) 10. L’instruction « SUBWF » (SUBTRACT W FROM F)11 .L’instruction « ANDLW » (AND LITERAL WITH W) 12 .L’instruction « ANDWF » (AND W WITH F) 13 .L’instruction « IORLW » (INCLUSIVE OR LITERAL WITH W)14 .L’instruction « IORWF » (INCLUSIVE OR W WITH FILE) 15 .L’instruction « XORLW » (EXCLUSIVE OR LITERAL WITH W)16 .L’instruction « XORWF » (EXCLUSIVE OR W WITH F)17 .L’instruction « BSF » (BIT SET F)18 .L’instruction « BCF » (BIT CLEAR F) 19 .L’instruction « RLF » ( ROTATE LEFT THROUGH CARRY) 20 .L’instruction « RRF » ( ROTATE RIGHT THROUGH CARRY)21 .L’instruction « BTFSC » (BIT TEST F, SKIP IF CLEAR)22 .L’instruction « BTFSS » (BIT TEST F, SKIP IF SET)23 .L’instruction « DECFSZ » (DECREMENT F, SKIP IF Z)24 .L’instruction « INCFSZ » (INCREMENT F, SKIP IF ZERO)

Page 10: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

26 .L’instruction « CALL » (CALL SUBROUTINE) 27 .L’instruction « RETURN » (RETURN FROM SUBROUTINE)28 .L’instruction « RETLW » (RETURN WITH LITERAL IN W) 29 .L’instruction « RETFIE » (RETURN FROM INTERRUPT) 30 .L’instruction « CLRF » (CLEAR F)31 .L’instruction « CLRW » (CLEAR W)32 .L’instruction « CLRWDT » (CLEAR WATCHDOG)33 .L’instruction « COMF » (COMPLEMENT F) 34 .L’instruction « SLEEP » (MISE EN SOMMEIL) 35 .L’instruction « NOP » (NO OPERATION)

Page 11: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

CHAPITRE VI Cadre de travaille : Ce chapitre donne le cadre de travaille ce mini projet, il explique de plus les programmes utiliser : 1ère Partie : Introduction à Proteus Professional®

Description: est un system complet de conception électronique qui vous permet de simuler l'ensemble microprocesseur dessins fonctionnement même code processeur machine en temps réel. Proteus ISIS comprend la capture schématique; Prospice (SPICE3F5) en mode mixte (analogique et numérique) de logiciels de simulation; ARES PCB logiciel de mise en page, y compris Placeur automatique et autorouteur et plusieurs système de modélisation virtuelle (VSM), modèles, y compris 8051, 8052, PIC1683 et les microprocesseurs PIC1684, ainsi que des instruments de clavier et virtuel. Elle combine un superbe mixte-mode simulateur de circuit basé sur l'industrie SPICE3F5 standard avec les modèles de composants d'animation, et offre une architecture dans laquelle d'autres maquettes animées peuvent être créés par quiconque, y compris les utilisateurs finaux; Par conséquent, le programme permet aux ingénieurs d'effectuer des simulations interactives de véritables desseins, et de récolter les fruits de cette démarche à la simulation du circuit.

Proteus dispose d'une gamme de modèles populaires simulateur pour micro-contrôleurs, et un ensemble de maquettes animées pour les dispositifs liés périphériques telles que les affichages LED et LCD, des claviers, et les terminaux RS232.

Le programme comprend également divers modèles, tels que les styles de couleurs de texte et graphiques; recherche, de marquage, le zoom et les fonctions d'impression, la capacité d'exporter des images (BMP, DXF, EPS, HGL, et les formats WMF), une visionneuse de texte et un debug fonction.2iem Partie : Introduction à MPLAB® Description: MPLAB Integrated Development Environment (IDE) est une plateforme de développement pour les familles de microcontrôleurs PIC et dsPIC® de Microchip Technology.MPLAB IDE comporte les modules suivants : MPASM™, l’assembleur, MPSIM™, le programme de simulation, MPLINK™ . MPLAB IDE vous permet :• D’écrire, créer (build) et débogueur du code-source,• De localise automatiquement des erreurs dans des fichiers-source en vue de leur correction (édition),• De déboguer par le biais de points d’arrêt (breakpoints),• D’exécuter le programme en du pas à pas à l’aide du simulateur logiciel, du débogueur ou de l’émulateur en circuit,• De visualiser des variables dans des fenêtres de suivi,• De programmer du code à l’aide de certains programmateurs,

Page 12: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

• De trouver rapidement une réponse à diverses questions à l’aide de Help de MPLAB IDE.3iem Partie : Programme ;********************************************************************; PROGRAMME DE commande D'UN hacheur par un pic 16F84. *;********************************************************************; *; NOM: hacheur *; Date: 21/02/2010 *; Auteur: Aouadja Ali *; Ernest Leadoum *; - Drif Malek * ;********************************************************************; *; Fichier requis: P16F84.inc *; *;********************************************************************; *; Notes: Ce petit programme permet de commander un hacheur *; sur le port B on utilisons la commande décalé à une fréquence *; * ;********************************************************************;------------ Directive d' assemblage pour MPLAB ---------------

LIST p=16F84A ;Processeur 16F84A#INCLUDE <p16F84A.inc> ; Définition des registre

; internes du 16F84 __CONFIG _CP_OFF & _CP_ON & _PWRTE_ON ;Option de programmation

;*********************************************************************; Définition des registres temporaires *;*********************************************************************

CBLOCK 0x00C ; début de la zone variables

cmpt1 : 1 ; compteur de boucles 1cmpt2 : 1 ; compteur de boucles 2 ENDC ; Fin de la zone

;*********************************************************************; Initialisation des portA et portB * ;*********************************************************************

ORG 0X000 ; Adresse de départ après reset bsf STATUS,RP0 ; Acces Bank1 ( pour TRISA et TRISB )

Page 13: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

MOVLW 0x00 ; met 00 dans le registre WMOVWF TRISA ; TRISB à 0 pour mettre le port A en sortie

MOVLW 0xFF ; met 00 dans le registre WMOVWF TRISB ; TRISB à 0 pour mettre le port B en sortie

bcf STATUS,RP0 ; Acces Bank0

;********************************************************************** ; PROGRAMME PRINCIPAL *;**********************************************************************

start

MOVLW B'00000001' ;met 1 dans le registre W MOVWF PORTB ;fermer l'interrupteur KCALL tempo ;appel la temporisation

MOVLW B'00000000' ;mettre 0 dans le registre W MOVWF PORTB ;ouvrir l'interrupteur K

CALL tempo ;appel la temporisation

GOTO start ;Reboucle au start

;*********************************************************************; SOUS-ROUTINE DE TEMPORISATION *;*********************************************************************;---------------------------------------------------------------------; Cette sous-routine introduit un retard;---------------------------------------------------------------------tempo

MOVLW 0x0d ; met 0d dans le registre WMOVWF cmpt2 ; met W dans le registre cmpt2

boucle2

MOVLW 0xFFMOVWF cmpt1 ; initialisation registre compt1

boucle1DECFSZ cmpt1,F ; décrémenter cmpt1 et saute la prochaine instruction siGOTO boucle1 ; le registre cmpt1 = 0

DECFSZ cmpt2,F ; décrémenter cmpt2 et saute la prochaine instruction si GOTO boucle2 ; le registre cmpt2 = 0

RETURN ; retour au programme principal après l 'instruction CALL

Page 14: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

;*********************************************************************END ; directive fin de programmme

Programme supplémentaire : Dans ce programme la la variations de la vitesse est faite par une répartition de la période T à 8 (huit) donc variation du rapport cyclique

PROGRAMME PRINCIPAL

debut

btfss PORTB,0 goto AA btfss PORTB,1 goto BB btfss PORTB,2 goto CC btfss PORTB,3 goto DD

btfss PORTB,4 goto EE btfss PORTB,5 goto FF btfss PORTB,6 goto GG btfss PORTB,7 goto HH

LES BOUCLES

AAbsf PORTA,0 ;call tempo1 ;goto debut

BBbsf PORTA,0 ;call tempo1bcf PORTA,0call tempo8 ;goto debut

CCbsf PORTA,0 ;call tempo2bcf PORTA,0call tempo7 ;goto debut

DDbsf PORTA,0 ;call tempo3bcf PORTA,0call tempo6 ;goto debut

EEbsf PORTA,0 ;call tempo4bcf PORTA,0call tempo5 ;goto debut

FFbsf PORTA,0 ;call tempo5bcf PORTA,0call tempo4 ;goto debut

GGbsf PORTA,0 ;call tempo6bcf PORTA,0call tempo3 ;goto debut

HHbsf PORTA,0 ;call tempo7bcfPORTA,0call tempo2 ;goto debut

Page 15: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

SOUS-ROUTINE DE TEMPORISATION

tempo1MOVLW0x09MOVWF cmpt2

boucle21MOVLW0xFFMOVWF cmpt1

boucle11DECFSZ cmpt1,FGOTO boucle11

DECFSZ cmpt2,FGOTO boucle21

RETURN

tempo2MOVLW 0x08MOVWF cmpt2

boucle22MOVLW 0xFFMOVWF cmpt1

boucle12DECFSZ cmpt1,FGOTO boucle12

DECFSZ cmpt2,FGOTO boucle22

RETURN

tempo3MOVLW 0x07MOVWF cmpt2

boucle23MOVLW 0xFFMOVWF cmpt1

boucle13DECFSZ cmpt1,FGOTO boucle13

DECFSZ cmpt2,FGOTO boucle23

RETURN

tempo4MOVLW 0x06MOVWF cmpt2

boucle24MOVLW 0xFFMOVWF cmpt1

boucle14DECFSZ cmpt1,FGOTO boucle14

DECFSZ cmpt2,FGOTO boucle24

RETURN

tempo5MOVLW 0x05MOVWF cmpt2

boucle25MOVLW 0xFFMOVWF cmpt1

boucle15DECFSZ cmpt1,FGOTO boucle15

DECFSZ cmpt2,FGOTO boucle25

RETURN

tempo6MOVLW 0x04MOVWF cmpt2

boucle26MOVLW 0xFFMOVWF cmpt1

boucle16DECFSZ cmpt1,FGOTO boucle16

DECFSZ cmpt2,FGOTO boucle26

RETURN

tempo7MOVLW 0x03MOVWF cmpt2

boucle27MOVLW 0xFFMOVWF cmpt1

boucle17DECFSZ cmpt1,FGOTO boucle17

DECFSZ cmpt2,FGOTO boucle27

RETURN

tempo8MOVLW 0x02MOVWF cmpt2

boucle28MOVLW 0xFFMOVWF cmpt1

boucle18DECFSZ cmpt1,FGOTO boucle18

DECFSZ cmpt2,FGOTO boucle28

RETURN

tempo9MOVLW 0x01MOVWF cmpt2

boucle29MOVLW 0xFFMOVWF cmpt1

boucle19DECFSZ cmpt1,FGOTO boucle19

DECFSZ cmpt2,FGOTO boucle29

RETURN

Page 16: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

Ministère de l’enseignement supérieur et de la recherche scientifique

Université Ferhat Abbas –Setif-

REALISATION D'UN HACEURE A BASE D'UN

MICROCONTROLEUR

Réalisé par :

- DRIF MALEK

- ALI AOUADJA

- ERNEST LAEDOUM

Page 17: 26842046 Reialisation d Un Hacheur a Base d Un Microcontroleur PIC16F84A

2009/2010