Академический Документы
Профессиональный Документы
Культура Документы
Christophe*****
IEPSCF
CCLE
U
RAPPORTMICROCONTROLEURLABO1
Professeur:Najdi
BachelierInformatique&Systme 2013
Tabledesmatires
PrsentationduProjet.........................................................................................2
SchmaduchenillardavecProteus......................................................................3
Mettre1lebitB2:............................................................................................4
Mettre0lebitB0:............................................................................................4
ModificationdeRC1pourqu'ilclignote:.............................................................5
Chenillardsimplesedplaantdehautenbas:..................................................6
Chenillarddoublesedplaantdehautenbasetdebasenhaut
simultanment:....................................................................................................7
Chenillardentassementsedplaantets'accumulantverslebas:.................8
Professeur:Najdi
P a g e |1
BachelierInformatique&Systme 2013
PrsentationduProjet
Prparation:Soitlecontenud'unregistreBsur8bits.
B7
B6
B5
B4
B3
1
B2
B1
B0
Enpartantduprogrammesuivant:
Voidmain()
{
TRISC=0;
PORTC=0;
While(1)
PORTC=0x01;
Delay_ms(1000);
PORTC=0x00;
Delays_ms(1000);
}
}
Vousdevezmettre1lebitB2sanschangerlesautresbits.Commentfaitesvous?
Vousdevezmettre0lebitB0sanschangerlesautresbits.Commentfaitesvous?
1. Ecrireceprogrammepourl'essayer,lecompilerlechargerl'excuter.Modifierlepourfaire
clignoterlaLedRC1.
2. Ecrireunchenillardsimpleuneledsedplaantsurleportcdehautenbasetenutilisantle
mmetypedetemporisationquedansleprogrammeexemple.
3. Ecrireunchenillarddouble.
Unchenillarddehautenbasetsimultanementunautredebasenhautquisecroisent.
4. Ecireunchenillardentassement.1ledsedplaantets'accumulentenbas.
Professeur:Najdi
P a g e |2
BachelierInformatique&Systme 2013
SchmaduchenillardavecProteus
Lechenillardestcompos:
8LedBiby
1MicrocontrleurPIC16F877afrquencedel'horloge8Mhz
9Rsistancede3k3
1Masse
1Alimentation
Professeur:Najdi
P a g e |3
BachelierInformatique&Systme 2013
Mettre1lebitB2:
PORTC
B7
B6
B5
B4
B3
B2
B1
B0
RC7
RC6
RC5
RC4
RC3
RC2
RC1
RC0
ETAT
HEXA
0x80
0x40
0x20
0x00
0x00
0x00
0x02
0x01
BINAIRE
128
64
32
ETAT
HEXA
0x80
0x40
0x20
0x00
0x00
0x04
0x02
0x01
BINAIRE
128
64
32
16
ETAT
HEXA
0x80
0x40
0x20
0x00
0x00
0x04
0x02
0x00
BINAIRE
128
64
32
Ilsuffitdechangerl'hexadcimaledeB2pourquel'tatpasse1
B2=0x00tat00x04tatpassera1
Mettre0lebitB0:
IlsuffitdereprendreletableaucidessusestdechangerlecodehexadcimaledeB0pour
quel'tatpas0.
B0=0x01tat10x00tatpassera0
Professeur:Najdi
P a g e |4
BachelierInformatique&Systme 2013
ModificationdeRC1pourqu'ilclignote:
PourfaireclignoterRC1ilsuffitdechangerl'tatdanslaprogrammationsachantqueRC1correspond
laLedB1soitenbinaire2etenhexadcimal0x02
PORTC=0x02quicorrespondRC1
Leprogrammeseralesuivant:
voidmain()
{
TRISC=0;
PORTC=0;
while(1)
{
PORTC=0x02;//Etat1pourRC1
Delay_ms(1000);
PORTC=0x00;//Etat0
Delay_ms(1000);
Professeur:Najdi
P a g e |5
BachelierInformatique&Systme 2013
Chenillardsimplesedplaantdehautenbas:
Onmodifieleprogrammeeninitialisantagal1etunebouclequis'incrmentede1chaque
passageinfrieurgal8.PORTCprendlavaleurdea,aauraundcalagegauche.
Lecode:
voidmain(){
shorta=1;
//initialisea
inti;
//initialiseipourlabouclefor
PORTC=0;//InitializePORTC
TRISC=0;//InitializeTRISC
for(i=0;i<=8;i++)
{
PORTC=a;//PORTCprendlavaleurdea
a=a<<1;//As'incrmentede1chaquepassageverslagauche
Delay_ms(1000);//Delaitoutesles1000mslaledchangedeposition
}
}
Professeur:Najdi
P a g e |6
BachelierInformatique&Systme 2013
Chenillarddoublesedplaantdehautenbasetdebasenhaut
simultanment:
OninitialiseapourRC0ledbutduchenillardetbpourRC7lafindeceluici,unebouclequi
s'incrmentede1chaquepassageinfrieuretgal8.as'incrmentede1chaquepassagevers
lagaucheetbsedcrmentede1chaquepassageversladroite.PORTCprendlavaleurdeaetb
cequipermetd'allumerlapremireLedduhautetlapremireLeddubas.
Lecode:
voidmain()
{
inta=0x01;
intb=0x80;
inti;
PORTC=0x81;//InitializePORTC
TRISC=0;//ConfigurePORTCasoutput
for(i=0;i<=8;i++)
{
(a=a<<1)&&(b=b>>1);
Delay_ms(1000);
PORTC=(a+b);
Delay_ms(1000);
}
}
Professeur:Najdi
P a g e |7
BachelierInformatique&Systme 2013
Chenillardentassementsedplaantets'accumulantverslebas:
Lecode:
#defineDELAI_ATTENTE1000
#defineNB_DE_BITS8
voidcourse_chen(void)
{
staticintvaleur=0;
staticintnb_de_bits_actifs=0;
//sivaleurestgalelavaleurcourante
//alorsondcalevaleurde1
//sinonvaleur=1
valeur=(valeur?(valeur<<1):1);
//Affiche
//Onsoustraitoudcaled1bit
//Utilisationde+etnon|pourpermettreaffichageduchenillardteint
PORTC=~((1<<nb_de_bits_actifs)1)+valeur;
//S'iln'yapasdebitsactifsousivaleur=1etdcalage=0
if((!nb_de_bits_actifs)||(valeur==1<<(nb_de_bits_actifs1)))
{
Professeur:Najdi
P a g e |8
BachelierInformatique&Systme 2013
valeur=0;
//s'ilyaencoredesbitsactifsalorsnb_de_bits_actifs1
//sinonnb_de_bits_actifs=NB_DE_BITS
nb_de_bits_actifs=(nb_de_bits_actifs)?(nb_de_bits_actifs1):NB_DE_BITS;
}
intmain(void)
{
TRISC=0x00;
for(;;)
{
course_chen();
delay_ms(DELAI_ATTENTE);
}
}
Professeur:Najdi
P a g e |9