RÉPUBLIQUE ALGÉRIENNE DÉMOCRATIQUE ET POPULAIRE
MINISTÈRE DE LA FORMATION ET DE L’ENSEIGNEMENT PROFESSIONNELS
Centre d'Excellence Algéro-Français de
INSFP MEE
Constricution electrique Formation aux métiers de l'énergie et de
Sbaat – Rouiba
l'Électricité (CEAFE) de Rouiba
Mme MAMOUZI PIC
1er Année BTS 2EAI – S4
TP02 : Afficheur 7 segment
1. Objectifs :
A la fin du TP, les stagiaires doivent être capables programmer et câbler un afficheur 7segment à
l’aide de logiciel de programmation (mikroC PRO for PIC) et simulateur Proteus correctement.
2. Les utiles :
Afficheur 7segment (anode commun ou cathode commun)
Carte programmable PIC16F84A
Décodeur
Pile 9V
Régulateur 7805
Quartz 4MHZ
Condensateur 22picoF
Programmateur PICkit3
Fils
3. La réalisation
1) Créer un programme qui affiche les chiffres sur l’afficheur 7 segment de 0 jusqu’à 9
(différence de temps entre eux 100ms)
Cathode commun :
Conseption
Pragramme :
void main() {
Page 1 sur 6
TRISB=0X00;
PORTB=0X00;
for(;;)
{
PORTB=0b00111111;
delay_ms(100);
PORTB=0b00000110;
delay_ms(100);
PORTB=0b01011011;
delay_ms(100);
PORTB=0b01001111;
delay_ms(100);
PORTB=0b01100110;
delay_ms(100);
PORTB=0b01101101;
delay_ms(100);
PORTB=0b01111101;
delay_ms(100);
PORTB=0b00000111;
delay_ms(100);
PORTB=0b01111111;
delay_ms(100);
}
}
Anode commun :
Conseption :
Programme :
void main() {
Page 2 sur 6
TRISB=0X00;
PORTB=0X00;
for(;;)
{
PORTB=0b01000000;
delay_ms(100);
PORTB=0b01111001;
delay_ms(100);
PORTB=0b00100100;
delay_ms(100);
PORTB=0b00110000;
delay_ms(100);
PORTB=0b00011001;
}
}
2) On utilise le 7 segment anode commun avec décodeur HD74LS47P , créer le programme
pour cela
void main() {
TRISB=0X00;
PORTB=0X00;
for(;;)
{
PORTB=0;
delay_ms(100);
Page 3 sur 6
PORTB=1;
delay_ms(100);
PORTB=2;
delay_ms(100);
PORTB=3;
delay_ms(100);
PORTB=4;
delay_ms(100);
PORTB=5;
delay_ms(100);
PORTB=6;
delay_ms(100);
PORTB=7;
delay_ms(100);
PORTB=8;
delay_ms(100);
PORTB=9;
delay_ms(100);
}
}
Peut-on créer un programme plus simple que son presédéceseur ? si oui, fais le
void main() {
TRISB=0X00;
PORTB=0X00;
delay_ms(100);
for(;;)
{
PORTB++;
delay_ms(100);
if( PORTB==9)
PORTB=0;
delay_ms(100) ;
}
}
3) Créer un programme qui affiche le chiffre « 26 » sur double afficheur 7 segment
Page 4 sur 6
Conception :
Programme :
void main() {
TRISA=0X00;
TRISB=0X00;
PORTA=0;
PORTB=0;
for(;;){
PORTB=6;
PORTA=0b00000001;
PORTA=0b00000011;
PORTB=2;
PORTA=0b00000010;
PORTA=0b00000011;
}
}
Page 5 sur 6
Conclusion :
Page 6 sur 6