Vous êtes sur la page 1sur 8

Institut de maintenance et de securité

industrielle (IMSI)

Compte rendu TP 1 – 2 - 3
Module Microcontroleur

REALISE PAR :
MOSBAH ABDERRAHMENE
Fiche tp01 ;
1-manipilation A ;

Un programme en c qui fait un allumer une led RBO sur le


PORTB en utilisant un bouton poussoir connecté sur le
PORTA entrée RA0 ;

voidmain() {

ADCON1=0x06; //PORTA est configuré numérique

TRISA=0xFF; TRISB=0x00; PORTB=0;

do {if (PORTA.RA0==1)PORTB.RB0=1; else PORTB.RB0;


delay_ms(300);

}while(1);

TRISA // entrée

PORTB//sortie

Bouton (0-1);

A <<En appuyant sur le bouton poussoir la led s’allumeen


relâchant la led s’éteint
B en relâchant la led reste allumé

voidmain() { int i=0;

ADCON1=0x06;//PORTA est confguré

TRISA=0xFF;

TRISB=0x00;

PORTB=0;

do{

if(PORTA.RA0==1)

PORTB.RB0=1; else PORTB.RB0=1;

}while(1);

C en relâchant la led reste éteint par défaut

voidmain() { int i=0;

ADCON1=0x06;//PORTA est confguré

TRISA=0xFF;

TRISB=0x00;

PORTB=0;
do{

if(PORTA.RA0==1)

PORTB.RB0=1; else PORTB.RB0=1 delay_ms (300);

}while(1);

VCC

U1
13 33
OSC1/CLKIN RB0/INT
14 34 R2
OSC2/CLKOUT RB1
1
MCLR/Vpp/THV RB2
35 D1
36 LED-BLUE
RB3/PGM 1K
2 37
RA0/AN0 RB4
3 38
RA1/AN1 RB5
4 39
RA2/AN2/VREF- RB6/PGC
5 40
RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI
7 15
RA5/AN4/SS RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
8 17
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
R1 10
RE2/AN7/CS RC4/SDI/SDA
23
1K 24
RC5/SDO
25
RC6/TX/CK
26
RC7/RX/DT
19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877

2-Manipilation B ;

Ecrire un programme en C qui fait un défilement de lumière


sur le PORTB sous la forme suivante ;

0*01→0*02………………………………………………………→0*00
D1
R2
1k D2
Vcc R3 LED-RED

1k D3
R4 LED-RED

1k D4
U1 R5 LED-RED

13 33
14
OSC1/CLKIN RB0/INT
34
1k D5
1
OSC2/CLKOUT RB1
35
R6 LED-RED
MCLR/Vpp/THV RB2
R1 RB3/PGM
36
1k D6
1k 2 37 R7 LED-RED
RA0/AN0 RB4
3 38
RA1/AN1 RB5
4 39
5
RA2/AN2/VREF- RB6/PGC
40
1k D7
RA3/AN3/VREF+ RB7/PGD R8 LED-RED
6
RA4/T0CKI
7 15
RA5/AN4/SS RC0/T1OSO/T1CKI
16
1k D8
RC1/T1OSI/CCP2 R9 LED-RED
8 17
RE0/AN5/RD RC2/CCP1
9 18 1k
RE1/AN6/WR RC3/SCK/SCL
10 23 LED-RED
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
25
RC6/TX/CK
26
RC7/RX/DT
19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877

Fiche tp02
Le Timer

OPTION REGISTER : ( h'81' ou h'181').

Ce registre en lecture écriture permet de congrueles pré


diviseurs du TIMER et du Watch dog, la source du TIMER, le
front des interruptions et le choix du Pull up sur le Port B
Bit 7 Bit 0

RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0


Manipilation A ;
Ecrire un programme en c qui affiche des valeurs
décimaux sur l’afficheur 7 segment en utilisant le
PORTB pour afficher les valeurs numérique décimal
de 0 à 9.

voidmain() { int i=0;

ADCON1=0x06;//PORTA est confguré

TRISA=0xFF;

PORTB=0;

do{

if(PORTA.RA0==1)

{PORTB=i++;delaY_ms(400); }

}while(1);
VCC

U1
13 33
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
1 35
MCLR/Vpp/THV RB2
36
RB3/PGM
2 37
RA0/AN0 RB4
3 38
RA1/AN1 RB5
4 39
RA2/AN2/VREF- RB6/PGC
5 40
RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI
7 15
RA5/AN4/SS RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
8 17
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
R1 RC6/TX/CK
25
1K 26
RC7/RX/DT
19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877

Maniplation B
voidmain() { int i=0;

ADCON1=0x06;//PORTA est confguré

TRISA=0xFF;

PORTB=0;

do{

if(PORTA.RA0==1)

{PORTB=i++;delaY_ms(400); } if(i<=255) i=0;

}while(1);

}
VCC

U1
13 33
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
1 35
MCLR/Vpp/THV RB2
36
RB3/PGM
2 37
RA0/AN0 RB4
3 38
RA1/AN1 RB5
4 39
RA2/AN2/VREF- RB6/PGC
5 40
RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI
7 15
RA5/AN4/SS RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
8 17
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
R1 RC6/TX/CK
25
1K 26
RC7/RX/DT
19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877

Remarque ;
Les deux afficheurs BCD/7segment connecté au PORTB sont affiché
les valeurs numérique décimal.

Conclusion ; on utilise les RA1 ET RA2 du PORTA comme des


bouton poussoir pour incrémenter et décrémenter les valeurs de
7segement et nous pouvons aussi utiliser le TIMER.

Vous aimerez peut-être aussi