Vous êtes sur la page 1sur 7

République Algérienne Démocratique et Populaire

Ministère d'Enseignement Supérieur et de la Recherche Scientifique


Université Mohamed EL Bachir EL Ibrahimi de Bordj Bou Arréridj

Faculté des Sciences et de la Technologie

Département de Génie Electrique et Electronique (GEE)

Filière : Electronique

Compte-rendu TP-2

Microcontrôleur :

Utilisation le PIC 16F84A et afficheur 7 segment


(anode commune et cathode commune)

Réalisé par :
 MOUSSELMAL Abdesselam
 BAAMARA Abdallah

2021/2022
1. Affichage Décimal d’une variable 8 bits sur 1 afficheur 7 segment :

 Description :
Le code suivant permet d’incrémenter et d’afficher une variable décimal de 8 bits sur
un afficheur 7 segment. Un bouton poussoir liée au pin RB0 est programmé comme étant
une interruption, l’appui sur ce bouton permet d’incrémenter cette variable.
 L’organigramme :

 Le code assembleur cathode commune :

Dans les cas des afficheurs 7 segments , afin de minimiser le nombre de broches à
câbler , les anodes ou les cathodes sont pré câblées ensembles à l’intérieur de l’afficheur.
Il y a donc toujours une broche commun et 8 broches séparées pour les segments et le
point décimal .
;...............Directives d'assemblage..................
list p=16f84a
#include p16f84a.inc
__config H'3ff9'
;...............Definition des constantes..................
#define inter0 1
;...............Definition des registres temporaires..................
retard1 EQU 0X0C
retard2 EQU 0X0D
;...............Initialisation des ports A et B..................
ORG 0
BSF STATUS,RP0
MOVLW 0X00
MOVWF TRISB
MOVLW 0X1F
MOVWF TRISA
BCF STATUS,RP0
;...............Initialisation de L'afficheur à 0..................
MOVLW 0x3f
MOVWF PORTB
;...............Programme principal..................
debut MOVLW 0x3f
MOVWF PORTB
BTFSS PORTA,inter0
GOTO debut
MOVLW 0x3f
MOVWF PORTB
call tempo
MOVLW 0x06
MOVWF PORTB
call tempo
MOVLW 0x5B
MOVWF PORTB
call tempo
MOVLW 0x4F
MOVWF PORTB
call tempo
MOVLW 0x64
MOVWF PORTB
call tempo
MOVLW 0x6D
MOVWF PORTB
call tempo
MOVLW 0x7D
MOVWF PORTB
call tempo
MOVLW 0x07
MOVWF PORTB
call tempo
MOVLW 0x7F
MOVWF PORTB
call tempo
MOVLW 0x6F
MOVWF PORTB
call tempo
goto debut
;...............Programme de temporisation..................
tempo
MOVLW 0xff
MOVWF retard1
MOVWF retard2
attente
DECFSZ retard1,F
GOTO attente
MOVLW 0xff
MOVWF retard1
DECFSZ retard2,F
GOTO attente
return
end
……………………………………………………………………………………………..
 Montage sur protues :

Lorsque nous appuyons sur la touche, il démarre incrémenter et afficher les valeur en
décimal de 0 à 9 , donc chaque fois changer la valeur .
 Le code assembleur anode commune :
Pour contenter tous le monde, il existe donc deux versions d’afficheurs : une version à
anode commune (abréger CA, toutes les anodes sont reliées ensembles ) et une autre à
cathode commune (abrégée CC , toutes les cathodes sont reliées ensembles ) la différence
est subtile, mais celle-ci implique un câblage totalement différent suivant le type.
Donc on va changer dans le code premier de cathode commune pour obtenir un code qui
gérer l’afficheur anode commune :
;...............Directives d'assemblage..................
list p=16f84a
#include p16f84a.inc
__config H'3ff9'
;...............Definition des constantes..................
#define inter0 1
;...............Definition des registres temporaires..................
retard1 EQU 0X0C
retard2 EQU 0X0D
;...............Initialisation des ports A et B..................
ORG 0
BSF STATUS,RP0
MOVLW 0X00
MOVWF TRISB
MOVLW 0X1F
MOVWF TRISA
BCF STATUS,RP0
;...............Initialisation de L'afficheur à 0..................
MOVLW 0x3f
MOVWF PORTB
;...............Programme principal..................
debut MOVLW 0XC0
MOVWF PORTB
BTFSS PORTA,inter0
GOTO debut
MOVLW 0XC0
MOVWF PORTB
call tempo
MOVLW 0XF9
MOVWF PORTB
call tempo
MOVLW 0xA4
MOVWF PORTB
call tempo
MOVLW 0xB0
MOVWF PORTB
call tempo
MOVLW 0x99
MOVWF PORTB
call tempo
MOVLW 0x92
MOVWF PORTB
call tempo
MOVLW 0x82
MOVWF PORTB
call tempo
MOVLW 0xF8
MOVWF PORTB
call tempo
MOVLW 0x80
MOVWF PORTB
call tempo
MOVLW 0x90
MOVWF PORTB
call tempo
goto debut
;...............Programme de temporisation..................
tempo
MOVLW 0xff
MOVWF retard1
MOVWF retard2
attente
DECFSZ retard1,F
GOTO attente
MOVLW 0xff
MOVWF retard1
DECFSZ retard2,F
GOTO attente
return
end
……………………………………………………………………………………..
 Montage sur protues :
2. Conclusion :
Dans cette expérience, nous avons appris à changer le programme que nous avons édité
dans MPLAB pour Déterminer fonction de l’afficheur (anode commune ou cathode
commune ) , mais l’affichage doit-il changer selon le type de code hexa qui correspond
les valeurs décimales .

Vous aimerez peut-être aussi