Rapport
Rapport
Rapport
Compte Rendu TP
Réalise par :
Encadre par :
SALHI Abdellatif
M. Fanakh
ELBAZI Tarik
Table des matières
I- introduction .......................................................................................................................................... 3
1-Definition de Microcontrôleurs........................................................................................................ 3
2-PIC 16F84 .......................................................................................................................................... 3
3-Les objectifs et Logiciels ................................................................................................................... 4
II- Les Manipulations ................................................................................................................................ 5
1- Manip 1 ............................................................................................................................................ 5
2- Manip 2 ......................................................................................................................................... 15
3- Manip 3 ......................................................................................................................................... 19
I- introduction
1- Definition de Microcontrôleurs
Un microcontrôleur (en notation abrégée µc, ou uc ou encore MCU en anglais) est un circuit intégré
qui rassemble les éléments essentiels d'un ordinateur : processeur, mémoires (mémoire morte et
mémoire vive), unités périphériques et interfaces d'entrées-sorties. Les microcontrôleurs se
caractérisent par un plus haut degré d'intégration, une plus faible consommation électrique, une
vitesse de fonctionnement plus faible (de quelques mégahertz jusqu'à plus d'un gigahertz1) et un
coût réduit par rapport aux microprocesseurs polyvalents utilisés dans les ordinateurs personnels.
Par rapport à des systèmes électroniques à base de microprocesseurs et autres composants séparés,
les microcontrôleurs permettent de diminuer la taille, la consommation électrique et le coût des
produits. Ils ont ainsi permis de démocratiser l'utilisation de l'informatique dans un grand nombre de
produits et de procédés.
Les microcontrôleurs sont fréquemment utilisés dans les systèmes embarqués, comme les
contrôleurs des moteurs automobiles, les télécommandes, les appareils de bureau, l'électroménager,
les jouets, la téléphonie mobile, etc.
2- PIC 16F84
Un PIC est un microcontrôleur , c'est une unité de traitement de
l'information de type microprocesseur à laquelle on a ajouté des
périphériques internes permettant de faciliter l'interfaçage avec
le monde extérieur sans nécessiter l'ajout de composants
externes . Les PICS sont des composants RISC ( composant à jeu
d'instructions réduit )
• VDD et VSS : Bornes d'alimentation + 5V et OV . C'est ici que seront branchés le régulateur de
tension et la masse .
• MCLR : " Reset " du circuit .
• OSCI et OSC2 Bornes de connexion de . l'horloge .
• RAO à RA4 : Port d'E / S A.
• RB0 à RB7 Port d'E / S B.
#include<p16F84A.inc>
BSF STATUS ,5
BCF TRISA.0
BCF STATUS,5
BSF PORTA.0
END
-La nouvelle action sur BP éteint la LED
LIST P=16F84A, r=dec, f-inhx8m
#include<p16F84A.inc>
BSF STATUS 5
MOVLW 0X02
MOVWF TRISA
BCF STATUS,5
BTFSS PORTA,1
GOTO LEDON
BCF PORTA,RAO
GOTO TEST1
END
Soit le schéma à base du PIC 16F84A suivant :
a ) Donner la logigramme et le programme assembleur qui permet de générer le code BCD du mot
binaire présent à l'entrée du port A. Ce code est disponible en sortie du port B pour être affiché sur
un afficheur 7 segments à cathode commune
• le programme assembleur
#include<p16F84A.inc>
BSF STATUS 5
CLRF TRISB
CLRF PORTB
MOVLW 0x1F
MOVWF TRISA
BCF STATUS,5
MOVLW 0X00
MOVWF TRISB
SUBLW 0x00
BTFSS STATUS,2
GOTO TEST2
MOVLW 0x3F
MOVWF PORTB
GOTO TEST1
SUBLW 0x01
BTFSS STATUS,2
GOTO TEST3
MOVLW 0x06
MOVWF PORTB
GOTO TEST1
SUBLW 0x02
BTFSS STATUS,2
GOTO TEST4
MOVLW 0x5B
MOVWF PORTB
GOTO TEST1
SUBLW 0x03
BTFSS STATUS,2
GOTO TEST5
MOVLW 0x4F
MOVWF PORTB
GOTO TEST1
SUBLW 0x04
BTFSS STATUS,2
GOTO TEST6
MOVLW 0x66
MOVWF PORTB
GOTO TEST1
SUBLW 0x05
BTFSS STATUS,2
GOTO TEST7
MOVLW 0x6C
MOVWF PORTB
GOTO TEST1
SUBLW 0x06
BTFSS STATUS,2
GOTO TEST8
MOVLW 0x7C
MOVWF PORTB
GOTO TEST1
TEST8 MOVF PORTA,0
SUBLW 0x07
BTFSS STATUS,2
GOTO TEST9
MOVLW 0x07
MOVWF PORTB
GOTO TEST1
BTFSS STATUS,2
GOTO TEST10
MOVLW 0x7F
MOVWE PORTB
GOTO TEST1
BTFSS STATUS,2
GOTO TEST1
MOVLW 0x6F
MOVWF PORTB
GOTO TEST1
END
#include<P16F84A.inc>
_CONFIG CP OFF & XT OSC & PWRTE OFF & WDT OFF
BSF STATUS,5
MOVLW 0X00
MOVWF TRISB
BSF TRISA,
BCF STATUS,5
CLRF PORTB
MOVWF COMPTEUR
GOTO START
GOTO STR
SUBLW 0x00
BTFSS STATUS,2
GOTO TEST2
INCF COMPTEUR
MOVLW 0x3F
MOVWF PORTB
GOTO START
SUBLW 0x01
BTFSS STATUS,2
GOTO TEST3
INCE COMPTEUR
MOVLW 0x06
MOVWF PORTB
GOTO START
SUBLW 0x02
BTFSS STATUS,2
GOTO TEST4
INCE COMPTEUR
MOVLW 0x5B
MOVWF PORTH
GOTO START
SUBLW 0x03
BTFSS STATUS,2
GOTO TEST5
INCE COMPTEUR
MOVLW 0x4F
MOVWF PORTB
GOTO START
SUBLW 0x04
BTFSS STATUS,2
GOTO TEST6
INCE COMPTEUR
MOVLW 0x66
MOVWF PORTB
GOTO START
SUBLW 0x05
BTFSS STATUS,2
GOTO TEST7
INCF COMPTEUR
MOVLW 0x6C
MOVWF PORTB
GOTO START
SUBLW 0x06
BTFSS STATUS,2
GOTO TEST8
INCF COMPTEUR
MOVLW 0x7C
MOVWF PORTB
GOTO START
SUBLW 0x07
BTFSS STATUS,2
GOTO TEST9
INCF COMPTEUR
MOVLW 0x07
MOVWF PORTB
GOTO START
SUBLW 0x08
BTFSS STATUS,2
GOTO TEST10
INCF COMPTEUR
MOVLW 0x7F
MOVWF PORTB
GOTO START
SUBLW 0x09
BTFSS STATUS,2
GOTO START
MOVLW 0x6F
MOVWF PORTB
GOTO CLEAR
END
2- Manip 2
On désire faire clignoter une diode LED à l'aide d'un microcontrôleur 16F84A comme décrit à la figure
ci-dessous. Si une interruption arrive sur l'entrée RBO (front descendant) la LED s'allume pendant 5s.
Pour générer la temporisation on utilise le TIMERO avec horloge externe de fréquence de 1kHz
. 1 ) Donner la valeur en hexadécimal du registre OPTION REG . Pour avoir une temporisation de 500
ms H ‘22’
Configuration de l'interruption
2 ) Donner la valeur en hexadécimal du registre INTCON pour l'interruption INT ( front descendant
sur RB0)
H ‘90’
3 ) Donner le code en assembleur répondant à ce cahier des charges
#include P16F84A.inc>
ORG 0X00
GOTO DEBUT
ORG 0X04
MOVLW OXOA
MOVWF CPT
DECFSZ CPT,1
GOTO TEM
RETFIE
BCF TRISA,0
BSF TRISA,4
BSF TRISB,0
MOVLW 0X22
MOVWF OPTION_REG
MOVLW 0X90
MOVWF INTCON
BCF STATUS,5
CALL TEMPO500
BCF PORTA,0
CALL TEMPO500
GOTO LEDON
GOTO TEST
BCF INTCON, TOIF
RETURN
END
3- Manip 3
On désire automatiser la gestion des LEDs tricolores à l'aide d'un PIC 16F84A comme le montre la
figure suivante :
1 ) Donner la logigramme et le programme assembleur qui permettent de faire clignoter les 3 LEDs
tricolores simultanément .
• le programme assembleur
#include<P16F84A.inc>
BSF STATUS,5
MOVLW 0X00
MOVWE TRISA
MOVLW 0X02
MOVWF OPTION_ERG
BCF STATUS,5
BSF PORTA,1
BSF PORTA,2
CALL TEMPO500
BCF PORTA,0
BCF PORTA,1
BCF PORTA 2
CALL TEMPO500
CALL TEMPO500
GOTO START 1
GOTO LOOP
BCF INTCON,TOIF
DECESZ CPT,1
GOTO TEST1RETURN
END
2 ) Ecrire le programme assembleur correspond à ce cahier des charges
#include<P16F84A.inc>
BSF STATUS 5
MOVLW 0X00
MOVWE TRISA
MOVLW 0X02
MOVWF OPTION_REG
BCF STATUS,5
BCF PORTA,1
BCF PORTA 2
MOVLW OXOA
MOVWF CPT1
DECFSZ CPT1,1
GOTO TEST1
BCF PORTA,0
BSF PORTA,1
BCF PORTA,2
CALL TEMPO500
CALLPORTA,0
BCF TEMPO500
PORTA,0
BCF PORTA,1
BCF PORTA
BSF PORTA,1
2
BSF PORTA
MOVLW 2
OXOA
MOVWF CPT2
TEST2 CALL
TEMPO500DECFSZ
CPT2,1 GOTO
TEST2
GOTO START
MOVFW CPT
TOIFGOTO LOOP
DECFSZ CPT,1
GOTO TEST
RETURN
END
III- Les Manipulations de TP2
1-Manip 1
2-Manip 2
3-Manip 3