Академический Документы
Профессиональный Документы
Культура Документы
T E C H N IQ U E
COLE TECHMOUE
Agr&e par IElat
INITIATION A LA PROG
DES MICROCONTROLEURS
ic r o c h ip
P I C 16F 84a
U1
oc\:icn
oxscuw
UEOI
vc
U*1
RC'
->
MW
wIIit
m
H
8e
HI!.
>aa
m
PROTEUS
T.i>*<r N.
www.E-cours.com
fchiborc et Enseiane p a r :
M moi - i o i ' D i k
<(
1 ne 5
www.E-cours.com
Ecole Technique
Page 1
www.E-cours.com
H ex ad ecim al
0x0
0x1
0x2
0x3
0x4
0x5
0x6
0x7
0x8
0x9
OxA
OxB
OxC
OxD
OxE
OxF
D ecim al
0
1
7Am
3
4
5
6
7
8
9
10
11
12
13
14
15
Pour representor un octet il taut done 2 digits hexadecim aux. Par exem ple, notre
nom bre B 10010101* est reprsent en h ex ad ecim al p ar 0x95. Si v ous faites la
conversion de 1hexadecim al 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 ? R eponse : OxFF, soil 15*16 + 15 - 255.
b - l ) L a fo n e tio n E T oil A N D :
A ppelee egalem ent m ultiplication bit a bit. ou AND . et souvent notee *& .
Elle consiste a appliquer un m ot su r un autre m ot et & m ultiplier chaque bit par le
bit de m em e rang. Pour faire une operation ET , il laut done toujours 2 octets.
Prem idre ligne : 0 A N D 0 = 0. C e type de tableau s'appelle table de verite
O n voit done que la seule possibility pour obtenir un I
Bitl
Bit2 AND
est que le B itl ET le Bit2 soient a 1 . C eci correspond a une
0
0
0
m ultiplication. 1*1 = 1,0*1 = 0 , 1*0 = 0.
0
0
1
L xem ple ;
1
0
0
Soit B T 1001100 A N D B 11110000' donne B T 1000000
1
1
1
A quoi sert cette instruction ? F.t bien, elle est utilisee pour
M A S Q U E R 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. R egardez le
resultat obtenu : Les 4 prem iers bits de Poctet I sont conserves (1100), n Pem placem ent des 4
autrcs nous trouvons des 0.
O n p eu t d o n e a Ia id e de cette in s tru c tio n p o s itio n n e r un ou p lu sic u rs bits d a n s un m o t a 0
sa n s c o n n a itre son c o n ten d p re c e d e n t.
P a r : Mr MOULOUDJ.K
Ecole Technique
Page 2
www.E-cours.com
Bitl
0
0
1
1
Bit2
0
1
0
1
OR
0
1
1
1
E x em p le :
B 10001000 O R 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 d e fo rc e r
n 'im p o rte quel b it d un m ot & 1 sa n s c o n n a itre son c o n te n u p re c e d e n t.
b -3 ) L a fo n c tio n O U E X C L U S I F o n E x c ln s if O R o n X O R ;
V o id la dcm icrc fonction que nous allons aborder dans cette m ise a niveau. Elle est
souvent appelee X O R (eX eln sif O R ). E lle se com porte com m e la fonction O R , & un
detail prds.
Pour obtenir I, il faut que le B itl soit a I OU que le Bit2 soit a 1 a TEX C L U SIO N
des deux bits ensem ble. Si les 2 bits sont a 1, alors le rdsultat sera 0.
Voici done la table de verite :
B it!
B it2
XOR
e x e m p le :
B 10001000
XOR
B l 1000000
donne
B0 1 0 01000
P a r : Mr MOULOUDJ.K
Ecole Technique
Page 3
www.E-cours.com
P IC
16 F 84 -04
"PIC16F84 - 0 4 / P
991ZCAW
P a r : Mr MOULOUDJ.K
Ecole Technique
Page 4
www.E-cours.com
L a m e m o ir e
P ro g ra m m e
IK x 14 b its
L a m e m o ir e
L a m e m o ir e
RAM
6 8 x 8 B its
EEPRO M
6 4 x 8 B its
w>-
UAL
t
\\
La memoire EEPRO M :
P a r : Mr MOULOUDJ.K
Ecole Technique
Page 5
www.E-cours.com
BanqucO
Indirect addr.
TMRO
PCL
03 h
04h
05h
STATUS
FSR
PORTA
PORTB
06h
07h
08h
09h
OAh
OBh
EEDATA
EEADR
B anquet
Indirect addr.
OPTION REG
A dr.
80h
PCL
STATUS
FSR
TRISA
TRISB
82h
84 h
86h
EECON1
88h
PC LATH
INTCON
EECON2
PCLATH
INTCON
8Ah
OCh - 4Fh
68 eases m&noires
idem banque 0
8Ch - CFH
5Oh - 71 h
inutilise
inutilise
D O H -FFH
Le P O R T A:
L e P O R I B:
Ecole Technique
Page 6
www.E-cours.com
Initiation a la n r o g r a n i n i a t i o n des M i c r o c o n t r o l e n r
P I C 16F84a
Le rcgistre TR1SB (B ank 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 PO R TB en entree.
M ettre un bit de TR1SB a 0 placera la pin corrcspondante du PO R TB cn sortie.
3 V L e s d e b u ts a v e c M P L A B :
Les differents flchiers necessaires a M PLA B lors d 'u n developpcm ent pour
m icrocontroleur sont repertories dans un projet.
a)- La prem iere action a effectuer est done la creation d 'u n nouveau tlchier
ex em lp eO l.asm dans un nouveau dossier.
M PLAB IDE
hle E J T3
E x e m p le : C:\MonDossier\exemple01.asm
^ N e w Project.
|Sew Project
1 1
Directories:
C ^ T |
c:\mondot 1
Cancel
--------------- 1
1
/
I& ..3 T T .
Help
-------- 1
simulation.
Serial I/O is not simulated
n ick D etails' lor additional
PIC M A ST E R Enultilui
hr
m p l a ii
IDE - C:\MONDO
biect
M icrochip
P ro je cl Files
Nnnf* |Fd#oiOnly)
M P IA B ICE Emulator
|MPLAB S IM PIC16F84
Open...
Fdfl: Debug
a
a
del
P a r : Mr MOULOUDJ.K
Ecole Technique
Page 7
www.E-cours.com
L IS T
p = !6 F 8 4
^ in c lu d e < p l6 F 8 4 .in c >
__C O N F IG
: D efinition de processeur
; D efinitions de variables
C P ON
CPO FF
_I>W RTE_O N
PW R T E O FF
W D T ON
W D T OFF
LP OSC
X TO SC
IIS OSC
RC OSC
C B L O C K OxOOC
m a v a ria b le : 1
ENDC
D E M A R R A G E S U R RESET
ORG
0x000
goto d e b u t
PROGRAMME PRINCIPAI
- 4 debut
c lr f
m a v a ria b le
; effacer m avariable
in c f
goto
m a v a ria b le , f
bouclc
) bonclc
EN D
P a r : Mr MOULOUDJ.K
Ecole Technique
Page 8
www.E-cours.com
Initiation a la p r o g r a m m a t i o n des M i c r o c o n t r o l e u r I P I C I6 F 8 4 a
L in s t r u c t i o n G O T O ( a llc r a) :
C ette instruction effectue ce q u on appelle un saut inconditionnel.
S v n ta x e :
goto etiquette
E x e m p le :
debut
goto plusloin
xxxxxxxxx
plusloin
xxxxxxxxx
-
[/in s tr u c tio n C L R F (C L e a R F ) :
C ette 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 i s t r e S T A T U S a f f e c te :
Z : V aut 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 i o n CL R W ( C L e a R W ) :
C ette instruction e fta ce w.
S v n ta x e
clrw ; (vv) - 0
C 'e s t une instruction qui n 'est pas v raim ent indispensable, car on pourrait
utiliser 1*instruction m ovhv 0 . C epcndant. a la difference de m ovlw 0. clrvv
positionne le bit Z .
B it d u r e g is tr 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
f,d
m avariablc . f
in c f
m avariablc . w
f, d
B it d n r e s i s t re S T A T U S a f f e 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
decf
m avariablc . f
m avariablc . w
P a r : Mr MOULOUDJ.K
Ecole Technique
| Page 10
www.E-cours.com
C P O FF &
C O N F IG
: D efinition de processeur
; D efinitions de variables
W DT OFF &
PW RTE O FF &
D E C L A R A T IO N S D E V A R IA B L ES
..* * * * * * * * . *
XT OSC
******* * * * * * * * * * . K* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C B L O C K OxftOC
m avariable : 1
ENDC
.*********************************************************************
O RG 0x000
.I ********************************************************************
Initialisation
BSF
STA TU S. RP0
M ovlw
M ovw f
M ovlw
M ovw f
B 'O O O lllir
TR ISA
B00000000'
TR ISB
BCF
ST A TU S. RP0
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
PR O G R A M M E PR IN C IPA L
*
*********************************************************************
debut
c lrf
c lrf
PO R TB
m avariable
;effacer le PortB 0
;effacer m avariable
boucle
in c f m avariable.f
m o v f m avariable.w
m ovw f
PO RTB
goto
boucle
; boucler
EN D
P a r : Mr MOULOUDJ.K
Ecole Technique
| Page 11
www.E-cours.com
Z ero
- C e hit est posilionne a 1 si le resultat de la d cm icrc operation vaut 0.
R appelez-vous cependant que ces llags ne sont posit ionnes q u e 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 'i n s t r u e t i o n B S F (B it S e t F) :
C 'c st 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.
S v n ta x e
B sf
f,b
A ucun
E x e m p le s
B sf
bsf
ST A Tl IS , C
m avariable . 2
L * in s tr u c tio n B C F (B it C l e 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.
S v n ta x e
bef
f.b
P a r: MrMOULOUDj.K
EcoleTechnique
| Page 12
www.E-cours.com
STA TU S , C
m avariable . 2
[ / i n s t r u c t i o n M O V L W (M O V e L ite r a l to \V ):
C ette 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 :
M ovlw
B it (hi r e g is tr e S T A T U S a f f e c te :
A ucun
E x e m p le
M ovlw
0x25
I / i n s t r u c t i o n M O V F (M O V e F ile) :
C harge le contenu de Vem placem ent sp ecille dans la destination
S v n ta x e :
M ovf
r .d
B it d u r e g is tr e S T A T U S a ffc c tc
U ne fois de plus, seul le bit X est affecte (si fv a u t 0. /. vaut I ).
E x e m p le 1 :
m ovf
m avariable,w
E x e m p le 2 :
M ovf
m a v a ria b le , f
P a r : Mr MOULOUDJ.K
Ecole Technique
| Page 13
www.E-cours.com
Initiation a la p r o g r a m m a t i o n des M i c r o c o n t r o l e u r | P IC !6 F 8 4 a
L in s tr u e tm n M O V W F (M O V e W
to F ile ):
; (W ) -> (f)
B it d u r e g is tr e S T A T U S a f f e c te :
A ucun
E x e m p le
m ovlw
m ovw f
0x50
m avariable
7 )- C r e a ti o n d u 3 tmr p r o g r a m m e :
L IST
p= 16F84a
^include <p l6F 84.inc>
; D efinition de processeur
; D efinitions de variables
_ C O N F IG
W D T O FF & PW R T E O FF & _X T _O SC
C P _O F F &
;
D E C L A R A T IO N S DE V A R IA B L E S
*
.****.****************************************************************
CBLOCJC OxOOC
m avariable : 1
cont 1 : 1
cont2 : 1
cont3 : 1
EN D C
; Fin dc la zone
.*********************************************************************
;
D E M A R R A G E SU R R E SE T
*
.************************************************** *******************
Initialisation
.************************************************************ *********
IN ITPIC
BSF
M ovlw
M ovw f
ST A TU S.R P0
B 'O O O IIlir
TR ISA
P a r : Mr MW.IL0UD1.K
Ecole Technique
| Page 14
www.E-cours.com
IVOOOOOOOO'
TR ISB
STATUS.RPO
.********************************************************************
;
PR O G R A M M E PR IN C IPA L
*
.*********************************************************************
debut
c lr f
c lr f
PO R TB
m avariablc
;effacer le PortB - 0
;efTacer m avariable
in c f
m ovf
m ovw f
boucle
call
tem po
goto
boucle
. *********************************************** **********************
;
T em porisation dc Lsecondes
.*********************************************************************
tem p o
nop
m ovlw
m ovw f
B3 movivv
m ovw f
B2 m ovlw
m ovw f
Bl deefsz
goto
Bl
deefsz
B2
goto
deefsz
goto
B3
r e tu rn
;pas d operation
0x2L
cont3
OxBD
cont2
0x25
cont 1
c o n tl,f
c o n t2 .f
cont3.f
HND
L 1in s tr u c tio n N O P (N o O p e r a t io n ) :
Je vous presente Iinstruction qui ne fait rien. qui ne positionne rien. et qui ne
modi lie rien. On pourrait croire q u 'e llc ne sort b rien. Ln fait elle est surtout utilisee
pour perdrc du tem ps.
Sv n ta x e ;
nop
; ne fait rien
P a r: MrMOULOUDJ.K
Ecole Technique
| Page 15
www.E-cours.com
etiquette
B it d u r e g is tr e S T A T U S a ffe c te :
A ucun
L in s tr u c tio n R FTU R 1N (R E T U R N f r o m s u b r o u tin e ) :
R etour de sous-routine. R appelez-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 d u r e g is tr e S T A T U S a f f e c te :
A ucun
l / i n s t r n c t i o n D E C F S Z ( l ) E C r e i n e n t F , S k ip if Z e r o ) :
N ous poursuivons les sauts conditionnels avec une instruction tres utilisec pour
cr<$cr des boucles. C ette instruction decrem ente un em placem ent m em oire et saute
r instruction suivante si le rcsultat de la decrem entation donne une v aleu r nulle
S v n ta x e :
D eefsz
f, d
B it d u r e g is tr e S T A T U S a ffe c te :
A ucun
L 'i n s t r u c t i o n I N C F S Z ( I N C r e m e n t F , S k ip if Z e r o )
Je ne vais pas detailler cette instruction, c a r elle est strictem cnt identique a la
precedcnte. horm is le fait q u on incrdm ente la variable au lieu de la d6cr6m enter.
S v n ta x e
Incfsz
f .d
B it d u r e g is tr e S T A T U S a ffe c te
A ucun
Par : Mr MOULOUDJ.K
Ecole Technique
| Page 16
www.E-cours.com
C P O FF &
; D efinition d e processeur
: D efinitions de variables
W D T O FF &
PW R TE O FF &
X T OSC
.*********************************************************************
;
D E C L A R A T IO N S DE V A R IA B L E S
C B L O C K OxOOC
m avariable : I
c o n tl : 1
cont2 : 1
cont3 : 1
EN D C
; Fin dc la zone
.*********************************************************************
D E M A R R A t.l SI !!< R1 SI I
.**************************************#*******#**********************
O RG 0x00
.*****************************************##**********************#***
Initialisation
.*******#####**********************************#**********************
IN ITPIC
BSF
M ovlw
M ovw f
Movlw
M ovw f
BCF
STATUS.RPO
BO O O l l l i r
TRISA
BOOOOOOOO'
TR ISB
STA TU S. RPO
.************************************#********************************
PR O G R A M M I PR IN C IPA L
,***#***###*#*#*******************************************************
debut
c lrf
c lrf
PO RTB
m avariable
;effaccr le PortB =0
;effacer m avariable
boucle
stop
b liss
goto
P O R T A ,0
stop
m ovlw
m ovw f
call tem po
P a r : Mr MOULOUDI.K
Ecole Technique
| Page 17
www.E-cours.com
m ovlw
m ovw f
call tem po
B '0 0 0 0 110'
PO R TB
m ovlw
m ovw f
call tem po
bioi
i oi r
PO R TB
m ovlw
m ovw f
call tem po
B* 1001 111*
PO RTB
m ovlw
m ovw f
call tem po
B l 100110
PO RTB
m ovlw
inovw 1
call tem po
B i io i i o r
PO R TB
m ovlw
m ovw f
call tem po
Bl l l l l O r
PO RTB
m ovlw
m ovw f
call tem po
B'ooo 11 r
PO R TB
m ovlw
m ovw f
call tem po
B'lllllir
PO R TB
m ovlw
m ovw f
call tem po
B'liomr
PORTB
m ovlw
m ovw f
call tem po
goto
boucle
P a r: Mr MOULOUDj.K
: boucler
Ecole Technique
| Page 18
www.E-cours.com
.*********************************************************************
tem p o
nop
m ovlw
m ovw f
B3 m ovlw
m ovw f
B2 m ovlw
m ovw f
B1 deefsz
goto
B1
deefsz
B2
goto
deefsz
goto
B3
re tu rn
;pas d operation
0x2 f;
cont3
OxBD
cont2
0x25
cont 1
c o n tl, f
co n t2 ,f
co n t3 .f
END
[ / i n s t r u c t i o n B T F S S ( Bi t T e s t F , S k ip if S e t)
Traduit littdralem cnt, cela donne : Teste le bit de ^em p lacem en t m em oire et saute
s*il vaut 1.
S v n ta x e
B tfss
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 r e g is tr e S T A T U S a ffe c te
A ucun
1 / in s tr u c tio n B T F S C ( Bi t T e s t F S k ip if C le a r )
T raduit litteralem ent. cela donne : T este le bit de Icm placem ent m em oire el saute
s 'il vaut 0.
S v n ta x e
B tfsc
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 V instruction 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
Initiation a la p r o g r a n i m a t i o n des M i c r o c o n t r o l e u r | P I C !6 F 8 4 a
8 )- C r e a ti o n d u 5 l,u p r o g r a m m e :
( C o m m a n d e r u n A f f i c h e u r 7 S E G (P la y , P a u s e , S t o p ) ).
LIST
p=16F84a
"include <p 16F84.inc>
; D efinition de proccsscur
; D efinitions de variables
C O N FIG
C P O FF & _W D T O FF & PW R T E O FF & XT OSC
.********** * * * * **-** ** ******* *** ********* ************ **** ***** *********
;
D E C LA R A TIO N S DE V A R IA B L E S
>
O RG 0x00
.********* 4^
;
Initialisation
.*********************************************************************
STA TU SJRP0
BSF
M ovlw
B '0 0 0 1 1111
M ovw f
TR ISA
B '00000000'
M ovlw
TRISB
M ovw f
ST A T U S,R P0
BCF
VarPause.O
BCF
.*********************************************************************
%
;
PR O G R A M M E PR IN C IPA L
*
.*********************************************************************
debut
stopB l
btfsc
goto
PO R TA ,0
stopB I
btfsc
goto
PO R TA , 1
stopB2
c lrf
PO R TB
stopB2
boucle
P a r: Mr MOULOUDJ.K
;effacer le PortB - 0
Ecole Technique
| Page 20
www.E-cours.com
Initiation a la o r o e r a n i m a t i o n des M i c r o c o n t r o l e u r 1 P I C l 6 F 8 4 a
slop
btfss
goto
PO R T A ,0
stop
btfsc
goto
m ovlw
m ovw f
call tem po
m ovlw
m ovw f
call tem po
m ovlw
m ovw f
call tem po
m ovlw
m ovw f
call tem po
movlw
m ovw f
call tem po
m ovlw
m ovw f
call tem po
m ovlw
m ovw f
call tem po
m ovlw
m ovw f
call tem po
m ovlw
m ovw f
call tem po
m ovlw
m ovw f
call
goto
PO R T A ,0
stopc
stopc
B '0 0 0 0 1 10
PORTB
B' l Ol l Oi r
PORTB
Bl O O I l i r
PO RTB
BT 100110'
PO RTB
B T ionor
PORTB
BTIlllOr
PORTB
B'0(KJ 111*
PO RTB
BTl l l l i r
PORTB
BTiomr
PORTB
tem p o
boucic
te m p o
; T em porisation de l.sccondes
nop
m ovlw 0x2E
m ovw f cont3
B3 m ovlw OxBD
m o v w f cont2
B2 m ovlw OxOF
m o v w f contl
P a r : Mr MUULOUDJ.K
Ecole Technique
| Page 21
www.E-cours.com
PORTA.O
p au se
PO RTA J
debut
com 1.f
Bl
btfsc
call
btfsc
goto
deefsz
goto
NOP
NOP
NOP
NOP
NOP
NOP
deefsz
goto
deefsz
goto
r e tu rn
co n t2 ,f
B2
co n t3 ,f
B3
p a u se
stop BPS
btfsc
goto
B SF
m ovf
m ovw f
boucle pause
PC)RTA,0
stopBPS
VarPausc.O
PORTB.vv
savePB
c lrf
PORTB
call
tem p 2
m ovlw
B'l 1110011'
m ovw f
PO RTB
call
te m p o 2
btfsc
PO R TA ,0
BCF
V arPause,0
btfsc
V arPause,0
goto boucle_pause
m ovf
m ovw f
savePB ,w
PORTB
stopB PF
btfsc
goto
r e tu rn
PORTA.O
stopBPF
P a r : Mr MOULOUDJ.K
Ecole Technique
| Page 22
www.E-cours.com
P a r : Mr MOULOUD|.K
Ecole Technique
| Page 23
www.E-cours.com