formation pic16f84a 2

24
m TECHNIQUE COLE TECHMOUE Agr&e par I’Elat INITIATION A LA PROG DES MICROCONTROLEURS © M icrochip PIC 16 F 84 a T.i>«*<r N . U1 o « c \»: icn vc oxscuw U*1 RC ' UEO I «-> MW II w it me H8» H I!. >aa ± m PROTEUS fchiborc et Enseiane par : M moi-i oi'Di k—— < ( 1 ne 5 aPPren<*sans 'e concours de / emotion » Lntissemcnt Amevoud, Rue dca frcrcs Bcggaz, Tizi-Ouxou Tel/Fax: 026 21 23 35 / Mob: 0550 23 03 03 / site web: www.ecolc-tcchniquc.com m www.E-cours.com

Upload: drs-drs

Post on 08-Sep-2015

10 views

Category:

Documents


5 download

DESCRIPTION

Formation PIC16F84A 2Formation PIC16F84A 2Formation PIC16F84A 2Formation PIC16F84A 2Formation PIC16F84A 2

TRANSCRIPT

  • mT E C H N IQ U E COLE TECHM OUE

    Agr&e par IElat

    INITIATION A LA PROGDES MICROCONTROLEURS

    M ic r o c h ip

    P I C 16F 84a

    T.i> *

  • 1)- L es sy s te m e s d e n u m e ra t io n : a - 1 )- Le s v s te m e d e c im a l :

    Decim al, pourquoi ? Parce qu 'il utilise une num eration a 10 ch iffres. N ous dirons que c 'e s t un systeme en BASE 10. Pour la petite histoire. on a utilise un systfcme base 10 car nos ancetres ont com m ence a com pter sur leurs 10 doigts.

    Mais la position dcs chi fires a egalem ent une grande importance.. En effet, dans le nom bre 432, le 4 a une plus grande im portance que le 2. En rdalitd, chaque chiffre. que Ton peut appeler D IG IT , a une valeur qui depend de son R A N G . Quel est le m ultiplicateur a appliquer a un chiffre en fonction de sa position (rang) ? II s 'ag it tout sim plem ent de P61evation de la BASE utilisec a la puissancc de son RA NG .

    Ie com ptage du rang seffectue toujours de droite a gauche et en commen

  • Initiation a la programmation dcs M icrocontro lcur | P IC 16F84a

    Tableau dc conversion des ditTcrcms quartets (un demi octet)

    B inaire H exadecim al Decim alB 0000 0x0 0iv o o o r 0x1 1iro o io - 0x2 7AmB o o i r 0x3 3IV0100 0x4 4B o i o r 0x5 5B 0 1 10 0x6 6B o i i r 0x7 7B lOOO 0x8 8B l o o r 0x9 9B 1010 OxA 10B M O ll OxB 11B 1100 OxC 12B l i o r OxD 13B 1110 OxE 14B l i i r OxF 15

    Pour representor un octet il taut done 2 digits hexadecim aux. Par exem ple, notre nom bre B10010101* est reprsent en hexadecim al par 0x95. Si vous faites la conversion de 1hexadecimal vers le decim al, vous utilise/, le m em e principe que precedem m ent, et vous obtenez 0x95 = 9* 161 + 5*16 = 149.

    Pour preuve. quel est le plus grand nom bre hexadecim al de 2 digits pouvant etrc represents ? Reponse : OxFF, soil 15*16 + 15 - 255.

    b - l ) La fo n e tio n E T oil A N D :

    Appelee egalem ent multiplication bit a bit. ou AND . et souvent notee *& .Elle consiste a appliquer un mot sur un autre mot et & m ultiplier chaque bit par le

    bit de meme rang. Pour faire une operation ET , il laut done toujours 2 octets.

    Premidre ligne : 0 AND 0 = 0. Ce type de tableau s'appelle table de verite

    On voit done que la seule possibility pour obtenir un I est que le B itl ET le Bit2 soient a 1 . Ceci correspond a une m ultiplication. 1*1 = 1,0*1 = 0 , 1*0 = 0.Lxem ple ;

    Soit BT 1001100 AND B 11110000' donne B T 1000000A quoi sert cette instruction ? F.t bien, elle est utilisee pour M A SQ U ER des bits qui ne nous interessent pas.

    Prencz P exem ple ci-dessus : Le 2em e octet contient 4 b its a 1 et 4 b its a 0. Regardez le resultat obtenu : Les 4 premiers bits de Poctet I sont conserves (1100), n Pem placem ent des 4 autrcs nous trouvons des 0.O n peut done a Ia id e de cette in s tru c tio n po sitio n n er un ou p lusicu rs bits d ans un m ot a 0 sans co n n a itre son con tend p receden t.

    P a r : Mr MOULOUDJ.K Ecole Technique | Page 2

    Bitl Bit2 AND0 0 00 1 01 0 01 1 1

    www.E-cours.com

  • b-2) La fonction OU on O R :

    Encore appelee O R . souvent notee | elle perm et, com m e son nom rin d iq u e , de posiuonner un bit a 1 si le B itl OU le Bit2 est a 1.La table de verite suivante explique le fonctionnem ent de cette fonction :

    Initiation a la n rogran in ia t ion des M ic ro co n tro leu r | P IC !6FS4a

    Bitl Bit2 OR0 0 00 1 11 0 11 1 1

    Exem ple :B 10001000 OR B 11000000 donne B 11001000

    Dans cet exem ple. les 2 prem iers bits ont ete forces au niveau 1. independam m ent de leur niveau precedent.

    A quoi scrt cette instruction ? Et bien. tout sim plem ent elle p e rm e t de fo rce r n 'im p o rte quel b it d un m ot & 1 sans co n n a itre son con tenu p receden t.

    b -3 ) La fo n c tio n O U E X C L U S IF on E x c ln s if O R on X O R ;

    V o id la dcm icrc fonction que nous allons aborder dans cette mise a niveau. Elle est souvent appelee X O R (eX elnsif O R ). Elle se com porte com m e la fonction OR, & un detail prds.

    Pour obtenir I, il faut que le B itl soit a I OU que le Bit2 soit a 1 a TEXCLUSION des deux bits ensemble. Si les 2 bits sont a 1, alors le rdsultat sera 0.

    Voici done la table de verite :

    B it! B it2 X O R0 0 00 1 11 0 11 1 0

    e x em p le :B10001000 XOR B l 1000000 donne B01001000

    Dans cet exem ple, les 2 bits du le r octet ont et inverses.

    A quoi sert cette instruction ? Et bien tout sim plem ent & in v erser uii ou p lusieu rs b its d ans un m ot sans to u ch er aux au tres .

    Si vous ne m aitrisez pas p n rfa item en t ce qui v ient d e tre expliqu^ d ans ce p re m ie r c h ap itre , vous ne p o u rre z pas rea lise r eo rrec tem en t vos p ro p re s p ro g ram m es.

    P a r : Mr MOULOUDJ.K Ecole Technique | Page 3

    www.E-cours.com

  • Initiation a la p ro g ra m m a t io n des M ic ro co n tro leu r | P IC !6FS4a

    2)- Composit ion et fonet ionnement des PICS :

    - Ou est-ce nu un PIC ?

    Un PIC n est rien d 'au tre qu 'un m ic ro co n tro leu r, c*est a dire une unite de traicement de P infonnation de type m ic ro p ro cesseu r a laquelle on a ajoui6 des p e rip h e riq u es in te rn es perm ettant de realiser des m ontages sans neeessiter Pajoul de com posants extem es.

    Tous les PIC M id-R ange ont un je u de 35 in s tru c tio n s , stockent ehaque instruction dans un seul mot de program m e, et exdeutent chaque instniction (sau f les sauts) en 1 cycle.

    L horloge foum ie au PIC est predivisde par 4 au niveau de celle-ci. C 'es t cette base de tem ps qui donne la duree d 'un cycle. Si on utilise par exem ple un q u a r tz de 4M H z. on obtient done 1000000 de cyclcs/seconde, or, com m e le PICK* execute pratiquem ent 1 instruction par cycle, cela vous donne une puissance de Pordre deI M IPS (1 M illion d*Instructions Par Seconde).

    - Identification d 'un PIC:

    Pour identifier un PIC, vous utiliserez sim plem ent son numero.

    P I C 16 F 84 -04

    - 16 : Indique la ca teg o rie du PIC , 16 indique un P IC M id-R ange.- F : Indique une mtfmoirc de type FLASH (Le 16C84 peut etre rcprogram m e).- 84 : les dem iers ehiffres identifient preeisem em le PIC . (84)- le suffixe -XX dans lcquel XX represente la frequence d 'horloge maxim ale que le PIC peut recevoir. Par exem ple -0 4 pour un 4M Hz.

    Done, un I6F84-04 est un P IC M id-R ange (16) done la memoire program m e est de type FLA SH (F ) done reinscriptible de type 84 et capable d accepter une frequence d 'horloge de 4M H z en theorie (probablem ent : lO M hz pour un 16F84 et 20M hz pour un I6F84A ).

    " PIC16F84 - 0 4 / P 991ZCAW

    P a r : Mr MOULOUDJ.K Ecole Technique | Page 4

    www.E-cours.com

  • Initiation a la n rog ran in ia t ion des M ic ro co n tro len r | P IC 16K84a

    - La composition du P / C :

    /

    w > -

    L a m e m o ire L a m e m o ire L a m e m o ireP ro g ra m m e R A M E E P R O MIK x 14 b its 68 x 8 B its 64 x 8 B its

    UALt\ \

    > I. a memo ire programme :

    La mem oire program m e est constituee de IK m ots de 14 bits. C est dans cette zone que vous allez ecrire votre program m e. En effet, il faut 2 octets pour coder 14 bits. Ccci explique egalem ent pourquoi. lorsque vous lisez un PICS) vierge, vous allez lire des 0x3FFF. C ela donne en binaire B ' 111111 111 11111 \ soit 14 bits.

    > La memoire EEPROM:

    La memoire E E P R O M (Electrical Erasable Program m able Read Only M emory), est constituee de 64 octets que vous pouvez lire et dcrire depuis votre programme. Ces octets sont conserves aprcs une coupurc de courant et sont trds utiles pour conserver des param etres sem i-perm anents. Car ce n 'est pas de la RA M . m ais bien une ROM de type special. II est done plus rapide de la lire que d y ecrire.

    V .r' La memoire Ram :

    La mdmoire RAM (Random A ccess M emory). Toutes les donnees qui y sont stockces sont perdues lore d une coupure de courant.

    La mem oire RAM est organisce en 2 banques pour le 16F84. La RAM est subdivisee de plus en deux parties. Dans chacune des banques nous allons trouvcr des cases mdmoires spdciales appeldes R EG 1STR E S SPE C IA U X et des cases m em oires libres dont vous pouvez vous serv-ir a votre guise.

    P a r : Mr MOULOUDJ.K Ecole Technique | Page 5

    www.E-cours.com

  • Pour ie eas du 16F84, vous disposcrcz dc 68 octets libres. L organisation de la RAM est m ontree dans le tableau ci-dessous.

    RAM et Registrcs du 16F84a :

    Init iation a la n ro g ra m m a t io n des M ic ro co n tro leu r | P IC 16F84a

    Adr. BanqucO Banquet Adr.OOh Indirect addr. Indirect addr. 80hOlh TMRO OPTION REG02h PCL PCL 82h03 h STATUS STATUS04h FSR FSR 84 h05h PORTA TRISA06h PORTB TRISB 86h07h 08h EEDATA EECON1 88h09h EEADR EECON2OAh PC LATH PCLATH 8AhOBh INTCON INTCON

    OCh - 4Fh 68 eases m&noires idem banque 0 8Ch - CFH

    5 Oh - 71 h inutilise inutilise DOH-FFH

    > Les Ports d'enfrees/sorties

    Le P O R T A :

    Le PORT A est un des deux Ports du PIC !6F84a, et com prend 5 lignes E n trees/S o rties . Sa configuration et sa program m ation passent par ('utilisation de deux registres qui sont PO R T A et TR ISA .

    Le registre PORTA (Bank 0) est une copie des lignes RA0..RA4. tant en entree qu*en sortie.

    Le registre TRISA (Bank 1) est le registre qui perm ettra de placer les pins independam m ent en entree ou en sortie.

    M ettre un bit de TRISA a 1 plaeera la pin correspondante du PORTA en entree. M ettre un bit de TRISA a 0 plaeera la pin correspondante du PORTA cn sortie.

    Le P O R I B:

    Le PO R I B est un des deux Ports du PIC 161*84a. et com prend 8 lignes E n trees/S orties . Sa configuration et sa program m ation passent par ('utilisation de deux registres qui sont PO R T B et TR ISB.

    Le registre PORTB (Bank 0) est une copie des lignes RB0..RB7, tant en entree q u en sortie.

    P a r : Mr MOULOUDJ.K Ecole Technique | Page 6

    www.E-cours.com

  • Le rcgistre TR1SB (Bank 1) est le registre qui perm ettra de placer les pins independam m ent en entree ou en sortie.

    M ettre un bit de TR1SB & 1 placera la pin corrcspondante du PORTB en entree. M ettre un bit de TR1SB a 0 placera la pin corrcspondante du PORTB cn sortie.

    3 V L es d e b u ts a v ec M P L A B :

    Les differents flchiers necessaires a MPLAB lors d 'un developpcm ent pour m icrocontroleur sont repertories dans un projet.

    a)- La prem iere action a effectuer est done la creation d 'un nouveau tlchier exem lpeO l.asm dans un nouveau dossier.

    Initiation a la n rogran in ia t ion des M ic rocon tro len r PIC 16F84a

    MPLAB IDE

    E x em p le : C:\MonDossier\exemple01.asm hle E J T3 rw"in pIC5TARTF** options^N e w Project.

    b)- Apres avoir lance M PLAB. choisir dans le menu P r o je c t Poption New P ro jec t

    | Sew Project1 1

    Fie Name- Directories: C ^ T |Cjcwtmlpc pjt ^ 1 c:\mondot 1

    Cancel

    /--------------- 1

    1I & . . 3 T T . Help-------- 1

    cy Indiquer le nom du projet ainsi que son em placem ent.

    C liqucr ensuite sur O K .

    d)- C liqucr sur A dd N ode et ajouter un ficliier source existant. selectionner le llchier exem pleO l.asm puis cliqucr sur le bouton O K

    Nnnf* |Fd#oiOnly)

    Development Mode: |MPLAB S IM PIC16F84

    Language Tool Suite: M icrochip

    Projecl Files

    MPLAB SIM Sim ulator-^ot all pe:ipheials~have support for *

    M PIAB ICE Emulator

    PICMASTER Enultilui

    simulation.Serial I/O is not simulated nick Details' lor additional

    J

    h r m p la ii IDE - C:\MONDObiect Fdfl: Debug

    ad e l

    Open...aa

    c)- C liqucr sur change seleetionner M PL A B SIM Sim ulator)) et choisir le proeesseur 16F84A puis cliqucr sur le bouton O K

    IV Lnfin cliqucr sur File => Open et seleetionner le llchier exem pleO l.asm a ouvrir.

    P a r : Mr MOULOUDJ.K Ecole Technique Page 7

    www.E-cours.com

  • Initiation a la n ro g ram n ia t io n des M ic ro co n tro leu r | PIC 16FS4a

    4)- O rg a n is a t io n cTun f ic h ie r .asm :5 )- C re a tio n d u p re m ie r p ro g r a m m e :

    ; Ce tlchier est la base de depan pour une programmation avec I e PIC 16181a. II contiem ; les informations de base pour demarrer.

    L IS T p= !6 F 8 4 ^ include < p l6 F 8 4 .in c>

    : Definition de processeur ; D efinitions de variables

    __C O N F IG C P O F F & _ W D T _ O F F & _ P W R T E _ O F E & _X T_O SC

    _CONFIG precise les parametres encodes dans le processeur au moment deprogrammation (flashage). Les definitions sont dans le fichier include.

    oici les valeurs et leurs definitions

    C P ON C P O F F

    _I>W RTE_ON PW RTE OFF W DT ON W DT OFF LP OSC X T O S C IIS OSC RC OSC

    - 4 deb u t

    ) bonclc

    Code protection ON : im possible de relireCode protection OFFTim er reset sur pow er on en serviceT im er reset hors-serviceW atch-dog en serviceW atch-dog hors serv iceO scillateur quartz basse vitesseO scillateur quartz moyenne vitesseO scillateur quartz grande vitesseO scillateur a reseau RC

    DECLARATIONS DF. VARIABLES

    C B L O C K OxOOC m a v a riab le : 1 EN D C

    ; dbut de la zone variables ; je declare ma variable ; Fin de la zone

    D E M A R R A G E S U R RESET

    O R G 0x000goto deb u t

    ; Adrcsse de depart aprds reset ; Adrcsse 0: initialiser

    PROGRAMME PRINCIPAI

    c lr f m av ariab le

    incf m av ariab le , fgoto bouclc

    ; effacer m avariable

    ; increm enter m avariable ; boucler

    END

    P a r : Mr MOULOUDJ.K Ecole Technique | Page 8

    www.E-cours.com

  • Initiation a la p ro g ra m m a t io n des M ic ro co n tro leu r I P IC I6F84a

    L in s t ru c t io n G O T O (a l lc r a) :

    Cette instruction effectue ce q u on appelle un saut inconditionnel.

    S v n ta x e :

    goto etiquette

    E x e m p le :

    debutgoto plusloin : le program m e saute a I'instruction qui suit l &iquette

    ; plusloin xxxxxxxxxplusloinxxxxxxxxx : instruction exeeutee apres le s a u t : le program m e sc poursuit ici

    - Rem arquez que vous pouvez sauter en avant ou en arriere.- goto necessite 2 cycles d 'horloge. com m e pour tous les sauts

    [ / i n s t r u c t io n C L R F (C L e a R F ) :

    Cette instruction efface l'em placem ent m em oire spScifte

    S v n ta x e :

    c lrf f ; ( 0 0

    B it d u r e c is t r e S T A T U S a ffe c te :

    Z : Vaut done toujours 1 apres cette operation.

    E x e m p le :

    C lrf m avariable ; (m avariable) = 0

    [ / i n s t r u c t io n CL R W (C L e a R W ) :

    Cette instruction eftace w.

    S v n ta x e

    clrw ; (vv) - 0

    C 'es t une instruction qui n 'est pas vraim ent indispensable, car on pourrait utiliser 1*instruction m ovhv 0 . Cepcndant. a la difference de m ovlw 0. clrvv positionne le bit Z .

    B it d u re g is t r e S T A T U S a ffe c te

    Z : Vaut done toujours 1 apres cette operation.

    P a r : Mr MOULOUDJ.K F.cole Technique | Page 9

    www.E-cours.com

  • Initiation a hi p ro n ra m m a t io n des IVIicimontrolciir | PIC 16F84a

    I / i n s t r u c t io n IN C F ( I N C re in e n t F ile) :

    Celle instruction provoque 1*increm entation de Vem placem ent specific (encore appele File).

    Sv n ta x e :

    ln c f f,d ;< f)+ i-> (d )

    Com m e pour toutes les instructions, f rcprdsentc File . c est a dire rem placcm cni m em oire concerne pour cette operation. d , quant a lui: represente la Destination.

    S auf specification contra ire, d vaut tou jours, au choix :- f (la lettrc 0 : dans cc cas le rcsultat est stocke dans Vem placem ent mem oire.- W (la lettre w ) : dans ce cas, le resultat est laisse dans le registre de travail, et le

    contenu de V em placem ent m em oire n est pas modi fie.

    B it du r e s is t re S T A T U S a ffe c te :

    Le seul bit affecte par cette operation est le bit Z.

    Exem ples :

    incf mavariablc . f ; le contenu de ma variable est augm ents de 1; le rcsultat est stocke dans m avariablc.

    in c f m avariablc . w : Le contenu de m avariablc est charge dans w et; augm ent^ de I . W contient done le contenu dc ; m avariable + 1. m avariablc n 'es t pas modi lice

    L " in s tru c tio n D E C T ( l ) E C R e m c n t F ile):

    Decrementc ('em placem ent specific. Le fonctionnem ent est strictem ent identique a Iinstruction precedente.

    S v n ta x e :

    d ec f f , d ; (f) - 1 -> (d)

    B it dn r e s is t re S T A T U S a ffe c te :

    Le seul bit affecte par cette operation est le bit Z.Si avant Y instruction, (f) vaut 1, 7. vaudra I aprcs I'execution (1-1 - 0)

    E x e m p le s :

    decf mavariablc . f ; ddcrcmente m avariablc, rcsultat dans m avariablcd ec f m avariablc . w : prends (m avariable) - I e t place le rcsultat dans w

    P a r : Mr MOULOUDJ.K Ecole Technique | Page 10

    www.E-cours.com

  • 6)- C re a t io n d u D c u x icm c p ro g ra m m e :

    L IS T p=16F84 : Definition de processeur //include < p I6 F 8 4 .iu c> ; Definitions de variables

    C O N F IG C P O FF & W D T O F F & P W R T E O F F & XT O SC

    Init iation a la p ro g ra m m a t io n des M ic rocon tro leu r | P IC !6F84a

    ; DECLARATIONS D E VARIABLES *..* * * * * * * * . * * * * * * * * * * * * * * * * * . K * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **

    C B L O C K OxftOC ; dbut de la zone variablesm avariable : 1 ; jc declare m a variableE N D C ; Fin de la zone

    .*********************************************************************j

    ORG 0x000 : A dresse de depart apres reset : A dresse 0: initialiser

    . I * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    : Initialisation

    BSF STATUS. RP0

    M ovlw B 'O O O lllirM ovw f TRISAM ovlw B00000000'M ovw f TRISB

    BCF STATUS. RP0

    * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    PROGRAM M E PRINCIPAL **********************************************************************

    debutc lrf PORTB ;effacer le PortB 0c lrf m avariable ;effacer m avariable

    boucleincf m avariable.f ; increm enter m avariablem o v f m avariable.w : charge le contenu de m avariable dans w.m ovw f PORTB : charge le contenu de W sur le PORT B

    goto boucle ; boucler

    END

    P a r : Mr MOULOUDJ.K Ecole Technique | Page 11

    www.E-cours.com

  • Le reg is t re VV :

    Cc registre est un registre utilise par les P IC # pour realiser toutes sortcs de calculs. Souvenez-vous que la destination d un rcsultat (d) peut en general etre un em placem ent RAM (f) ou lc registre de travail (\v). C 'c s t done un registre ibndam enlal.

    L c rc g is trc S T A T U S :

    C ?est un registre dont chaque hit a une signification particuliere. II est principalem ent utilise pour tout ce qui concerne les tests. II est done Igalem ent d 'une im portance fondam en ta le :

    h 2 : Z Zero- Ce hit est posilionne a 1 si le resultat de la dcm icrc operation vaut 0.

    Rappelez-vous cependant que ces llags ne sont posit ionnes que pour les instructions qui lc preciscnt (Status bit affected).

    b > : RPO- Perm et d indiquer dans quelle banque de RAM on travaille.O - banquc 0.

    L 'in s t r u e t io n B S F (B it S e t F) :

    C 'cst une instruction qui perm et tout sim plem ent de forcer directem ent un bit d un em placem ent m em oire a 1.

    Sv n ta x e

    B sf f , b : le bit n b est positionne dans la case m em oire (f); b est evidem m ent com pris entre 0 et 7

    B it d u rc g is trc S T A T U S a ffe c te

    Aucun

    E x e m p le s

    B sf STATl IS , C ; positionne le bit C a I dans le registre STATUS b sf m avariable . 2 : positionne bit 2 de (m avariablc) a 1

    L * in s tru c tio n B C F (B it C le a r F)

    C 'e s t une instruction qui perm et tout sim plem ent de forcer directem ent un bit d un em placem ent m em oire a 0.

    Sv n ta x e

    b ef f . b ; le bit n b cst m is h 0 dans la ease m em oire (f); b est evidem m ent com pris entre 0 et 7

    Initiation a la n ro a ra m m a t io n des M ic rocon tro len r | PIC !6F84a

    Par: MrMOULOUDj.K EcoleTechnique | Page 12

    www.E-cours.com

  • B it d u re g is tre S T A T U S a ffe c te :

    Aucun

    E x e m p le s :

    b e f STATUS , C : positionne le bit C a 0 dans le registre STATUS b e f m avariable . 2 : positionne b2 de (m avariable) a 0

    [ / i n s t r u c t io n M O V L W (M O V e L ite ra l to \V ):

    Cette instruction charge la valeur specifiee (valeur litterale. ou encore valeur im m ediate), dans le registre de travail W

    S v n ta x e :

    Movlw k ; k-> w : k represente une valeur de 0x00 & OxFK

    B it (hi re g is tre S T A T U S a ffe c te :

    Aucun ( done m em e si vous chargez la valeur *0.)

    E x e m p le

    M ovlw 0x25 ; charge 0x25 dans le registre w

    I / i n s t r u c t io n M O V F (M O V e F ile) :

    Charge le contenu de Vem placem ent specille dans la destination

    S v n ta x e :

    M o v f r . d ; (1) -> (d)

    B it d u re g is t r e S T A T U S a ffc c tc

    U ne fois de plus, seul le bit X est affecte (si fv au t 0. /. vaut I ).

    E x e m p le 1 :

    m ovf mavariable,w ; charge le contenu de m avariable dans w.

    E x e m p le 2 :

    M ovf m avariab le , f

    I-He place le CO NTEN U de m avariable dans m avariable. D ire que cela ne se tt a rien, le contenu de m avariable reste bicn inchangc, par contre le bit / est positionne & I . Cette instruction pcrm et done de verifier si (m avariable) = 0.

    Initiation a la p ro g ra m m a t io n des IVIicrocontrolenr | PIC. 16F84a

    P a r : Mr MOULOUDJ.K Ecole Technique | Page 13

    www.E-cours.com

  • Init iation a la p ro g ra m m a t io n des M ic ro co n tro leu r | PIC !6F84a

    L in s tru e tm n M O V W F (M O V e W to F ile ):

    Permet dc sauvegarder 1c contenu du registre de travail W dans un em placem ent memoirc.

    S v n ta x e :

    M ovw f f ; (W ) -> (f)

    B it d u re g is t r e S T A T U S a ffe c te :

    Aucun

    E x e m p le

    m ovlw 0x50 : charge 0x50 dans Wm ovw f m avariable ; m avariable contienl m aintenant 0x50.

    7)- C re a tio n d u 3 tmr p ro g r a m m e :

    LIST p=16F84a ; D efinition de processeur^include ; Definitions de variables

    _ C O N F IG CP_O FF & W DT OFF & PW RTE OFF & _XT_OSC

    ; DECLARATIONS DE V A RIA BLES *.****.****************************************************************

    CBLOCJC OxOOC : debut de la zone variables m avariable : 1 : je declare m es variables cont 1 : 1 cont2 : 1 cont3 : 1ENDC ; Fin dc la zone

    . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    ; D EM A RR A G E SUR RESET *.************************************************** ******************* y

    ORG 0x00 ; A drcsse de depart apres reset : A dressc 0: initialiser

    goto INITPIC

    ; Initialisation *. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    INITPICBSF STATUS.RP0M ovlw B 'O O O IIlir M ovw f TRISA

    P a r : Mr MW.IL0UD1.K Ecole Technique | Page 14

    www.E-cours.com

  • Init iation a la n rog ran in ia t ion des M ic rocon tro len r | P IC !6F84a

    M ovlwM ovw fBCF

    IVOOOOOOOO'TRISBSTATUS.RPO

    . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    ; PROGRAM M E PRINCIPAL *.*********************************************************************

    debut

    boucle

    c lr f PORTB ;effacer le PortB - 0c lr f m avariablc ;efTacer m avariable

    incf m avariable,f ; increm enter mavariablem o v f m avariable,w ; charge le contenu de m avariable dans vv.m ovw f PORTB ; charge le contenu de W sur le PO RT B

    call tem po ; appel de la so u s-ro u tin e a Padresse tempo

    goto boucle ; b o n d er

    . *********************************************** **********************

    ; Tem porisation dc Lsecondes. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    tem ponopm ovlw 0x2Lm ovw f cont3

    B3 movivv OxBDm ovw f cont2

    B2 movlw 0x25m ovw f cont 1

    Bl deefsz c o n tl ,fgoto Bldeefsz cont2 .fgoto B2deefsz cont3.fgoto B3re tu rn

    ;pas d operation

    HNDL 1 in s tru c t io n N O P (N o O p e ra t io n ) :

    Je vous presente Iinstruction qui ne fait rien. qui ne positionne rien. et qui ne modi lie rien. On pourrait croire qu 'e llc ne sort b rien. Ln fait elle est surtout utilisee pour perdrc du temps.Sv n ta x e ;nop ; ne fait rien

    Par: MrMOULOUDJ.K Ecole Technique | Page 15

    www.E-cours.com

  • L 'in s t r u c t io n C A L L (C A L L s u b ro u t in e ) :

    Cette operation effectue un saut inconditionnel vers un sous-program m e.Sv n ta x e

    call etiquette ; appel de la sous-routine h I'adresse etiquette.

    B it d u re g is t r e S T A T U S a ffe c te :

    Aucun

    L in s tru c t io n RFTUR1N (R E T U R N fro m s u b ro u t in e ) :

    Retour de sous-routine. Rappelez-vous que pour chaque instruction call rcncontr^e, votre program m e devra rencontrer une instruction return .

    S v n ta x e :

    re tu rn ; fin de sous-routine.: Program m e poursuit a Iadresse qui suit la ligne call.

    B it du re g is t r e S T A T U S a ffe c te :

    Aucun

    l / i n s t r n c t i o n D E C F S Z ( l ) E C r e in e n t F , S k ip if Z e ro ) :

    Nous poursuivons les sauts conditionnels avec une instruction tres utilisec pour cr (d). Saut si (d) = 0

    B it du re g is tre S T A T U S a ffe c te :

    Aucun

    L 'in s t r u c t io n IN C F S Z ( I N C re m e n t F , S k ip if Z e ro )

    Je ne vais pas detailler cette instruction, car elle est strictem cnt identique a la precedcnte. hormis le fait q u on incrdmente la variable au lieu de la d6cr6menter.

    S v n ta x e

    Incfsz f . d : ( 0 + I -> ( d ) : saut si (d) = 0

    B it d u re g is t r e S T A T U S a ffe c te

    Aucun

    Initia tion a la p ro g ran im a t io n des M ic rocon tro len r | PIC !6FH4a

    Par : Mr MOULOUDJ.K Ecole Technique | Page 16

    www.E-cours.com

  • Initiation a la p ro g ra m m a t io n des M ic roeon tro lcu r | IMC !6FS4a

    S)- C re a tio n d u 4 lllt p r o g r a m m e : (A ff ic h e u r 7 S e g m e n ts )

    LIST p - 161 84a ; Definition de processeur^include : Definitions de variables

    CONFIG C P OFF & W DT OFF & PW RTE OFF & X T OSC

    .*********************************************************************

    ; DECLA RA TION S DE V A RIA BLES *

    CBLOCK OxOOC ; debut dc la zone variables m avariable : I ; jc declare m es variables contl : 1 cont2 : 1 cont3 : 1ENDC ; Fin dc la zone

    . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    : D E M A R R A t.l SI !!< R1 SI I *. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # * * * * * * * # * * * * * * * * * * * * * * * * * * * * * *

    ORG 0x00 ; A drcsse de depart apres reset . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # # * * * * * * * * * * * * * * * * * * * * * * # * * *

    ; Initialisation *. * * * * * * * # # # # # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # * * * * * * * * * * * * * * * * * * * * * *

    INITPICBSF STATUS.RPOM ovlw BO O O l l l i rM ovw f TRISAMovlw BOOOOOOOO'M ovw f TRISBBCF STATUS. RPO

    . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    PROGRAM M I PRINCIPAL , * * * # * * * # # # * # * # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    debutc lrf PORTB ;effaccr le PortB =0c lrf m avariable ;effacer mavariable

    bouclestop

    bliss PO RTA ,0 goto stop

    m ovlw B '00111111' : charge le contenu de m avariable dans w. m ovw f PORTB : charge le contenu de W sur le PORT B call tempo

    P a r : Mr MOULOUDI.K Ecole Technique | Page 17

    www.E-cours.com

  • Initiation a la p ro g ra m mation des M ic ro co n tro leu r 1 P IC 16F84a

    m ovlw B '0000110' ; charge lc contenu de m avariablc dans w.m ovw f PORTB ; charge lc contenu de W sur le PORT Bcall tempo

    movlw b i o i i o i r ; charge le contenu de m avariable dans w.m ovw f PORTB ; charge le contenu de \V sur le PORT Bcall tempo

    movlw B* 1001 111* ; charge le contenu de m avariable dans w.m ovw f PORTB ; charge lc contcnu de W sur le PO RT Bcall tempo

    movlw B l 100110 ; charge le contenu de m avariable dans w.m ovw f PORTB ; charge le contenu de W sur le PORT Bcall tempo

    movlw B i io i i o r ; charge le contcnu de m avariable dans w.inovw 1 PORTB , charge le contenu de W sur le PO RT Bcall tempo

    movlw Bl l l l l O r ; charge le contenu de m avariable dans w.m ovw f PORTB ; charge le contenu de W sur le PORT Bcall tempo

    m ovlw B'ooo 11 r ; charge le contcnu de m avariable dans w.m ovw f PORTB ; charge le contenu dc W sur lc PORT Bcall tempo

    movlw B ' l l l l l i r ; charge le contenu de m avariable dans w.m ovw f PORTB ; charge le contenu de W sur le PORT Bcall tempo

    movlw B ' l i o m r : charge le contenu de m avariable dans vv.m ovw f PORTB ; charge le contenu de W sur le PORT Bcall tem po

    movlw B'OOOOOOOO' ; charge le contenu de m avariablc dans w.m ovw f PORTB : charge le contenu de W sur le POR I Bcall tem po

    goto boucle : boucler

    Par: Mr MOULOUDj.K Ecole Technique | Page 18

    www.E-cours.com

  • .I*********************************************************** *********

    ; Tcm porisation dc l.sccondes *. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    tem po;pas d operation

    Initiation a hi p ro g ra m m a t io n des M ic ro eo n tro lcu r | P IC !6F84a

    nopm ovlw 0x2 f;m ovw f cont3

    B3 movlw OxBDm ovw f cont2

    B2 m ovlw 0x25m ovw f cont 1

    B1 deefsz co n tl, fgoto B1deefsz cont2 ,fgoto B2deefsz cont3 .fgoto B3re tu rn

    EN D

    [ / i n s t r u c t io n B T F S S (Bi t T e s t F , S k ip if S e t)

    Traduit littdralemcnt, cela donne : Teste le bit de ^em placem ent m em oire et saute s*il vaut 1.S v n ta x eBtfss f. b ; on teste le bit b dc la m em oire (f).

    : si cc bit vaut 1. on saute (instruction ; suivante, sinon; on execute Finstruction suivante.

    B it d u re g is t r e S T A T U S a ffe c teAucun

    1 / in s tru c t io n B T F S C (Bi t T e s t F S k ip if C le a r )

    Traduit litteralem ent. cela donne : Teste le bit de Icm placem ent m em oire el saute s 'il vaut 0.S v n ta x eBtfsc f, b ; on teste le bit b de (a m em oire (f).

    ; si ce hit vaut 0, on saute 1'instruction suivante, sinon ; on execute Vinstruction suivante.

    B it d u r e g is tr e S T A T U S a ffe c te Aucun

    P a r : Mr MOULOUD|.K Ecole Technique | Page 19

    www.E-cours.com

  • 8)- C re a t io n d u 5 l,u p r o g r a m m e :(C o m m a n d e r un A ff ic h e u r 7 S E G (P la y , P a u se , S t o p ) ).

    LIST p=16F84a ; Definition de proccsscur "include ; Definitions de variables

    CONFIG CP OFF & _W DT OFF & PW RTE O FF & XT OSC .********** * * * * **-** ** ******* *** ********* ************ **** ***** ********* ; DECLARATIONS DE V A RIA BLES *

    CBLOCK OxOOC ; debut de la zone variablesco n tl : 1

    ORG 0x00 ; Adresse de depart aprcs reset.********* 4^ + ****************** ********************; Initialisation.*********************************************************************

    Initiation a la p ro g ran im a t io n des M ic rocon tro leu r | P IC !6F84a

    BSF STATUSJRP0Movlw B '00011111M ovw f TRISAMovlw B'00000000'M ovw f TRISBBCF STA TU S,RP0BCF VarPause.O

    .*********************************************************************%

    ; PROGRAM M E PRINCIPAL *.*********************************************************************

    debutstopBl

    btfsc PORTA,0 goto stopB I

    stopB2btfsc PORTA, 1 goto stopB2

    bouclec lrf PORTB ;effacer le PortB - 0

    P ar: Mr MOULOUDJ.K Ecole Technique | Page 20

    www.E-cours.com

  • Initiation a la o ro e ra n im a t io n des M ic ro co n tro leu r 1 PIC l6F 84a

    slopbtfss PORTA,0goto stop

    stopcbtfsc PORTA,0goto stopcmovlw B 'o o i im i ' ; charge le contenu de m avariable dans w.m ovw f PORTB ; charge le contenu de W sur le PORT Bcall tempomovlw B '0000110 ; charge le contenu dc m avariable dans w.m ovw f PORTB ; charge le contenu de W sur le PORT Bcall tempom ovlw B ' l O l l O i r ; charge le contenu de m avariable dans w.m ovw f PORTB ; charge le contenu de W sur le PORT Bcall tempomovlw Bl O O I l i r ; charge le contenu de m avariable dans w.m ovw f PORTB ; charge lc contenu de W sur le PORT Bcall tempomovlw BT 100110' ; charge le contenu dc m avariable dans w\m ovw f PORTB ; chargc le contenu dc W sur lc PORT Bcall tempom ovlw B T io n o r ; charge le contenu dc m avariable dans w.m ovw f PORTB ; charge le contenu de W sur le PORT Bcall tempomovlw B T I l l l O r ; charge lc contenu dc m avariable dans w.m ovw f PORTB ; charge le contenu de W sur le PORT Bcall tempom ovlw B'0(KJ 111* charge le contenu dc m avariable dans w.m ovw f PORTB ; charge le contenu de W sur lc PORT Bcall tempom ovlw BT l l l l i r ; charge le contenu dc m avariable dans w.m ovw f PORTB ; charge le contenu de W sur le PORT Bcall tempom ovlw B T i o m r : charge le contenu de m avariable dans w.m ovw f PORTB ; charge le contenu de W sur le PORT Bcall tem pogoto boucic ; boucler

    tem po ; Tem porisation de l.sccondesnopmovlw 0x2Em ovw f cont3

    B3 m ovlw OxBDm ovw f cont2

    B2 m ovlw OxOFm ovw f contl

    P a r : Mr MUULOUDJ.K Ecole Technique | Page 21

    www.E-cours.com

  • Init iation a la p ro g ra m m a t io n des M ic rocon tro leu r | PIC 16FS4a

    btfsc PORTA.Ocall pausebtfsc PO R TA Jgoto debutdeefsz com 1 .fgoto BlNOPNOPNOPNOPNOPNOPdeefsz cont2 ,fgoto B2deefsz cont3 ,f

    goto B3re tu rn

    pausestop BPS

    btfsc PC)RTA,0goto stopBPSBSF VarPausc.Om ovf PORTB.vvm ovw f savePB

    boucle pausec lrf PORTBcall tem p2movlw B'l 1110011' m ovw f PORTB call tem po2btfsc PORTA,0BCF VarPause,0btfsc VarPause,0goto boucle_pause

    m ovf savePB,wm ovw f PORTB

    stopBPFbtfsc PORTA.O goto stopBPF

    re tu rn

    P a r : Mr MOULOUDJ.K Ecole Technique | Page 22

    www.E-cours.com

  • Initiation a la p ro& ram m ation (les M ic rocon tro leu r 1 PIC 16F84a

    tem po2 ; Tem porisation Pausenopmovlw OxOEm ovw f cont32

    B32 movlw 0x30m ovw f cont22

    B22 movlw OxAOm ovw f c o n tl2

    B12btfsc PORTA.Ogoto FINP

    deefsz c o n tl2 ,fgoto B12deefsz eont22 ,fgoto B22deefsz cont32 .fgoto B32

    FINPre tu rn

    END

    P a r : Mr MOULOUD|.K Ecole Technique | Page 23

    www.E-cours.com