0% ont trouvé ce document utile (0 vote)
68 vues10 pages

Programmation MikroC pour PIC

Ce TP présente la réalisation de plusieurs programmes en langage C embarqué pour la programmation de microcontrôleurs PIC. Les étudiants ont appris à programmer des LEDs, un chenillard et un afficheur 7 segments en utilisant MikroC et la simulation avec ISIS.

Transféré par

Sarra Sdiri
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
68 vues10 pages

Programmation MikroC pour PIC

Ce TP présente la réalisation de plusieurs programmes en langage C embarqué pour la programmation de microcontrôleurs PIC. Les étudiants ont appris à programmer des LEDs, un chenillard et un afficheur 7 segments en utilisant MikroC et la simulation avec ISIS.

Transféré par

Sarra Sdiri
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

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