Vous êtes sur la page 1sur 11

MicrocontrleurPICPrsentationetMthodedeprogrammation

TEln

Prsentation des microcontrleurs PIC16F87X


VousdevezavoiravecvouslaphotocopiedeprsentationdesCPIC. LadnominationPICestsouscopyrightdeMicroChip,lesautresfabricantssontdansl'impossibilit d'utiliserceterme.LesdeuxpremierschiffresindiquentlacatgorieduPIC:ici16indiqueunPICdela familleMidRange(milieudegamme)quiutilisedesmotsde14bits.Ensuitevouspouveztrouvezla lettreLquiindiquequelePICpeutfonctionneravecuneplagedetensionbeaucoupplustolrante. Ensuitevoustrouverezleslettressuivantes: C:lammoireprogrammeestuneEPROMouplusrarementuneEEPROM, CR:lammoireprogrammeestdetypeROM, F:lammoireprogrammeestdetypeFLASH. BrochageduPIC16F876 LemicrocontrleurPIC16F876appartientlafamille16F87XdeMICROCHIP.Lescaractristiquesdu PIC16F876sontdanslatroisimecolonne. Ilexistedeuxtypesd'architecturespourlesmicrocontroleurs: 1. ArchitecturedetypeVonNeuMann(68HC11) LaROMcontientlescodesdesinstructionsetlesconstantes.Parexemple,l'instruction LDAA#10(chargerlaconstante10dansl'accumulateurA)occupedeuxadressesenROMpouryloger lecodehxadel'instructionouoprande(ici$96)etlaconstante(ici10). Ledcodaged'unetelleinstructionncessiteplusieurscyclesd'horloge: adresseADsurlebusd'adresse,code$96surlebusdedonnes, adresseAD+Asurlebusd'adresse,valeur10surlebusdedonnes. 2. ArchitecturedetypeHarvard(PIC16F876) L'oprandeestintgrl'instruction.Unseulcycled'horlogeparinstructionsaufpourlessautsetles branchementsquincessitentdeuxcycles.Parexemple,l'instruction MOVLW10(chargerleregistredetravailWaveclaconstante10)sedcomposeencodedel'oprande sur6bitsetlaconstante10codesur8bits.Letoutformedoncenmmoireprogrammeunmotde14 bits: instructionmovlw>11000000001010<constante10 Le jeu d'instructions est rduit (Reduced Instructions Set Computer : RISC) mais la vitesse de fonctionnementestleve. LePIC16F876estunmicrocontrleurRISCd'architecturedetypeHarvard.Lesmmoiresprogrammeet donnesetlesbuscorrespondantssontspars.Cecipermetaummeinstantd'excuterl'instruction l'adressecouranteetdedcoderl'instructionsuivante(structuredetypepipeline). Eninternel'horlogeestquadriphase,cequisignifiequeletempsd'excutiond'uneinstructionestgale Fosc/4.Sivousutilisezunquartz4Mhz,lapriodeseradoncde250nsetletempsd'excutionpourune instructionserade4x250ns=1us. SchmablocduPIC16F876etdescriptiondechaquebroche Organisationdelammoire IlexistetroisblocsdemmoiredansunPIC:lammoireprogramme,lammoirededonnesetla
OlivierDARTOISJacquesDUPRAT Page1

MicrocontrleurPICPrsentationetMthodedeprogrammation

TEln

mmoire EEPROM. Deux adresses sont rserves aux vecteur RESET (adresse $0000) et INTERRUPTION(adresse$0004). Leresetpeuttreprovoqupar: lamisesoustension(POR:PowerOnReset), unniveaubassurlabrocheMCLR(MasterCleaR), lechiendegardeencasdeplantageduprogramme(WDT:WatchDogTimer), encasdebaissedelatensiond'alimentation(BOR:BrownOutReset). Ilexiste14sourcesd'interruptionspossibles(nondtaillici,reportezvousladocofficielle). Leregistred'options(Option_Regregister) Ceregistresertpositionneruncertainnombred'lmentl'initialisationduPIC.C'esttrsimportant carsilePICestmalinitialis,ilnefonctionnerapascommevouslesouhaitez. Bit7:activeoudsactivelesrsistancesinternesdetirageverslehaut(pullup). Lesportsd'entres/sortiesetlesregistresdedirection(PORTxetTRISx) LePIC16F876estquipde22lignesd'entres/sortiesrepartiesentroisportsparalllesbidirectionnels:

6lignessurleportA:RA0RA5, 8lignessurleportB:RB0RB7, 8lignessurleportC:RC0RC7.

Laplupartdeceslignesontunedoublefonctionsuivantleurprogrammation. Lesensdedirectiondesdonnes(entreousortie)estmmorisdansdesregistresTRIS(TRansfertInput Set).TRISAestddiauportA,TRISBauportBetTRISCauportC.Chaquelignepeuttreconfigurs individuellementenentreouensortie. Lamise1d'unbitduregistreTRISconfigurelalignecorrespondanteenentre,un0configure laligneensortie. AuRESET,toutesleslignessontconfiguresenentres. LePORTAetleregistrededirectionTRISA Le port A est un port bidirectionnel 6 fils. Il cumule les fonctions d'E/S numriques, d'entres analogiquesetentreduTimer0.Aureset,ceslignessontenmodeanalogique. LePORTBetleregistrededirectionTRISB LeportBestunportbidirectionnel8fils.LeslignesRB3,RB6etRB7peuventtreutilisesenE/Sou pourlaprogrammationinsitu.ToutesleslignesduportBpeuventtrereliesunersistancedetirage verslehaut(voirregistreOption_Reg).LeslignesRB4RB7peuventdclencheruneinterruption. LePORTCetleregistrededirectionTRISC LeportCestunportbidirectionnel8fils.TouteslesentresduportCsontdesentrestriggerde schmitt. Ce port peut aussi servir pour le Timer1, la ralisation de signaux PWM (Pulse Width Modulation:modulationlargeurd'impulsions),lacommunicationavecdespriphriquesI2Cetenfin dialoguerparvoiesrie.

OlivierDARTOISJacquesDUPRAT

Page2

MicrocontrleurPICPrsentationetMthodedeprogrammation

TEln

TP sur les microcontrleur PIC16F87X


PourraliserceTP,vousavezbesoin: dumatrielsuivant(disponibledanslaboiteduTP):

unecartededveloppementpourPIC16F876avecunblocalimentationouunepile9V unecarteinterrupteursetDELsavecunenappeHE1026 unmoduleICDU40avecuncbleUSBetuncableRJ12 unmoduledeconversionUSBSrieavecuncableUSBetunenappeHE1010

deslogicielssuivants:

PICCCompiler:ditionetcompilationdeprogrammeenlangageCpourlesCPIC, TinyBootLoader:permetdedialoguerparvoiesrieentrelePCetlePIC.Vospouvezaussi utiliserlelogicielHyperTerminallivrenstandardavecWindows.

LaplupartdeslogicielsncessaireslaprogrammationdesPICsontdisponiblessurinternet. UneversiondedmonstrationducompilateurCestdisponible: http://www.ccsinfo.com/picc.shtml LeprogrammeTinyBootLoaderestdisponibleici: http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm

Mthode gnrale pour la programmation d'un PIC


1. ReliezlemoduleICDU40etlePCparl'intermdiaireducbleUSB.ConnectezlemoduleICDU40 lacartedetestparl'intermdiaireducbleRJ12.Connectezsincessairelacarteinters+delsavec unenappeetlesconnecteursHE1026,enfinalimentezlamaquetteen9V(attentionlapolarit)et allumezvotrePC. SivousdevezdialogueravecunPCparvoiesrie,connectezlemoduledeconversionUSBSriela maquette(cbleHE1010)etlePC(cbleUSB). 2. SaisissezvotrecodesourceenlangageCdanslelogicielPICCCompileretsauvegardezle(Ex: test.c). 3. CompilezvotrecodesourceenlangageC.Corrigezvosventuelleserreurs.Silacompilationdevotre codesourcesepassesansproblme,vousobtenezunfichierauformatHEX(Ex:test.hex). 4. ProgrammezvotrePICdepuisl'environnementdedveloppement. 5. DbranchezlecbleRJ12.FaireunresetduPICencoupantl'alimentationetenlaremettant.Votre programmes'excutedemaniretotalementautonomesinonvrifiezvotrecodesource.

OlivierDARTOISJacquesDUPRAT

Page3

MicrocontrleurPICPrsentationetMthodedeprogrammation

TEln

Utilisation de l'environnement de dveloppement intgr (EDI) du compilateur C pour PIC de CCS


Nousallonsprsenterdanslespagessuivantesl'utilisationdel'environnementintgrdedveloppement enlangageCpourPICdel'diteurCCS.LarfrencecompltedulangageCpourPICestdisponiblesur lerseaudanslerpertoireDocumentsElevespuisTElnpuisPIC.Uneaideenligneestaussi intgraulogiciel(enanglaisbiensur:). Pourlancerl'EDI,cliquezsurl'icnePICCCompilerdansledossierRseauElectroniquequise trouvesurlebureaudeWindows.Aulancement,vousobtenezlafentresuivante:

Vousremarquezquecelogicielfonctionneavecunsystmed'ongletpermettantd'accderauxdiffrentes fonctionsdel'environnementdedveloppement. Cliquezsurlapremireicnequireprsenteundossierouvert.PuischoisissezNewpuisSource File.Vousobtiendrezunefentrequivousdemanded'enregistrerunnouveaufichier.Vrifiezquevous tesbiendansvotrerpertoirepersonnelpuistapezlenomdevotreprogrammedanslazoneNomdu fichier(parex:test.c)puisvalidezavecleboutonEnregistrer. Vousobtenezalorslafentresuivante:

1. Vrifiezquelenomdevotrefichiersourceapparatbien(ici:test.c). 2. VouspouvezalorscommencertapervotrecodesourceCdanslazoned'dition.Remarquezque leslignessontnumrotesautomatiquement. 3. Quandvousavezfinivotresaisie,sauvegardezvotrefichierencliquantsurSave.

OlivierDARTOISJacquesDUPRAT

Page4

MicrocontrleurPICPrsentationetMthodedeprogrammation

TEln

Ilfautensuitecompilervotreprogramme,c'estdireconvertirlefichiertexteenlangageCenunesuite d'instructionscomprhensibleparleCPIC:

Vouscliquezalorssurl'ongletCompilepuis: 1. VousvrifiezquevouscompilezvotrecodesourcepourunPIC16F(PCM14bit), 2. Vouslancezlacompilationencliquantsurl'icneCompile, 3. Silacompilations'estdroulecorrectement(sanserreurdonc),vouspouvezprogrammervotre PICencliquantsurl'icneProgramChip.etenslectionnantICD. Silacompilationdevotrecodesourcesepassecorrectementvousobtiendrezalorslafentrecidessous: 1. Cerectanglerappellelenomdevotrefichieretsonemplacement. 2. Cerectangleindiquelenombred'erreurs(errors)etd'avertissements(warnings)

OlivierDARTOISJacquesDUPRAT

Page5

MicrocontrleurPICPrsentationetMthodedeprogrammation

TEln

Danslecascontrairevousobtiendrezlafentrecidessousavecunmessaged'erreurquiapparaitraenbas delafentre(flche1),lalignecontenantl'erreurapparaitrad'ellemme(flche2):

LorsquevouslancezlaprogrammationdevotrePIC,vousobtenezsuccessivementlescranssuivants (attentioncescranspeuventdfilertrsrapidement): Programmationdu PIC.

Connexionversl'ICD. Vrificationdela programmation.

Excutionduprogramme.

OlivierDARTOISJacquesDUPRAT

Page6

MicrocontrleurPICPrsentationetMthodedeprogrammation

TEln

Dverminage de vos programmes


GrceaumoduleICDU40,vouspouvezexcutervotreprogrammedansunmodespcialappellmode paspas.Cemodepermetd'examinern'importequelinstantl'tatdesregistresinternesduPIC, d'avoirlavaleurd'unevariable,delirelecontenudel'eeprom,etc... Cemodesertanalyserlefonctionnementd'unprogrammeetsuivresondroulementlorsqueceluicine fonctionnepasdelamanireattendu.Pouractivercemode,suivezlaprocduresuivante: 1. LalignesuivantedoitapparaitredansvotrecodesourceenlangageC:#DEVICEICD=TRUE sinonlelogicielvousproposeradelerajouterautomatiquement. 2. Cliquezsurl'ongletDebugpuissurl'icneEnableDebbugger.Patientezjusqu'ceque touslesicnessoientactives. 3. Cliquezalorssurl'icneDebugWindowpuissurl'optionShowAll.Vousdevriezalors obtenirlacapturecidessous:

1. Cettefentrepermetdesuivrel'volutiondesdiffrentesvariablesencliquantsurlesdiffrents ongletsdisponibles. 2. L'icneRunpermetd'excuterleprogrammedemanirenormale.Recliquezsurcemme icnepourarrterleprogramme. 3. L'icneSingleStepvouspermetd'excutervotreprogrammeenmodepaspas.Chaqueligne duprogrammeenlangageCestexcutpuisleprogrammes'arrtejusqu'cequevousrecliquiez surceticne. 4. Cettepetiteflchevertevousindiquelalignequivatreexcutlorsquevoustesenmodepas pas.Cetteflchechangedoncdelignechaquefoisquevouscliquezsurl'icneSingleStep. 5. Encasdeproblme,vouspouvezrinitialiserlePICencliquantsurl'icneReset. 6. Enfinilfauttoujoursquitterlemodededverminageencliquantsurl'icneDisable.
OlivierDARTOISJacquesDUPRAT Page7

MicrocontrleurPICPrsentationetMthodedeprogrammation

TEln

Utilisation du logiciel TinyBootLoader


TinyBootLoaderestdisponiblesurlebureaudeWindowsdansledossierRseauElectronique. Aulancementvousobtenezlafentresuivante:

1. Vousvrifiezquelavitessededialoguesurlavoiesrieestde19200baudsoucellequevous avezprogrammdansvotreprogramme(commande#useRS232). 2. Vouschoisissezleportdecommunicationauquelestrelivotremaquette. Lestapes3et4nesontpasncessairecarvousneprogrammerezpaslePICavecTinyBootLoader. SivotreCPICenvoiedesinformationsoudoitrecevoirdesinformationsparlavoiesrie,vousne quittezpaslelogicielTinyBootLoader.Voussuivezlestapescidessous:

1. Cliquezsurl'ongletTerminal. 2. CliquezsurleboutonOpen.Silacommunications'effectuecorrectementlesmessagesvenant duPICs'affichedanslafentrecentrale.Pourarrterlacommunicationilsuffitdecliquersurle boutonClose. 3. PourprparerdesdonnesenvoyerauPIC.Cliquezdanslazonepointepuistapezvotretexte. 4. Pourl'envoyerauPIC,cliquezsurleboutonSend.


OlivierDARTOISJacquesDUPRAT Page8

MicrocontrleurPICPrsentationetMthodedeprogrammation

TEln

Simulation des PIC16F87X avec Isis


LorsquevousavezcompilvotrecodesourceenlangageC,vouspouvezletesteravecIsis6.7.Pourcela, ilfautsaisirdansIsisvotreschma(prendreunPIC16F87Xpourtester).Ensuitefaitesapparatreles caractristiquesduPIC,vousobtiendrezlafentresuivante:

Suivezlaprocduresuivante: 1. Appuyezsurlebouton?pourrcuprervotreprogrammeencodehexadcimal(iciessai2.hex), 2. PrcisezlafrquenceduquartzduPIC(pasbesoindequartzsurleschmaIsis)(ici4MHz). 3. Enfinvrifiezquelemotdeprogrammationvaut0x3D31.Validezvoschoixencliquantsurlebouton OK. Vouspouvezalorslancezunesimulationactiveettestervotreprogramme.

OlivierDARTOISJacquesDUPRAT

Page9

MicrocontrleurPICPrsentationetMthodedeprogrammation

TEln

Prsentation des maquettes


Schmaetimplantationcartededveloppement:
+5V V DD +5V 3

J5
1 P IN

U2
7805 V I GN D V O

S1
ST

R1
220 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

J3 L1
LE D

Implantationdescomposants:

J6
P IN

0 .2 2 F

C4

C5
47F

C6
0 .1 F

C7
0 .1 F V SS

+5V

P2_ V R EF

C2
22pF

C1 X1
22pF

P B 3_E XT

+5V

P OT H

C R Y S T AL

U1
9 10 1 2 3 4 5 6 7 O S C 1 /C L K IN O S C 2 /C L K O U T M C L R /V p p /T H V R R R R R R A A A A A A 0 1 2 3 4 5 /A /A /A /A /T /A N 0 N 1 N 2 N 3 0C N 4 R B 0 /IN T R B 1 R B 2 R B 3 /P G M R B 4 R B 5 R B 6 /P G C R B 7 /P G D R C 0 /T 1 O S O /T 1 C K I R C 1 /T 1 O S I/C C P 2 R C 2 /C C P 1 R C 3 /S C K /S C L R C 4 /S D I/S D A R C 5 /S D O R C 6 /T X /C K R C 7 /R X /D T 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 6 E /S

1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2

S2
P B 3_E XT ST P B 3uC P B 3 _ IC D

S3

ST

H E 1 0 2 6 P B 3uC

P B 3 _ IC D P B 6 P B 7

6 5 4 3

J2

P ro g ra m m a ti o n D v e rm i n a g e

V PP

P1_ V R EF+

/V R E F /V R E F + KI /S S

P B 6 P B 7 6 s o r t i e s

+5V V PP

2 1 E MB R J12T UR G

P OT H

+5V

J_M A S S E
P IN P IC 1 6 F 8 7 6 A

J1
1 2 3 4 5 6 7 8 9 10

C o m m u n ic a tion V o i e S r i e

J_A N 0
P IN

J_ A N 1
P IN

J_ A N 4
P IN

+5V

R2
10K

M a q u e t t e T P P I C T E ln O c t 2 0 0 6

H E 1 0 1 0 tu rg o t

Echelle70%
Bit2 PB2 Bit3 PB3 Bit4 PB4 Bit5 PB5 Bit6 PB6 Bit7 PB7

Implantationcarteinter+dels:
Bit0 PC0 Bit1 PC1
26

Bit2 PC2
25

Bit3 PC3

Bit4 PC4

Bit5 PC5

Bit6 PC6

Bit7 PC7

Bit0 PB0

Bit1 PB1

PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7

PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7

CarteInters+DELsManipPIC16F876
PB0 1 PB1 PB2 PB3 PB4 PB5 PB6 PB7

GND VCC 2 1

GND VCC

0 Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7

ImplantationconvertisseurUSBSrie:
C o n v e r t is s e u r U S B S r ie
CUSB1
14 13 12 11 10 9 8 R TS C TS C o n v e rti s s e u r S ri e v e rs U S B D T R D S R D CD R I GND C ONV _U S B S LP RX L T XL P E N T EN T XD R X D 1 2 3 4 5 6 7 +5V

R1
10K 1 2 3 4 5 6 7 8 9 10 H E 1 0 1 0

J1

S2 S1
ST ST

Implantation:

B P_RES ET

Typon:
OlivierDARTOISJacquesDUPRAT Page10

Bit0 PC0
26 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 25

Bit1 PC1 PC2 PC3 PC4 PC5 PC6 PC7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7

Bit2

Bit3

Bit4

Bit5

Bit6

Bit7

Bit0

Bit1

Bit2

Bit3

Bit4

Bit5

Bit6

Bit7

PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7

CABLEUSB CABLE RJ12


PB0 1
GND VCC 2 1 VCC GND

CarteInters+DELsManipPIC16F876
PB1 PB2 PB3 PB4 PB5 PB6 PB7

OlivierDARTOISJacquesDUPRAT
0 Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7

Plandecablagedel'ensemble:

MicrocontrleurPICPrsentationetMthodedeprogrammation

NAPPEHE1026

NAPPEHE1010 BLOCALIMENTATION

CABLEUSB
TEln

Page11