Vous êtes sur la page 1sur 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.
CHAPITRE 2 Hacheur série

1. Définition et symbole
Dé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.
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.
4 .Valeur moyenne de la tension en sortie du hacheur
Exprimons 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 moteur
Le 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 est
préférable que le courant soit le plus régulier
possible, d’où la présence d’une bobine de
lissage. Si son inductance est suffisamment
grande, on pourra considérer le courant
comme constant (Di » 0).
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 :


Les Entrées/Sorties
A 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 17
RA1..........pin 18
RA2..........pin 1
RA3..........pin 2
RA4..........pin 3 (RA4/T0CKI)
(NB : RA = Register A)

Le Port B possède 8 lignes, nommées:


RB0..........pin 6 (RB0/INT)
RB1..........pin 7
RB2..........pin 8
RB3..........pin 9
RB4..........pin 10
RB5..........pin 11
RB6..........pin 12
RB7..........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 ;
- 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 invariants
devant nécessairement figurer dans tout montage - représentent le cortège
obligatoire de tout microcontrôleur PIC 16F84, de la même façon -
pourrais-je dire - qu’un transistor demande, pour fonctionner, une résistance
de 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 :
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.


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)
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)
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,
• 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 1


cmpt2 : 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 )


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

MOVLW 0xFF ; met 00 dans le registre W


MOVWF 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 K
CALL 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 W
MOVWF cmpt2 ; met W dans le registre cmpt2

boucle2
MOVLW 0xFF
MOVWF cmpt1 ; initialisation registre compt1
boucle1
DECFSZ cmpt1,F ; décrémenter cmpt1 et saute la prochaine instruction si
GOTO 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


;*********************************************************************
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

AA BB CC DD EE FF GG HH
bsf bsf PORTA,0 bsf PORTA,0 bsf PORTA,0 bsf PORTA,0 bsf PORTA,0 bsf PORTA,0 bsf PORTA,0
PORTA,0 ; ; ; ; ; ; ;
; call tempo1 call tempo2 call tempo3 call tempo4 call tempo5 call tempo6 call tempo7
call bcf PORTA,0 bcf PORTA,0 bcf PORTA,0 bcf PORTA,0 bcf PORTA,0 bcf PORTA,0 bcfPORTA,0
tempo1 call tempo8 call tempo7 call tempo6 call tempo5 call tempo4 call tempo3 call tempo2
; ; ; ; ; ; ; ;
goto debut goto debut goto debut goto debut goto debut goto debut goto debut goto debut
SOUS-ROUTINE DE TEMPORISATION

tempo1 tempo2 tempo3 tempo4 tempo5 tempo6 tempo7 tempo8 tempo9


MOVLW MOVLW MOVLW MOVLW MOVLW MOVLW MOVLW MOVLW MOVLW
0x09 0x08 0x07 0x06 0x05 0x04 0x03 0x02 0x01
MOVWF MOVWF MOVWF MOVWF MOVWF MOVWF MOVWF MOVWF MOVWF
cmpt2 cmpt2 cmpt2 cmpt2 cmpt2 cmpt2 cmpt2 cmpt2 cmpt2

boucle21 boucle22 boucle23 boucle24 boucle25 boucle26 boucle27 boucle28 boucle29


MOVLW MOVLW MOVLW MOVLW MOVLW MOVLW MOVLW MOVLW MOVLW
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
MOVWF MOVWF MOVWF MOVWF MOVWF MOVWF MOVWF MOVWF MOVWF
cmpt1 cmpt1 cmpt1 cmpt1 cmpt1 cmpt1 cmpt1 cmpt1 cmpt1

boucle11 boucle12 boucle13 boucle14 boucle15 boucle16 boucle17 boucle18 boucle19


DECFSZ DECFSZ DECFSZ DECFSZ DECFSZ DECFSZ DECFSZ DECFSZ DECFSZ
cmpt1,F cmpt1,F cmpt1,F cmpt1,F cmpt1,F cmpt1,F cmpt1,F cmpt1,F cmpt1,F
GOTO GOTO GOTO GOTO GOTO GOTO GOTO GOTO GOTO
boucle11 boucle12 boucle13 boucle14 boucle15 boucle16 boucle17 boucle18 boucle19

DECFSZ DECFSZ DECFSZ DECFSZ DECFSZ DECFSZ DECFSZ DECFSZ DECFSZ


cmpt2,F cmpt2,F cmpt2,F cmpt2,F cmpt2,F cmpt2,F cmpt2,F cmpt2,F cmpt2,F
GOTO GOTO GOTO GOTO GOTO GOTO GOTO GOTO GOTO
boucle21 boucle22 boucle23 boucle24 boucle25 boucle26 boucle27 boucle28 boucle29

RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN


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
2009/2010