Vous êtes sur la page 1sur 10

Université de Monastir

Ecole Nationale d’Ingénieur de Monastir

TP1 : Initialisation à la programmation des microcontrôleurs PIC


en C Embarqué

Réaliser par : Hassine Abir


&
Attig Houda

Classe : 2éme génie électrique

Groupe : 1

Enseignant : Mbarek A

2018/2019

2EME ÉLECTRIQUE G1 TP2 1


Université de Monastir
Ecole Nationale d’Ingénieur de Monastir

I. Objectif :
A partir de ces travaux pratiques, nous avons entrainé à programmer sous mikroC tout en utilisant
ISIS pour faire la simulation concernant les schémas proposés.
II. les entrées/sorties :
1. réalisation du schéma électronique sous ISIS

2. Ecrire des programmes en langage Mikro C pour réaliser les fonctionnements suivants :
a. Allumer les Diodes Leds (D1, D2, D3) de la mise sous tension du circuit
Code Mikro C :

void main() {

TRISB=0;

TRISC=0;

TRISD=0b00100000;

PORTB.F6=0;

PORTC.F4=0;

PORTD.F5=1;

while(1) {

PORTB.F6=1;

PORTC.F4=1;

PORTD.F3=0;

} 2EME ÉLECTRIQUE G1 TP2 2


}
Université de Monastir
Ecole Nationale d’Ingénieur de Monastir

Simulation :

b. Allumer la Diose Led D1 de la mise sous tension et allumer D2 si l’interrupteur W est


fermé.
Code Mikro C :

void main() {
TRISB.F6=0;
TRISC=0;
TRISB.F1=1;
PORTB.F6=0;
PORTC.F4=0;
while(1) {
if (PORTB.F1==1)
{
PORTC.F4=1;
PORTB.F6=0;
}
else
{
PORTC.F4=0;
PORTB.F6=1;
}
2EME ÉLECTRIQUE G1 TP2 3
}

}
Université de Monastir
Ecole Nationale d’Ingénieur de Monastir

Simulation :
 Interrupteur W ouvert (D1 est allumé)

 Interrupteur W fermé (D2 allumé)

2EME ÉLECTRIQUE G1 TP2 4


Université de Monastir
Ecole Nationale d’Ingénieur de Monastir

c. Modifier le programme précédant pour void main() {


clignoter la Led D3 à une fréquence de TRISB.F6=0;
0.25Hz si l’interrupteur W est fermé et le TRISC=0;
bouton poussoir B est actionné. TRISB.F1=1;
TRISD=0b00100000;
PORTB.F6=0;
PORTC.F4=0;
PORTD.F5=1;
while(1) {
PORTB.F6=1;
if (PORTB.F1==1)
{
PORTC.F4=1;
if (PORTD.F5==1)
{
PORTD.F3=0;
delay_ms(2000);
PORTD.F3=1;
delay_ms(2000);
}
}
else
PORTC.F4=0;
}
}
d. Changer le programme pour que chaque void main() {
action sur le bouton pousoir B démarre un int i=0;
cycle de clignotement de la Diode Led D3 de TRISB.F6=0;
10 période et à une fréquence de 0.25Hz. TRISC=0;
TRISB.F1=1;
TRISD=0b00100000;
PORTB.F6=0;
PORTC.F4=0;
PORTD.F5=1;
while(1) {
i=0;
PORTB.F6=1;
if (PORTB.F1==1)
{
PORTC.F4=1;
if (PORTD.F5==1)
{
for(i==0;i<10;i++)
{
PORTD.F3=0;
delay_ms(2000);
PORTD.F3=1;
delay_ms(2000);

2EME ÉLECTRIQUE G1 TP2 5


Université de Monastir
Ecole Nationale d’Ingénieur de Monastir

}
}
}
else
PORTC.F4=0;
}
}

III. Chenillard à 3 façon différentes :

1.  ??????????????????Représenter le fonctionnement désiré par un algorigramme.


2. Traduire l’algorigramme en langage Mikro C.
void main()
{
int a=0;
TRISB.F0=1;
TRISC=0;
PORTC=0;
while(1)
{
if (a==0)
{

PORTC=0b11111111;
delay_ms(1000);
PORTC=0b00000000;
delay_ms(1000);

2EME ÉLECTRIQUE G1 TP2 6


Université de Monastir
Ecole Nationale d’Ingénieur de Monastir

}
if(PORTB.F0==1)
{
a=a+1;
if(a==4)
{
a=0;
}
}
if (a==1)
{

PORTC=0b10101010;
delay_ms(100);
PORTC=0b01010101;
delay_ms(100);
}
if(a==2)
{

PORTC=0b11001100;
delay_ms(100);
PORTC=0b00110011;
delay_ms(100);
}
if(a==3)
{
PORTC=0b00000111;
delay_ms(100);
PORTC=0b00001110;
delay_ms(100);
PORTC=0b00011100;
delay_ms(100);
PORTC=0b00111000;
delay_ms(100);
PORTC=0b01110000;
delay_ms(100);
PORTC=0b11100000;
delay_ms(100);
PORTC=0b11000001;
delay_ms(100);
PORTC=0b10000011;
delay_ms(100);
}
}
}

2EME ÉLECTRIQUE G1 TP2 7


Université de Monastir
Ecole Nationale d’Ingénieur de Monastir

IV. Afficheur 7 segments :

1. Ecrire un programme Mikro C qui permet de réaliser le fonctionnement suivant


 Compteur modulo 10 commandé par le bouton poussoir A.
 Décompteur modulo 10 commndé par le bouton poussoir B.
void main() {
int i=0;
TRISA=3;
TRISB=0;
PORTB=0;
while(1) {
if(i==0)
{
PORTB=0x3F;
delay_ms(50);
}
if(PORTA.F1==1)
{
i=i+1;
if(i==10)
{
i=0;
}
}
if(PORTA.F0==1)
{
if(i==0)
{
2EME ÉLECTRIQUE G1 TP2 8
Université de Monastir
Ecole Nationale d’Ingénieur de Monastir

i=10;
}
i=i-1;
}
if(i==1)
{
PORTB=0x06;
delay_ms(50);
}
if(i==2)
{
PORTB=0x5B;
delay_ms(50);
}
if(i==3)
{
PORTB= 0x4F;
delay_ms(50);
}
if(i==4)
{
PORTB=0x66;
delay_ms(50);
}
if(i==5)
{
PORTB=0x6D;
delay_ms(50);
}
if(i==6)
{
PORTB=0x7D;
delay_ms(50);
}
if(i==7)
{
PORTB= 0x07;
delay_ms(50);
}
if(i==8)
{
PORTB=0x7F;
delay_ms(50);
}
if(i==9)
{
PORTB=0x6F;
delay_ms(50);
}
}

2EME ÉLECTRIQUE G1 TP2 9


Université de Monastir
Ecole Nationale d’Ingénieur de Monastir

}
 Compteur :

 Décompteur :

V. CONCLUSION :
A travers ce TP, nous avons bien traité des applications simples dont le but est de mieux
comprendre  la programmation sous MIKROC.

2EME ÉLECTRIQUE G1 TP2 10

Vous aimerez peut-être aussi