You are on page 1of 209

PIC16F84

UPUTSTVO ZA RUKOVANJE
Staza za plau 6 kaca na Moravici u Sokobanji
1
1. Predgovor
Zato ba PIC16F84? Taj ikrokontrol!r j! za"tar!o# v!liki# "por# "kup$$$
M!%uti &a li j! ba "v! tako$ Star? Pa ta$ 'ij!&an oj kopjut!r nij! (u tr!nutku
kupovin!) bio la%i o& 4 *o&ina$ Prvi put "a na int!rn!t izaao aino "a
1++M,z i 16Mb$ -koliko i &alj! o! po"luiti# *o&in! u ni"u bitn!$ .ak zato ia i
j!&nu pr!&no"t/ ia *a na "vako 0oku1
'j!*ova v!li2ina za po2!tnik! o! pr!&"tavljati "ao po*o&no"t$ Po2!tniku j!
&al!ko lak! l!lj!nj! o"ana!"topin"ko* 3IP n!*o !z&!"!t2!tvoropin"ko* T4FP
ku0ita# naravno na j!&no"lojnoj tapanoj plo2ici$
5rzina ikrokontrol!ra pri u2!nju n! i*ra nikakvu ulo*u$ 6tavi!# na vi! !"ta u
pro*raia &ati u uput"tvu na!rno "! oralo izazivati kanj!nj!$
C!na ikrokontrol!ra1 7!"t! "kup$ 3ana" "! o*u kupiti no*o o0niji
ikrokontrol!ri po anjoj c!ni$ 8li ukoliko "! uz! u obzir i c!na o&*ovaraju0!*
pro*raatora (po*otovu o*u0no"t "ao*ra&nj!)# PIC16F84 j! i &alj! najj!9tiniji
ikrokontrol!r$
Po2!tniku u "v!tu ikrokontrol!ra najt!! j! napraviti onaj prvi korak$ 'a&a "! &a
0! u ovo uput"tvo 0! poo0i u to putu$ 8 po"l!? :ako 0! "! "a "t!2!ni znanj!
nau2iti i no*o koplikovaniji i "avr!!niji ikrokontrol!ri$ Iako "! ;ar&v!r"k!
o*u0no"ti ikrokontrol!ra n!pr!ki&no u"avravaju# "o9tv!r u*lavno o"taj! i"ti$
Za lak! razu!vanj! ovo* uput"tva po!ljan j! pri"tup int!rn!tu i potr!bna "u
o&r!%!na pr!&znanja/
<"novno poznavanj! !l!ktron"ki; kola (ano&a i kato&a :=3# pov!zivanj!
:=3 &i"pl!ja# 9unkcija ta"t!r pr!ki&a2a# ob!l!avanj! izvo&a int!*ri"ani; kola#
poja pina# 9unkcija &io&! u lo*i2ki kolia# napon"ki nivoi lo*i2k! + i 1#
vi"okoip!&an"no "tanj!# 6itov oki&a2)
<"novno poznavanj! binarni; "i"t!a (bit# bajt# binarno# &!cialno#
;!k"a&!cialno# 5C3 i ozna2avanj! n!*ativni; broj!va)
<"novn! lo*i2k! op!racij! (5ulova al*!bra)
Poja ultipl!k"a
Princip "!rij"ko* pr!no"a po&ataka
'!ojt! &ozvoliti &a >a" ovaj "pi"ak ob!";rabri$ >!liki &!o ovo*a j! objanj!n u
uput"tvu$
?ra&ivo u uput"tvu izlo!no j! o& poznati; ka n!poznati i o& laki; ka t!i
l!kcijaa$ Za &o"ta "p!ci9i2no"ti &ati "u pri!ri pro*raa u kojia "! upotr!bljavaju$
Tru&io "a "! &a *ra&ivo to int!r!"antnij! izloi$ 'a&a "! &a "a u"p!o$
@
2. Dobr !"#$ %rogr&#r'(
Pr! n!*o to u%!t! u 9in!"! pro*rairanja# i"li &a bi tr!balo obja"niti "tilov!
pro*rairanja$
-koliko "tavit! A (ta2kuBzar!z) bilo *&! u >a! pro*rau# kopajl!r 0!
i*nori"ati "v! karakt!r! iza nj!*a "v! &ok n! &o%! &o znaka za novi r!&$ <vo
zna2i &a o!t! "taviti ko!ntar unutar pro*raa kako bi >a" po&"!tio ta "!
uopt! u nj!u ra&i$ <vo j! &obra prak"a# 2ak i za najj!&no"tavnij! pro*ra!$
Mo&a "a&a u potpuno"ti razu!t! ta pro*ra ra&i# ali za par !"!ci# "ao
0!t! "! 2!kati po *lavi$ Zbo* to*a# ko!ntariit! to vi!$ '!a o*rani2!nja$
Mo!t! pri&ruiti i!na kon"tantaa i r!*i"tria (vi! o ovo! ka"nij!)$
3o"ta j! lak! 2itati na "rp"ko u ta upi"uj!t!# ili ta ozna2ava broj# n!*o &a
pokuavat! &a "! "!tit! ta zna2! "vi ti broj!vi$ Zbo* to*a# kori"tit! opi"na
i!na kao npr$ Z5IC$ Pri!tili "t! &a "a napi"ao i! v!liki "lovia$ <no
"! tako i"ti2!$
'apravit! za*lavlj! pro*raa kori"t!0i ta2kuBzar!z$ Pri!r j! &at i"po&$
ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
A 8utor / P!ra E&!ra 3atu / 1@$4$@++8$
A >!rzija / +$F 'a"lov / T!"t
A
A <pi" ;ar&v!ra /
A B CC o"cilator @++G,z$
A B Svi ta"t!ri "u pov!zani o& pinova ka a"i$
A T1 na C5+# T@ na C51$ -klju2!ni "u int!rni PullBup otpornici$
A B Sv! :=3 o& HF> ka pinovia$ :=31 na C8+# :=3@ na C8@$
A
A <pi" "o9tv!ra /
A B Stanj! :=31 !nja "! priliko "vako* int!rapta "a T1
A B Stanj! :=3@ !nja "! taj!ro na "vaki; +#FS j!&ino
A ukoliko j! i"tovr!!no priti"nut T@
A
A 3o&atni 9ajlovi / p16F84$inc
ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
-o2ili "t! &a j! napravlj!na n!ka vr"ta kock!$ <vako iz*l!&a pr!*l!&nij!$
Iz&vojit! in"trukcij! o& po2!tka r!&a i lab!la "a par razaka ili ITabJ
&u*!to$ 'a taj na2in a"!bl!r pr!poznaj! &a li j! r!2 o in"trukciji ili lab!li#
a pro*ra iz*l!&a pr!*l!&nij!$
'ajza&# i"probajt! i &oku!ntujt! >a pro*ra i na papiru$ Mo!t! kori"titi
*ra9ik!# al*orit! ili ta *o& !lit!$ To 0! va poo0i u pi"anju pro*raa#
korak po korak# kao i u nj!*ovoj ka"nijoj analizi$
8 "a&a pr!lazio na pravu "tvar$
K
). Reg#!"r#
C!*i"tar j! C8M !orij"ka lokacija unutar ikrokontrol!ra u koju "! o!
upi"ivati# "a koj! "! o! 2itati# ili obavljati ob! ov! 9unkcij!$ 'ajlak! j! &a "vaki o&
nji; zai"lit! kao kutiju u koju o! "tati &o @FF klik!ra (razli2iti; "tanja)$
Sl!&!0a "kica prikazuj! ra"por!& r!*i"tara unutar PIC16F84 ikrokontrol!ra$ Slika
prikazuj! a&r!"! na kojia j! "!t!a C8M !orija (u obliku o"obitni;
r!*i"tara) unutar ikrokontrol!ra# to 0! >a poo0i pri razu!vanju nji;ovo*
a&r!"iranja$
8&r!"a 58'G+ 58'G1 8&r!"a
0x00 I'3F
(1)
I'3F
(1)
0x80
0x01 TMC+ <PTI<'LC=? 0x81
0x02 PC: PC: 0x82
0x03 ST8T-S ST8T-S 0x83
0x04 FSC FSC 0x84
0x05 P<CT8 TCIS8 0x85
0x06 P<CT5 TCIS5 0x86
0x07 M M 0x87
0x08 ==38T8 ==C<'1 0x88
0x09 ==83C ==C<'@
(1)
0x89
0x0A PC:8T, PC:8T, 0x8A
0x0B I'TC<' I'TC<' 0x8B
0x0C
.
.
.
.
.
0x4F
68 C!*i"tra opt!
na!n! ("tati2ka
C8M !orija)
Mapirani u 58'G+
0x8C
.
.
.
.
.
0xCF
0x50
.
.
.
0x7F
M M
0xD0
.
.
.
0xFF
M B '!ipl!!ntovana !orij"ka lokacija (2ita "! kao +)
(1)
B 'ij! 9izi2ki r!*i"tar
4
Pri!0uj!t! &a "u r!*i"tri po&!lj!ni u &v! *rup!# ozna2!n! "a 58'G+ i 58'G1$
58'G1 "! u*lavno kori"ti za kon9i*uri"anj! tr!nutno* ;ar&v!r"ko* "tanja
ikrokontrol!ra$ -*lavno u j! (za j!&no"tavnij! pro*ra!) &ovoljno pri"tupiti
"ao priliko po2!tn! inicijalizacij! ikrokontrol!ra$ Gako "! najbitniji r!*i"tri
(P<CT8 i P<CT5) nalaz! u 58'G+# pro*ra 0! u*lavno biti u njoj$ Sl!&!0u
"p!ci9i2no"t pr!&"tavljaju prvi; 1@ r!*i"tara u bankaa (+N++ O +N+5)$ 'jia "!
&ir!ktno upravlja ra&o ikrokontrol!ra to i; 2ini povla0!ni (!n*$ Sp!cial
Function R!*i"t!r" B r!*i"tri "p!cijaln! na!n!)# &ok j! obi2na C8M !orija (!n*$
*!n!ral Purpo"! R!*i"t!r" B r!*i"tri opt! na!n!) &o"tupna u r!*i"tria o& +N+C &o
+N4F# a i"tovr!!no joj "! o! pri"tupiti i pr!ko +N8C &o +NCF a&r!"a$
Si*urno "t! v!0 vi&!li rap! za prolaznik! po "up!rark!tia ili autobu"ki
"tanicaa$ <n! proputaju prolaznik! "ao u j!&no "!ru$ -nutar ikrokontrol!ra
TCIS (TCIS8 i TCIS5) r!*i"tri izvravaju ovu 9unkciju$ <ni "! nalaz! na a&r!"aa
+N8F i +N86# r!"p!ktivno$ 3a bi"t! pro*rairali !lj!ni pin tako &a bu&! ulazni ili
izlazni (proputa prolaznik! unutra ili napolj!)# poalj!t! 1 ili + na nj!*ov bit u
o&*ovaraju0! TCIS r!*i"tru$ Pri to! o!t! kori"titi bilo koji (binarni# &!cialni
ili ;!k"a&!cialni) 9orat broj!va# !%uti binarni "! "likovitij! pr!&"tavlja "tanj!
!lj!no* pina$ -koliko ni"t! vi2ni pr!tvaranju binarni; u &!cialn! ili
;!k"a&!cialn! broj!v! i obratno# kori"tit! bilo koji napr!&niji kalkulator$
Svi C8 (C8+ &o C84) i C5 (C5+ &o C5P) pinovi ikrokontrol!ra iaju &vojaku
9uknciju$ <ni o*u biti ulazni ili izlazni$ 3a li 0! biti ulazni ili izlazni po&!ava "! u
o&*ovaraju0! TCIS r!*i"tru$
'a pri!r ukoliko "! u TCIS5 nalazi "l!&!0a binarna vr!&no"t/
bQ++1+1111Q pinovi 0! biti kon9i*uri"ani kao na "lici$ Pri!0uj!t!
&a bit P (!n*$ MS5 O +o"t Sin*l! ,it B bit najv!0! t!in! )
o&*ovara pinu C5P i &a "! on priliko binarno* ozna2avanja
nalazi "a l!v! "tran!$ 'a"uprot nj!u bit +# bit najanj! t!in!
(!n* :S5 O -oR Sin*l! ,it) o&*ovara pinu C5+$ Potpuno i"ta
"ituacija j! i "a TCIS8 r!*i"tro# "a to razliko to "u nj!u
*ornji bitovi n!i"kori0!ni (j!r n!aju pripa&aju0i; pinova)$
'a *ornjoj "lici pinovi "u kon9i*uri"ani po "l!&!0!/
pin RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
bit broj (MSB)7 6 5 4 3 2 1 0(LSB)
"tanj! 0 0 1 0 1 1 1 1
-laz M Izlaz I I U I U U U U
Gako "! TCIS5 nalazi u banci 1 (58'G1) potr!bno j! pr!baciti "! tao$ 3a bi "!
pr!bacili iz bank! u banku kori"ti "! bit F ST8T-S r!*i"tra$ Za pr!bacivanj! iz bank!
+ u banku 1 potr!bno *a j! "!tovati# a za vra0anj! u banku +# r!"!tovati$ ST8T-S
r!*i"tar "! nalazi na a&r!"i +N+K (0x03 ili h'03' ozna2ava broj!v! u
;!k"a&!cialno 9oratu$ 5inarni 9orat "! pi! kao b'00000011'# a &!cialni
kao .03 ili d'03')$
F
.!u kon9i*uri"anj! pinova? -koliko j! o&*ovaraju0i pin kon9i*uri"an (pr!ko "vo*
TCIS r!*i"tra) kao izlazni# na nj!*a "! iz ikrokontrol!ra o*u po"lati napon"ki nivoi
o& +> i HF># o&no"no na nj!u 0! "! u "vako tr!nutku nalaziti j!&an o& ovi;
napona$ Pri to! "! napon"ki nivo o& +> pr!&"tavlja kao lo*i2ka +# a napon o& HF>
kao lo*i2ka 1$ -koliko j! pak pin kon9i*uri"an kao ulazni# ikrokontrol!r 0! u
"vako tr!nutku o0i &a o2ita *or! po!nut! vr!&no"ti napona na pinu# i u
zavi"no"ti o& lo*i2ko* nivoa na pinu pr!&uz! o&*ovaraju0u akciju$
Pinov! koji "! n! upotr!bljavaju u !l!ktri2noj !i potr!bno j! kon9i*uri"ati kao
izlazn!$ - protivno varijacij! napona na njia prouzrokuju pov!0anu potronju i
*r!janj! ikrokontrol!ra# a !v!ntualno i nj!*ovu n!i"pravno"t$
3a bi"t! po"tavili j!&an o& izlazni; pinova na vi"oki lo*i2ki nivo# j!&no"tavno tr!ba
po"lati J1S na nj!u o&*ovaraju0i bit u P<CT8 ili P<CT5 r!*i"tru$ Forat zapi"a j!
i"ti kao i za TCIS r!*i"tr!$ Sli2no to!# &a bi"t! pro2itali &a li "! n!ki pin (ranij!
kon9i*uri"an kao ulazni) nalazi na lo*i2koj + ili 1# tr!ba &a prov!rit! &a li j!
o&*ovaraju0i bit u P<CT8 ili P<CT5 r!*i"tru u "!tovano ili r!"!tovano "tanju$
Pr! n!*o to prou2it! pri!r a"!bl!r"ko* kT&a# tr!ba obja"niti 9unkciju jo j!&no*
r!*i"tra/ U$
U (!n*$ .orkin* B ra&ni) r!*i"tar j! r!*i"tar opt! na!n! u koji o!t! "!"titi bilo
koju broj2anu vr!&no"t (u op"!*u o& $+ &o $@FF) "a kojo !lit! ra&iti$ 'akon to "t!
pri&ruili o&r!%!nu vr!&no"t r!*i"tru U# o!t! u pri&ruiti n!ku &ru*u vr!&no"t
(opr!z O ti! bi"t! autoat"ki obri"ali pr!t;o&nu) ili zapa0!nu vr!&no"t iz nj!*a
pr!!"titi na n!ku &ru*u !orij"ku lokaciju (r!*i"tar)$ Za razliku o& o"tali;
r!*i"tara on n!a "voju a&r!"u# v!0 j! int!*ri"an u "klopu "ao* ikrokontrol!ra$ -
opi"ia in"trukcija "! o*u "r!"ti oznak! 9# k# b i &$ Pri to! j! "a / (!n*$ /il!)
ozna2!na a&r!"a j!&no* o& r!*i"tra iz tab!l! "a po2!tka ovo* po*lavlja# 0 ozna2ava
kon"tantnu vr!&no"t# b j! r!&ni broj bita u r!*i"tru a d ozna2ava o&r!&it! (!n*$
d!"tination) r!zultata op!racij!$
Ilu"trova0!o "v! &o "a&a nau2!no$ '!ojt! jo uv!k i"probavati ni kopajlirati kT&
B to 0!t! ura&iti ka&a &o%!t! &o prvo* c!lovito* pro*raa$ Za "a&a pokuajt! &a
pr!poznat! na2in na koji "! kon9i*uriu portovi# i pripr!it! "! &a nau2it! par
a"!bl!r"ki; in"trukcija$
Za pi"anj! kT&a o!t! kori"triti bilo koji t!k"t !&itor koji "nia 2i"t $tNt 9ajl b!z
ikakvi; 9oratiranja$ 'a pri!r o&li2an 'ot!pa&HH (u*ra&io "a u pr!poznavanj! i
na*laavanj! a"!bl!r"ki; in"trukcija)# Co&! =&it Pro ("a na*laava in"trukcij!)#
Uin&oR"ov 'ot!pa& ili :inuNov :!a9pa&$ - j!&no o& nar!&ni; po*lavlja#
upozna0!t! "! "a MP:85 razvojni okru!nj!# i nj!*ovi !&itoro$
'ajpr! j! potr!bno pr!baciti pro*ra iz bank! + u banku 1$ <vo "! ra&i "!tuju0i bit F
ST8T-S r!*i"tra# 2ija j! a&r!"a +N+K$
bsf 0x03,5
5SF 9#b zna2i J"!tuj bit b u r!*i"tru 9S (!n*$ ,it S!t /)$ <v&! j! 9V+N+K to j! a&r!"a
ST8T-S r!*i"tra (po*l!&ajt! raniju tab!lu) i bVF to ozna2ava r!&ni broj bita u
ST8T-S r!*i"tru$ 3akl! ovi j! r!2!no J"!tuj bit F na a&r!"i +N+KS$
6
Sa&a "!# &akl!# pro*ra nalazi u banci 1$
movlw b'00101111'
<vo in"trukcijo "!ta "! binarni broj bQ++1+1111Q u U r!*i"tar$ <vo i"to o*li
"t! &a ura&it! "a ;!k"a&!cialni broj! i ta&a bi in"trukcija iz*l!&ala ovako/
movlw 0x2F
<b! in"trukcij! ra&! potpuno i"tu "tvar$ M<>:U k zna2i Jubaci vr!&no"t koja "l!&i
&ir!ktno u r!*i"tar US (!n*$ +ov! -it!ral to .)$
Sa&a tr!ba pr!!"titi ovu vr!&no"t u TCIS5 r!*i"tar# &a bi "! kon9i*uri"ali pinovi
P<CT5 r!*i"tra$
movwf 0x86
In"trukcija M<>UF 9 zna2i/ Jpr!!"ti vr!&no"t r!*i"tra U u 9 r!*i"tarS (!n*$ +ov!
. to /)$ - ovo "lu2aju a&r!"a 9 j! a&r!"a r!*i"tra TCIS5 (vi&it! u tab!li)$ 5itno j!
pri!titi &a ovo nij! pr!!tanj! u "vo bukvalno zna2!nju# j!r j! U r!*i"tar nakon
in"trukcij! o"tao n!pro!nj!n$ Pr! bi joj o&*ovarao pr!vo& kopiraj (!n*$ copW)$
TCIS5 r!*i"tar "a&a "a&ri !lj!nu vr!&no"t# 2i! "u kon9i*uri"ani ulaznoMizlazni
("kra0!no -MI) pinovi$ Sa&a j! potr!bno pr!baciti pro*ra u banku +# kako bi "! &alj!
o*lo anipuli"ati "i*nalia na -MI pinovia$
bcf 0x03,5
<va in"trukcija j! "uprotna o& 5SF$ 5CF 9#b zna2i Jr!"!tuj bit b u r!*i"tru 9S (!n*$ ,it
Cl!ar /)$ 5roj!vi koji "l!&! "u a&r!"a r!*i"tra (9)# u ovo "lu2aju ST8T-S r!*i"tra i
broj bita (b)# u ovo "lu2aju bit F$ 3akl! ovi j! u "tvari r!"!tovan bit F ST8T-S
r!*i"tra$ Po"l!&ica po"l!&nj! in"trukcij! j! &a "! pro*ra ponovo nalazi u 58'G+$
Pri!0uj!t! &a j! a&r!"a ST8T-S r!*i"tra i"ta# iako bi u 58'G1 tr!bala biti +N8K$
'!oj &a va" to buni$ Svi r!*i"tria u 58'G1 o! "! pri"tupati pr!ko a&r!"a
r!*i"tra u 58'G+# j!&ino j! bitno pravilno po&!"iti u kojoj "! banci nalazi pro*ra$
Ipak# n! pr!t!rujt! "a ovi$ Cazuljivij! j! 2itati pro*ra "a noralni a&r!"aa$ Za
r!*i"tr! koji "u zaj!&ni2ki za ob! bank!# ovo j! potpuno "v!j!&no$
C!o pr!t;o&ni kT& zapi"an u j!&no bloku iz*l!&a ovako/
bsf 0x03,5 A I&i u 58'G1
movlw b'00101111' A Stavi bQ++1+1111Q u U
movwf 0x86 A Pr!baci bQ++1+1111Q u TCIS5
bcf 0x03,5 A >rati "! u 58'G+
'akon to "niit! 9ajl# pro!nit! u tNt !k"t!nziju u a"$ Za ovo 0! va u
Uin&oR"u tr!bati Total Coan&!r# a u :inuNu npr$ ?no! Coan&!r$
Prou2it! pr!t;o&ni pri!r n!koliko puta# "v! &ok n! bu&!t! u "tanju &a *a u
potpuno"ti razu!t!$ Za "a&a "t! nau2ili 4 in"trukcij!$ 7o "ao K11
P
4. I1$1#
- pr!t;o&no po*lavlju "t! nau2ili kako &a kon9i*uri!t! -MI pinov! porta tako &a
bu&u ulazni ili izlazni$ - ovo po*lavlju 0!t! nau2iti kako &a poalj!t! o&*ovaraju0i
lo*i2ki nivo na portov!$ - pri!ru koji "l!&i cilj 0! >a biti &a oo*u0it! tr!ptanj!
j!&n! :=3 (!n*$ -i*;t Eittin* Dio&!)# i u nj!u 0!t! vi&!ti j!&an potpuni pro*ra$
'!ojt! jo uv!k i"probavati# kopajlirati ni pro*rairati >a PIC li"tinzia koji
"l!&!# j!r "u oni &ati "ao kao ilu"tracija$
'ajpr! tr!ba po&!"iti &ru*i bit P<CT8 r!*i"tra tako &a bu&! izlazni/
bsf 0x03,5 A I&i u banku 1
movlw b'00000000' A Stavi +++++ u U
movwf 0x85 A Pr!baci +++++ u TCIS8 O "vi pinovi "u izlazni
bcf 0x03,5 A >rati "! u 58'G+
<vo bi tr!balo &a >a bu&! poznato iz pr!t;o&no* pri!ra$ 7!&ina razlika j! u to!
to "t! "a&a po&!"ili "v! pinov! P<CT8 r!*i"tra kao izlazn!# alju0i +N++ u TCIS8
r!*i"tar$
Zati tr!ba uklju2iti :=3$ Zato tr!ba na j!&an o& pinova (onaj na ko! j! pov!zana
:=3) po"lati lo*i2ku 1$ =vo kako "! to ra&i$ (<bratit! panju na ko!ntar! kT&a)/
movlw b'00000100' A -pii $4 u U r!*i"tar$
movwf 0x05 A Pr!baci "a&raj iz U ($4) u P<CT8# 2ija a&r!"a j!
A +N+F$ To po"tavlja lo*i2ku 1 "ao na pinu C8@$
A Poto j! :=3 uklju2!na# tr!ba j! i"klju2iti$
movlw b'00000000' A -pii $+ u U r!*i"tar$
movwf 0x05 A Pr!baci "a&raj iz U ($+) u P<CT8# 2ija a&r!"a j! +N+F
<vi "t! po"ti*li &a j!&no uklju2it!# i zati i"klju2it! :=3$ <no to !lit! &a
po"ti*n!t! j!"t! &a :=3 n!pr!ki&no tr!p!ri$ To "! o! ipl!!ntirati vra0aju0i
izvr!nj! pro*raa na po2!tak$ Po"tavit! Jlab!luS (oznaku) na po2!tak pro*raa# i
zati r!cit! pro*rau &a na"tavi "voj! izvravanj! "a tako ozna2!n! pozicij!$
:ab!la "! po"tavlja v!oa j!&no"tavno/ upiit! i!# r!cio Poc# i zati pr!piit!
"l!&!0i kT&/
Poc movlw b'00000100' A -pii $4 u U r!*i"tar$
movwf 0x05 A Pr!baci "a&raj iz U ($4) u P<CT8# 2ija a&r!"a j!
A +N+F$ To po"tavlja lo*i2ku 1 "ao na pinu C8@$
8
A Poto j! :=3 uklju2!na# tr!ba j! i"klju2iti$
movlw b'00000000' A -pii $+ u U r!*i"tar$
movwf 0x05 A Pr!baci "a&raj iz U ($+) u P<CT8# 2ija a&r!"a j! +N+F
A To po"tavlja lo*i2ku + na "v! pinov! (C8+ &o C84)
goto Poc A 'a"tavi &alj! izvravanj! pro*raa o& lab!l! Poc
Gao to pri!0uj!t!# najpr! j! i"pr!& in"trukcij! na po2!tku r!&a "tavlj!na lab!la
JPocS$ 'a "ao kraju pro*raa j! J*oto PocS in"trukcijo na"tavlj!no &alj!
izvravanj! pro*raa o& lab!l!$ In"trukcija ?<T< k zna2i Ji&i naS (!n*$ *oBi&i# ToB
na) a&r!"u (k) ili lab!lu$
Pro*ra 0! "a&a n!pr!ki&no uklju2ivati i i"klju2ivati :=3 o& tr!nutka &ovo%!nja
napona napajanja# a pr!"ta0! po nj!*ovo n!"tanku$
Po*l!&ajt! jo j!&no i"ti pro*ra/
bsf 0x03,5
movlw b'00000000'
movwf 0x85
bcf 0x03,5
Poc movlw b'00000100'
movwf 0x05
movlw b'00000000'
movwf 0x05
goto Poc
Go!ntari "u na!rno izo"tavlj!ni i "v! to o!t! vi&!ti j!"u nizovi in"trukcija i
broj!va$ <vo o! &a bu&! krajnj! zbunjuju0! ukoliko ka"nij! pokuavat! &a
i"pravit! !v!ntualno otkriv!nu *r!ku u pro*rau# ali v!0 i toko prvobitno* pi"anja
pro*raa# ka&a tr!ba zapatiti "v! t! poj!&ina2n! a&r!"!$ .ak i ka&a bi"t! &o&ali
ko!ntar!# pro*ra bi i &alj! &!lovao n!ja"no$ Zbo* to*a tr!ba "vi broj!via &ati
i!na$ <vo o! &a "! ura&i nar!&bo J!XuS# koja j!&no"tavno zna2i Jj!&nako
n!2!u &ru*oS (!n*$ E23al O j!&nak)$ >ano j! &a pri!tit! &a ovo nij! in"trukcija
za PIC v!0 tzv$ &ir!ktiva koja ia uticaj na "a a"!bl!r (vi! o nj!u ka"nij!)$
Pro*ra koji "a&ri J!XuS &ir!ktivu 0!# &akl!# nakon a"!bliranja u ain"ki kT&
PICBa# biti i&!nti2an pro*rau b!z J!XuS &ir!ktiv!$ <vo &ir!ktivo "ao
za!njuj!t! !lj!ni broj i!no$
Po"tupit! ovako/ izbacit! "v! ko!ntar! ali i!nujt! r!*i"tr! u >a! pro*rau# a
zati oc!nit! 2itljivo"t takvo* pro*raa$
STATUS e! 0x03 A <vo pri&ruuj! naziv ST8T-S broju +N+K# koji
A pr!&"tavlja a&r!"u ST8T-S r!*i"tra
TRISA e! 0x85 A <vo pri&ruuj! naziv TCIS8 broju +N8F# koji
A pr!&"tavlja a&r!"u TCIS8 r!*i"tra
Y
P"RTA e! 0x05 A <vo pri&ruuj! naziv P<CT8 broju +N+F# koji
A pr!&"tavlja a&r!"u P<CT8 r!*i"tra
RP0 e! 0x05 A <vo pri&ruuj! r!2 CP+ broju +N+F# koji pr!&"tavlja
A r!&ni broj bita unutar ST8T-S r!*i"tra$
I!na oraju biti &!9ini"ana pr! n!*o to bu&u upotr!blj!na# i zbo* to*a i; uv!k
&!9iniit! na po2!tku "vako* pro*raa$ 'akon i!novanja r!*i"tara# un!"it! nji;ova
i!na i u aktivni &!o pro*raa$ -koliko "a&a pr!pi!t! pro*ra b!z ko!ntara# ali "a
i!novani r!*i"tria# o0i 0!t! &a upor!&it! pr!*l!&no"t i 2itljivo"t takvo* li"tin*a
"a pr!t;o&ni/
STATUS e! 0x03
TRISA e! 0x85
P"RTA e! 0x05
RP0 e! 0x05
bsf STATUS,RP0
movlw b'00000000'
movwf TRISA
bcf STATUS,RP0
Poc
movlw b'00000100'
movwf P"RTA
movlw b'00000000'
movwf P"RTA
goto Poc
Si*urno "t! pri!tili &a i!novani r!*i"tri 2in! pra0!nj! pro*raa znatno laki# 2ak
i b!z ikakvi; ko!ntara$ Tako%! o!t! pri!titi &a "! i!novani r!*i"tri razlikuju
o& lab!l! po to! to "u i "va "lova v!lika$ 'a taj na2in n! o!t! &o0i u "ituaciju
&a ka"nij! raziljat! &a li j! n!ka takva oznaka lab!la ili i!novani r!*i"tar$
Mo&a va &!luj! 2u&no to P<CT8 r!*i"tar i CP+ bit ST8T-S r!*i"tra iaju i"tu
vr!&no"t (+N+F)$ M!%uti# razlika j! o2i*l!&na$ P<CT8 pr!&"tavlja a&r!"u r!*i"tra# a
CP+ bit F ST8T-S r!*i"tra$ 8"!bl!r n! pravi razliku iz!%u nji; j!r i j! vr!&no"t
i"ta (2ak "! o*u i za!niti)# ali vo&i ra2una o nji;ovo r!&o"l!&u unutar in"trukcij!$
Tako%! o!t! vi&!ti &a "u in"trukcij! o&voj!n! o& po2!tka r!&a$ To j! obav!zno# &a
i; a"!bl!r n! bi pr!v!o kao lab!l!$
1+
4. Pr1'e %e"$(e
- pr!t;o&no pro*rau po"toji ala *r!ka$ Skoro "vaka in"trukcija za;t!va j!&an
in"trukcijki ciklu" &a bi "! izvrila$ In"trukcij"ki ciklu" j! 4 puta v!0i o& takta
o"cilatora$ -koliko kao o"cilator za takt za PIC16F84 kori"tit! kvarcni kri"tal o&
4M,z trajanj! "vak! in"trukcij! 0! biti 4M,zM4ciklu"a# ili 1ZS$ Gako "! kori"ti "ao
F in"trukcija# :=3 0! "! uklju2iti i i"klju2iti u "ao 6ZS$ Zbo* 2!*a 6 a n! F? Zbo*
to*a to in"trukcij! koj! !njaju "tanj! pro*ra"ko* broja2a (!n*$ Pro*ra Count!r O
vi! o nj!u ka"nij!) poput ?<T< za "voj! izvr!nj! tro! @ in"trukcij"ka ciklu"a$
Gako j! to tr!ptanj! pr!vi! brzo &a bi"t! *a uopt! o*li pri!titi# zbo* "poro"ti oka
&!lova0! >a kao &a :=3 "v!tli kon"tantno# ali "a pola "na*!$ 3akl! potr!bno j!
napraviti a&!kvatno kanj!nj! iz!%u tr!nutka uklju2!nja i i"klju2!nja :=3$
-obi2aj!ni princip po ko! "! ipl!!ntira kanj!nj! j!"t! &a ikrokontrol!ru
za&at! &a o&brojava o& pr!t;o&no po"tavlj!no* broja &o nul!# i &a u tr!nutku
&o"tizanja nul! pr!kin! o&brojavanj!$ 'ulta vr!&no"t# &akl!# pr!&"tavlja kraj i izlazak
iz p!tlj!# nakon 2!*a PIC na"tavlja "a izvravanj! &alj!* pro*raa$
'ajpr! tr!ba &!9ini"ati kon"tantnu vr!&no"t koja 0! pr!&"tavljati inicijalnu vr!&no"t
broja2a$ 'azovit! j! 5C<78C$ Zati tr!ba o&lu2iti kolika 0! biti "tvarna vr!&no"t
ovo* broja$ 'ajv!0i broj koji "! o! za&ati j! &Q@FFQ o&no"no +NFF$

M!%uti# kao to j! napo!nuto u pr!t;o&no po*lavlju# nar!&ba !Xu pri&ruuj!
i!na obi2ni broj!via# n! prav!0i razliku iz!%u a&r!"a r!*i"tra i bitova$ Zato
0!t!# ukoliko probat! njo pri&ruiti vr!&no"t +NFF# &obiti *r!ku pri kopajliranju
pro*raa$ <vo "! &!ava j!r !orij"ka a&r!"a +NFF nij! ipl!!ntovana u
PIC16F84# i zbo* to*a joj n! o!t! pri"tupiti$ Pa kako on&a pri&ruiti !lj!ni broj?
Za to j! potr!bno &a "a "tran! "a*l!&at! "ituaciju$ -koliko i!nu 5C<78C pri&ruit!#
na pri!r a&r!"u +N+C# ona 0! ukazivati na a&r!"u r!*i"tra opt! na!n! (C8M
!oriju koju o!t! "lobo&no kori"titi)$ Priliko &obijanja napona napajanja# "vi
n!i"kori0!ni r!*i"tri u ikrokontrol!ru (o"i r!*i"tara "p!cijaln! na!n!)
po"tavljaju "! na vr!&no"t +NFF$ Zato 0! 5C<78C iati vr!&no"t +NFF$
8li# kako on&a po&!"iti 5C<78C na &ru*u vr!&no"t? Sv! to tr!bat! ura&iti j! &a
ubacit! !lj!nu vr!&no"t u taj r!*i"tar$ 'a pri!r# ukoliko !lit! &a 5C<78C "a&ri
vr!&no"t +N8F# n! o!t! napi"ati 5C<78C !Xu +N8F# j!r 0! on&a 5C<78C "a&rati
a&r!"u TCIS8 r!*i"tra$ Zato tr!bat! ura&iti "l!&!0!/
movlw 0x85 A 'ajpr! "tavit! broj +N8F u U r!*i"tar#
movwf 0x0# A a on&a *a pr!bacit! u +N+C r!*i"tar
Sa&a o!t! "lobo&no napi"ati 5C<78C !Xu +N+C$ >r!&no"t unutar i!novano*
r!*i"tra 5C<78C koji "! nalazi na a&r!"i +N+C 0! biti +N8F$
Gori0!nj! n!inicijalizovani; (+NFF) vr!&no"ti o! &ov!"ti &o zabun! priliko
ka"nij! analiz! pro*raa$ >!rovatno 0!t! "! pitati kako "t! o*li "anjiti vr!&no"t u
r!*i"tru b!z nj!*ov! pr!t;o&n! inicijalizacij!$ - pri!ria u ovo uput"tvu on! "u
kori0!n! i"klju2ivo zbo* t!&nj! pro"tora$ -koliko i; >i bu&!t! kori"tili u "voji
pro*raia obav!zno to na*la"it! o&*ovaraju0i ko!ntaria$
11
Zna2i# najpr! j! potr!bno i!novati r!*i"tar/
BR"$A# e! 0x0#
3alj! "! tr!ba "anjivati vr!&no"t r!*i"tra 5C<78C "v! &ok n! &o"ti*n! vr!&no"t
+N++$ -nutar PIC po"toji in"trukcija kojo "! o! ovo ura&iti# uz alu poo0
in"trukcij! *oto i lab!l!$ Ta in"trukcija ia "l!&!0i oblik/
decfsz BR"$A#,1
In"trukcija 3=CFSZ 9#& (!n*$ De5r!!nt /# Skip i9 1!ro) zna2i JSanji vr!&no"t
r!*i"tra 9 (u ovo "lu2aju 5C<78C o&no"no +N+C) i "tavi &obij!nu vr!&no"t u U ako
j! &V+# o&no"no u r!*i"tar 9 ako j! &V1$ -koliko j! r!zultat nakon "anj!nja j!&nak +
pr!"ko2i "l!&!0u in"trukcijuS$
Gako "! o&r!&it! r!zultata kori"ti u &o"ta in"trukcija# a kao to "t! v!0 nau2ili lak! j!
patiti i!na u!"to broj!va# o*u0! j! i bitu o&r!&ita &ati i!# na "l!&!0i na2in/
% e! .0
F e! .1
Mno*o r!2i# za j!&nu in"trukciju$ Po*l!&ajt! nj!nu pri!nu u prak"i$
BR"$A# e! 0x0#
Pe& decfsz BR"$A#,F
goto Pe&
'a"tavi o&av&!
<v&! j! najpr! (inicijalno) po"tavlj!na kon"tanta 5C<78C na +NFF$ - "l!&!0! r!&u
&!9ini"ana j! lab!la nazvana P!t# i za&ana j! &!c9"z in"trukcija$ 3!c9"z 5C<78C#F
"anjuj! vr!&no"t r!*i"tra 5C<78C za 1# i r!zultat vra0a u r!*i"tar 5C<78C$ <na
i"tovr!!no prov!rava &a li j! nova vr!&no"t r!*i"tra 5C<78C j!&naka +$ -koliko
nij!# pro*ra "! na"tavlja o& "l!&!0! linij!$ - "l!&!0oj liniji iao in"trukciju *oto#
koja vra0a izvr!nj! pro*raa na &!c9"z in"trukciju$
To "! ponavlja "v! &ok vr!&no"t r!*i"tra 5C<78C n! bu&! j!&naka nuli$ <n&a
pro*ra pr!"ka2! "l!&!0u in"trukciju (u ovo pri!ru *oto) i na"tavlja o& !"ta *&!
j! napi"ano J'a"tavi o&av&!S$ Gao to vi&it!# ovi "! pro*ra JvrtiS u j!&no !"tu
ta2no o&r!%!no vr!! (kao brojanj! u urkaa)# pr! n!*o to na"tavi &alj!$ To "!
naziva Jprazna p!tljaS$ Gako bi "! j!&no p!tljo po"ti*lo ak"ialno kanj!nj! o&
KZS D @F6 V P68ZS# bi0! >a potr!bn! bar &v! p!tlj! (j!&na unutar &ru*!) ukupno*
kanj!nja o& KZS D @F6 D @F6 V +#@S &a bi"t! o*li pri!titi kako :=3 tr!p!ri$
- prolo po*lavlju to nij! na*la!no# ali "vako pro*rau potr!bno j! &!9ini"ati
po2!tak (a&r!"u unutar PIC16F84 "a koj! po2inj! "nianj! kT&a) i kraj (po"l! ko*a
n!a vi! in"trukcija)$ Po2!tak pro*raa "! &!9ini! "l!&!0o &ir!ktivo
"R' 0x00
Sa&a ubacit! ov! p!tlj! u pro*ra# i &ovrit! *a prav!0i pravi pro*ra "a
ko!ntaria/
1@
A DDDDDD I!novanj! r!*i"tra DDDDDD
STATUS e! 0x03 A 8&r!"a ST8T-S r!*i"tra
TRISA e! 0x85 A 8&r!"a TCIS8 r!*i"tra
P"RTA e! 0x05 A 8&r!"a P<CT8 r!*i"tra
BR"$A#1 e! 0x0# A Prvi broja2 za praznu p!tlju$ Inicijalno +NFF
BR"$A#2 e! 0x0( A 3ru*i broja2 za praznu p!tlju$ Inicijalno +NFF
RP0 e! 0x05 A <znaka bita F ST8T-S r!*i"tra
F e! .1 A <znaka o&r!&ita r!zultata in"trukcij!
A DDDDDD Po&!avanj! porta DDDDDD
o)* 0x00
bsf STATUS,RP0 A Pr!bacuj! pro*ra u banku 1
movlw b'00000000' A Po"tavlja "v! pinov!
movwf TRISA A kao izlazn!
movwf TRISB A
bcf STATUS,RP0 A >ra0a pro*ra u banku +
A DDDDDD -klju2i :=3 DDDDDD
Poc movlw b'00000100' A -klju2uj! :=3 "tavljaju0i vr!&no"t
movwf P"RTA A bQ+++++1++Q u U# a zati i u P<CT8
A DDDDDD Prva p!tlja aktivna pri uklju2!noj :=3 oko +#@S DDDDDD
Pe&1 decfsz BR"$A#1,F A Sanji 5C<78C1 za 1
goto Pe&1 A -koliko j! 5C<78C1 j!&nak +# na"tavi &alj!
decfsz BR"$A#2,F A Sanji 5C<78C@ za 1
goto Pe&1 A -koliko j! 5C<78C@ j!&nak +# na"tavi &alj!#
A u "uprotno vrati "! na po2!tak p!tlj!$
A <vaj broja2 broji na&ol! o& @FF &o +# @FF puta
A To j! tzv$ p!tlja unutar p!tlj!$
A DDDDDD Ganj!nj! zavr!no$ Sa&a i"klju2i :=3 DDDDDD
movlw b'00000000' A I"klju2i :=3 "tavljaju0i + u U r!*i"tar#
movwf P"RTA A a zati u P<CT8
A DDDDDD 3ru*a p!tlja aktivna pri i"klju2!noj :=3 oko +#@S DDDDDD
Pe&2 decfsz BR"$A#1,F A 3ru*a p!tlja &ri :=3 i"klju2!no
goto Pe&2 A &ovoljno &u*o &a bi "! to o*lo pri!titi
decfsz BR"$A#2,F A
goto Pe&2 A
A DDDDDD Sa&a "! pro*ra vra0a na po2!tak DDDDDD
goto Poc A >ra0anj! na po2!tak pro*raa
A DDDDDD Graj pro*raa DDDDDD
e+d A 3ir!ktiva za ozna2avanj! kraja pro*raa$
1K
'aravno# !l!0!t! &a i"probat! pro*ra &a bi vi&!li &a li zai"ta ra&i$ =vo !l!ktri2n!
!! koju tr!bat! napraviti za t!"t ovo* pro*raa$
Takt ikrokontrol!ra o&r!%!n j!
upotr!blj!ni CC o"cilatorni
kolo (otpornik o& 1+k[ i
kon&!nzator o& KKpF)$
Iako za &ati pri!r nij! potr!bno
kon9i*uri"ati pinov! oba porta# to j!
po!ljno ukoliko "u pinovi na
P<CT5 n!pov!zani$ 5olj! j!
utroiti in"trukciju vi! n!*o
rizikovati n!pouz&an ra& ili
ot!0!nj! ikrokontrol!ra$
I"to tako :=3 j! o*u0! pov!zati
&ir!ktno na pin (b!z otpornika)#
poto PIC16F84 ia int!rno
o*rani2!nj! izlazn! "truj! na aN$
@F8$ M!%uti to nij! po!ljno$
C!na otpornika j! zan!arljiva u
o&no"u na c!nu ikrokontrol!ra$
- prak"i "! 2!0! "r!0! inv!rzna lo*ika za pov!zivanj! :=3 tako to "! ano&a :=3
pov!! na HF># a kato&a (pr!ko otpornika) na pin$ Pri to! 0! :=3 "v!tl!ti po
&ovo%!nju lo*i2k! + na pin$ <vo j! o*u0! j!r pin pri lo*i2koj + o! upijati "truju
&o @F8# a i po!ljno zbo* anj!* *r!janja i potronj! ikrokontrol!ra$
.!"titao$ -pravo "t! napravili "voj prvi pro*ra# i napravili kolo koji "! :=3
uklju2uj! i i"klju2uj!$ Za "a&a "t! "l!&!0i ova uput"tva nau2ili P o& ukupno KF
in"trukcija# i v!0 kontroli!t! ulazno izlazni port$
- "l!&!0! po*lavlju nau2i0!t! kako &a "voj kT& kopajlirat! i "niit! u PIC$
14
6. +P-A, A!e&b$er
- ovo po*lavlju upozna0!t! "! "a MP:85 razvojni okru!nj!# i "p!cijalni
9unkcijaa nj!*ovo* !&itora$
Sa "ajta ;ttp/MMRRR$icroc;ip$coM tr!bat! "kinuti pro*ra"ki pak!t MP:85$ <n
ia int!*ri"an !&itor (u!"to Uin&oR" 'ot!pa&a)# a"!bl!r# "iulator i &rajv!r! za
"voj! pro*raator!$ 'a alo"t na" "a &ialBup v!zo# "a pak!t t!i oko 6FMb$
Funkcija !&itora bi tr!balo &a va j! ja"na$ ?!n!ri"anj! 2i"to* $a" 9ajla$ 8"!bl!r
"lui &a t!k"tualn! in"trukcij! iz $a" 9ajla pr!tvori u ain"ki kT& koji PIC razu!$
- protivno# u!"to in"trukcij! ovlR +N+1 tr!bali bi pi"ati binarni ain"ki kT&
11++++ +++++++1$
>!rovatno >a j! v!0 &o"a&ilo &a iznova i iznova pi!t! ST8T-S !Xu +N+K i o"tala
"tan&ar&na i!na$ MP:85 a"!bl!r ia o*u0no"t u2itavanja 9ajla koji "a&ri "va
ova i!na$ 7o bolj!# u "!bi ia i pr!&!9ini"an! obra"c! (!n*$ "tan&ar& co&! t!plat!)
za upi" a"!bl!r"ko* pro*raa "a za*lavlj!# uobi2aj!ni &ir!ktivaa# po"!bni
&!lo za int!rapt! (vi! o njia ka"nij!)$$$
MP:85 ia j!&an poznat ba* koji "! o*l!&a u n!o*u0no"ti ra&a "a putanjo &o
9ol&!ra &uo o& F1 karakt!ra$ Zato &ir!ktno u C/ napravit! 9ol&!r IMoji pro*raiJ$
- nj!*a kopirajt! "l!&!0i 9ajl/
P16,84.-+c B "a&ri "v! "tan&ar&n! lab!l!
<vaj 9ajl tr!balo bi &a "! nalazi u 9ol&!ru
#./P)o*)01 F-2e3/4-c)och-5/4PAS4 S!-&e/P16,84.-+c
<n&a u >a! t!k"t !&itoru napravit! "l!&!0! za*lavlj!#
ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
A 8utor /
A 3atu /
A >!rzija /
A 'a"lov /
A
A <pi" ;ar&v!ra /
A <pi" "o9tv!ra /
A Potr!bni 9ajlovi / p16F84$inc
A
ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
1F
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!$
A >i! o njia ka"nij!$
"R' 0x00 A 3!9ini! "tart pro*raa
A Pro"tor za va! pro*ra!$
e+d A Graj pro*raa
i "niit! *a u 9ol&!r I#./4o>- 5)o*)01-J "a nazivo I?0*2.031S$
-nutar 9ol&!ra I#./4o>- 5)o*)01-J napravit! 9ol&!r IP)ob0J$
<vo za*lavlj! o!t! kori"titi za "vaki novi pro*ra koji pravit!# !%uti uv!k *a
o!t! pro!niti# tako &a o&*ovara >ai "p!ci9i2ni potr!baa$
-koliko zavirit! u "trukturu 516F84.-+c 9ajla (FK iz Total Coan&!ra)# o!t!
pri!riti &a "u u nj!u i!novani "vi r!*i"tri# pa 2ak i bitovi poj!&ini; r!*i"tra$
-koliko >a nj!*ova tr!nutna "truktura iz bilo ko* razlo*a n! o&*ovara# i ovaj 9ajl
o!t! !&itovati po "op"tv!ni potr!baa$ - to "lu2aju uv!k *a 2uvajt! zaj!&no
"a $a" pro*rao$
Sa&a uklju2it! MP:85 I3=$ '! obazirit! "! na prozor! koj! j! otvorio# v!0 "l!&it!
"l!&!0u proc!&uru/ Proj!ct# Proj!ct Uizar&# '!Nt# izab!rit! PIC16F84# '!Nt
Izab!rit! (ukoliko v!0 nij!) Microc;ip MP8SM Tool"uit!$
Gliknit! na IMP8SM 8""!bl!r (Mpa"Rin$!N!)J# i prov!rit! &a li "! nalazi u
9ol&!ru #./P)o*)01 F-2e3/4-c)och-5/4PAS4 S!-&e$ -koliko *a n!a#
locirajt! *a ru2no kliko na 5roR"!$ <"tala &va 9ajla >a (za "a&a) ni"u bitna$
'!Nt# -piit! i! proj!kta (npr$ Proba) i izab!rit! putanju &o ranij! napravlj!no*
9ol&!ra #./4o>- 5)o*)01-/P)ob0
'!Nt# -%it! u #./4o>- 5)o*)01-$ Gliknit! naiz!nicno na P16,84.-+c#
?0*2.031# i na 8&&# tako &a "! oba 9ajla pojav! u &!"no prozoru$ Gliknit! na
"lova 8 por!& nji; &ok "! n! pro!n! u C (CopW)$ 'a taj na2in "! o&abrani 9ajlovi
kopiraju u tr!nutni proj!kat (u 9ol&!ru Proba)# tako &a ori*inali o"taju n!pro!nj!ni
za i&u0i put$ <"tal! o*u0! opcij! "u - (-"!r) O r!lativna putanja &o 9ajlova# S
(SW"t!) O ap"olutna putanja i 8 (8uto) O MP:85 "a o&lu2uj!$
'!Nt i kliknit! na Fini";$
- novootvor!no prozoru IProba$cRJ &uplo kliknit! na Za*l$a"$ <tvara "! prozor
!&itora u ko! o!t! pi"ati >a pro*ra$
Mo&a va ovaj po"tupak tr!nutno iz*l!&a koplikovano# ali u prak"i j! potr!bno
ponoviti *a @ &o K puta &a bi po"tao to to i j!"t!$ <bi2na rutina$
16
Sa "vi ovi po&!avanjia kopl!tan pro*ra bi tr!bao iz*l!&ati otprilik! ovako/
ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
A 8utor P!ra 3!tli0
A 3atu @K$K$@++8
A >!rzija P#8
A 'a"lov Tr!ptanj! :=3
A
A <pi" ;ar&v!ra / B CC o"cilator# :=3 o& pina C8@ ka a"i
A <pi" "o9tv!ra / B <vi pro*rao oo*u0!no j! tr!ptanj! :=3
A
A Potr!bni 9ajlovi / p16F84$inc
ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
A DDDDDD Inicijalizacija a"!bl!ra DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!$
A DDDDDD I!novanj! r!*i"tra DDDDDD
BR"$A#1 e! 0x0# A Prvi broja2 za praznu p!tlju$ Inicijalno +NFF
BR"$A#2 e! 0x0( A 3ru*i broja2 za praznu p!tlju$ Inicijalno +NFF
A DDDDDD Po&!avanj! porta DDDDDD
o)* 0x00
bsf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1
movlw b'00000000' A Po"tavlja "v! pinov!
movwf TRISA A kao izlazn!
movwf TRISB
bcf STATUS,RP0 A >ra0a pro*ra u 58'G+
A DDDDDD -klju2i :=3 DDDDDD
Poc movlw b'00000100' A -klju2i :=3 "tavljaju0i bQ++1++Q
movwf P"RTA A u U r!*i"tar# a zati i u P<CT8
A DDDDDD Prv! p!tlja aktivna pri uklju2!noj :=3 oko +#@S DDDDDD
Pe&1 decfsz BR"$A#1,F A Sanji 5C<78C1
goto Pe&1 A -koliko j! 5C<78C1 j!&nak +# na"tavi &alj!
decfsz BR"$A#2,F A Sanji 5C<78C@
goto Pe&1 A -koliko j! 5C<78C@ j!&nak +# na"tavi &alj!#
A u "uprotno vrati "! na po2!tak p!tlj!$
A <vaj broja2 broji na&ol! o& @FF &o +# @FF puta
A To j! tzv$ p!tlja unutar p!tlj!$
1P
A DDDDDD Ganj!nj! zavr!no$ Sa&a i"klju2i :=3 DDDDDD
movlw b'00000000' A I"klju2i :=3 "tavljaju0i + u U r!*i"tar#
movwf P"RTA A a zati u P<CT8
A DDDDDD 3ru*a p!tlja aktivna pri i"klju2!noj :=3 oko +#@S DDDDDD
Pe&2 decfsz BR"$A#1,F A 3ru*a p!tlja &ri :=3 i"klju2!no
goto Pe&2 A &ovoljno &u*o &a bi "! to o*lo pri!titi
decfsz BR"$A#2,F A
goto Pe&2 A
A DDDDDD >ra0anj! pro*raa na po2!tak DDDDDD
goto Poc A >ra0anj! na po2!tak pro*raa
A DDDDDD Graj pro*raa DDDDDD
e+d A Graj pro*raa$
Gao to "t! i "ai pr!tpo"tavili &ir!ktiva 7-+c2!de 8516F84.-+c9 ubacuj! 9ajl
516F84.-+c i"pr!& va!* a"!bl!r"ko* pro*raa$ Sa a"!bl!r 0! pri konv!rziji
in"trukcija u ain"ki kT& uz!ti iz 9ajla naziv! "ao oni; i!novani; r!*i"tra koji "!
kori"t! u pro*rau$ 'a taj na2in pro*ra j! pr!*l!&niji# >aa j! "kra0!no vr!!
pi"anja pro*raa (za i!novanj! r!*i"tra)# a pro*ra nij! nita &ui n!*o ina2!$
Sa&a o!t! kopajlirati pro*ra$ Za kopajliranj! priti"nit! ta"t!r F1+ na ta"taturi$
- novootvor!no prozoru I<utputJ vi&!0!t! kratak opi" u"p!no"ti op!racij!$
Mo!t! "lobo&no i*nori"ati M!""a*! \K+@]$ <na >a" po&"!0a &a upotr!blj!ni r!*i"tri
(npr$ TCIS8) ni"u u 58'G+$ -koliko >a" ova poruka n!rvira# o!t! pr! prv!
in"trukcij! napi"ati ^=CC<C:=>=: BK+@^$
- I<utputJ prozoru najbitnija j! za&nja poruka$ <na ora biti I5-I:3
S-CC==3=3J$
- 9ol&!ru IProbaJ "a&a "! nalazi par 9ajlova$ 5itni "u va j!&ino oni "a !k"t!nzijo
$!rr# $l"t i $;!N$
- 9ajlu "a $!rr !k"t!nzijo# o!t! vi&!ti "pi"ak *r!aka i upozor!nja na"tali; pri
a"!bliranju pro*raa$
Fajl "a $l"t !k"t!nzijo pr!&"tavlja &!taljan pr!*l!& "vi; upotr!blj!ni; in"trukcija#
ko!ntara$$$ Iz nj!*a o!t! vi&!ti u ko tr!nutku j! ta2no na"tupila *r!ka u
a"!bliranju$
Fajl "a $;!N !k"t!nzijo pr!&"tavlja 9ajl "pr!an za "nianj! u PIC$ Po"tupak
"nianja# nau2i0!t! u nar!&ni po*lavljia$
18
6. Progr&"or#
Za "nianj! $;!N 9ajla u PIC n!op;o&an va j! pro*raator kao ;ar&v!r"ki &!o i
o&r!%!ni "o9tv!r u kopjut!ru pr!ko ko*a "! vri pro*rairanj!$
'!ojt! "! zal!t!ti pa o&a; kupiti naj"kuplji Microc;ipov pro*raator$ Funkcija
pro*raatora j! pro*rairanj! PIC ikrokontrol!ra o&a FB6 puta &n!vno$ 3a li 0!
on biti na -S5 ili paral!lno portu uopt! >a nij! bitno$ Ionako 0!t! u*lavno
"niati anj! o& 1G5 pro*raa$ 7!&ino bi; pr!poru2io izb!*avanj! pro*raatora "a
"!rij"ki porto# zbo* n!j!&nako"ti nj!*ovi; karakt!ri"tika na razni ati2ni
plo2aa (u*lavno na laptopovia)$ -koliko iat! i"ku"tva u pravlj!nju
!l!ktron"ki; kola# o!t! napraviti j!&an o& pro*raatora "a "ajta ;ttp/MMRRR$icB
pro*$coM$ 'a i"to "ajtu nalazi "! i pripa&aju0i "o9tv!r za pro*rairanj!$ Pro*u*lajt!
alo$ Mo&a nai%!t! i na n!to lak!$
-koliko !lit! kupiti pro*raator# o!t! po*l!&ati "l!&!0! "ajtov!/
8llPic pro*raator <ko 1F _
Pro*raator i razvojni "i"t! u j!&no <ko 1++ _
I op!t pr! kupovin! pr!trait! int!rn!t$ >a novac j! u pitanju$
-nutar ikrokontrol!ra nalaz! "! takozvani kon9i*uracioni bitovi$ 'jia "! o&r!%uju
;ar&v!r"k! "p!ci9i2no"ti ikrokontrol!ra$ Iako "u inicijalno uba2!ni u LLC<'FI?
&iir!ktivu# n!ki pro*raatori j! i*noriu i po"tupaju po "op"tv!ni "!tovanjia$
Za PIC16F84 kon9i*uracioni bitovi "u/
.atc;do* Ti!r O &ozvoljava o&no"no zabranjuj! upotr!bu U3T u pro*rau
Po7!r -p Ti!r Enabl! O prouzrokuj! kanj!nj! pri &ovo%!nju napona napajanja
&a bi "! o"cilator ikrokontrol!ra "tabilizovao
Co&! Prot!ction O on!o*u0ava i2itavanj! kT&a iz PIC O kopiranj! pro*raa
O!5illator O oo*u0uj! izbor j!&no* o& 4 "tan&ar&na tipa o"cilatora# o&no"no
CC O (!n*$ R!"i"tor Con&!n"ator) 1 otpornik i 1 kon&!nzator
:P O (!n*$ -oR PoR!r) Za kri"taln! o"cilator! al! potronj! K@G,zB@++G,z
`T O Za kla"i2n! kri"taln! o"cilator! 1++G,zB4M,z
,S O (!n*$ 8i*; Sp!!&) Za kri"taln! o"cilator! v!0! brzin! 4M,zB1+M,z
-potr!bu Uatc;&o* Ti!ra nau2i0!t! ka"nij!$ Za "koro "v! pri!r! u ovo uput"tvu#
on tr!ba biti i"klju2!n O U3T <FF$
PoR!r -p Ti!r =nabl! bit j! (o"i ka&a iat! kvalit!tan o"cilator i ka&a va j!
potr!ban brz "tart ikrokontrol!ra) pr!poru2ljivo o"taviti uklju2!ni O PUCT= <'$
Co&! Prot!ction j! po!ljno i"klju2iti# kako bi"t! o*li v!ri9ikovati pro*ra nakon
pro*rairanja$ M!%uti# ukoliko tr!bat! pro&ati PIC "a >ai pro*rao na koji "t!
utroili K !"!ca ra&a# obav!zno *a uklju2it!$ - ovo uput"tvu# n!ka bu&! i"klju2!n B
CP <FF$
1Y
>r"t! o"cilatora nau2i0!t! ka"nij!$ Za "a&a j! bitno &a znat! &a ov&! kori"tit! CC
(R!"i"tor O Capacitor) o"cilator$
3o"ta j! to*a o a"!bl!ru i ;ar&v!ru$ >r!! j! za u2!nj! novi; in"trukcija$ -
"l!&!0! po*lavlju nau2i0!t! upotr!bu potpro*raa koji 0! >a poo0i &a pro*ra
bu&! anji i j!&no"tavniji$
@+
8. Po"%rogr&#
Potpro*ra j! &!o kT&a# ili pro*ra# koji o!o pozvati kao takav ka& *o& j!
potr!ban$ Potpro*rai "! kori"t! u "lu2aj!via vi!"truko* izvravanja j!&n! i"t!
9unkcij!# kao na pri!r rutin! "a prazno p!tljo za kanj!nj!$ Pr!&no"ti kori0!nja
potpro*raa "u u lako0i !njanja vr!&no"ti broja2a j!&no unutar potpro*raa# n!*o
npr$ &!"!t puta kroz *lavni pro*ra# i u "anj!nju koli2in! !orij! koju pro*ra
zauzia unutar PIC$
Po*l!&ajt! "trukturu j!&no"tavno* potpro*raa/
BR"$A# e! 0x0# A -zia inicijalnu vr!&no"t +NFF
Pe& decfsz BR"$A#,F A Sanjuj! i prov!rava
goto Pe& A "v! &o +
return A Povratak iz potpro*raa
Prvo tr!bat! lab!lo &ati potpro*rau i!# i u ovo "lu2aju izabrano j! &a to bu&!
JP!tS$ <n&a "! upi"uj! kT& koji "! izvrava u okviru potpro*raa$ - ovo "lu2aju# to
j! kanj!nj! za pro*ra "a :=3$ 'a kraju "! potpro*ra zavrava C=T-C'
in"trukcijo$ 3a bi"t! pozvali potpro*ra iz *lavno* pro*raa# j!&no"tavno upiit!
C8:: in"trukciju i lab!lu po2!tka potpro*raa$
Ga&a *lavni pro*ra &o%! &o &!la "a in"trukcijo C8:: k (!n*$ C$$ Subroutin!)
Jpozovi potpro*raS# *&! j! k a&r!"a ili lab!la potpro*raa# on "ka2! na !"to na
koj! "! nalazi potpro*ra$ Tao na"tavlja "a izvravanj! koan&i unutar
potpro*raa "v! &o naila"ka na in"trukciju C=T-C' (!n*$ Re"3r' 9ro Subroutin!)
Jpovratak iz potpro*raaS$ Po naila"ku na C=T-C' pro*ra na"tavlja izvravanj!
o& in"trukcij! koja "! nalazi iza C8:: in"trukcij!$ Mo!t! pozvati potpro*ra koliko
*o& puta !lit!# i zbo* to*a "! kori0!nj! potpro*raa "anjuj! ukupna &uina
pro*raa$ Ipak po"toj! &v! "tvari na koj! orat! obratiti panju$ Prvo# u *lavno
pro*rau# "vi r!*i"ti oraju biti i!novani i inicijalizovani pr! n!*o to "! upotr!b!$
<ni "! o*u i!novati u "ao potpro*rau# ili na po2!tku *lavno* pro*raa$
'ajprakti2nij! j! i!novati i; na po2!tku pro*raa$ 'a taj na2in 0!t! znati &a "u "u
"vi na i"to !"tu$ 3ru*o# orat! biti "i*urni &a 0! izvravanj! *lavno* pro*raa
zaobi0i potpro*ra$ -koliko "tavit! potpro*ra na kraj >a!* pro*raa i zaboravit!
&a "tavit! in"trukciju *oto koja bi na"tavila izvravanj! &alj! o& potpro*raa# pro*ra
0! na"taviti "a izvravanj! i izvriti i potpro*ra !l!li >i to ili n!$ PIC n! pravi
razliku iz!%u potpro*raa i *lavno* pro*raa$
<v&! tr!ba napo!nuti i o*u0no"t i"tovr!!no* i!novanja vi! r!*i"tara$ To "!
izvo&i IcblockJ i I!n&cJ &ir!ktivaa$
-koliko u pro*rau iat! &v! pro!nljiv!# tr!bat! i; patiti u &va r!*i"tra opt!
na!n!$ M!%uti# za v!0i broj r!*i"tara# prakti2nij! j! &!9ini"ati i; unutar j!&no*
bloka$ 'a taj na2in ikrokontrol!r pr!uzia obav!zu o&r!%ivanja a&r!"a poj!&ina2ni;
r!*i"tara (o&r!%uj!t! u "ao prvu)# i poboljavat! portabilno"t pro*raa za o0nij!
"!rij! ikrokontrol!ra$ <2i*l!&no &a ovo nij! v!lika ut!&a pri kori0!nju "ao &va
r!*i"tra$ M!%uti# pri vi! r!*i"tara ovo o! biti o& poo0i$
@1
Pr!pravit! pro*ra za tr!p!r!nj! :=3 tako &a kori"ti potpro*ra$
A DDDDDD Inicijalizacija i i!novanj! DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!$
cb2oc@ 0x0# A Po2!tak "lobo&ni; r!*i"tara
BR"$A#1 A Prvi broja2 za p!tlju$ Inicijalno +NFF
BR"$A#2 A 3ru*i broja2 za p!tlju$ Inicijalno +NFF
e+dc A Graj bloka r!*i"tara
A DDDDDD Po&!avanj! porta DDDDDD
o)* 0x00
bsf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1
movlw b'00000000' A Po"tavlja "v! pinov!
movwf TRISA A kao izlazn!
movwf TRISB
bcf STATUS,RP0 A >ra0a pro*ra u 58'G+
A DDDDDD -klju2i :=3 DDDDDD
Poc movlw b'00000100' A -klju2i :=3 "tavljaju0i bQ++1++Q
movwf P"RTA A u U r!*i"tar# a zati i u P<CT8
A DDDDDD 3o&aj kanj!nj! DDDDDD
call Pe&
A DDDDDD Ganj!nj! zavr!no# "a&a i"klju2i :=3 DDDDDD
movlw b'00000000' A I"klju2i :=3 "tavljaju0i bQ+++++Q
movwf P"RTA A u U r!*i"tar# a zati i u P<CT8
A DDDDDD 3o&aj jo j!&no kanj!nj! DDDDDD
call Pe&
A DDDDDD Sa&a "! vrati na po2!tak pro*raa DDDDDD
goto Poc
A DDDDDD Potpro*ra za kanj!nj! o& oko +#@S DDDDDD
Pe& decfsz BR"$A#1,F A <v! &v! p!tlj! "lu! za brojanj! na&ol! o&
goto Pe& A @FF &o +# @FF puta# oo*u0avaju0i &a
decfsz BR"$A#2,F A "! o! pri!titi kako :=3 tr!p!ri
goto Pe&
return A Povratak iz potpro*raa
A DDDDDD Graj pro*raa DDDDDD
e+d A Graj pro*raa$
Mo!t! vi&!ti &a j! kori0!nj! potpro*raa "anj!na v!li2ina pro*raa$ Svaki put
ka&a j! potr!bno napraviti pauzu# b!z obzira "v!tli li :=3 ili n!# pozov! "!
potpro*ra$ 'a kraju potpro*raa pro*ra "! vra0a na r!& iza C8:: in"trukcij!$
@@
- pri!ru "! najpr! uklju2uj! :=3$ <n&a "! poziva potpro*ra$ 'akon povratka iz
potpro*raa o! "! i"klju2iti :=3$ <p!t "! poziva potpro*ra# i po povratku iz
nj!*a# izvrava "! "l!&!0a in"trukcija# o&no"no J*oto PocS$
5itno j! napo!nuti i to &a j! o*u0! pozivanj! &ru*o* potpro*raa unutar prvo*$
'a pri!r ovo j! potpuno o*u0!/
Poce&0@ call P)o*1 A Pozivanj! prvo* potpro*raa
goto Poce&0@ A '!pr!ki&no vra0anj! na po2!tak u rtvoj p!tlji
P)o*1 call P)o*2 A Pozivanj! &ru*o* potpro*raa
return A Povratak iz prvo* potpro*raa
P)o*2 return A Povratak iz &ru*o* potpro*raa
<vako "! o! i0i "ao &o o"o* nivoa &ubin! na ta "! ora obratiti panja$ Za on!
koj! int!r!"uj!# ori*inalan pro*ra bio j! &u* 1@1 bajtova$ Gori0!nj! potpro*raa#
"anj!n j! na 1+4 bajta$ <vo o&a i n! iz*l!&a no*o# ali iajt! u vi&u &a
!orija PIC16F84 ikrokontrol!ra izno"i "ao 1+@4 bajta$ Svaki bajt j! bitan$
- "l!&!0! po*lavlju nau2i0!t! kako &a PIC o2ita "poljn! "i*nal!$
@K
9. U$1#
3o "a&a "t! "ao pi"ali po portu 8 &a bi "! uklju2ivala i i"klju2ivala :=3$ - ovo
po*lavlju nau2i0!t! upotr!bu ulazni; pinova$ 'a taj na2in o*u0! j! na pinov!
ikrokontrol!ra pov!zati "poljno !l!ktron"ko kolo# i pro*rairati PIC &a razli2ito
r!a*uj! u zavi"no"ti o& "poljni; "i*nala$
Gao to >a j! poznato# &a bi kon9i*uri"ali -MI pinov! tr!ba pr!baciti pro*ra iz
bank! + u banku 1$ 'ajpr! to ura&it!/
bsf STATUS,RP0 A 5anka 1
3a bi "! kon9i*uri"ao o&*ovaraju0i pin na portu 8 kao izlazni# tr!ba po"lati + na
nj!u o&*ovaraju0! !"to u TCIS8 r!*i"tru$ 3a bi "! kon9i*uri"ao kao ulazni# tr!ba
po"lati 1$
movlw b'00000001' A Stavi bQ++++1Q u U# a zati u
movwf TRISA A TCIS8 r!*i"tar$ Tako j! pin C8+ ulazni$
bcf STATUS,RP0 A 5anka +
<vi j! C8+ pin kon9i*uri"an kao ulazni$ Sa&a j! potr!bno prov!riti &a li j! na nj!u
pri"utan nivo lo*i2k! j!&inic! ili nul!$ Za ovo "! kori"ti in"trukcija 5TFSC ili 5TFSS$
5TFSC 9#b (!n*$ ,it T!"t /# Skip i9 Cl!ar) in"trukcija zna2i JT!"tiraj bit b r!*i"tra 9$
8ko j! bit j!&nak +# pr!"ko2i "l!&!0u in"trukcijuJ$ 5TFSS 9#b (!n*$ ,it T!"t /# Skip i9
S!t) zna2i JT!"tiraj bit b r!*i"tra 9$ 8ko j! bit j!&nak 1# pr!"ko2i "l!&!0u in"trukcijuJ$
Goju in"trukciju 0!t! kori"titi zavi"i o& to*a kako !lit! &a pro*ra r!a*uj! ka&a
t!"tirat! !lj!ni bit$ 'a pri!r# ukoliko 2!kat! &a "! na ulazno pinu javi nivo lo*i2k!
1# o!t! i"kori"titi in"trukciju 5TFSS ovako/
Po2!tak pro*raa
Te3& btfss P"RTA,0
goto Te3&
'a"tavi o&av&!
Pro*ra 0! na"taviti izvravanj! o& J'a"tavi o&av&!S "ao ukoliko j! bit : P<CT8
r!*i"tra "!tovan# o&no"no ukoliko j! na pinu C8+ pri"utan nivo lo*i2k! 1 (HF>)$
'apiit! "a&a pro*ra koji 0! :=3 tr!ptati j!&no brzino# a ukoliko "! priti"n!
pr!ki&a2# ona 0! tr!ptati &uplo "porij!$ Mo!t! probati &a "ai napi!t! c!o pro*ra#
&a bi"t! vi&!li &a li "t! ";vatili po"tupak$
@4
A DDDDDD Inicijalizacija i i!novanj! DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!$
BR"$A#1 e! 0x0# A Prvi broja2 p!tlj!$ Inicijalno +NFF
BR"$A#2 e! 0x0( A 3ru*i broja2 p!tlj!$ Inicijalno +NFF
o)* 0x00
A DDDDDD Po&!avanj! porta DDDDDD
bsf STATUS,RP0 A 5anka 1
movlw b'00000001' A Stavi bQ++++1Q u TCIS8$ Tako j! pin
movwf TRISA A C8+ ulazni# a C8@ izlazni$
movlw b'00000000' A Stavi bQ++++++++Q u TCIS5$ Tako "u
movwf TRISB A "vi pinovi izlazni$
bcf STATUS,RP0 A 5anka +
A DDDDDD -klju2!nj! :=3 DDDDDD
Poc movlw b'00000100' A -klju2i :=3 "tavljaju0i bQ++1++Q u
movwf P"RTA A U r!*i"tar# a zati i u port 8
A DDDDDD Prov!ri &a li j! pr!ki&a2 zatvor!n DDDDDD
btfsc P"RTA,0 A T!"tiraj "tanj! bita + porta 8$ 8ko j! +
A pr!"ko2i prvu pauzu$ 8ko j! 1 pro%i kroz
call Pe& A ob! pauz!# kao &a "! nita n! &o*a%a
A DDDDDD 3o&avanj! jo j!&n! pauz! DDDDDD
call Pe& A <va pauza "! uv!k izvrava
@F
A DDDDDD Pauza zavr!na$ Sa&a i"klju2i :=3 DDDDDD
movlw b'00000000' A I"klju2i :=3 "tavljaju0i bQ+++++Q
movwf P"RTA A u U r!*i"tar# a zati i u port 8
A DDDDDD Prov!ri &a li j! pr!ki&a2 i &alj! zatvor!n DDDDDD
btfsc P"RTA,0 A T!"tiraj "tanj! C8+ pina$ 8ko j! na lo*i2koj +
A pr!"ko2i prvu pauzu$ 8ko j! na 1 pro%i kroz
call Pe& A ob! pauz!# kao &a "! nita n! &o*a%a
A DDDDDD 3o&avanj! jo j!&n! pauz! DDDDDD
call Pe& A <va pauza "! uv!k izvrava
A DDDDDD Pauza zavr!na$ Sa&a "! vrati na po2!tak DDDDDD
goto Poc A >rati "! na po2!tak
A DDDDDD Potpro*ra za kanj!nj! o& oko +#@S DDDDDD
Pe& decfsz BR"$A#1,F A <v! &v! p!tlj! "lu! za brojanj! na&ol! o&
goto Pe& A @FF &o +# @FF puta# oo*u0avaju0i &a
decfsz BR"$A#2,F A "! o! pri!titi &a :=3 tr!p!ri
goto Pe&
return A Povratak iz potpro*raa
A DDDDDD Graj pro*raa DDDDDD
e+d A Graj pro*raa$
<tpornik o& 4kP[ obav!zan j! &a bi pin C8+ i pri otvor!no pr!ki&a2u bio u
"tabilno lo*i2ko "tanju (lo*i2ka +)$ - protivno# pin bi zbo* "voj! vi"ok! ulazn!
ip!&an"! po"tao pr!vi! o"!tljiv na "poljnj! "!tnj! (npr$ *rljavinu)# ili bi pak
n!pr!"tano bio u lo*i2koj 1 b!z obzira na "tanj! pr!ki&a2a$ - prak"i "! u!"to
otpornika pr!a a"i# 2!0! "r!0! otpornik pr!a naponu napajanja$ >i! o potr!bi za
ovi (pullBup i pullB&oRn) otpornicia nau2i0!t! u nar!&ni po*lavljia$
Pro*ra najpr! uklju2uj! :=3$ <n&a prov!rava &a li j! pr!ki&a2 zatvor!n$ -koliko
nij! (na ulazu j! lo*icka +)# pro*ra "! izvrava kao &a "! nita nij! &!"ilo# i prolazi
kroz oba poziva za potpro*ra$ -koliko j!"t! (na ulazu j! nivo lo*i2k! 1)# prvi poziv
za potpro*ra "! pr!"ka2!# pa j! pauza u to "lu2aju i"ta kao ko& ranij! napi"ani;
pro*raa$ I"to "! &!ava i nakon to "! i"klju2i :=3$
Mo!t! kopajlirati i i"probati ovaj pro*ra$ Ipak &a >a" o&a; upozori$ Golo i
pro*ra n!0! ipr!"ionirati n!ko* ko*a n! int!r!"uj! pro*rairanj! ikrokontrol!ra$
Zato "! n!ojt! uzn!iravati ka&a "vojoj poro&ici i prijat!ljia poka!t! kako
o!t! !njati brzinu tr!ptanja :=3 pr!ki&a2!# a oni za to pokau v!oa alo
int!r!"ovanja$
-koliko "t! iz po2!tka pratili ova uput"tva# on&a bi"t! o&a vol!li &a znat! &a "t! &o
"a&a nau2ili 1+ o& ukupno KF in"trukcija za PIC16F841 Sv! "u nau2!n! uklju2ivanj!
i i"klju2ivanj! :=3 i t!"tiranj! pr!ki&a2a$
@6
1:. S#&3$"or
Siulacija j! proc!" virtu!lno* "iuliranja izvravanja in"trukcija iako jo nita
konkr!tno nij! ;ar&v!r"ki napravlj!no$
7!&an o& najpopularniji; (i najj!&no"tavniji;) "iulatora j! "vakako PIC Siulator
I3=$ - nj!u j! &ovoljno kliknuti na !lj!ni pin ikrokontrol!ra &a bi "! lo*i2ko
"tanj! na nj!u pro!nilo$ 'aalo"t# o! "! kori"titi "ao K+ &ana pr! i"t!ka
probno* p!rio&a$
7o j!&an o&li2an "iulator j! Prot!u"$ <n prua o*u0no"t int!*racij!
ikrokontrol!ra "a !k"t!rni ;ar&v!ro$ 'i on nij! b!"platan$
5!"platan j! j!&ino Mi"i# ali nij! &ovoljno upotr!bljiv$
MP:85 I3= ia u "!bi o&li2an a b!"platan "iulator$ - ovo po*lavlju bi0! opi"an!
nj!*ov! "p!ci9i2no"ti$
3a bi"t! uklju2ili "iulator i&it! na 3!bu**!r# S!l!ct Tool# MP:85 SIM$ - toolbaru
0! "! pojaviti n!koliko novi; ikonica$ Gliknit! na tr!0u (8niat! B &v! "tr!lic!
na&!"no) i pratit! izvravanj! pro*raa u prozoru "a $a" 9ajlo$ >i&it! kako j!
&oao &o p!tlj! i kako n!pr!"tano izvrava &v! i"t! in"trukcij!$ 'a &ru*oj ikoni (,alt)
pauzirat! pro*ra$ 'a prvoj (Cun B j!&na "tr!lica na&!"no) "! pro*ra izvrava
ak"ialno brzino# ali b!z aniirano"ti nj!*ovo* izvravanja$ .!tvrto ikono
(St!p Into) "! ka&a j! pro*ra u pauzirano "tanju vri pr!laz na "l!&!0u in"trukciju#
korak po korak$ P!to (St!p <v!r) "! ak"ialno brzino izvrava potpro*ra ili
nar!&na in"trukcija$ 6!"to ikono (St!p <ut) na"ilno "! izlazi iz potpro*raa$
Za&njo ikono "! vri r!"!t pro*raa# i tako nj!*ovo izvravanj! o! po2!ti iz
po2!tka$ C!*i"tri opt! na!n! pri to! za&ravaju "voj! vr!&no"ti$
3a bi"t! vi&!li aktu!lni "a&raj r!*i"tara 5C<78C1 i 5C<78C@ o!t! za&rati i
izna& nji;# ili i0i na >i!R# Fil! C!*i"t!r"$ - prozoru koji "! otvorio o!t! vi&!ti &a
"! r!*i"tar na a&r!"i +N+C (koja j! izabrana za 5C<78C1) u koracia "anjuj! &o +$
Ga&a &o"ti*n! +# "anjuj! "! 5C<78C@ na a&r!"i +N+3$ >!rovatno 0! >a laki biti
prikaz lab!la# a n! a&r!"a$ Pro!nit! prikaz kliko na ISWbolicJ tab$
3onji &!o MP:85 prozora prua >a kori"n! in9oracij! o tr!nutno "tanju bank!#
U r!*i"tra i poj!&ini; bitova ST8T-S r!*i"tra$ >!lika "lova Z# 3C i C pri &nu !krana
ozna2avaju &a "u ti bitovi "!tovani$ -potr!bu ovi; bitova nau2i0!t! ka"nij!$
3!taljnij! pra0!nj! pro!na r!*i"tara# o!t! uklju2iti pr!ko >i!R# Uatc; opcij!$
<"!n2it! !lj!ni r!*i"tar# i pr!vucit! *a u Uatc; prozor$ 3!"ni kliko pr!ko r!*i"tra
unutar Uatc; prozora i izboro opcij! Prop!rti!" &obijat! o*u0no"t po&!avanja
!lj!no* 9orata broj!va$ Za 5C<78C1 i 5C<78C@ najpr!*l!&niji bi bio &!cialni
9orat$ 3upli kliko na vr!&no"ti por!& r!*i"tara# o!t! i; na"ilno pro!niti$
Mo&a va j! aniacija brzin! izvravanja pro*raa pr!vi! "pora? Pov!0ajt! j! na
3!bu**!r# S!ttin*"# 8niation M C!alti! -p&at!" po& 8niat! "t!p ti!$ -!"to
F++S "tavit! npr$ F+$ 5rzina "iuliranja o*rani2!na j! brzino va!* kopjut!ra$
@P
-koliko >a" int!r!"uj! r!alna brzina (!n*$ C!al Ti!) kojo bi pro*ra ra&io#
o!t! j! prov!riti pr!ko 3!bu**!r# StopRatc; (!n*$ "topRatc; O top!rica) opcij!$
3ovoljno j! izabrati brzinu o"cilatora u 3!bu**!r# S!tin*"# <"c M trac! opciji$ Za &at!
vr!&no"ti CC o"cilatora (1+k[ i KKpF)# ona j! oko K#FM,z$
'!ka&a n!a "vr;! 2!kati &a "! zavri o&r!%!ni proc!" (npr$ prazna p!tlja)$ MP:85
"iulator >a oo*u0ava &a u pro*rau po"tavit! ta2k! pr!ki&a (!n*$ 5r!akpoint)
&upli kliko na !lj!nu in"trukciju$ Crv!na oznaka 5 pojavljuj! "! l!v! "tran!
prozora !&itora$ .i "iulator nai%! na taj &!o# zau"tavi0! &alju "iulaciju to 0!
>a oo*u0iti pr!*l!& "tanja r!*i"tara ili prora2un vr!!na (pr!ko top!ric!)
potr!bno* za izvravanj! in"trukcija$
-potr!ba top!ric! o! biti izuz!tno kori"na$ 'a pri!r &a bi"t! ta2no o&r!&ili
vr!! za koj! j! :=3 aktivna# &ovoljno j! po"taviti j!&nu ta2ku pr!ki&a na call
in"trukciju$ <n&a "! pro*ra izvri (Cun B b!z aniiranja) &o prv! ta2k! pr!ki&a# i tu
"! r!"!tuj! top!rica i klikn! na St!p <v!r$ Potpro*ra "! izvrava ak"ialno
brzino (b!z aniiranja) i nakon to "! zavri i2ita "! prot!klo vr!! iz top!ric!$
Iako j! prikaz "vi; izlazni; pinova portova v!oa lako ipl!!ntirati# ukoliko j!
potr!bno "iulirati pro*ra koji tr!ba r!a*ovati na "i*nal! "a ulazni; pinova (tipa
priti"nut pr!ki&a2 T1) "tanj! "! iz o"nova !nja$ 3a bi to bilo o*u0! ora "!
&!9ini"ati o&r!%!ni "tiulan" (!n*$ Stiulu") po ko! 0! "! o&vijati pro!n!$ E!lj!ni
"c!nario pro!na &!9ini!t! "a 3!bu**!r# Stiulu" Controll!r# '!R Sc!nario$ 'a
pri!r# ukoliko j! pr!ki&a2 na C8+ pinu "vo vr!! priti"nut (a pin j! &!9ini"an kao
ulazni)# potr!bno j! izabrati a"in;roni (8"Wnc;) tab# a zati u j!&no o& r!&ova
ubaciti C8+ i S!t ,i*; akciju$ 3a bi "! !njalo ulazno "tanj! o&r!%!no* pina
potr!bno j! izabrati !lj!ni pin (npr$ i"to C8+) i To**l! akciju$ Pri njoj "! kliko na
Fir! polj! por!& !lj!no* pina !nja nj!*ovo lo*i2ko "tanj!# to o!t! pratiti u Fil!
C!*i"t!r" ili Uatc; prozoru$
-koliko j! potr!bno &a pin u o&r!%!no lo*i2ko "tanju bu&! ta2no o&r!%!no vr!!#
o!t! izabrati Pul"! ,i*; ili Pul"! :oR akciju$ - to "lu2aju tr!bat! o&r!&iti i
!lj!nu &uinu ipul"a &atu u vr!!nu ili broju in"trukcij"ki; ciklu"a$ Po2!tak
ipul"a "! tako%! o&r!%uj! kliko na Fir! polj! por!& !lj!no* pina$
- a"in;rono tabu potr!bno j! u !lj!no tr!nutku 9izi2ki kliknuti na polj! za
pokr!tanj! o&r!%!ni; opcija$ - C!*i"t!r Inj!ction tabu !lj!ni tr!nutci pro!n! "tanja
pinova (bitova) o*u "! &!9ini"ati !k"t!rni 9ajlo# a u C!*i"t!r Trac! tabu o! "!
&!9ini"ati !k"t!rni 9ajl koji 0! "niati "tanj! o&r!%!ni; bitova po unapr!& za&ati
krit!rijuia$
Clock Stiulu" tabo &!9iniu "! lo*i2ka "tanja pinova koja 0! "! javljati u ta2no
o&r!%!ni tr!nutcia$ Za "lo!nija "tanja# orao bi "! kori"titi C!*i"t!r Inj!ction tab$
Pin M C!*i"t!r 8ction" i 8&vanc!& Pin M C!*i"t!r tabovia &!9iniu "! "lo!nij! akcij!
koj! 0! "! o&vijati po pro!ni ili &o"tizanju unapr!& za&ato* "tanja bita ili r!*i"tra$
Za po2!tak# kori"tit! j!&ino a"in;roni tab$ - "l!&!0! po*lavlju nau2i0!t! kako "!
pro*ra"ka !orija ikrokontrol!ra o! !9ika"nij! i"kori"titi$
@8
11. E/#0!'o 0or#;<e'(e &e&or#(e
3o "a&a "t! pro*rairali PIC &a uklju2uj! i i"klju2uj! :=3$ <n&a "t! upravljali
nj!*ovi ra&o &o&avi u pr!ki&a2# i !njaju0i brzinu tr!ptanja &io&!$ 7!&ini
probl! j! u to! to j! pro*ra bio &u*a2ak# i b!"potr!bno j! troio !oriju$ 3a
bi *a "kratili tr!bat! nau2iti jo par in"trukcija$
C:CU in"trukcija po"tavlja vr!&no"t +N++ u U# a C:CF 9 u !lj!ni r!*i"tar$
Tako u!"to
movlw b'00000000'
movwf TRISB
o!t! pi"ati
clrw
movwf TRISB
ili
clrf TRISB
,aj&! &a vi&io kako "t! &o "a&a uklju2ivali i i"klju2ivali :=3$
movlw b'00000100'
movwf P"RTA
movlw b'00000000'
movwf P"RTA
'ajpr! j! uba2!na vr!&no"t +N+4 u U r!*i"tar# zati j! pro"l!%!na na P<CT8 &a bi "!
uklju2ila :=3$ 3a bi "! i"klju2ila obri"an j! U r!*i"tar# i ponovo j! nj!*ova vr!&no"t
pro"l!%!na na P<CT8$ Iz!%u ovi; rutina pozivan j! potpro*ra za kanj!nj! &a bi
"! o*lo pri!titi &a :=3 tr!p!ri$ Zna2i &va puta "u pr!bacivana @ "!ta po&ataka
(j!&no u U r!*i"tar# a on&a u P<CT8) i &va puta j! pozivan potpro*ra (j!&no
nakon uklju2!nja i j!&no nakon i"klju2!nja :=3)$
Gako "! ovo o! !9!ktnij! r!iti? Gori"t!0i lo*i2ku op!raciju zvanu `<C$
`<C (!n*$ ==clu"iv! Or) op!racija izvrava lo*i2ku op!raciju J!k"kluzivno iliS na
r!*i"tru koji o&r!&it!# "a vr!&no0u koju u &at!$ Tr!balo bi ovo alo bolj! obja"niti$
XOR
+ + +
+ 1 1
1 + 1
1 1 +
00101110
A"R 10010110
6 10111000
C!zultat `<C op!racij! 0! biti lo*i2ka 1 "ao ukoliko "u u
oba op!ran&a razli2ita$ -koliko "u i"ta (ob! + ili ob! 1)# r!zultat
0! biti lo*i2ka +$
`<C (kao i "v! o"tal! lo*i2k! in"trukcij!) "! o! izvriti j!&ino na& c!li
bajtovia# pri 2!u "! vo&i ra2una o nji;ovo poloaju$ :S5 bit r!zultata "a&ra0!
r!zultat `<C op!racij! na& :S5 bitovia prvo* i &ru*o* op!ran&a$
@Y
-o2avat! li &a `<C op!racijo na& bito koji j! "talno na lo*i2koj 1 i pr!t;o&ni
"tanj! bita !nja "tanj! r!zultata "a + na 1 i "a 1 na +?
I II
00000000 00000001
A"R 00000001 A"R 00000001
6 00000001 6 00000000
Ta "p!ci9i2no"t `<C op!racij! o! biti i"kori0!na za naiz!ni2no uklju2ivanj! i
i"klju2ivanj! :=3$
7o j!&na int!r!"antna o"obina `<C op!racij! j! &a bilo koja vr!&no"t &va puta `<CB
ovana i"ti broj! vra0a ori*inalnu vr!&no"t$
I II
00101110 10111000
A"R 10010110 A"R 10010110
6 10111000 6 00101110
`<C op!racija o! "! na0i u in"trukcijaa PIC16F84 u &va oblika$
1$ `<C:U k *&! "! `<C op!racija izvrava na& U i kon"tantno vr!&no0u k$
>r!&no"t k ora biti u op"!*u o& + &o @FF (+N++ O +NFF)$ C!zultat op!racij!
0! biti u U r!*i"tru$
@$ `<CUF 9#& *&! "! `<C op!racija izvrava na& U i vr!&no"ti unutar r!*i"tra
2ija j! a&r!"a ozna2!na "a 9$ Sa I&J j! ozna2!no *&! 0! biti "!t!n r!zultat
`<C op!racij!$ -koliko j! &V+# r!zultat 0! biti u U r!*i"tru# a ukoliko j! &V1#
r!zultat 0! biti "!t!n u 9 r!*i"tru$
-potr!bo ov! in"trukcij! "u za naiz!ni2no uklju2!nj! i i"klju2!nj! :=3 &ovoljn!
"ao &v! linij! kT&a/
movlw b'00000100' A bQ+++++1++Q u U
xorwf P"RTA,F A Pro!ni "tanj! bita @ u P<CT8 r!*i"tru
<v&! j! vr!&no"t +N+4 (bQ++1++Q) `<CBovana "a raniji "a&raj! porta 8$ -koliko
j! bit @ u portu 8 bio 1# po"ta0! +# a ukoliko j! bio + po"ta0! 1$ .ak n!a ni potr!b!
za inicijalizacijo vr!&no"ti u portu 8$ Zbo* 2!*a? Pa ukoliko j! nj!*ov bit @ bio +#
pro!ni0! "!$ -koliko j! bio 1# op!t 0! "! pro!niti$ M!%uti# n!&o"tatak
inicijalizacij! porta 8 o! uticati na "tanj! o"tali; pinova# tako &a j! ona "vakako
pr!poru2ljiva$
Iako j! &ir!ktna anipulacija na& portovia "a"vi o*u0a# &ir!ktno !njanj!
P<CT8 (ili P<CT5) r!*i"tra n! "pa&a u &obru pro*ra!r"ku prak"u$ Zbo* 2!*a?
Zbo* int!rno* CMU (!n*$ R!a& +o&i9W .rit!) ciklu"a ikrokontrol!ra$
CMU ciklu" zna2i &a ikrokontrol!r priliko pro!n! "tanja n!ko* o& bitova
o&*ovaraju2!* r!*i"tra najpr! o2ita c!o r!*i"tar ("vi; 8 bitova)# zati izvri !lj!nu
op!raciju na& nji# i na kraju vrati r!zultat u taj i"ti r!*i"tar$
K+
Zai"lit! &a j! kori"nik r!io &a izvu2! :=3 na n!ko u&alj!nij! !"to (kao to no*i
izvla2! "i*nalizaciju j!9tin! "truj! "a "trujo!ra)$ Gablovi pr!ko koji; j! pov!zana
:=3 ponaaju "! u"l!& "voj! v!lik! &uin! i al! &aljin! j!&an o& &ru*o* kao
kon&!nzator al! kapacitivno"ti$ Zato j! ukoliko !lit! brzo uklju2iti i i"klju2iti :=3
o*u0! &a ona n!po"r!&no nakon uklju2!nja n! za"v!tli zbo* pr!vi! al! otporno"ti
na nj!ni vo&ovia (&ok "! takav virtu!lni kon&!nzator n! napuni)$ -koliko o&a;
po uklju2!nju o2itat! "tanj! "a P<CT5 r!*i"tra# vi&!0!t! &a :=3 i &alj! nij!
uklju2!na$ P<CT5 (i P<CT8) "! pri o2itavanju "tanja ponaaju kao &a "u pov!zani
kao ulazi# b!z obzira na ranij! kon9i*uri"ano "tanj! pinova$ To o! &ov!"ti &o
o2itavanja po*r!no* "tanja# a "ai ti i n!pravilno* ra&a pro*raa$ PIC j!
;ar&v!r"ki kon"trui"an tako &a j! o*u0! 2ak i &a "! o2itavanj! "tanja "a portova
o! zavriti i pr! ranij! za&at! pro!n! nji;ovi; "tanja$ Zbo* to*a j! pouz&anij! "v!
op!racij! izvravati na& o&r!%!ni r!*i"tro opt! na!n! (obi2no "! taj r!*i"tar
naziva ";a&&oR r!*i"tar (!n*$ S;a&&oR O "!nka))# a t!k on&a ka&a j! to n!op;o&no
kopirati r!zultat iz nj!*a u o&*ovaraju0i port$ >i! o ";a&&oR r!*i"tria o!t!
nau2iti na ;ttp/MMRRR$picli"t$coMt!c,C=FMr!a&o&Rrit!$;t "ajtu$
Po*l!&ajt! "a&a novi a"!bl!r"ki kT&$ Prvi j! ori*inalni pro*ra za tr!p!r!nj! :=3# a
u &ru*o j! &o&at pr!ki&a2$ - oba pro*raa kao ";a&&oR r!*i"tar upotr!blj!n j! U
r!*i"tar# j!r "! nj!*ovo "tanj! n! !nja u o"tali &!lovia pro*raa$ 3a "! !nja#
kori"tio bi "! n!ki o& r!*i"tara opt! na!n!$
Treptua LED
A DDDDDD Inicijalizacija i i!novanj! DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!$
BR"$A#1 e! 0x0# A Prvi broja2 p!tlj!$ Inicijalno +NFF
BR"$A#2 e! 0x0( A 3ru*i broja2 p!tlj!$ Inicijalno +NFF
o)* 0x00
A DDDDDD Inicijalizacija i po&!avanj! porta DDDDDD
bsf STATUS,RP0 A 5anka 1
clrf TRISA A Po"tavlja "v! pinov!
clrf TRISB A kao izlazn!$
bcf STATUS,RP0 A 5anka +
clrw A U j! inicijalizovan na +N++
A DDDDDD -klju2!nj! i i"klju2!nj! :=3 DDDDDD
Poc xorlw b'00000100' A Pro!ni "tanj! bita @ u U r!*i"tru
movwf P"RTA A Gopiraj U u P<CT8
A DDDDDD Pauza DDDDDD
call Pe&
A DDDDDD Pauza zavr!na$ >rati "! na po2!tak pro*raa DDDDDD
goto Poc A >rati "! na po2!tak
K1
A DDDDDD Potpro*ra za kanj!nj! o& oko +#@S DDDDDD
Pe& decfsz BR"$A#1,F A <v! &v! p!tlj! "lu! za brojanj! na&ol! o&
goto Pe& A @FF &o +# @FF puta# oo*u0avaju0i &a "!
decfsz BR"$A#2,F A o! pri!titi kako :=3 tr!p!ri
goto Pe&
return A Povratak iz potpro*raa
A DDDDDD Graj pro*raa DDDDDD
e+d A Graj pro*raa
Treptua LED a pre!"#a$e%
A DDDDDD Inicijalizacija i i!novanj! DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!$
BR"$A#1 e! 0x0# A Prvi broja2 p!tlj!$ Inicijalno +NFF
BR"$A#2 e! 0x0( A 3ru*i broja2 p!tlj!$ Inicijalno +NFF
o)* 0x00
A DDDDDD Po&!avanj! porta DDDDDD
bsf STATUS,RP0 A 5anka 1
movlw b'00000001' A Stavi bQ++++1Q u TCIS8$ Tako j! bit +
movwf TRISA A porta 8 ulazni# a bit @ izlazni$
clrf TRISB A Svi pinovi na portu 5 "u izlazni$
bcf STATUS,RP0 A 5anka +
clrw A U j! inicijalizovan na +N++
A DDDDDD -klju2!nj! i i"klju2!nj! :=3 DDDDDD
Poc xorlw b'00000100' A Pro!ni "tanj! bita @ u U r!*i"tru
movwf P"RTA A Gopiraj U u port 8
A DDDDDD Prov!ri &a li j! pr!ki&a2 zatvor!n DDDDDD
btfsc P"RTA,0 A -zi vr!&no"t "a pina C8+$ -koliko j! +
A pr!"ko2i prvu pauzu$ -koliko j! 1 pro%i kroz
call Pe& A ob! pauz!# kao &a "! nita n! &o*a%a
A DDDDDD 3o&avanj! jo j!&n! pauz! DDDDDD
call Pe& A <va pauza "! uv!k izvrava
A DDDDDD Pauza zavr!na$ >rati "! na po2!tak pro*raa DDDDDD
goto Poc A >rati "! na po2!tak
K@
A DDDDDD Potpro*ra za kanj!nj! o& oko +#@S DDDDDD
Pe& decfsz BR"$A#1,F A <v! &v! p!tlj! "lu! za brojanj! na&ol! o&
goto Pe& A @FF &o +# @FF puta# oo*u0avaju0i &a "!
decfsz BR"$A#2,F A o! pri!titi kako :=3 tr!p!ri
goto Pe&
return A Povratak iz potpro*raa
A DDDDDD Graj pro*raa DDDDDD
e+d A Graj pro*raa
'a&a "! &a "t! uo2ili &a j! upotr!bo novi; in"trukcija prili2no "anj!na v!li2ina
pro*raa$ 3a bi"t! lak! uo2ili ovu razliku# i"po& "u prikazni nazivi pro*raa#
iz!n! koj! "u izvr!n!# i nji;ov! v!li2in!$
Pro*ra Iz!na >!li2ina (in"trukcija)
Tr!ptu0a :=3 <ri*inal 18
Tr!ptu0a :=3 3o&at potpro*ra 1P
Tr!ptu0a :=3 3o&ata !k"kluzivno ili 9unkcija 14
:=3 "a pr!ki&a2! <ri*inal @@
:=3 "a pr!ki&a2! 3o&ata !k"kluzivno ili 9unkcija 1P
>i&it! &a "t! n! "ao nau2ili nov! in"trukcij!# v!0 "t! i "anjili v!li2inu pro*raa$
KK
12. -og#>0e o%er5#(e
7!&nu lo*i2ku op!raciju (`<C) "t! v!0 nau2ili$ Sa&a 0!t! "! upoznati "a jo tri$
8'3 Ilo*i2ko IJ op!racija &a0! na "vo izlazu lo*i2ku 1 "ao ukoliko "u joj na oba
ulaza &ov!&!n! lo*i2k! 1$ <v&! j! nj!na tablica i"tinito"ti$
A&D
+ + +
+ 1 +
1 + +
1 1 1
01101011
A;( 10100101
6 00100001
C!zultat 8'3 op!racij! bi0! lo*i2ka 1 "ao ukoliko "u oba
op!ran&a na lo*i2koj 1$ -koliko bar j!&an nij!# r!zultat 0! biti
lo*i2ka +$
Gao i `<C i 8'3 op!racija "! o! na0i u &va oblika$
1$ 8'3:U k koja izvrava 8'3 op!raciju na& r!*i"tro U i kon"tantno
vr!&no0u k$ C!zultat op!racij! 0! biti u U r!*i"tru$
@$ 8'3UF 9#& koja izvrava 8'3 op!raciju na& vr!&no0u U i vr!&no0u 9
r!*i"tra$ Sa I&J j! ozna2!no *&! 0! biti "!t!n r!zultat op!racij!$ -koliko j!
&V+# r!zultat 0! biti u U r!*i"tru# a ukoliko j! &V1# r!zultat 0! biti u 9 r!*i"tru$
Sl!&i I<C op!racija/
'OR
+ + +
+ 1 1
1 + 1
1 1 1
01101011
I"R 10100101
6 11101111
C!zultat I<C op!racij! bi0! lo*i2ka 1 ukoliko j! bar na j!&no
op!ran&u pri"utna lo*i2ka 1$ -koliko "u oba na lo*i2koj +# i
r!zultat 0! biti j!&nak lo*i2koj +$
I ona "! javlja u &va oblika$
1$ I<C:U k koja izvrava I<C op!raciju na& r!*i"tro U i kon"tantno
vr!&no0u k$ C!zultat op!racij! 0! biti u U r!*i"tru$
@$ I<CUF 9#& koja izvrava I<C op!raciju na& vr!&no0u U r!*i"tra i 9 r!*i"tra$
-koliko j! &V+# r!zultat 0! biti u U r!*i"tru# a ukoliko j! &V1# r!zultat 0! biti u
9 r!*i"tru$
Za&nja lo*i2ka op!racija koju po&rava PIC16F84 j! kopl!!nt$
CO(
+ 1
1 +
#"4 01101011
6 10010100
Gopl!!nt# n!*acija ili inv!rtovanj! j! lo*i2ka op!racija u
kojoj "vaki bit unutar bajta !nja "voj! "tanj!$
K4
Za razliku o& o"tali; lo*i2ki; op!racija kopl!!n "! izvrava na& "ao j!&ni
bajto$ Zbo* to*a ova op!racija ia "ao j!&an oblik in"trukcij!$
C<MF 9#& in"trukcijo "! inv!rtuju "vi bitovi u r!*i"tru 9$ -koliko j! &V+ r!zultat 0!
biti u U# a ukoliko j! 1 u 9 r!*i"tru$
>!rovatno uo2avat! &a "t! ovu lo*i2ku op!raciju o*li upotr!biti u ranij! pro*rau
u!"to `<C$ 7!&ina razlika j! u to! to bi "! on&a inv!rtovali "vi bitovi P<CT8
r!*i"tra# a n! "ao onaj koji j! potr!ban$
Sli2no kao `<C op!racija# &uplo kopl!!ntovana vr!&no"t vra0a ori*inalnu/
I II
#"4 01101011 #"4 10010100
6 10010100 6 01101011

Sv! &o "a&a nau2!n! lo*i2k! op!racij! !njaju vr!&no"t bita @ ST8T-S r!*i"tra u
"lu2aju &a j! r!zultat nji;ov! op!racij! j!&nak nuli$ Gako j! bit @ po to! "p!ci9i2an
on ia "voju po"!bnu oznaku Inulti bitJ (!n*$ Z!ro 9la*)$ T!rin I9la*J kori"ti "! za
ozna2avanj! bitova koj! ikrokontrol!r "a "!tuj! ili r!"!tuj! u zavi"no"ti o& "vo*
tr!nutno* "tanja (u ovo "lu2aju r!zultata pr!t;o&n! lo*i2k! in"trukcij!)$
3akl! ukoliko j! r!zultat `<C op!racij! "l!&!0i/
00011010
A"R 00011010
6 00000000
Z!ro 9la* ST8T-S r!*i"tra 0! biti "!tovan$ <vo "! o! i"kori"titi za brzo por!%!nj!
vr!&no"ti u r!*i"tru tako to "! u U r!*i"tar po"tavit! !lj!ni oblik bitova a on&a izvri
`<C op!raciju na& nji i !lj!ni r!*i"tro$ -koliko j! "tanj! unutar r!*i"tra
j!&nako "tanju u U r!*i"tru# Z!ro 9la* 0! biti "!tovan$
Iako n!a no*o "i"la Z!ro 9la* o!t! "!tovati 2ak i op!racijo
kopl!!ntovanja$
#"4 11111111
6 00000000
- prilo*u ovo* uput"tva o!t! vi&!ti upor!&ni prikaz in"trukcija u ko! j!
nav!&!no koj! "v! in"trukcij! !njaju "tanj! Z!ro 9la*a$
KF
1). Ro"5#(
C:F (Rotat! -!9t / T;rou*; CarrW) in"trukcija rotira ul!vo bitov! unutar za&ato*
r!*i"tra$ Sintak"a in"trukcij! j! "l!&!0a/
C:F 9#& pri 2!u j! 9 r!*i"tar na& 2iji "a&raj! "! obavlja rotacija$ -koliko j! &V+#
r!zultat op!racij! 0! biti u U r!*i"tru# a ukoliko j! &V1# r!zultat 0! biti u r!*i"tru 9$
6ta ra&i ova in"trukcija? -koliko npr$ u r!*i"tru +N+C iat! vr!&no"t bQ+++11++1Q
nakon in"trukcij! C:F +N+C#F r!*i"tar +N+C 0! &obiti vr!&no"t bQ++11++1+Q$ 'akon
jo j!&n! i"t! in"trukcij! u r!*i"tru 0! biti vr!&no"t bQ+11++1++Q$ Gao to vi&it! ova
in"trukcija rotira "a&raj r!*i"tra ul!vo$ 8 ta ka&a 1 &o%! &o kraja O pitat! "! vi$ '!0!
"! iz*ubiti$ Za vr!! rotacij! ul!vo MS5 "! "!ta "! u tzv$ Jbit pr!kora2!njaS (!n*$
CarrW 9la*)$ <n "! nalazi na !"tu bita + ST8T-S r!*i"tra$
3akl! ka&a j!&inica &o%! &o kraja# &o*a%a "! "l!&!0!/
CarrW 5itovi +N+C r!*i"tra
9la* 76543210
rlf 0x0#,F 0 01000000
rlf 0x0#,F 0 10000000
rlf 0x0#,F 1 00000000
rlf 0x0#,F 0 00000001
rlf 0x0#,F 0 00000010
. . .
>i&it! &a j! CarrW 9la* ov&! i"kori0!n kao o"i bit r!*i"tra$
-koliko va j! to potr!bno o!t! ubaciti + ili 1 u CarrW 9la* pr! rotacij!
in"trukcijaa b"9 ST8T-S#C i bc9 ST8T-S#C (C j! i!novani bit + ST8T-S
r!*i"tra)$ Tako 0! "! vr!&no"t iz CarrW 9la*a pojaviti na bitu + nakon rl9 in"trukcij!$
Pr!poru2ljivo j! ovo ura&iti n!po"r!&no pr! rotacij! kako na bitu + nakon rotacij! n!
bi &obili n!poznatu vr!&no"t$ '! uti2! "ao C:F in"trukcija na CarrW 9la*$
Int!r!n"antno j! &a "! rotacijo ul!vo ("a pr!t;o&no r!"!tovani CarrW 9la*o) broj
unutar r!*i"tra noi "a @$
# 76543210
0 01011001 6 8B
0 10110010 6 178
1 01100100 6 356 (ra2unaju0i i CarrW 9la*)
-koliko va j! potr!bno no!nj! "a @ v!0i; broj!va o!t! kori"titi uza"topnu
rotaciju &va ili vi! r!*i"tra$ CarrW 9la* iz prvo* r!*i"tra pr!n!0! "! na po2!tak &ru*o*$
Ga&a v!0 po"toji in"trukcija za rotaciju ul!vo# lo*i2no bi bilo &a po"toji i in"trukcija
za rotaciju bitova u&!"no$ Po"toji1
K6
CCF (Rotat! Ri*;t / T;rou*; CarrW)
Sintak"a in"trukcij! j! i"ta kao i ko& C:F$
Gako "! rl9 in"trukcijo "a&raj u r!*i"tru noi "a @# rr9 in"trukcijo (i r!"!tovani
CarrW 9la*o) "! "a&raj r!*i"tra &!li "a @$ :S5 "! pr!!ta u CarrW 9la* po "l!&!0!/
CarrW 5itovi +N+C; r!*i"tra
9la* 76543210
rrf 0x0#,F 0 00000010
rrf 0x0#,F 0 00000001
rrf 0x0#,F 1 00000000
rrf 0x0#,F 0 10000000
In"trukcij! C:F i CCF o*u "! upotr!biti za "iulaciju tr2!0!* "v!tla$ - to "lu2aju
o*u0i al*orita bi bio/
SP"RTB e! 0x0#
rlf SP"RTB,F A Cotacija u S,833<U r!*i"tru
movf SP"RTB,% A Gopiranj! iz S,833<U u U
movwf P"RTB A Gopiranj! iz U u P<CT5$
In"trukcija ov9 9#&$ (!n*$ +ov! /) vr!&no"t iz r!*i"tra 9 pr!bacuj! u U (pri &V+) ili u
taj i"ti r!*i"tar 9 (pri &V1)$ Zbo* 2!*a bi iko !l!o &a "a&raj r!*i"tra upi! u taj i"ti
r!*i"tar? - prak"i "! ta o*u0no"t kori"ti j!&ino pri t!"tiranju "a&raja r!*i"tra na
vr!&no"t +N++# j!r ov9 in"trukcija uti2! na Z!ro 9la*$
Sl!&!0o !o ilu"trovana j! upotr!ba lo*i2ki; i in"trukcija rotacij!/
KP
)p*tre+a ,*-"$!". " "/tru!0"1a r*ta0"1e
A DDDDDD Inicijalizacija i i!novanj! DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!$
(ATA e! 0x0# A C!*i"tar za privr!!n! po&atk!
o)* 0x00
A DDDDDD Po&!avanj! porta DDDDDD
bsf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1
movlw b'00000011' A Stavi bQ+++11Q u TCIS8$ Tako "u bit + i
movwf TRISA A bit 1 ulazni# a bit @ izlazni$
clrf TRISB A Svi pinovi na P<CT5 "u izlazni$
bcf STATUS,RP0 A >ra0a pro*ra u 58'G+
A DDDDDD T!"tiranj! pr!ki&a2a DDDDDD
Poc rlf P"RTA,% A Cotiraj "a&raj P<CT8 i "tavi r!zultat u U
A r!*i"tar# Tako j! bit + &oao na !"to bita 1
xorwf P"RTA,% A Izvri `<C na& P<CT8 i U r!*i"tro#
A i "tavi r!zultat u U (int!r!"uj! na"
A `<C na& bito 1 ova &va r!*i"tra)$
A DDDDDD Pr!bacivanj! r!zultata na izlaz DDDDDD
movwf (ATA A Pr!!"ti "a&raj iz U u 38T8 j!r "! rotacija
A n! o! izvriti &ir!ktno na& U r!*i"tro
rlf (ATA,% A Cotiraj "a&raj$ Tako j! bit 1 &oao na !"to
A bita @ (na !"to izlazno* bita) i vrati r!zultat
A u U r!*i"tar$
movwf P"RTA A Stavi r!zultat u P<CT8$ Gako "u bit + i bit 1
A ulazni# n!0! r!a*ovati# a na bitu @ 0! "!
A pojaviti r!zultat `<C op!racij! na&
A po"tavlj!ni "tanj! pr!ki&a2a$
goto Poc A Povratak na po2!tak$
A DDDDDD Graj DDDDDD
e+d A Graj pro*raa$
Gopajlirajt! pro*ra# pro*rairajt! PIC i i"probajt! nj!*ov ra&$ Iz ko!ntara "!
o! lako zaklju2iti ta pro*ra ra&i$
=vo ta 0! "! &o*o&iti u pro*rau u "lu2aju &a "u oba pr!ki&a2a zatvor!na/
PIC uzia vr!&no"t iz P<CT8$ Gako "u oba ta"t!ra priti"nuta ona j! bQ+++11Q$ Ta
vr!&no"t "! rotira# i po"taj! bQ++11+Q$ C!zultat "! "!ta u U r!*i"tar$ 3alj! "!
izvrava !k"kluzivno ili na& to vr!&no0u i tr!nutno vr!&no0u P<CT8 koji j! i
&alj! bQ+++11Q$
K8
Sa&a "! r!zultat bQ++1+1Q pr!bacuj! u privr!!ni r!*i"tar 38T8 *&! "! rotira$
Cotirana vr!&no"t j! bQ+1+1+Q# i ona "! pr!ko U r!*i"tra "!ta u P<CT8$ Gako "u na
P<CT8 bit + i bit 1 ulazni# vr!&no"t koja 0! &o0i na nji; bi0! i*nori"ana# a bit K na"
ionako n! int!r!"uj! i nj!*ova vr!&no"t "! o! i*nori"ati$ Gao to vi&it! na kraju
"v!*a bit @ "a&ri vr!&no"t `<C op!racij! (u ovo "lu2aju +)$ Gako j! ovaj bit
izlazni# :=3 n!0! "v!tl!ti$ Mo!t! prov!riti r!zultat 9unkcij! priti"kanj! pr!ki&a2a
po tablici `<C op!racij!$ Pro*ra j! napi"an tako &a inicijalna vr!&no"t CarrW 9la*a
n!a uticaja na nj!*ovo izvravanj!# pa nj!*ovo bri"anj! ov&! nij! pot!bno$
bitovi 43210
P<CT8 00011
U po"l! rotacij! 00110
P<CT8 00011
U po"l! `<C 00101
P<CT8 po"l! rotacij! 01011
Gako j! ovaj pro*ra &at kao ilu"tracija kori0!nja in"trukcija n!a potr!b! za
o*rani2!nj! "!tovanja bita K P<CT8 r!*i"tra$ - prak"i taj pin n! bi bio pov!zan# ili
bi "! bit K Ia"kiraoJ$
Pr!pravit! "a&a pro*ra po "l!&!0!/
-!"to xorwf P"RTA,% A Izvri `<C na& P<CT8 i U
napiit! andwf P"RTA,% A Izvri 8'3 na& P<CT8 i U
Pro*ra ra&i i"to to i ranij!# " to razliko to u!"to `<C pri!njuj! 8'3
op!raciju$ Priti"kanj! pr!ki&a2a o!t! vi&!ti &a 0! :=3 "v!tl!ti j!&ino ukoliko "u
oba pr!ki&a2a (T1 i T@) zatvor!na (na oba ulaza &ov!&!na lo*i2ka j!&inica)$
-koliko u pro*rau za!nit! in"trukciju 8'3UF in"trukcijo I<CUF o!t!
i"probati ra& ov! op!racij!$ :=31 0! "v!tl!ti ukoliko j! uklju2!n bar j!&an pr!ki&a2$
8 ukoliko upotr!bit! C<MF in"trukciju# :=3 0! "v!tl!ti "uprotno o& "tanja pr!ki&a2a
T1 i*noriu0i "tanj! pr!ki&a2a T@$
3o "a&a "t! nau2ili @@ o& KF in"trukcija$ .!"titao$ To j! vi! o& polovin!$
KY
14. ,ro('(e # !b#r'(e
>!0 "t! vi&!li kako PIC16F84 o! noiti i &!liti "a &va u binarno brojno
"i"t!u$ Sa&a 0!t! nau2iti kako o! brojati unapr!& i unaza& kao i "abirati$
I'CF (!n*$ I'5r!!nt /) in"trukcija "lui za inkr!!ntaciju$ 'j!n oblik j!/
I'CF 9#& pri 2!u & o&r!%uj! *&! 0! i0i r!zultat (u U ili F)$
<vo in"trukcijo "! vri pov!0anj! "a&raja r!*i"tra 9 za 1$ -koliko j! npr$ vr!&no"t
r!*i"tra opt! na!n! +N+C; bila +N++# nakon in"trukcij! inc +N+C#F nj!*ova
vr!&no"t 0! po"tati +N+1# a nakon "l!&!0! i"t! in"trukcij! +N+@$
8 ta 0! biti ka&a "! &o%! &o +NFF B pitat! "! vi$ <&a; 0!t! vi&!ti$
5itovi ST8T-S
76543210 Z!ro 9la*
11111110 0
incf 0x0#,F 11111111 0
incf 0x0#,F 00000000 1
incf 0x0#,F 00000001 0
-koliko va j! potr!bna inkr!!ntacija &o v!0i; vr!&no"ti o!t! &!t!ktovati "tanj!
Z!ro 9la*a# i on&a pokr!nuti "l!&!0i r!*i"tar za inkr!!ntaciju$ Ili za jo v!0! broj!v!
o!t! kao u pri!ru "a prazno p!tljo "taviti p!tlju unutar p!tlj!$
In"trukcija "uprotna ovoj j! 3=CF 9#& (!n*$ De5r!!nt /)$ <va in"trukcija "anjuj!
vr!&no"t r!*i"tra 9 za 1# o&no"no &!kr!!ntuj! *a$ Sintak"a joj j! i"ta kao ko& I'CF
in"trukcij!$ - "lu2aju &a broja2 &o%! &o + &!"i0! "! "l!&!0!/
5itovi ST8T-S
76543210 Z!ro 9la*
00000001 0
decf 0x0#,F 00000000 1
decf 0x0#,F 11111111 0
decf 0x0#,F 11111110 0
3va "p!cijalna oblika ovi; in"trukcija "u/ 3=CFSZ 9#& koju "t! v!0 nau2ili u praznoj
p!tlji i I'CFSZ 9#& (I'5r!!nt /# Skip i9 1!ro) koja pov!0ava "a&raj r!*i"tra 9 za 1 po
i"to principu kao I'CF in"trukcija# i koja pr!"ka2! "l!&!0u in"trukciju u "lu2aju &a
j! r!zultat op!racij! j!&nak +$
Poc incfsz 0x0#,F A Pov!0aj vr!&no"t u r!*i"tru +N+C za 1#
goto Poc A i vrati "! na po2!tak$ -koliko "! nakon pov!0anja
A &obij! +# pr!"ko2i *oto in"trukciju i na"tavi &alj!$
'a"tavi o&av&!
<v! in"trukcij! za razliku o& obi2ni; I'CF i 3=CF n! uti2u na Z!ro 9la*$
4+
833 (!n*$ "ab!ri) op!racija "abira &va broja$
Po*l!&ajt! kako "! izvrava op!racija "abiranja u binarno brojno "i"t!u/
ADD
+ + +
+ 1 1
1 + 1
1 1 1+
# 11001101 .205
A(( 10111000 .184
6 1 10000101 .38B
Priliko "abiranja &v! lo*i2k! 1 javlja "! pr!no" u bit v!0!
t!in!$ -koliko ni MS5 nij! &ovoljan za pr!no"# "!tova0! "!
CarrW 9la*$
Go& ovakvi; "lu2aj!va bit pr!kora2!nja "!ta "! u CarrW 9la*$ -koliko j! potr!bno
"abirati broj!v! 2iji zbir o! biti v!0i o& @FF# CarrW 9la* ora "! uz!ti u obzir pri
pr!no"u u bajt v!0! t!in!$
- in"trukcijaa za PIC op!racija "abiranja ia &va oblika/
833:U k "abira "a&raj U r!*i"tra i kon"tantn! vr!&no"ti k$ C!zultat 0! "! na0i u U
r!*i"tru$
833UF 9#& "abira "a&raj U r!*i"tra i r!*i"tra 9$ Sa & "! o&r!%uj! *&! 0! "! na0i
r!zultat$
8rit!ti2k! op!racij! "abiranja (i o&uzianja) por!& CarrW i Z!ro 9la*a uti2u jo i na
tzv$ 3C 9la* (!n*$ Di*it CarrW)# o&no"no bit 1 ST8T-S r!*i"tra$ <n 0! biti "!tovan
pri pr!kora2!nju &onj!* 2!tvorobitno* &!la bajta (tzv$ nibla)$ M!nja "! po i"to
principu kao i CarrW 9la*$
# (# 1111 1111 # (# 0000 1111
A(( 0000 0001 A(( 0000 0001
6 1 1 0000 0000 6 0 1 0001 0000
3!lj!nj! bajta na niblov! ia "i"la ukoliko j! potr!bno j!&ni niblo prikazivati
j!&nu ci9ru# a &ru*i &ru*u (npr u &i*italno 2a"ovniku za inut! *ornji nibl o& + &o
F# a &onji o& + &o Y)$ -v!0anj! "ao *ornj!* nibla r!ava "! "abiranj! "a
bQ+++1++++Q$
41
14. Neg"#v'# bro(ev# # od31#&'(e
Go& n!*ativni; broj!va uz!to j! pravilo &a bit najv!0! t!in! (!n*$ +o"t Si*nl! ,it O
ko& o"obitni; broj!va bit P) pr!&"tavlja znak inu"$ -koliko j! MS5 "!tovan# broj
j! n!*ativan$
Poto ikrokontrol!r kori"ti j!&ino + i 1 za pr!&"tavljanj! broj!va# po"tavlja "!
lo*i2no pitanj! kako pr!&"taviti n!*ativn! broj!v!$ <"novna i&!ja j! inv!rtovanj! "vi;
bitova unutar bajta$ (to bi bio obi2ni# o&no"no prvi kopl!!nt)$ M!%uti# ovaj
princip ia tu anu to "! nula o! pr!&"taviti &vojako (++++++++ i 11111111)$
Sto*a j! prakti2niji na2in inv!rtovanj! "vi; bitova i &o&avanj! broja 1$
C1 6 00000001 D1 6 11111110C1 6 11111111
C0 6 00000000 D0 6 11111111C1 6 00000000
Gao to vi&it!# ovako po"toji "ao j!&no"truko pr!&"tavljanj! broja +$ Takav po"tupak
naziva "! &ru*i kopl!!nt ili kopl!!nt &vojk!$
Ca2unanj! &ru*o* kopl!!nta broja o! "! izvriti "l!&!0i al*orito/
comf BR"$,F A Prvi kopl!!nt
incf BR"$,F A 3o&aj broj 1
Cu2no pr!tvaranj! pozitivni; u n!*ativn! broj!v! najlak! o!t! izvriti ra2unaju0i
&ru*i kopl!!nt broja$ Ca2unanj! 0! va biti utoliko lak! ukoliko "! pri"!tit!
obi2no* kopl!!ntovanja (ili inv!rtovanja ako va j! tako lak!)$ 3ru*i
kopl!!nt pr!&"tavlja obi2an kopl!!nt ko! j! &o&at broj 1$
#"4 01011011 C.B1
10010000 C 1
6 10100101 D.B1
Gao to vi&it!# MS5 ia ulo*u znaka (+Bpozitivan# 1Bn!*ativan)$ Za prikazivanj!
r!zultata o"taj! va jo P bitova# tako &a "! unutar o"obitno* bajta o*u na0i
pozitivni (+ &o 1@P) i n!*ativni (B1 &o B1@8) broj!vi$ <vakvi broj!vi nazivaju "!
ozna2!ni# za razliku o& obi2ni; n!ozna2!ni; (+B@FF) broj!va$ Zato j! bitno unapr!&
o&r!&iti &a li 0!t! ra&iti "a ozna2!ni ili n!ozna2!ni broj!via$ ?ranic! ozna2!ni;
broj!va n! "!ju "! pr!kora2iti# j!r PIC n! pravi razliku iz!%u ozna2!ni; i
n!ozna2!ni; broj!va# pa o! &o0i &o n!ta2no* r!zultata op!racij!$
<p!racija "uprotna "abiranju j! S-5 (!n*$ S3b"tract) Io&uziJ$ <&uzianj! "!
unutar ikrokontrol!ra izvrava upravo "abiranj! prvo* broja "a kopl!!nto
&vojk! &ru*o* broja$
Za razliku o& "abiranja# ko& ko*a "! CarrW 9la* "!tuj! pri pr!kora2!nju# ko&
o&uzianja j! pri!nj!na n!*ativna lo*ika# tako &a j! CarrW 9la* "!tovan ukoliko
n!a pr!kora2!nja (ta2nij! pozajic!)$ Zna2i ko& o&uzianja anj!* broja o& v!0!*
(i u "lu2aju &a "u broj!vi j!&naki)# CarrW 9la* 0! biti "!tovan$ 'j!*ovo "tanj! "! ta&a
tr!ba i*nori"ati$ Po*l!&ajt! to na "l!&!0! pri!ru/ 1++BFF$
4@
C.100 # 01100100 C.55 00110111
D.55 11001001
C(D.55) 11001001
6 C.45 1 00101101
Go& o&uzianja v!0!* o& anj!* broja# priliko "abiranja "a kopl!!nto &vojk!
n!a pr!kora2!nja# pa "! CarrW 9la* n! "!tuj!$ Po*l!&ajt! to na pri!ru/ F6B8P$
C.56 # 00111000 C.87 01010111
D.87 10101001
C(D.87) 10101001
6 D.31 0 11100001
T!"tiranj! MS5 o!t! utvr&iti &a li j! ozna2!ni r!zultat pozitivan ili n!*ativan# a
t!"tiranj! Z!ro 9la*a &a li j! r!zultat +$ I"to kao i "abiranj!# i in"trukcija za
o&uzianj! o! "! javiti u &va oblika$
S-5:U k o&uzia "a&raj U r!*i"tra o& kon"tantn! vr!&no"ti k$ C!zultat 0! "! na0i
u U r!*i"tru$
S-5UF 9#& o&uzia "a&raj U r!*i"tra o& r!*i"tra 9$ Sa & "! o&r!%uj! *&! 0! "! na0i
r!zultat$
-koliko >a j! o&uzianj! i t!"tiranj! CarrW 9la*a naporno# ura&it! i"to to i
ikrokontrol!r$ Sab!rit! j!&an broj "a &ru*i kopl!!nto &vojk! &ru*o* broja$
-koliko "! rotacijo izvrava no!nj! ili &!lj!nj! "a @ na& ozna2!ni broj!via#
obav!zno "! ora obratiti panja na MS5# j!r on ozna2ava pripa&no"t pozitivni#
o&no"no n!*ativni broj!via$
- prak"i "! r!tko ka&a "r!0! potr!ba za pri!no ozna2!ni; broj!va$ Skoro "v!
op!racij! izvravaju "! na& n!ozna2!ni broj!via$ <zna2!ni broj!vi o*li bi iati
pri!nu u 9unkciji ikrokontrol!ra kao t!ro!tra# ka&a j! potr!bno iz!riti i
prikazati t!p!ratur! izna& i i"po& nul!$
4K
16. De0%$#'g? debo3'5#'g?
;&#"ov o0#d>? %3$$ 3% o"%or'#5#...
Iat! PIC16F84 ikrokontrol!r$ -nutar nj!*a "v! j! &i*italno$ <n razu! j!&ino
lo*i2ku + i lo*i2ku 1# o&no"no napon"k! nivo! o& +> i HF>$ M!%uti# pon!ka& "!
&o*o&i &a u "! u!"to ovi; napona &ov!&u naponi koji o&"tupaju o& oni;
pr!poru2!ni; u nj!*ovi "p!ci9ikacijaa$ Funkcija "vi; ovi; *or! nabrojani; t!rina
j! &a "! "pr!2! upravo takvi !9!kti$
3!kaplin* pr!&"tavlja zatitu ikrokontrol!ra o& "!tnji na vo&ovia napajanja$ Za
"tabilizaciju ovo* napona u*lavno "! kori"ti popularni P8:+F int!*ri"ani "tabilizator
napona$ M!%uti# &a bi "! "pr!2il! o"cilacij! napona napajanja na nj!*ovo izlazu#
po!ljno j! zal!iti k!rai2ki kon&!nzator o& 1++nF paral!lno napojni pinovia
ikrokontrol!ra (pinovi >"" i >&&)# a to bli! njia$ -koliko u proj!ktu kori"tit!
vi! int!*ri"ani; kola# po!ljno j! ovo ura&iti ko& "vako* o& nji;$ 'a taj na2in
kon&!nzator "pr!2ava bilo kakv! n!po!ljn! o"cilacij! napona (obi2no na"tal! u"l!&
in&ukcij! napona "a izlazni; pinova)$ - !aa u ovo uput"tvu ni"u nacrtani j!&ino
zbo* v!0! pr!*l!&no"ti$ 3!talji na ;ttp/MM!n$Rikip!&ia$or*MRikiM3!couplin*Lcapacitor$
Si*urno va "! v!0 &!"ilo &a priliko uklju2!nja ili i"klju2!nja "v!tla na pr!ki&a2u
pri!tit! varni2!nj! kontakta$ I&!alno bi bilo ka&a bi pr!ki&a2 o&j!&no o*ao
pr!baciti "voj! "tanj! o& uklju2!no* u i"klju2!no i obrnuto$ M!%uti# kako "! kontakti
pr!ki&a2a 9izi2ki n! o*u pr!vi! brzo kr!tati# n!izb!no j! javljanj! par varnica pr!
kona2n! pro!n! "tanja$ Go& uklju2!nja ili i"klju2!nja "v!tla# ova pojava nij! bitna$
8li ikrokontrol!r zbo* "voj! v!lik! brzin! u"l!& ov! pojav! o! zaklju2iti &a j!
ta"t!r na nj!*ovo ulazno pinu u!"to j!&no priti"nut vi! puta$ 3a bi "! ova
pojava n!utrali"ala potr!bno j! u ikrokontrol!ru r!alizovati "anj!nj! ua na
ulazno "i*nalu# o&no"no &!bouncin*$
3!bouncin* rutina t!"tira "tanj! pina# "a2!ka alo (koliko j! potr!bno &a "!
"tabilizuj! "tanj! pr!ki&a2a) i on&a *a op!t t!"tira$ T!"tiranj! "! ukoliko j! potr!bna
v!0a pr!cizno"t o! uza"topno izvravati i vi! o& &va puta$ -koliko "u u "vi
"lu2aj!via &obij!na i"ta lo*i2ka "tanja na pinu# to zna2i &a j! ta"t!r "i*urno pritinut
(otput!n)# a u protivno &a nij!$ <vaj princip "tan&ar&no kori"t! kopjut!r"k!
ta"tatur!$ Za vi! &!talja po*l!&ajt! ;ttp/MMRRR$*an""l!$coM&!bouncin*$p&9$
8lt!rnativno# o*u0! j! r!alizovati i ;ar&v!r"ki &!bouncin*# ali za nj!*a "vaki pin
ora iati "voj pr!ki&a2 to on!o*u0ava ultipl!k" ulaza (vi! o nj!u ka"nij!) i
"a "vaki ta"t!ro potr!bno j! pov!zati &va otpornika i kon&!nzator$ To &ir!ktno
po"kupljuj! proizvo&nju# uv!0ava o*u0no"t pojav! ;ar&v!r"ki; *r!aka i za;t!va
pov!0anj! &i!nzij! i t!in! ;ar&v!ra$
PIC "a po "!bi n! bi o*ao no*o to*a ura&iti b!z par ulazni; !l!!nata
(pr!ki&a2i# "!nzori# "on&!$$$)$ =l!!nti koj! u &o&aj!o o*u# ali i n! oraju biti
&i*italni$ - t!;ni2ko uput"tvu pr!poru2!no j! &a ulazni lo*i2ki nivoi (pri naponu
napajanja o& F>) bu&u u int!rvalu o& + &o +#8> za lo*i2ku +# i o& @#4> &o F> za
lo*i2ku 1$ 6ta 0! "! &o*o&iti ukoliko ovi !l!!nti u!"to pr!cizno &!9ini"ani;
lo*i2ki; nivoa na ulazni pin &ov!&u napon o& npr$ 1#F>?
44
Go& ikrokontrol!ra n!a I"ivo*J "tanja$ Stanj! na nj!*ovo pinu ora biti ili
crv!no ili b!lo (navija za Zv!z&u)$ -koliko "! ulazno pinu ikrokontrol!ra
&ov!&! ovako n!&!9ini"an napon# on o! pro2itati +# a o! i 1$ '!a pravila$
-koliko ulazni pin (u naj*or! o*u0! "lu2aju) nij! pov!zan na !k"t!rno kolo#
napon na nj!u o! zao"cilovati# pa 2ak prouzrokovati unit!nj! ikrokontrol!ra$
- prak"i "! n!ka& javi "ituacija &a j! potr!bno na ikrokontrol!r &ov!"ti upravo
ovakav I"iviJ napon$ - to "lu2aju po!ljno j! kori"titi uzlaz! "a itovi oki&a2!
(!n*$ Sc;itt tri**!r)# ili i; &o&ati !k"t!rno (npr$ pr!ko P414 !"to"truko* inv!rtora)$
- PIC16F84 itov oki&a2 nalazi "! na C84 pinu$ 'a C5+ pinu nalazi "! "ao ka&a
j! ovaj &!9ini"an kao izvor int!rapta (vi! o njia ka"nij!)$
Go& ulaza "a itovi oki&a2! n!a n!&!9ini"ani; "tanja ulazno* pina$ Stanj! na
pinu pro!ni0! "! t!k ka&a "! "i*nal &ovoljno priblii nj!*ovoj &!9ini"anoj obla"ti$
8ko "! nakon to*a vrati ka "r!&njoj ("ivoj) obla"ti# ulaz 0! i &alj! javljati nj!*ovo
po"l!&nj! "tabilno &!9ini"ano "tanj!$ >i! o ovo! iat! na "ajtu
;ttp/MM!n$Rikip!&ia$or*MRikiMSc;ittLtri**!r$
<2i*l!&no j! &a 0! pri pov!zivanju ta"t!r pr!ki&a2a na ulaz! PIC16F84
ikrokontrol!ra biti potr!bno &a nj!*ovi ulazi bu&u u "vako tr!nutku na ta2no
&!9ini"ano lo*i2ko nivou$ <vo "! ;ar&v!r"ki r!alizuj! PullBup (povu0i na*or!) ili
PullB&oRn (povu0i na&ol!) otpornicia$
Pull up otpornik j! otpornik pov!zan iz!%u napona napajanja ikrokontrol!ra i
ulazno* pina# pri 2!u "! ta"t!r pr!ki&a2 v!zuj! iz!%u pina i a"!$ Ga&a j! ta"t!r
otput!n# pull up otpornik &ovo&i napon napajanja &ir!ktno na pin# po"tavljaju0i *a
tako u "tanj! lo*i2k! j!&inic!# "v! &ok "! n! priti"n! ta"t!r$ 5!z nj!*a bi napon na pinu
v!rovatno zaao u n!&!9ini"ano "tanj!$ <vaj otpornik n! tr!ba biti pr!vi! al!
vr!&no"ti zbo* anj! potronj! "truj! pri priti"nuto ta"t!r pr!ki&a2u$ Pr!poru2!n!
vr!&no"ti "u o& 4#Pk[ &o 1+k[$ 'a i"ti na2in na !lj!ni pin ikrokontrol!ra o! "!
po"taviti pull &oRn otpornik pr!a a"i# ka&a bi "! pr!ki&a2 po"tavio pr!a naponu
napajanja# to j! ilu"trovano u raniji !aa$ >i! o pullBup otpornicia o!t!
"aznati na ;ttp/MM!n$Rikip!&ia$or*MRikiMPullBupLr!"i"tor$
Po"tavljanj! !k"t!rni; pull up otpornika koplikuj! izra&u tapan! plo2ic!$ Sto*a "u
na pinovia P<CT5 r!*i"tra oni ;ar&v!r"ki ipl!!ntirani# a uklju2uju "!
r!"!tovanj! bita P (Port , Pull Up) <PTI<'LC=? r!*i"tra$ Pri!0uj!t! &a j! ovo
"uprotno o& ono*a to bi"t! o*li o2!kivati1 Zato "! takvi In!lo*i2niJ bitovi
ozna2avaju "a crtico izna& nji; ili '<TL pr!&znako$ To ozna2ava &a j! lo*i2ka +
nji;ovo aktivno "tanj!$
C!"!tovanj! '<TLC5P- bita pov!zuju "! int!rni otpornici ikrokontrol!ra na
"vaki o& ulaza P<CT5 r!*i"tra pr!a naponu napajanja ikrokontrol!ra$ Int!rni
otpornici "pajaju "! na "v! ulazn! pinov! porta 5$ Por!& t!# <PTI<'LC=? r!*i"tar
ia i razn! &ru*! 9unkcij!# pa j! "to*a najprakti2nij! n! !njati "a&raj nj!*ovi;
o"tali; bitova$
7o j!&na "tvar vr!&na panj! j! !l!krtoa*n!tna int!r9!r!ncija$ 3a bi "! zatitili o&
nj!# po!ljno j! na "vaki pin pr! bilo kakvo* ;ar&v!ra pov!zati r!&ni otpornik$
4F
16. Jo; &$o o @rdver3
3o "a&a "t! pi"ali i pi"ali pro*ra!$ >r!! j! &a "! alo pozabavit! unutranjo
"trukturo ikrokontrol!ra$ 'akon to*a n!k! "tvari 0! va biti ja"nij!$
Sv! in"trukcij! "a kojia ra&i PIC16F84 "u 2!trna!"tobitn!$ M!%uti# unutar "ai;
in"trukcija nalazi "! kT& in"trukcij! (po ko! "! npr$ in"trukcija C8:: razlikuj! o&
M<>:U) i op!ran&# koji pr!&"tavlja po&atak "a koji ra&io (bit# bajt ili oba u npr$
b"9 P<CT8#@ in"trukciji)$ Po"toj! i in"trukcij! koj! n!aju op!ran& (npr$ C:CU)$
Pr! izvr!nja "vak! in"trukcij! PIC *l!&a "a&r!aj r!*i"tra PC: i PC:8T,$ <ni
(ta2nij! bitovi +BF PC:8T, H +B8 PC:) 2in! j!&in"tv!n trina!"tobitni PC (!n*$
Pro*ra Count!r) r!*i"tar$ - nj!u j! "!t!na a&r!"a izvravanja t!ku0! in"trukcij!$
Po izvravanju in"trukcij!# PC "! uv!0ava za 1# i pr!lazi na "l!&!0u in"trukciju$
-koliko j! t!ku0a in"trukcija in"trukcija u"lovno* "koka (3=CFSZ# I'CFSZ# 5TFSC
ili 5TFSS)# r!zultat in"trukcij! (ta2no ili n!ta2no O 1 ili +) &o&aj! "! na PC# 2i! j!
oo*u0!n "kok pr!ko "l!&!0! in"trukcij!$ M!%uti ukoliko j! t!ku0a in"trukcija
?<T<# ona 0! u PC po"taviti novi a&r!"u# i izvr!nj! pro*raa na"tavi0! "! o&atl!$
Sp!cijalan "lu2aj pr!&"tavlja kori2!nj! C8:: in"trukcij!$ PIC ora na n!ki na2in
upatiti !"to "a ko*a j! "ko2io na potpro*ra$ Ta in9oracija 2uva "! u "t!ku$
St!k j! int!rni &!o ikrokontrol!ra (kao uo"talo i U r!*i"tar) ko! o*u pri"tupiti
j!&ino in"trukcij! "koka i povratka iz potpro*raa ili int!rapt rutin! (vi! o njoj
ka"nij!)$ 'j!*a o!t! zai"liti kao c!v zatvor!nu "a j!&n! "tran! u koju r!&o
ubacuj!t! klik!r!$ Crv!ni# z!l!ni# uti i plavi$ <2i*l!&no# n! o!t! izvu0i z!l!ni
klik!r ukoliko pr!t;o&no n! izvu2!t! plavi pa uti$
Pri naila"ku na C8:: in"trukciju# a&r!"a nar!&n! in"trukcij! "! "tavlja na "t!k# i vri
"! iz!na PC$ Mikrokontrol!r "ka2! na potpro*ra# i tao na"tavlja izvr!nj!
pro*raa "v! &o in"trukcij! povratka$ Po naila"ku na in"trukciju povratka#
ikrokontrol!r pr!uzia a&r!"u povratka "a "t!ka# i "!ta j! u PC$ 3alj! izvr!nj!
pro*raa na"tavlja "! o&atl!$ M!%uti# "t!k nij! b!"kona2an$ - nj!*a "! o! upi"ati
ak"ialno 8 a&r!"a za povratak (jo anj! ukoliko "! kori"t! int!rapti)$ 'akon to*a
nov! a&r!"! povratka pr!bri"a0! po2!tn! (crv!ni pa z!l!ni klik!r$$$)# to 0!
prouzrokovati n!pravilan ra& pro*raa$ <vo o*rani2!nj! n! bi tr!balo pr!t!rano &a
>a" brin!$ - prak"i u*lavno n!a potr!b! za potpro*raia koji i&u vi! o& &ru*!
ili tr!0! &ubin!$ -koliko u pro*rau iat! vi! pozivanja potpro*raa# priliko
"iulacij! pro*raa prov!rit! "a&raj "t!ka opcijo >i!R# ,ar&Rar! "tack$
Iako PIC n!a "!t in"trukcija kojia bi "! o*l! kori"titi tab!l! u pro*rau# o*u0!
j! ipl!!ntirati i; upotr!bo PC: i PC:8T, r!*i"tra i in"trukcij! C=T:U k$
C!tlR k (Re"urn Rit; -it!ral in .) in"trukcija oo*u0ava povratak iz potpro*raa
(i"to kao i C=T-C' in"trukcija)# pri 2!u "! nakon povratka bajt k nalazi u U
r!*i"tru$ Za obi2n! potpro*ra! to i nij! n!ka v!lika po*o&no"t# ali j! za tab!l!
n!op;o&no$ Tab!l! "! kori"t! pozicioniraju0i PC: r!*i"tar na o&ovaraju0u in"trukciju$
- pri!ru koji "l!&i tab!la "! kori"ti za o&abir o&*ovaraju0!* ablona za crtanj!
broj!va o& + &o Y na "!&o"!*!ntno :=3 &i"pl!ju$
46
A DDDDDD Inicijalizacija i i!novanj! DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!$
BR"$ e! 0x0# A Pro!nljiva za broj koji "! prikazuj! (+N++B+N+Y)
BR"$A# e! 0x0( A 5roja2 za pauzu$ Inicijalno +NFF
o)* 0x00
A DDDDDD Po&!avanj! porta DDDDDD
bsf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1
movlw 0x01 A Gon9i*uri! pinov! tako &a "u C51 &o
movwf TRISB A C5P izlazni# a &a j! C5+ ulazni$
clrf TRISA A Svi pinovi na P<CT8 "u izlazni$
bcf "PTI";:R=',;"T:RBPU A -klju2!ni int!rni Ipull upJ
A otpornici na P<CT5
bcf STATUS,RP0 A >ra0a pro*ra u 58'G+
A DDDDDD Inicijalizacija DDDDDD
I+- clrf BR"$ A Po"tavljanj! na +
call (-35 A Prikaz broja na &i"pl!ju
4P
A DDDDDD T!"tiranj! pr!ki&a2a DDDDDD
#e@1 btfss P"RTB,0 A T!"tiranj! otput!no"ti pr!ki&a2a
goto #e@1 A 'ij! otput!n
call P0! A 7!"t! otput!n$ Pozovi pauzu$
btfss P"RTB,0 A 7o j!&no t!"tiranj! zbo* iuno"ti na
goto #e@1 A !v!ntualna varni2!nja kontakta$
#e@2 btfsc P"RTB,0 A T!"tiranj! priti"nuto"ti pr!ki&a2a
goto #e@2 A 'ij! priti"nut
call P0! A 7!"t! priti"nut$ Pozovi pauzu$
btfsc P"RTB,0 A 7o j!&no t!"tiranj! zbo* iuno"ti na
goto #e@2 A !v!ntualna varni2!nja kontakta$
A DDDDDD 5rojanj! DDDDDD
movlw 0xF6 A $@46 u U ($@46H$YH$1 V "!tovan CarrW 9la*)
addwf BR"$,% A Sab!ri "a 5C<7# r!zultat u U
btfsc STATUS,# A 3a li j! &olo &o pr!kora2!nja (CarrW 9la*)?
goto I+- A 7!"t!# r!"!tuj broja2
incf BR"$,F A 'ij!# uv!0aj broja2#
call (-35 A prikai r!zultat i$
goto #e@1 A na"tavi "a t!"tiranj! i brojanj!
A DDDDDD Potpro*ra za prikaz na :=3 &i"pl!ju DDDDDD
(-35 call T0b2 A <brazac za prikaz u U
movwf P"RTB A Prikai na &i"pl!ju
return A Povratak iz potpro*raa
A DDDDDD Tab!la DDDDDD
T0b2 movf BR"$,% A - pro!nljivoj 5C<7 nalazi "! vr!&no"t o&
addwf P#E,F A $+ &o $Y$ Ta vr!&no"t "! &o&aj! na PC:$
retlw b'01111110' A <brazac za crtanj! ci9r! + B 0
retlw b'00001100' A <brazac za crtanj! ci9r! 1 B 1
retlw b'10110110' A <brazac za crtanj! ci9r! @ B 2
retlw b'10011110' A <brazac za crtanj! ci9r! K B 3
retlw b'11001100' A <brazac za crtanj! ci9r! 4 B 4
retlw b'11011010' A <brazac za crtanj! ci9r! F B 5
retlw b'11111010' A <brazac za crtanj! ci9r! 6 B 6
retlw b'00001110' A <brazac za crtanj! ci9r! P B 7
retlw b'11111110' A <brazac za crtanj! ci9r! 8 B 8
retlw b'11011110' A <brazac za crtanj! ci9r! Y B 9
A DDDDDD Pauza DDDDDD
P0! decfsz BR"$A#,F A Pauza zbo* &!bouncin*
goto P0! A rutin!
return A Povratak iz potpro*raa
A DDDDDD Graj pro*raa DDDDDD
e+d A Graj pro*raa$
48
3upli t!"tiranj! priti"nuto"ti ta"t!r pr!ki&a2a "a pauzo iz!%u t!"tiranja
r!alizovana j! &!bouncin* rutina$ T!"tiranj! na otput!no"t# a zati na priti"nuto"t
"pr!2ava na"tavak brojanja ukoliko "! pr!ki&a2 n!pr!ki&no &ri priti"nut# i oo*u0ava
pro!nu "tanja priliko priti"ka# a n! priliko otpu"ta ta"t!ra$
T!"tiranj! pr!kora2!nja r!alizovano j! "abiranj! vr!&no"ti "a broj! @46 i
t!"tiranj! CarrW 9la*a$ Za vr!&no"ti o& + &o Y "abran! "a $@4Y CarrW 9la* n!0! biti
"!tovan# ali ;o0! za vr!&no"ti v!0! o& nji; ($1+)$ <n! 0! prouzrokovati ponovnu
inicijalizaciju broja2a# i ciklu" brojanja 0! ponovo po2!ti o& +$
Prikaz &!ka&no* broja r!alizovan j! &ir!ktni &ovo%!nj! napona na poj!&in!
"!*!nt! :=3 &i"pl!ja$ <vi "!*!nti "u na :=3 &i"pl!ju ozna2!ni "u "lovia a# b# c#
&# !# 9 i *$ S!*!nt &p (!n*$ d!cial %oint) I&!cialna ta2kaJ ov&! nij! i"kori0!n$
Iako j! pro*ra j! napravlj!n za ra& "a &i"pl!j! "a zaj!&ni2ko kato&o# o!
o! "! pr!praviti za ra& "a &i"pl!j! "a zaj!&ni2ko ano&o pr!pravko tab!l! na
taj na2in to "! "vi bitovi u tab!li (:S5 n!a uticaja na ra& pro*raa j!r j! pin C5+
pov!zan na ta"t!r) inv!rtuju/
retlw b'01111110' A + pro!niti u b'10000001'
retlw b'00001100' A 1 pro!niti u b'11110011'
retlw b'10110110' A @ pro!niti u b'01001001'
- to "lu2aju potr!bno j! pr!praviti !l!ktri2nu !u tako &a "! zaj!&ni2ka ano&a
pov!! na HF>$
- potpro*rau za prikaz o!t! vi&!ti kla"i2an pri!r pozivanja &ru*o*
potpro*raa iz prvo*$
MP:85 a"!bl!r ia &ir!ktivu 3T (!n*$ D!9in! Tabl!) kojo "! o*u br! uno"iti
!lj!n! vr!&no"ti u tab!lu$ 'j!n oblik j! "l!&!0i/
addwf P#E,F A Sab!ri "a PC:
d& d'10', d'18', d'0', d'253', d'84', d'5' A >r!&no"ti
Iako na prvi po*l!& &!luj! &a "! na ovaj na2in t!&i !orija ikrokontrol!ra# to nij!
"lu2aj$ 8"!bl!r 0! &t &ir!ktivo nar!&n! !orij"k! lokacij! napuniti r!tlR
in"trukcijaa koj! "a&r! vr!&no"ti nav!&!n! iza &ir!ktiv!$ Pri to! "! o*u
pri!njivati "vi na2ini ozna2avanja broj!va (&!cialni# ;!k"a&!cialni$$$)$ <va
po*o&no"t najvi! &olazi &o izraaja pri upi"ivanju 8SCII karakt!ra/
addwf P#E,F A Sab!ri "a PC:
d& FP)ob0 -35-30 &e@3&0F A 8SCII karakt!ri u tab!li
- ra&u "a tab!laa orat! obratiti panju na &v! "tvari$
1$ Morat! biti "i*urni &a j! broj koji "abirat! "a PC: u ta2no o&r!%!ni
*ranicaa$ - "lu2aju pr!kora2!nja izvravanj! pro*raa 0! "! na"taviti "a
"lu2ajn! !orij"k! a&r!"! to 0! prouzrokovati n!pravilan ra& ili bloka&u
pro*raa$
4Y
@$ Gako j! PC trina!"tobitni r!*i"tar 2iji &onji &!o (+B@FF) j! u PC:# a *ornji
(a@FF) u bitovia +BF PC:8T,# potr!bno j! o"i*urati &a tab!la n! iza%! iz
bloka o& @F6 bajtova$ Go& pro*raa nav!&!no* kao pri!r# to nij! probl!#
j!r j! on ionako &u* "ao 4K bajta$ -koliko j! n!op;o&no kori"titi tab!l! "a
v!0o koli2ino po&ataka# r!!nj! bi o*lo biti u po"tavljanju vi! tab!la$
>!li2inu bloka najj!&no"tavnij! o!t! prov!riti brojanj! upotr!blj!ni;
in"trukcija (b!z &ir!ktiva)# ili analizo $l"t 9ajla *!n!ri"ano* priliko
a"!bliranja$ Za po"tavljanj! po2!tka tab!l! na !lj!no !"to (po2!tak bloka)
o!t! kori"titi <C? &ir!ktivu$
-!"to tab!l! o*u0! j! napraviti "kok na prora2unat! !orij"k! lokacij! a&&R9
PC:#F in"trukcijo# pri 2!u "! a&r!"a na koju "! tr!ba "ko2iti 2uva u U r!*i"tru u
obliku broja in"trukcija koj! "! tr!baju pr!"ko2iti &a bi "! &olo &o !lj!n!$
<*ran2!nja v!zana za tab!l! va! i u ovo "lu2aju$ 3a bi"t! i; pr!vazili# po*l!&ajt!
8'F48 "a ;ttp/MMRRR$icroc;ip$coM$
F+
18. ."5@dog "(&er
Pr!tpo"tavio &a "t! napi"ali pro*ra koji "! n!pr!ki&no izvrava na
ikrokontrol!ru$ 'oralno# !l!li bi &a "! o"i*urat! &a 0! pro*ra uv!k na"taviti "a
izvravanj! b!z obzira na to ta "! "a nji &o*a%a$ -zit! u obzir "l!&!0i "lu2aj$
Pr!tpo"tavio &a PIC na&*l!&a o&r!%!ni ulazni pin$ Ga&a "! na ovaj pin &ov!&!
lo*i2ka 1# pro*ra "ka2! na nar!&ni &!o i 2!ka &a "l!&!0i pin &obij! lo*i2ku 1$
-koliko "! to n! &!"i# PIC 0! "! vrt!ti u p!tlji i 2!kati$ Iza0i 0! iz p!tlj! t!k ka&a "! na
pinu pojavi 1$ Po*l!&ajt! "a&a alo &ru*a2iji pri!r$ Pr!tpo"tavio &a "t! napi"ali
pro*ra# kopajlirali *a# 2ak i "iulirali nj!*ov ra& u "iulatoru$ M!%uti po"l!
&u*o vr!!na pro*ra "! za*lavi u n!koj p!tlji (koliko "t! "ao puta >i priti"nuli
Ctrl 8lt 3!l!t! kobinaciju na Uin&oR"u)$ - oba "lu2aja potr!bna >a j! n!ka vr"ta
r!"!ta ukoliko "! pro*ra za*lavi$ To j! "vr;a Uatc;&o* (!n*$ pa" 2uvar) taj!ra$
.atc;do* "aj!r ("kra0!no U3T) nij! nita novo$ Mno*i ikrokontrol!ri i
ikroproc!"ori iaju *a u "!bi$ 8li kako on ra&i? -nutar ikrokontrol!ra nalazi "!
int!rni CC o"cilator koji ob!zb!%uj! j!&in"tv!n takt# n!zavi"tan o& takta
ikrokontrol!ra$ Ga&a "! U3T uklju2i# nj!*ov broja2 po2inj! "a +N++# i r!&o "!
inkr!!ntuj! "v! &ok n! &o"ti*n! ak"ialnu vr!&no"t +NFF$ - tr!nutku pr!la"ka "a
+NFF na +N++ (to j! +NFFH1) PIC 0! "! r!"!tovati b!z obzira na nj!*ovo "tanj!$
7!&ini na2in na koji "! o! "pr!2iti ovaj r!"!t# j! p!rio&i2no r!"!tovanj! U3T na +
kroz pro*ra$ Sa&a o!t! i "ai uvi&!ti &a u "lu2aju za*lavljivanja ikrokontrol!ra
u p!tlji U3T n!0! biti r!"!tovan# to 0! prouzrokovati r!"!t ikrokontrol!ra$
3a bi"t! o*li u"p!no kori"titi U3T potr!bno j! &a znat! tri "tvari$ Prvo za koliko
vr!!na 0! U3T pr!0i "a +N++ na +NFF# &ru*o ka&a *a tr!bat! r!"!tovati i tr!0! kako
po&!"iti "o9tv!r pro*raatora za nj!*ovo uklju2!nj!$
2re%e 3DT
U3T ia vr!! pr!la"ka "a +N++ na +NFF o& oko 18S$ <vo vr!! zavi"no j! o&
n!koliko "poljni; 9aktora kao to "u napon napajanja# t!p!ratura ikrokontrol!ra
i$t$&$ Zbo* lak!* objanjavanja zaokrui0u ovo vr!! na ta2no 18S$ Ipak# ono "!
o! i pro&uiti$
+"t 24140 O#/* 2re%e
+# +# + 1/1 18S
+# +# 1 1/@ K6S
+# 1# + 1/4 P@S
+# 1# 1 1/8 144S
1# +# + 1/16 @88S
1# +# 1 1/K@ FP6S
1# 1# + 1/64 1#1S
1# 1# 1 1/1@8 @#KS
-nutar ikrokontrol!ra nalazi "! tzv$
pr!"kal!r (!n*$ pr! po&!liti)$ <n "! o!
pro*rairati za &!lj!nj! U3T takta
*!n!ri"ano* int!rni CC o"cilatoro$ 6to "!
v!0i o&no" &!lj!nja kori"ti# takt U3T 0! biti
"poriji$
Pr!"kal!r "! nalazi u <PTI<'LC=? r!*i"tru
(+N81) na !"tu o& nulto* &o &ru*o* bita$ -
tab!li j! prikazan o&no" bitova# o&no"
&!lj!nja takta i vr!! pr!kora2!nja vr!&no"ti
U3T$
F1
-patit! &a "u ova vr!!na n!zavi"na o& takta o"cilatora ikrokontrol!ra$ Mi"lit! o
ovi vr!!nia kao "tvarni (!n*$ r!al ti!)# na"uprot taktu ikrokontrol!ra koji
o!t! !njati 9izi2ko za!no par &!lova u o"cilatoru$ Pr!tpo"tavio &a !lit! &a
U3T r!"!tuj! PIC nakon pola "!kun&!$ 'ajblia "tan&ar&na vr!&no"t j! FP6S#
o&no"no +#FP6S# pa j! &ovoljno po"lati vr!&no"t b1+1 u <PTI<'LC=? r!*i"tar$
movlw b'101' A <vo j! +N+F
movwf 0x81 A 8&r!"a <PTI<'LC=? r!*i"tra$
M!%uti nij! ba "v! tako j!&no"tavno$ Po inicijalizaciji PICBa po"t"kal!r j! pri&ru!n
int!rno taj!ru ikrokontrol!ra (vi! o nj!u ka"nij!)$ To zna2i &a j! potr!bno
pr!baciti *a na U3T$ Gako i int!rni i Ratc;&o* taj!r kori"t! i"t! bitov!
<PTI<'LC=? r!*i"tra Microc;ip pr!poru2uj! "l!&!0u proc!&uru kako n! bi &olo &o
n!;oti2no* r!"!ta PIC$
A DDDDDD Inicijalizacija i i!novanj! DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
o)* 0x00 A Po&!ava kon9i*uracion! bitov!$
A DDDDDD Po&!avanj! U3T DDDDDD
D bsf STATUS,RP0 A 58'G1
D movlw b'xx0x0111' A Izab!ri taj!r i pr!"kal!r razli2it o& +++
D movwf "PTI";:R='
D bcf STATUS,RP0 A 58'G+
clrf T4R0 A 5ri"anj! vr!&no"ti int!rno* taj!ra i
A pr!"kal!ra O pri upi"u u taj!r#
bsf STATUS,RP0 A 58'G1
movlw b'xxxx1111' A Izab!ri U3T# b!z !njanja o&no"a
A pr!"kal!ra
movwf "PTI";:R='
clrwdt A <brii U3T
movlw b'xxxx1xxx' A Izab!ri U3T# i po"tavi z!lj!ni o&no"
A pr!"kal!ra NNN$
A Za +#FP6S to j! bQNNNN11+1Q
movwf "PTI";:R='
bcf STATUS,RP0 A 58'G+
- "lu2aju !lj!no* o&no"a razli2ito* o& 1/1 (vr!&no"t pr!"kal!ra +++) o*u "! izbaciti
in"trukcij! ozna2!n! zv!z&ico$
>r!&no"ti u <PTI<'LC=? r!*i"tru l!vo o& pr!"kal!ra ozna2!n! "a N iaju "p!cijaln!
9unkcij! (poput uklju2!nja PullB-p otpornika) koj! 0!t! nau2iti u &!lu "a taj!ro i
int!raptia$ Iz to* razlo*a i ov&! ni"u &o&!lj!n! konkr!tn! vr!&no"ti$ Za "a&a j!
&ovoljno &a znat! &a "! bito K <PTI<'LC=? r!*i"tra vri "!l!kcija taj!ra ko!
0! biti pri&ru!n &!lit!lj po "l!&!0!/
1 O po"t"kal!r U3T
+ O pr!"kal!r int!rno* taj!ra$
F@
- pri!ru "t! nau2ili upotr!bu C:CU3T (!n*$ C$!ar .atc;do* "i!r) in"trukcij!$
'akon nj!# T< bit (!n*$ Ti! Out O i"t!klo vr!!) ST8T-S r!*i"tra bi0! iznova
"!tovan# a na0i 0! "! u r!"!tovano "tanju j!&ino priliko U3T r!"!ta$ >i! o to!
nau2i0!t! u po*lavlju "a r!"!t 9unkcijo$
2re%e "56r7a6a/1a "/tru!0"1a
Gao to "! "!0at!# PIC &!li takt o"cilatora "a 4$ <vo vr!! naziva "! in"trukcij"ki
ciklu"$ -koliko j! kao izvor takta upotr!blj!n kri"tal o& 4M,z# PIC 0! izvravati
in"trukcij! brzino o& 4M,zM4V1M,z# o&no"no za j!&nu in"trukciju koja traj! 1
in"trukcij"ki ciklu" 0! u tr!bati 1ZS# &ok 0! u za in"trukciju koja traj! @
in"trukcij"ka ciklu"a tr!bati @ZS$ 'a2in &a zapatit! broj in"trukcij"ki; ciklu"a za "v!
in"trukcij! j! prili2no lak$ Pr!tpo"tavit! &a "v! in"trukcij! traju 1 in"trukcij"ki ciklu"$
8li# ukoliko in"trukcija prouzrokuj! na"tavak pro*raa "a n!k! &ru*! a&r!"!
(pro!nj!n j! "a&raj PC)# on&a 0! ona trajati @ in"trukcij"ka ciklu"a$ 'a pri!r
M<>UF in"trukcija traj! 1 in"trukcij"ki ciklu"# j!r "ao pr!!ta po&atak "a j!&no*
na &ru*o !"to$ ?<T< in"trukcija traj! @ ciklu"a j!r prouzrokuj! &a PC "ko2i na n!ko
&ru*o !"to u pro*rau$ C=T-C' in"trukcija traj! @ ciklu"a# j!r "! PC vra0a na
*lavni pro*ra$ M!%uti# po"toj! 4 in"trukcij! koj! o*u trajati 1 ili @ in"trukcij"ka
ciklu"a$ To "u 3=CFSZ# I'CFSZ# 5TFSC i 5TFSS$ <n! 0! pr!"ko2iti "l!&!0u
in"trukciju u "lu2aju &a j! o&r!%!ni u"lov i"punj!n i on&a 0! trajati @ ciklu"a$ -koliko
taj u"lov nij! i"punj!n# izvri0! "! nar!&na in"trukcija kao &a "! nita nij! ni &!"ilo# i
on&a 0! trajati 1 ciklu"$ Po*l!&ajt! "a&a "l!&!0i pro*ra$
movlw 0x02
movwf BR"$A#
Pe& decfsz BR"$A#,F
goto Pe&
e+d
Prva in"trukcija po"tavlja vr!&no"t +N+@ u U$ <vo n! prouzrokuj! !njanj! PC# pa
ona traj! 1 in"trukcij"ki ciklu"$ Sl!&!0a in"trukcija j! "li2na$ <na tako%! n! !nja
"tanj! PC# pa i ona traj! 1 ciklu"$ Sa&a 0! "l!&!0a in"trukcija izvriti prvo "anj!nj!
r!*i"tra 5C<78C za 1 i r!zultat It!"ta na vr!&no"t +J V + pri&ruiti PC$ 'a ovaj na2in
PC "! n! !nja# pa in"trukcija traj! 1 ciklu"$ Sl!&!0a in"trukcija j! ?<T<# i ona traj!
@ ciklu"a$ <n&a "! ponovo vri "anj!nj! r!*i"tra 5C<78C za 1# ali kako j! "a&a
r!zultat It!"ta na vr!&no"t +J V 1# PC 0! pro!niti "voju vr!&no"t na PCH1# to troi @
in"trukcij"ka ciklu"a$ Zna2i ovaj pro*ra zauz!0! ukupno P in"trukcij"ki; ciklu"a$ -z
kri"tal o& 4M,z pro*ra 0! trajati
4M,z M 4takta V 1ZS po in"trukcij"ko ciklu"u# to za P ciklu"a izno"i P D 1ZS V PZS$
>i&it! koliko zbunjuju0i o! biti in"trukcij"ki ciklu" in"trukcija u"lovno* "koka$
8*9t6er pr*-ra%at*ra
S!0at! "! LLC<'FI? &ir!ktiv!? Za kori0!nj! U3T# on "! ora pr!ko nj! uklju2iti "a
U3T <'$ 8 poto j! n!ki pro*raatori i*noriu# potr!bno j! i unutar nji;ovo*
"o9tv!ra po&!"iti kon9i*uracion! bitov!$ Po"tupak nji;ovo* po&!avanja razlikuj! "!
o& pro*raatora# &o pro*raatora ("o9tv!ra)$ -*lavno "! trai nji;ov upi"
n!po"r!&no pr! pro*rairanja ikrokontrol!ra$
FK
Sl!&!0i pro*rao na!rno "!
&ozvoljava pr!kora2!nj! U3T$ 'j!*ov
takt kori"ti "! za tr!ptanj! :=3$
Pri!0uj!t! &a j! :=3 pov!zana tako
&a "v!tli pri &ovo%!nju lo*i2k! + na
pin# a &a joj "! napon &ovo&i &ir!ktno
"a napajanja1 To j! bolj! zbo* anj!*
*r!janja i potronj!$ <"i to*a PIC
por!& o*rani2!nja "truj! po
poj!&ina2ni pinovia (@+8) ia i
o*rani2!nj! "truj! koju o! &ati c!o
port (&o F+8 za P<CT8 i &o 1++8
za P<CT5)# kao i o*rani2!nj! ukupn!
"truj! koju pria i kojo o!
napajati !k"t!rn! potroa2! (1F+8)$
PIC pri ovakvo pov!zivanju po&no"i
&o @F8 po pinu# &o 8+8 za
P<CT8 i &o 1F+8 za P<CT5$

Za pin C84 ovo j! i j!&ino o*u0! r!!nj!# j!r on na "vo izlazu n! o! &ati
lo*i2ku 1$
A DDDDDD Inicijalizacija i i!novanj! DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"; < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!$
o)* 0x00
A DDDDDD T!"t U3T r!"!ta DDDDDD
btfss STATUS,T" A T!"tiraj "tanj! T< bita
goto Eed A C!"!tovan j!# zna2i U3T r!"!t
A DDDDDD Po&!avanj! porta DDDDDD
bsf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1
clrf TRISA A Svi pinovi
clrf TRISA A "u izlazni$
clrf T4R0 A 5ri"anj! vr!&no"ti int!rno* taj!ra i
A pr!"kal!ra O pri upi"u u taj!r#
A DDDDDD Po&!avanj! U3T DDDDDD
bcf STATUS,RP0 A >ra0a pro*ra u 58'G+
clrf T4R0 A 5ri"anj! vr!&no"ti int!rno* taj!ra i
A pr!"kal!ra O pri upi"u u taj!r#
bsf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1
movlw b'10001111' A I"klju2i PullBup otpornik! i
A izab!ri U3T# "a ak"ialni
A vr!!no pr!"kal!ra
movwf "PTI";:R='
F4
clrwdt A <brii U3T
movlw b'10001110' A Izab!ri U3T# i po"tavi o&no"
A pr!"kal!ra o& 1#1S
movwf "PTI";:R='
bcf STATUS,RP0 A 58'G+
A DDDDDD Inicijalizacija U i prvo pr!kora2!nj! U3T DDDDDD
clrw A <brii U
Pe& goto Pe& A Mrtva p!tlja$ >rti "! ov&! &o
A prvo* U3T r!"!ta
A DDDDDD 'ar!&na pr!kora2!nja U3T DDDDDD
Eed xorlw b'00000100' A Iz!ni "tanj! bita @ u U
movwf P"RTA A Pr!baci "tanj! iz U u P<CT8
P!t@ goto Pe&2 A Mrtva p!tlja$ >rti "! ov&! &o
A "l!&!0!* U3T r!"!ta
A DDDDDD Graj pro*raa DDDDDD
e+d A Graj pro*raa$
'akon po2!tn! inicijalizacij! pro*ra 0! "! vrt!ti u prvoj rtvoj p!tlji$ Gako u njoj
n!a C:CU3T in"trukcij!# nakon 1#1S na"tupi0! U3T r!"!t$ Po r!"!tu pro*ra 0!
"! izvriti o& po2!tka# ali 0! &!o "a t!"tiranj! T< bita &!t!ktovati j! li na"tupio U3T
r!"!t ili n!# i ukoliko j!"t! &alj! izvravanj! pro*raa na"tavi0! "! o& lab!l! :!& *&!
0! "! iz!niti "tanj! C8@ pina$
'!"tabilno"t U3T o"cilatora u"l!& pro!n! t!p!ratur! o! biti !9!ktno
i"kori0!na za !r!nj! t!p!ratur! ikrokontrol!ra ("ai ti i "poljn!
t!p!ratur!) b!z ikakvi; !k"t!rni; "!nzora$ Za &!talj! po*l!&ajt! 8'8@8$
FF
19. T(&er
- "lu2aju &a pi!t! pro*ra koji ora iati v!liku ali ta2no &!9ini"anu pauzu "i*urno
va "! n!0! "vi&!ti o*u0no"t po"tavljanja j!&n! p!tlj! unutar &ru*! i prora2unavanja
broja ciklu"a za !lj!nu &uinu pauz!$ Po"toji !l!*antniji na2in r!avanja ovo*
probl!a$ PIC16F84 ia u "!bi int!*ri"an taj!r$ Ipul"i ovo* taj!ra o*u biti
"in;ronizovan "a takto izvravanja in"trukcija ikrokontrol!ra ili "a takto
!k"t!rno* o"cilatora 2iji ipul"i "! &ovo&! na pin K (C84MT+CGI)$ ?lavna 9unkcija
taj!ra j! brojanj! ($+B$@FF) koj! j! za razliku o& U3T "in;ronizovano "a ovi
takto$ - tr!nutku pr!kora2!nja ak"ialn! vr!&no"ti# 9la* taj!ra "! "!tuj!# i ciklu"
brojanja op!t po2inj! o& nul!$ Pr!&no"t taj!ra na& obi2no p!tljo za kanj!nj! j! u
2inj!nici &a j! brojanj! int!rni proc!" ikrokontrol!ra# i &a ni na koji na2in n! uti2! na
brzinu izvravanja *lavno* pro*raa$ 3ovoljno j! povr!!no prov!riti "tanj! 9la*a
taj!ra# kako bi pro*ra znao &a j! ciklu" brojanja zavr!n$
Gako na ovaj na2in nij! o*u0! &obiti v!0! p!rio&!# taj!r i"to kao i U3T o!
kori"titi pr!"kal!r$
5u&u0i &a "! za kori0!nj! i U3T i int!rno* taj!ra pr!t!no vri anipulacija na&
<PTI<'LC=? r!*i"tro# vr!! j! &a "! bli! upoznat! "a nj!*ovo unutranjo
"trukturo$
b-&7 b-&0
RBPU I;T=(' T0#S T0S= PSA PS2 PS1 PS0
'<TLC5P- (!n*$ Port , Pull Up) bit <PTI<'LC=? r!*i"tra "lui za
pov!zivanj! int!rni; otpornika P<CT5 r!*i"tra na napon napajanja$
-potr!bu I'T=3? (!n*$ I'"!rrupt edg!) bita nau2i0!t! u "l!&!0! po*lavlju$
T+CS (!n*$ Ti!r: Clock S!l!ct) bit oo*u0ava izbor takta taj!ra$ -koliko
j! r!"!tovan# brojanj! 0! "! o&vijati "in;ronizovano "a takto izvravanja
in"trukcija koji j! 2!tiri puta anji o& takta o"cilatora$ <vaj takt "! o!
&obiti "a C:G<-T pina ikrokontrol!ra$
-koliko j! T+CS bit "!tovan# brojanj! 0! biti "in;ronizovano "a !k"t!rni
takto koji "! tr!ba &ov!"ti na pin K (C84MT+CGI)$
T+S= (!n*$ Ti!r: Sourc! E&*!) bit ia "i"la j!&ino pri upotr!bi !k"t!rno*
takta$ 'ji! "! bira ;o0! li "! brojanj! vriti pri pr!la"ku "a lo*i2k! + na 1
(r!"!tovan T+S=) ili "a lo*i2k! 1 na + ("!tovan T+S=)$
PS8 (!n*$ Pr!!call!r A""i*!nt) bit "! kori"ti za "!l!kciju pri&ru!no"ti
pr!"kal!ra$ -koliko j! "!tovan# po"t"kal!r 0! biti pri&ru!n U3T# a ukoliko j!
r!"!tovan pr!"kal!r 0! biti pri&ru!n taj!ru$
5itovia PS+ &o PS@ bira "! o&no" &!lj!nja pr!"kal!ra po "l!&!0oj tablici$
F6
B"t
24 14 0
T(R0
*#/*
3DT
*#/*
+# +# + 1/@ 1/1
+# +# 1 1/4 1/@
+# 1# + 1/8 1/4
+# 1# 1 1/16 1/8
1# +# + 1/K@ 1/16
1# +# 1 1/64 1/K@
1# +# 1 1/1@8 1/64
1# 1# 1 1/@F6 1/1@8
Pri!0uj!t! &a "! i ov&! poinj! U3T
o&no"$ <n j! tu j!r "! o&no" taj!ra o& 1/1
o! &obiti j!&ino pri&ruivanj! pr!"kal!ra
U3T# "!tovanj! PS8 bita$ Za takvo
po&!avanj! pri!njuj! "! kT& opi"an u
prolo po*lavlju "a in"trukcijaa
ozna2!ni zv!z&icaa$
5u&u0i &a "! pri "ao pro*rairanju
PIC16F84 vri uklju2!nj! ili i"klju2!nj! U3T
(po&!avanj! kon9i*uracioni; bitova)# n!
o! "! &o0i u "ituaciju &a "! U3T "a
uklju2i# i tako izazov! r!"!t ikrokontrol!ra#
iako u j! pri&ru!n pr!"kal!r$
C!*i"tar taj!ra TMC+ (!n*$ Ti&!r:) nalazi "! na a&r!"i +N+1# a nj!*ov 9la* T+IF
(!n*$ Ti!r: <v!r9loR Int!rrupt Fla*) nalazi "! u I'TC<' r!*i"tru$ >i! o ovo
r!*i"tru nau2i0!t! u &!lu "a int!raptia$
Sl!&i pro*ra koji ilu"tuj! upotr!bu taj!ra$ <n 0! in"trukcij"ki ciklu" pr!"kal!ro
&!liti "a @F6# zati "o9tv!r"ki jo "a 6# a on&a 0! ;!k"a&!cialn! broj!v! (+N++ &o
+N+F) prikazivati na :=3 &i"pl!ju$
3!lj!nj! "a &va "! kao to "! "!0at! o! r!alizovati rotacijo bitova unutar r!*i"tra$
- pro*rau 0! biti upotr!blj!n ranij! ilu"trovani princip prikaza na :=3 &i"pl!ju$
A DDDDDD Inicijalizacija i i!novanj! DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!
(ISP e! 0x0# A Pro!nljiva za broj koji "! prikazuj!
A na &i"pl!ju (+N++B+N+F)
(=E e! 0x0( A Pro!nljiva za rotaciju
"R' 0x00 A 3!9ini! "tart pro*raa
A DDDDDD Inicijalizacija taj!ra i &i"pl!ja DDDDDD
clrf T4R0 A Inicijalizacija taj!ra
clrf I;T#"; A 5ri"anj! 9la*a taj!ra
bsf STATUS,RP0 A Pr!lazak u 58'G1
clrf P"RTA A Po"tavlja "v! pinov!
clrf TRISB A kao izlazn!
movlw b'10000111' A Taj!r j! "in;ronizovan "a
A in"trukcij"ki ciklu"o# i pr!"kal!r j!
movwf "PTI";:R=' A po&!!n za o&no" 1/@F6
A Pull up otpornici "u i"klju2!ni
bcf STATUS,RP0 A Povratak u 58'G+
FP
A DDDDDD Inicijalizacija broja2a DDDDDD
I+- movlw 0x00 A Inicijalizacija
movwf (ISP A &i"pl!ja
movlw b'00100000' A Inicijalizacija
movwf (=E A &!lit!lja
A DDDDDD .!kanj! na pr!kora2!nj! taj!ra DDDDDD
T0> bcf I;T#";,T0IF A C!"!tovanj! 9la*a taj!ra
#e@ btfss I;T#";,T0IF A .!kanj! na "!tovanj! 9la*a taj!ra#
goto #e@ A o&no"no pr!kora2!nj! taj!ra
A DDDDDD 3!lj!nj! "a 6 DDDDDD
rrf (=E A Cotiraj 3=: r!*i"tar na&!"no$ Ga&a "! CarrW
btfss STATUS,# A 9la* "!tuj!# na"tavi &alj!$ -koliko i &alj! nij!
goto T0> A "!tovan# 2!kaj na jo j!&an ciklu" taj!ra$
A DDDDDD Prikaz ci9r! na &i"pl!ju DDDDDD
call T0b2 A -zi obrazac iz tab!l!#
movwf P"RTB A i prikai ci9ru na &i"pl!ju$
A DDDDDD T!"tiranj! pr!kora2!nja vr!&no"ti ci9r! na &i"pl!ju DDDDDD
movlw 0x01 A $1 u U
addwf (ISP,F A Sab!ri 3ISP "a U$ C!zultat u 3ISP
btfsc STATUS,(# A 3a li j! &olo &o pr!kora2!nja vr!&no"ti +N+F?
goto I+- A 7!"t!# po2ni brojanj! o& po2!tka (ci9r! +)
goto T0> A 'ij!# na"tavi &alj! "a brojanj!$
A DDDDDD Tab!la DDDDDD
T0b2 movf (ISP,% A - pro!nljivoj 3ISP nalazi "! vr!&no"t o&
addwf P#E,F A +N++ &o +N+F$ Ta vr!&no"t "! &o&aj! na PC:$
retlw b'01111110' A <brazac za crtanj! ci9r! + B 0
retlw b'00001100' A <brazac za crtanj! ci9r! 1 B 1
retlw b'10110110' A <brazac za crtanj! ci9r! @ B 2
retlw b'10011110' A <brazac za crtanj! ci9r! K B 3
retlw b'11001100' A <brazac za crtanj! ci9r! 4 B 4
retlw b'11011010' A <brazac za crtanj! ci9r! F B 5
retlw b'11111010' A <brazac za crtanj! ci9r! 6 B 6
retlw b'00001110' A <brazac za crtanj! ci9r! P B 7
retlw b'11111110' A <brazac za crtanj! ci9r! 8 B 8
retlw b'11011110' A <brazac za crtanj! ci9r! Y B 9
retlw b'11101110' A <brazac za crtanj! ci9r! 8B A
retlw b'11111000' A <brazac za crtanj! ci9r! 5 B B
retlw b'01110010' A <brazac za crtanj! ci9r! C B C
retlw b'10111100' A <brazac za crtanj! ci9r! 3 B D
retlw b'11110010' A <brazac za crtanj! ci9r! = B E
retlw b'11100010' A <brazac za crtanj! ci9r! F B F
A DDDDDD Graj pro*raa DDDDDD
!n& A Graj pro*raa
F8
Mo&a >a iz*l!&a 2u&no upotr!ba "abiranja u!"to inkr!!ntovanja r!*i"tra 3ISP$
Svakako &a "! nj!*ovo uv!0anj! o*lo izvriti i inkr!!ntacijo# ali na ovaj na2in
lak! j! nakon pov!0anja t!"tirati nj!*ovo pr!kora2!nj!$ 7!&ino in"trukcij! "abiranja i
o&uzianja !njaju "tanj! 3C 9la*a# i j!&ino pri pr!kora2!njia &onji; niblova
(ta2nij! vr!&no"ti +N+F &onj!* nibla)$
Za kra0! p!rio&! o*u0! j! nakon "vako* pr!kora2!nja po"taviti inicijalnu vr!&no"t
taj!ra na npr$ $1++$ - to "lu2aju taj!r 0! brojati o& $1++ &o $@FF# ka&a 0! "!
"!tovati nj!*ov 9la*$ I"to tako o*u0! j! pri!niti &ru*a2iji pri"tup# pa inicijalizovati
TMC+ na $+# i t!"tirati *a na vr!&no"t npr$ $1++$ Pov!&it! ra2una o in"trukcijaa koj!
kori"tit! za po&!avanj! taj!ra# j!r 0! v!0ina in"trukcija 2ij! j! o&r!&it! TMC+
r!*i"tar obri"ati pr!"kal!r$
FY
2:. I'"er%"# A %o(&
Poja int!rapta 0! va v!rovatno biti najt!i za razu!vanj!$ '! po"toji lak na2in za
nji;ovo objanjavanj!# ali na&a "! &a 0!t! pri kraju ov! "!kcij! o0i &a i; u"p!no
pri!njuj!t! u "voji pro*raia$
Int!rapt j! proc!" ili "i*nal koji pr!ki&a izvravanj! *lavno* ikrokontrol!r"ko*
pro*raa i pr!bacuj! nj!*ovo izvravanj! na potpro*ra koji j! za&u!n za obra&u
int!rapta$ Po povratku iz potpro*raa *lavni pro*ra na"tavlja "a ra&o kao &a "!
nita nij! ni &o*o&ilo$ Ilu"trova0u ovo na "vako&n!vno pri!ru$ Pr!tpo"tavio &a
"!&it! ku0i i 2itat! ovo uput"tvo$ <&j!&no va obilni "i*nalizira prij! SMS
poruk!$ Pr!ki&at! 2itanj!# pro2itat! poruku (!v!ntualno i o&*ovorit!)# i na"tavljat!
2itanj! "a !"ta na ko! "t! "tali$ Mo!t! zai"liti *lavni pro*ra kao 2itanj!
uput"tva# zvonjavu obilno* kao izvor int!rapta# a proc!" 2itanja poruk! (i
!v!ntualno* o&*ovora na nju) kao potpro*ra za obra&u int!rtapta$
PIC16F84 ia 4 izvora int!rapta$ 3va !k"t!rna i &va int!rna$ Za "a&a 0!t! nau2iti
pri!nu !k"t!rni; izvora# a int!rni 0! biti objanj!ni ka"nij!$ -koliko po*l!&at!
oznak! izvo&a pinova PIC16F84 vi&!0!t! &a j! na pinu 6 oznaka C5+MI'T$ <2i*l!&no
j! &a j! C5+ ulazno izlazni pin P<CT5 r!*i"tra$ I'T ozna2ava &a "! on o!
kon9i*uri"ati i kao pin !k"t!rno* int!rapta$ Pri to! "! on ponaa kao itov oki&a2#
to ot!ava pojavu lani; "i*nala oki&anja$ Tako%! "! i pinovi C54 &o C5P o*u
kori"titi za int!rapt!$ Pr! n!*o to "! upotr!bi bilo koji izvor int!rapta# tr!baju "!
ura&iti &v! "tvari$ Prvo "! tr!baju &ozvoliti int!rapti# a zati izabrati !lj!ni izvori
int!rapta koji 0! "! kori"titi u pro*rau$
-nutar PIC16F84 nalazi "! I'TC<' (!n*$ I'"!rrupt Co'troll!r) r!*i"tar na a&r!"i
+5;$ 'j!*ov MS5 nazvan j! ?I= (!n*$ *lobal Int!rrupt Enabl!)$ S!tovanj! ?I=
ikrokontrol!r &ozvoljava upotr!bu j!&no* ili vi! izvora int!rapta$ -koliko j! ?I=
r!"!tovan# kori0!nj! bilo ko* int!rapta nij! o*u0!$ 'j!*a o!t! upor!&iti "a
c!ntralno bravo autoobila$
5it 4 I'TC<' r!*i"tra nazvan j! I'T= (!n*$ C5+MI'T I'"!rrupt Enabl! B uklju2i
int!rapt na C5+MI'T pinu)$ S!tovanj! I'T= bita &ozvolj!na j! upotr!ba C5+ pina
kao izvora int!rapta$ Pr! to*a j! (naravno) potr!bno kon9i*uri"ati *a kao ulazni pin#
kako "! n! bi &o*o&ilo &a "! int!rapt izazov! priliko !njanja nj!*ovo* "tanja o&
"tran! "ao* pro*raa$
Sa&a "! ikrokontrol!r tr!ba po&!"iti za !lj!ni "i*nal izazvanja int!rapta$ Pri ra"tu0oj
("a +> na HF>) ili pri opa&aju0oj ivici ("a HF> na +>) "i*nala$ 3ru*i r!2ia &a li
!lit! &a "! int!rapt u ikrokontrol!ru izazov! pri pr!la"ku "i*nala na C5+ pinu "a
lo*i2k! + na lo*i2ku 1# ili "a lo*i2k! 1 na lo*i2ku +$ <vo "! po&!ava u
<PTI<'LC=? r!*i"tru na a&r!"i 81;$ S!tovanj! nj!*ovo* bita 6 nazvano* I'T=3?
(!n*$ I'"!rrupt Edg!) prouzrokova0! int!rapt pri ra"tu0oj ivici# a r!"!tovanj! pri
"ilaznoj$ Gako j! naalo"t <PTI<'LC=? r!*i"tar u 58'G1# tr!ba pr!0i iz 58'G+ u
58'G1# tao "!tovati ili r!"!tovati I'T=3? bit <PTI<'LC=? r!*i"tra# i vratiti "! u
58'G+$ 'ajprakti2nij! j! ovo po&!avanj! izvriti uz o"tala u toku inicijalizacij!
ikrokontrol!ra$ <vi j! PIC16F84 po&!!n za kori0!nj! int!rapta na C5+MI'T pina
P<CT5 r!*i"tra$
6+
-koliko !lit! kori"titi vi! !k"t!rni; izvora int!rapta# o!t! kori"titi pinov! C54 &o
C5P$ <ni "! razlikuju o& C5+MI'T pina u to! to "! int!rapt javlja pri pro!ni
"tanja na pinovia$ To zna2i &a 0! "! int!rapt javiti pri pr!la"ku "a lo*i2k! + na
lo*i2ku 1# ali i "a lo*i2k! 1 na lo*i2ku +$ Po&!avanj! ovi; pinova za izvor! int!rapta
vri "! "!tovanj! bita K I'TC<' r!*i"tra nazvano* C5I= (!n*$ Port , C;an*!
Int!rrupt Enabl!) Iuklju2i int!rapt! pri pro!ni "tanja na portu 5J$ Gako "! ko& nji;
int!rapt izvrava pri "vakoj pro!ni "tanja pinovi C54 &o C5P n!aju "voj bit za
o&r!%ivanj! ivic! "i*nala pri kojoj 0! "! izazivati int!rapt$
'/terapt 9,a-
S!0at! li "! kako "! vri "!tovanj! CarrW 9la*a? Pri naila"ku na int!rapt na C5+MI'T
pinu na "li2an na2in "! "!tuj! bit 1 (I'TF !n*$I'"!rrupt /la*)# o&no"no bit + (C5IF
!n*$ Port , Int!rrupt /la*) pri int!raptu na C54 &o C5P pinovia u I'TC<'
r!*i"tru$ Ga&a int!rapta n!a# int!rapt 9la* j! r!"!tovan$ To j! c!la nj!*ova 9unkcija$
Sa&a "! v!rovatno pitat! kakva j! nji;ova "vr;a$ -koliko j! int!rapt 9la* "!tovan PIC
n! o! i n!0! o&*ovarati na &ru*! int!rapt!$ Pr!tpo"tavio &a j! izazvan int!rapt$
<&*ovaraju0i int!rapt 9la* 0! biti "!tovan# i ikrokontrol!r 0! izvriti potpro*ra za
obra&u int!rapta$ -koliko int!rapt 9la* nij! "!tovan# PIC 0! pri;vatati nov! int!rapt!
to o! &ov!"ti &o n!pr!"tano* vra0anja pro*raa na po2!tak rutin! za obra&u
int!rapta koja "! u"l!& to*a nika&a n! o! izvriti &o kraja$ -koliko "! "!tit! pri!ra
"a obilni# to j! kao &a >a za vr!! o&*ovora na SMS "ti*n! nova poruka i
pr!kin! upi" o&*ovora$ 3al!ko j! prakti2nij! zavriti "a j!&no poruko# i on&a
&ozvoliti prij! novi;$
Int!rapt 9la*ovi iaju jo j!&nu 9unkciju# a to j! oo*u0avanj! int!rapt rutini
&!t!kciju izvora int!rapta (C5+MI'T pin o&no"no C54 &o C5P pinovi) u "lu2aju
kori0!nja vi! izvora int!rapta$ Iako PIC autoat"ki "!tuj! int!rapt 9la*ov! pri
naila"ku int!rapta# on i; n! r!"!tuj! pri povratku iz rutin! za obra&u int!rapta$ <vaj
po"ao ora pro*ra!r "a izvriti ("i*uran "a &a v!0 znat! kako)# i tr!ba "! o&ra&iti
nakon zavr!tka rutin! za obra&u int!rapta# a n!po"r!&no pr! izla"ka iz nj!$
-pro0!n prikaz int!rn! int!rapt lo*ik!
61
8tart " "/terapt 6e!t*r pr*-ra%!e %e%*r"1e
- tr!nutku &ovo%!nja napona napajanja ili priliko r!"!ta# pro*ra"ki broja2 (PC)
pokazuj! na a&r!"u +N++# na po2!tak pro*ra"k! !orij!$ M!%uti# pri pojavi
int!rapta PC 0! a&r!"u "l!&!0! in"trukcij! "taviti na "t!k# i "ko2i0! na a&r!"u +N+4$
3akl!# ka&a pi!t! pro*ra! koji 0! kori"titi int!rapt!# pr! "v!*a tr!bat! r!0i
ikrokontrol!ru &a pr!"ko2i pr!ko a&r!"! +N+4# i za&ri int!rapt rutinu koja po2inj!
na a&r!"i +N+4 o&voj!nu o& o"tatka pro*raa$ <vo "! v!oa lako ipl!!ntira$
'ajpr! j! potr!bno &a pro*ra "tan&ar&no zapo2n! &ir!ktivo <C? +N++$ 3alj! j!
potr!bno pr!"ko2iti pr!ko a&r!"! +N+4$ <vo "! ra&i po"tavljanj! ?<T< in"trukcij!#
nakon koj! "l!&i lab!la pozicionirana za "tart *lavno* pro*raa$ 'akon ov! *oto
in"trukcij! "l!&i jo j!&na <C? &ir!ktiva# ovo*a puta "a a&r!"o +N+4# a nakon nj!
rutina za obra&u int!rapta$ 'a kraju pro*raa za obra&u int!rapta potr!bno j! "taviti
C=TFI= (!n*$ Re"urn /ro #nterrupt) in"trukciju$ <va in"trukcija ozna2ava povratak
iz int!rapt rutin!$ Ga&a PIC nai%! na ovu in"trukciju PC uzia "a "t!ka lokaciju na
kojoj j! PIC bio pr! n!*o to "! pojavio int!rapt$
Sl!&i &!o kT&a koji ilu"truj! nav!&!no$
o)* 0x00 A PIC po2inj! o&av&! pri uklju2!nju i r!"!tu
goto 40-+ A I&i na *lavni pro*ra
o)* 0x04 A PIC &olazi ov&! pri pojavi int!rapta
/
/ A <v&! "! nalazi rutina za obra&u int!rapta koju
/ A PIC izvrava j!&ino pri naila"ku na int!rapt$
/ A 'a nj!no kraju potr!bno j! obri"ati o&*ovaraju0i
/ A int!rapt 9la*$
/
retfie A Zavr!tak rutin! za obra&u int!rapta
40-+ A Po2!tak *lavno* pro*raa
Po"toji par "tvari na koj! tr!bat! obratiti panju priliko kori0!nja int!rapta$
1$ -koliko kori"tit! i"ti r!*i"tar u *lavno pro*rau i u rutini za obra&u
int!rapta iajt! u vi&u &a 0! "! "a&raj to* r!*i"tra v!rovatno pro!niti pri
izvr!nju rutin! za obra&u int!rapta$ 'a pri!r# r!cio &a kori"tit! U r!*i"tar
&a bi"t! po"lali po&atak na P<CT8# i tako%! kori"tit! U r!*i"tar u rutini za
obra&u int!rapta za n!ku &ru*u op!raciju$ -koliko n! pazit!# U r!*i"tar 0! pri
povratku iz rutin! za obra&u int!rapta za&rati vr!&no"t koju j! iao u int!rapt
rutini# i pri povratku iz nj!# ovaj po&atak bi0! po"lat na P<CT8 u!"to
vr!&no"ti koju j! U r!*i"tar iao ranij!$ C!!nj! ovo*a j! privr!!no 2uvanj!
vr!&no"ti U r!*i"tra u n!ko o& "lobo&ni; r!*i"tara# i vra0anj! nj!*ov! "tar!
vr!&no"ti po zavr!tku int!rapt rutin!$ I"to vai i za o"tal! r!*i"tr! (obi2no za
ST8T-S) 2iji "a&raj "! !nja u int!rapt rutini$
@$ Potr!bno j! obratiti panju na inialno vr!! iz!%u &v! uza"topn! pojav!
int!rapta$ -koliko "! za takt ikrokontrol!ra kori"ti kvarc o& 4M,z# PIC 0!
izvravati in"trukcij! brzino o& 1ZS po in"trukciji$ <vo vr!! naziva "!
in"trukcij"ki ciklu"o$ - t!;ni2ko uput"tvu (!n*$ 3ata";!!t) za PIC
6@
nav!&!no j! &a "! tr!ba o"taviti najanj! K &o 4 in"trukcij"ka ciklu"a (zna2i
bar KB4ZS) iz!%u &v! uza"topn! pojav! int!rapta$ Cazlo* za j! vr!! koj! j!
potr!bno ikokontrol!ru za "kok na rutinu za obra&u int!rapta# "!tovanj!
int!rapt 9la*a i povratak iz potpro*raa za obra&u int!rapta$ Iajt! ovo na
uu ukoliko kori"tit! !k"t!rn! izvor! int!rapta$
K$ 'a kraju int!rapt rutin! bit ?I= I'TC<' r!*i"tra "! autoat"ki "!tuj!$
8utoat"ko "!tovanj! ?I= bita o! &a bu&! i n!&o"tatak u j!&no "lu2aju#
tj$ o*u0! j! &a in"trukcija za r!"!tovanj! ovo* bita (zabranu "vi; int!rapta) u
*lavno pro*rau uopt! n! bu&! izvr!na$ 'ai!# ukoliko int!rapt na"tupi u
tr!nutku izvravanja in"trukcij! koja r!"!tuj! ?I= bit# prvo 0! ta in"trukcija biti
zavr!na &o kraja (r!"!tova0! "! ?I= bit)# a zati 0! po2!ti izvravanj!
int!rapt rutin! koja 0! na "vo kraju &a autoat"ki "!tuj! bit ?I=$ Tako 0!
?I= bit biti "!tovan iako j! n!po"r!&no pr! int!rapta bio r!"!tovan$ 3a bi "!
zatitili o& ov! "ituacij!# Microc;ip pr!poru2uj! &a "! nakon r!"!tovanja ?I=
bita prov!ri &a li j! bit zai"ta r!"!tovan i &a "!# ukoliko nij!# op!racija ponovi$
4$ S!0at! "! &a "! bitovi 4 &o P na P<CT5 r!*i"tru o*u kori"titi kao izvori
int!rapta$ '! o!t! izabrati poj!&ina2n! pinov! na P<CT5 za int!rapt!$
3akl!# ukoliko uklju2it! ov! pinov!# "vi po"taju &o"tupni$ - 2!u j! "vr;a
kori0!nja 4 bita kao izvora int!rapta? Pri!r o! biti ku0ni alar# 2ija 4
"!nzora "u pov!zana na pinov! na P<CT5 r!*i"tru$ 5ilo koji "!nzor o!
okinuti PIC za uklju2!nj! alara# a rutina za alar j! rutina za obra&u
int!rapta$ <vo t!&i n!pr!ki&no t!"tiranj! portova# i ra"t!r!0uj! ikrokontrol!r
za &ru*! na!n!$ 'aalo"t nji;ovi int!rapt 9la*o (C5IF I'TC<' r!*i"tra)
nij! o*u0! izvriti &!t!kciju int!rapta na poj!&ina2ni pinovia# v!0 j!&ino
na "vi$
F$ - "lu2aju kori0!nja vi! izvora int!rapta o*u0! j! &a "! za vr!! int!rapt
rutin! izazvan! C5+MI'T pino pojavi i int!rapt na bitovia 4BP P<CT5
r!*i"tra$ Sto*a j! potr!bno u "aoj int!rapt rutini t!"tirati prvi int!rapt 9la*# u
zavi"no"ti o& n!*ovo* "tanja oti0i na rutinu za nj!*ovu obra&u# i tao
r!"!tovati "ao taj int!rapt 9la*$ <&a; nakon povratka iz potpro*raa za
obra&u int!rapta# izvri0! "! int!rapt izazvan &ru*i izvoro$
6$ Int!rapt 9la*ovi "!tuju "! b!z obzira na "tanj! ?I= bita# kao i poj!&ina2ni;
&ozvola za int!rapt! (kao u pro*rau "a taj!ro)$ To o! biti i"kori0!no
za &!t!kciju nji;ovi; "tanja iz "ao* pro*raa b!z kori0!nja int!rapta$
'aravno# o&*ovaraju0i int!rapt 9la* j! kao i ko& int!rapta potr!bno ru2no
r!"!tovati nakon &!t!kcij!$
P$ 5u&it! opr!zni priliko kori0!nja potpro*raa unutar int!rapt rutin!$
-koliko j! u *lavno pro*rau "t!k "koro pun (a bi0! pri pozivanju
potpro*raa iz potpro*raa)# jo par takvi; pozivanja unutar int!rapt rutin!
"i*urno 0! izazvati nj!*ovo pr!kora2!nj!$ -v!k uzit! u obzir naj*oru
o*u0u varijantu# tj$ &a "! int!rapt rutina javlja ba priliko izvravanja
potpro*raa najv!0! &ubin!$
8$ '! pozivajt! iz rutin! za obra&u int!rapta potpro*ra! koj! v!0 pozivat! iz
*lavno* pro*raa$ -koliko j! to n!op;o&no# priliko ula"ka u int!rapt rutinu
"niit! "a&raj "vi; r!*i"tara o&i9ikovani; u potpro*rau# i vratit! i; natra*
priliko izla"ka iz int!rapt rutin!$
- "l!&!0! po*lavlju vi&!0!t! pro*ra koji kori"ti int!rapt!$
6K
21. I'"er%"# A %rogr&
Pr!li "t! &o"ta t!orij! u prolo po*lavlju# i &olo j! vr!! &a "! upoznat! "a
pro*rao koji kori"ti int!rapt!$ Pro*ra 0! pri priti"kanju pr!ki&a2a brojiti o& + &o
P$ C!zultat 0! "! prikazivati na K :=3 na P<CT8 u binarno obliku$ Sa *lavni
pro*ra 0! "ao prikazivati r!zultat# a brojanj! i t!"tiranj! pr!kora2!nja bi0!
r!alizovani int!rapt rutino$
'ajpr! "! ikrokontrol!r tr!ba po&!"iti tako &a pri izvravanju pro*raa pr!"ko2i &!o
na koji PC "ka2! pri pojavi int!rapta$
o)* 0x00 A <v&! PC &olazi pri uklju2!nju i r!"!tu
goto 40-+ A <&lazak na *lavni pro*ra
o)* 0x04 A <v&! 0! po2!ti rutina za obra&u int!rapta
A
A A Cutina za obra&u int!rapta$ -pi"a0! "! ka"nij!
A
retfie A <va in"trukcija ozna2ava kraj rutin! za obra&u
A int!rapta# i vra0a PC na *lavni pro*ra$
40-+ A Po2!tak *lavno* pro*raa
<n&a j! potr!bno po&!"iti PIC za kori0!nj! int!rapta na pinu 6/
bsf I;T#";,'I= A ?lobal int!rrupt !nabl! (1 O uklju2i)
bsf I;T#";,I;T= A C5+ Int!rrupt !nabl! (1 O uklju2i)
64
Za "vaki "lu2aj potr!bno j! r!"!tovati int!rapt 9la* (nika& n! v!ruj ikrokontrol!ru)/
bcf I;T#";,I;TF A <brii int!rapt 9la*
Gako "u ov&! i"kori0!n! 2ak K in"trukcij! za !njanj! vr!&no"ti "ao j!&no*
r!*i"tra prakti2nij! j! u po*l!&u t!&nj! !orij! i brzin! izvravanja pro*raa
za!niti i; "a &v!$
movlw b'10010000' A bit P ?I= O ?lobal int!rrupt !nabl! (1 O uklju2i)
A bit 4 I'T= O C5+ Int!rrupt !nabl! (1 O uklju2i)
A bit 1 I'TF O Int!rrupt 9la* (+ O obrii)
movwf I;T#"; A Inicijalizuj I'TC<' r!*i"tar
Sa&a j! potr!bno po&!"iti portov!$ S!0at! "! &a zbo* kori0!nja C5+ kao int!rapt
pina# on ora biti po"tavlj!n kao ulazniA
bsf STATUS,RP0 A Pr!bacuj! na" u 58'G1
movlw 0x01 A bQ+++++++1Q u TCIS5
movwf TRISB A C5+MI'T kao ulaz# a o"tali kao izlaz
clrf TRISA A Svi pinovi na P<CT8 "u izlazni
bcf "PTI";:R=',I;T=(' A Int!rapt "! izaziva pri
A opa&aju0oj ivici "i*nala
bcf "PTI";:R=',;"T:RBPU A -klju2!ni int!rni Ipull upJ
A otpornici na P<CT5
bcf STATUS,RP0 A Povratak u 58'G+
Gako int!rapt !lio izazivati pri opa&aju0oj ivici "i*nala ("a HF> na +>) ora "!
po&!"iti i I'T=3? bit <PTI<'LC=? r!*i"tra$ Tako%! "u r!"!tovanj! '<TLC5P-
bita uklju2!ni pulll up otpornici$
Pro*ra 0! kori"titi pro!nljivu T=MPU za privr!!no 2uvanj! U r!*i"tra &ok "!
izvrava int!rapt rutina i pro!nljivu 5C<78C za pa0!nj! broja priti"nuti;
pr!ki&a2a$ 5C<78C 0! u pro*rau iati "l!&!0! vr!&no"ti/
bitovi 76543210
00000000 .0
00000001 .1
00000010 .2
00000011 .3
00000100 .4
00000101 .5
00000110 .6
00000111 .7
00001000 .8 B pr!kora2!nj!
Sto*a j! najpr! potr!bno i!novati r!*i"tr! i inicijalizovati vr!&no"t 5C<78C
r!*i"tra$
T=4P% e! 0x0# A T=MPU na a&r!"i +N+C
BR"$A# e! 0x0( A 5C<78C na a&r!"i +N+3
clrf BR"$A# A Stavi +N++ u 5C<78C
6F
3alj! j! potr!bno u *lavno pro *rau napraviti p!tlju koja 0! vr!&no"t pro!nljiv!
5C<78C n!pr!"tano prikazivati na P<CT8 r!*i"tru$
P)- comf BR"$A#,% A Inv!rtovani 5C<78C u U r!*i"tar (zbo* :=3)
movwf P"RTA A a o&atl! u P<CT8
goto P)- A >rati "! na po2!tak p!tlj!
5u&u0i &a prva pojava int!rapta na"taj! t!k ka&a "! pro*ra na%! u *lavnoj
pro*ra"koj p!tlji (Pri)# i &a u "aa p!tlja n! r!a*uj! na "tanj! bitova ST8T-S
r!*i"tra# u int!rapt rutini n!a potr!b! za privr!!ni 2uvanj! nj!*ov! vr!&no"ti$
- int!rapt rutini potr!bno j! najpr! "a2uvati vr!&no"t U r!*i"tra$
movwf T=4P% A Privr!!no 2uvanj! "a&raja U r!*i"tra
<n&a j! potr!bno inkr!!ntovati "a&raj 5C<78C r!*i"tra$
incf BR"$A#,F A -v!0aj r!*i"tar 5C<78C$
3alj! j! potr!bno prov!riti &a li j! pro!nljiva 5C<78C pr!kora2ila ak"ialnu
vr!&no"t $P (bQ+++++111Q) i &ola &o $8 (bQ++++1+++Q)$ 'ajprakti2nij! j! izvriti
t!"tiranj! tr!0!* bita 5C<78C r!*i"tra$
btfsc BR"$A#,3 A T!"tiraj tr!0i bit ++++1+++ 5C<78C r!*i"tra$
A -koliko nij! "!tovan# pr!"ko2i "l!&!0u
A in"trukciju
clrf BR"$A# A -pi"i +N++ u 5C<78C
A -koliko j! 5C<78C nakon inkr!!ntacij!
A pr!kora2io ak"ialnu vr!&no"t (bQ+++++111Q)
A "a&a j! j!&nak $+
A -koliko nij!# "a&a j! inkr!!ntovan$
movf T=4P%,% A >rati pr!t;o&ni "a&raj U r!*i"tra
bcf I;T#";,I;TF A <brii I'TF O &ozvoli nov! int!rapt!
retfie A Graj int!rapt rutin!$
Po*l!&ajt! "a&a c!lokupan pro*ra/
A DDDDDD Inicijalizacija i i!novanj! DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!
"R' 0x00 A 3!9ini! "tart pro*raa
T=4P% e! 0x0# A .uvanj! "a&raja U r!*i"tra na a&r!"i +N+C
BR"$A# e! 0x0( A 5C<78C na a&r!"i +N+3
66
A DDDDDD Int!rapt rutina DDDDDD
o)* 0x00 A <v&! PC &olazi pri uklju2!nju i r!"!tu
goto 40-+ A <&lazak na *lavni pro*ra
o)* 0x04 A <v&! 0! po2!ti rutina za obra&u int!rapta
movwf T=4P% A Privr!!no 2uvanj! "a&raja U r!*i"tra
incf BR"$A#,F A Inkr!!ntuj 5C<78C$
btfsc BR"$A#,3 A T!"tiraj tr!0i bit bQ++++1+++Q 5C<78C r!*i"tra$
A -koliko nij! "!tovan# pr!"ko2i "l!&!0u
A in"trukciju
clrf BR"$A# A -pi"i $+ u 5C<78C
A -koliko j! 5C<78C nakon inkr!!ntacij!
A pr!kora2io ak"ialnu vr!&no"t ($P)
A "a&a j! $+
A -koliko nij!# "a&a j! inkr!!ntovan$
movf T=4P%,% A >rati pr!t;o&ni "a&raj U r!*i"tra
bcf I;T#";,I;TF A <brii I'TF O &ozvoli nov! int!rapt!
retfie A Graj int!rapt rutin!$
A DDDDDD ?lavni pro*ra O inicijalizacija DDDDDD
40-+ movlw b'10010000' A bit P ?I= O ?lobal int!rrupt !nabl! (1 O uklju2i)
A bit 4 I'T= O C5+ Int!rrupt !nabl! (1 O uklju2i)
A bit 1 I'TF O Int!rrupt 9la* (+ O obrii)
movwf I;T#"; A Inicijalizuj I'TC<' r!*i"tar
bsf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1
movlw 0x01 A bQ+++++++1Q u TCIS5
movwf TRISB A C5+MI'T kao ulaz# a o"tali kao izlaz
clrf TRISA A Svi pinovi na P<CT8 "u izlazni
bcf "PTI";:R=',I;T=(' A Int!rapt "! izaziva pri
A opa&aju0oj ivici "i*nala
bcf "PTI";:R=',;"T:RBPU A -klju2!ni int!rni Ipull upJ
A otpornici na P<CT5
bcf STATUS,RP0 A Povratak u 58'G+
clrf BR"$A# A Stavi $+ u 5C<78C
A DDDDDD ?lavni pro*ra O p!tlja DDDDDD
P)- comf BR"$A#,% A Inv!rtovani 5C<78C u U r!*i"tar (zbo* :=3)
movwf P"RTA A a o&atl! u P<CT8
goto P)- A >rati "! na po2!tak p!tlj!
A DDDDDD Graj pro*raa DDDDDD
e+d A Graj pro*raa$
Gao to j! ranij! r!2!no C84 pin n! o! na "vo izlazu &ati lo*i2ku j!& inicu $ -
"lu2aju &a "! na nj!*a poalj! lo*i2ka +# ponaa0! "! i"to kao i o"tali pinovi# a u
6P
"lu2aju j!&inic!# pr!0i 0! u "tanj! vi"ok! ip!&an"! (kao &a nij! ni pov!zan)$ Pin C84
razlikuj! "! o& o"tali; i po "vo ulazu$ -laz u j! "a 6itovi oki&a2!$ To
oo*u0ava bolji prij! "i*nala "a pri"u"tvo ua (npr$ "a u&alj!no* "!nzora)$
Gako j! ovaj pro*ra &at "ao ilu"trativno# nji nij! r!alizovana &!bouncin* rutina$
Priliko priti"kanja pr!ki&a2a o!t! pri!titi &a "! u!"to j!&no* pon!ka& javi
pr!"kok broj!va$
3o "a&a "t! nau2ili K@ in"trukcij!$ >!rovatno i "ai uo2avat! &a >a "a&a v!0i
probl! o& u2!nja novi; in"trukcija pr!&"tavlja u2!nj! 9unkcija r!*i"tara "p!cijaln!
na!n!$
- r!*i"tar! koj! "t! u potpuno"ti nau2ili "pa&aju P<CT8# TCIS8# P<CT5# TCIS5#
PC:# PC:8T,# TMC+ i <PTI<'LC=?$ To j! o"a potpuno i &va &!lii2no
(ST8T-S i I'TC<') nau2!na r!*i"tra$
Sl!&i jo j!&an &!o "a int!raptia# a on&a n!to novo$
68
22. T(&ero& #11v'# #'"er%"#
S!0at! li "! taj!ra$ Malo j! n!prakti2no "v! vr!! 2!kati na pro!nu nj!*ovo*
9la*a$ Prakti2nij! bi bilo &a ikrokontrol!r za vr!! brojanja taj!ra obavlja n!ku
&ru*u op!raciju a &a "! pri "!tovanju nj!*ovo* 9la*a izvri int!rapt rutina$ Po*a%at!#
o*u0! j!$
Pr! n!*o to nau2it! kako "! to o! o"tvariti# upozna0!t! "! "a int!rno "trukturo
I'TC<' r!*i"tra$
b-&7 b-&0
'I= ==I= T0I= I;T= RBI= T0IF I;TF RBIF
?I= (!n*$ *lobal Int!rrupt Enabl!) oo*u0ava ili zabranjuj! upotr!bu "vi;
int!rapta$ 'j!*ovi "!tovanj!# &ozvolj!na j! upotr!ba int!rapta$
S!tovanj! ==I= (EEPC<M Int!rrupt Enabl!) oo*u0!n j! zavr!tak
"nianja u ==PC<M kao izvor int!rapta$
S!tovanj! T+I= (!n*$ Ti!r: Int!rrupt Enabl!) bita taj!r j! upotr!blj!n
kao izvor int!rapta$
I'T= (!n*$ C5+MI'T INT!rrupt Enabl!) bit "!tovanj! &ozvoljava kori0!nj!
C5+ pina ikrokontrol!ra kao izvora int!rapta$
S!tovanj! C5I= (!n*$ Port , C;an*! Int!rrupt Enabl!) bita# oo*u0!na j!
upotr!ba P<CT5 r!*i"tra kao izvora int!rapta pri pro!ni lo*i2ko* "tanja na
C54 &o C5P pinovia$
T+IF (!n*$ Ti!r: Int!rrupt Fla*) bit "!tuj! "! pri pr!kora2!nju taj!ra$
I'TF (!n*$ I'"!rrupt Fla*) bit "!tuj! "! pri &ola"ku o&*ovaraju0!* lo*i2ko*
nivoa (o&abrano* I'T=3? bito <PTI<'LC=? r!*i"tra) na C5+ pin
ikrokontrol!ra$
C5IF (!n*$ Port , Int!rrupt Fla*) "!tuj! "! pri pro!ni lo*i2ko* "tanja na
pinovia C54 &o C5P$
Int!rapt 9la*ovi "! n! r!"!tuju autoat"ki nakon o2itavanja$ 3a bi "! &ozvolili novi
int!rapti# n!op;o&no j! r!"!tovati !lj!ni 9la* pr! izla"ka iz int!rapt rutin!$
3a bi "! taj!r upotr!bio kao izvor int!rapta# &ovoljno j! &ozvoliti nj!*ovo kori0!nj!
"!tovanj! ?I= i T+I= bitova# i r!"!tovanj! nj!*ovo* 9la*a$ Sva po&!avanja
v!zana za obi2an taj!r (pr!"kal!r# !k"t!rni takt) va! i u ovo "lu2aju$
Gako j! u int!rapt potpro*raia u*lavno n!op;o&no 2uvati "tanj! ST8T-S
r!*i"tra po"!bna panja ora "! obratiti na in"trukcij! koj! priliko nj!*ovo*
vra0anja n! uti2u (iznova) na pro!nu nj!*ovo* "tanja kao to npr$ M<>F in"trukcija
6Y
o! uticati na iz!nu Z!ro 9la*a$ Zbo* to*a "! pr!poru2uj! upotr!ba SU8PF
in"trukcij!$
SRap9 (!n*$ S7% F B za!ni) in"trukcija !nja !"ta *ornj! i &onj! niblu u
r!*i"tru$
b-&7 b-&6 b-&5 b-&4 b-&3 b-&2 b-&1 b-&0
b-&3 b-&2 b-&1 b-&0 b-&7 b-&6 b-&5 b-&4
Sintak"a in"trukcij! j! "Rap9 9#& pri 2!u j! 9 r!*i"tar na& koji "! izvrava op!racija#
a "a & j! o&r!%!no o&r!&it! r!zultata op!racij!$
Sl!&i pro*ra koji ilu"truj! upotr!bu K n!zavi"na &!la$ =l!ktri2na !a i"ta j! kao u
pr!t;o&no po*lavlju$ Prvi &!lo 0! :=31 tr!p!riti$ To 0! biti *lavni pro*ra$
3ru*i &!lo 0! "! pri priti"ku ta"t!ra izazvati int!rapt koji 0! !njati "tanj! :=3@$
Tr!0i &!lo 0! "! taj!ro izazivati int!rapt koji 0! !njati "tanj! :=3K$
<va tri &!la "u "ao u"lovno n!zavi"na$ Int!rapt potpro*ra troi vr!! potr!bno za
izvravanj! "voji; in"trukcija# pa 0! u zavi"no"ti o& brzin! izvravanja int!rapt
potpro*raa (i brzin! nj!no* pojavljivanja) *lavni pro*ra ra&iti "porij!$ M!%uti#
int!rapt rutina "! u*lavno pravi tako &a nj!no trajanj! bu&! to kra0!# pa tako nj!no
izvravanj! n! uti2! u v!likoj !ri na brzinu *lavno* pro*raa$
A DDDDDD Inicijalizacija i i!novanj! DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!
"R' 0x00 A 3!9ini! "tart pro*raa
cb2oc@ 0x0#
T=4P% A .uvanj! "a&raja U r!*i"tra
T=4PSTATUS A .uvanj! "a&raja ST8T-S r!*i"tra
BR"$A#1 A 5C<78C1$ Inicijalno +NFF
BR"$A#2 A 5C<78C@$ Inicijalno +NFF
BR"$A#3 A 5C<78CK$ Inicijalno +NFF
SP"RTA A S;a&&oR r!*i"tar za P<CT8
e+dc
A DDDDDD Int!rapt rutina DDDDDD
o)* 0x00 A <v&! PC &olazi pri uklju2!nju i r!"!tu
goto 40-+ A <&lazak na *lavni pro*ra
o)* 0x04 A <v&! 0! po2!ti rutina za obra&u int!rapta
movwf T=4P% A .uvanj! "a&raja U r!*i"tra u T=MPU
P+
swapf STATUS,% A ST8T-S "a okr!nuti niblovia u U
movwf T=4PSTATUS A i zati u T=MPST8T-S r!*i"tar
movf SP"RTA,% A S;a&&oR r!*i"tar u U
A DDDDDD T!"t int!rapta izazvano* pr!ki&a2! DDDDDD
btfss I;T#";,I;TF A Int!rapt izazvan pr!ki&a2!?
goto T0> A 'ij!# i&i na &!o za taj!r"ki int!rapt$
A DDDDDD Cutina za obra&u int!rapta izazvano* pr!ki&a2! DDDDDD
xorlw b'00000010' A Pro!ni "tanj! bita za :=3@ u U
A DDDDDD Izlazak iz int!rapt rutin! izazvan! pr!ki&a2! DDDDDD
call G)0& A -p&atuj P<CT8 i S,833<U i
A >rati "tanja U i ST8T-S r!*i"tra
bcf I;T#";,I;TF A 3ozvoli nov! int!rapt! pr!ki&a2a
retfie A Povratak iz int!rapt rutin!$
A DDDDDD -p&at! P<CT8 i S,833<U i vra0anj! DDDDDD
A DDDDDD ori*inalno* "tanja U i ST8T-S r!*i"tra DDDDDD
G)0& movwf P"RTA A Gopiraj U u P<CT8
movwf SP"RTA A Gopiraj U u S;a&&oR r!*i"tar
swapf T=4PSTATUS,% A T=MPST8T-S "a okr!nuti niblovia
A u U$ 3va puta okr!nuti niblovi &aju
movwf STATUS A prvobitno "tanj! koj! i&! u ST8T-S
swapf T=4P%,F A 7!&no okr!ni niblov! u "ao
A T=MPU r!*i"tru#
swapf T=4P%,% A a &ru*i put "a U kao o&r!&it!$
return A Graj potpro*raa$
A DDDDDD Cutina za obra&u int!rapta izazvano* taj!ro DDDDDD
T0> decfsz BR"$A#3,, A Sanji 5C<78CK$
xorlw b'00000100' A Pro!ni "tanj! bita za :=3K u U
A ?ornja in"trukcija izvrava "! u "vi "lu2aj!via ka&a j! vr!&no"t 5C<78CK
A r!*i"tra o& $1 &o $@FF$ Gako j! i nar!&na in"trukcija i"ta# &va puta `<CBovana
A vr!&no"t &aj! ori*inalno "tanj! U r!*i"tra (kao pr! `<C op!racij!)$
A Ga&a j! 5C<78CK V + *ornja in"trukcija ona "! pr!"ka2! i izvrava "! "ao
A j!&na (nar!&na) `<C op!racija# koja prouzrokuj! !lj!nu pro!nu "tanja bita$
xorlw b'00000100' A Pro!ni "tanj! bita za :=3K u U$
A <va in"trukcija "! uv!k izvrava$
A DDDDDD Izlazak iz int!rapt rutin! izazvan! taj!ro DDDDDD
call G)0& A -p&atuj P<CT8 i S,833<U i
A vrati "tanja U i ST8T-S r!*i"tra
bcf I;T#";,T0IF A 3ozvoli nov! int!rapt! taj!ra
retfie A Povratak iz int!rapt rutin!$
P1
A DDDDDD ?lavni pro*ra O inicijalizacija DDDDDD
40-+ bsf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1
movlw 0x01 A bQ+++++++1Q u TCIS5
movwf TRISB A C5+MI'T kao ulaz# a o"tali kao izlaz
clrf TRISA A bQ+++++Q u TCIS8# "vi pinovi P<CT8 "u izlazni
movlw b'00000111' A T+CSV+ B Taj!r j! "in;ronizovan "a
A in"trukcij"ki ciklu"o
A Pr!"kal!r B PS8V111 j! po&!!n za o&no" 1/@F6
A I'T=3?V+ B Int!rapt "! izaziva pri
A opa&aju0oj ivici "i*nala ("a 1 na +)
A '<TLC5P-V+ B -klju2!ni int!rni Ipull upJ
A otpornici na P<CT5
movwf "PTI";:R=' A
bcf STATUS,RP0 A Povratak u 58'G+
clrf T4R0 A Inicijalizacija taj!ra
clrf SP"RTA A Inicijalizacija S;a&&oR r!*i"tra
movlw b'10110000' A bit P ?I= O ?lobal int!rrupt !nabl! (1 O uklju2i)
A bit 4 I'T= O C5+ Int!rrupt !nabl! (1 O uklju2i)
A bit 1 I'TF O Int!rrupt 9la* (+ O obrii)
A bit F T+I= O Ti!r int!rrupt !nabl! (1 O uklju2i)
A bit @ T+IF O Ti!r int!rrupt 9la* (+ O obrii)
movwf I;T#"; A Inicijalizuj I'TC<' r!*i"tar
A DDDDDD ?lavni pro*ra O tr!ptanj! :=31 DDDDDD
Poc bcf I;T#";,'I= A Zabrani nov! int!rapr!
btfsc I;T#";,'I= A Prov!ri j!"u li int!rapti zai"ta zabranj!ni
goto Poc A 'i"u# zabrani i; op!t$
movf SP"RTA,% A S,833<U u U
xorlw b'00000001' A Pro!ni "tanj! bita za :=31 u U
movwf P"RTA A Gopiraj U u P<CT8
movwf SP"RTA A Gopiraj U u S;a&&oR r!*i"tar
bsf I;T#";,'I= A 3ozvoli nov! in!rapt!
call Pe& A -baci kanj!nj!
goto Poc A >rati "! na po2!tak
A DDDDDD Potpro*ra za kanj!nj! o& oko +#@S DDDDDD
Pe& decfsz BR"$A#1,F A <v! &v! p!tlj! "lu! za brojanj! na&ol! o&
goto Pe& A @FF &o +# @FF puta# oo*u0avaju0i na &a
decfsz BR"$A#2,F A o!o vi&!ti kako :=31 tr!p!ri
goto Pe&
return A Povratak iz potpro*raa
A DDDDDD Graj pro*raa DDDDDD
e+d A Graj pro*raa
Mo!t! "! zapitati zato "u upotr!blj!n! &v! "Rap9 in"trukcij! pri vra0anju T=MPU u
U# ka&a "! i"to o*lo r!alizovati i ov9 T=MPU#U in"trukcijo$ Cazlo* j! taj to
0! oR9 in"trukcija "!tovati Z!ro 9la* u "lu2aju &a j! u U bila vr!&no"t +N++# &ok j!
P@
"Rap9 in"trukcija n!utralna pr!a "vi 9la*ovia$ Sli2no vai i za ST8T-S r!*i"tar$
-koliko j! o&r!&it! in"trukcij! koja !nja "tanj! 9la*ova ST8T-S r!*i"tra "a
ST8T-S r!*i"tar# nj!*ovi 9la*ovi po"tavi0! "! u zavi"no"ti o& r!zultata in"trukcij!#
b!z obzira na "tanj! bajta koji !lio po"lati u nj!*a$
- &!lu "a t!"tiranj! int!rapta o!t! pri!titi &a j! t!"tiran "ao int!rapt 9la*
pr!ki&a2a$ To j! "a"vi noralno# j!r n!to ora &a j! izazvalo int!rapt ka&a "! v!0
ulo u int!rapt rutinu$ -koliko to nij! bio pr!ki&a2# on&a j! "i*urno bio taj!r
-koliko "u oba int!rapta na"tupila i"tovr!!no ("!tovana oba int!rapt 9la*a)# najpr!
0! "! izvriti int!rapt rutina pr!ki&a2a# ali po povratku iz int!rapt potpro*raa o&a;
0! "! izazvati novi int!rapt j!r j! int!rapt 9la* taj!ra i &alj! "!tovan$
Si*urno "t! u &!lu za obra&u taj!r"ko* int!rapta uo2ili n!obi2nu r!alizaciju
kanj!nja$ <no "! oralo izv!"ti na taj na2in (u prolazu) j!r "! n! "! &ozvoliti &a
pr!v!liko kanj!nj! int!rapt potpro*raa ko2i izvr!nj! *lavno* pro*raa$
- *lavno pro*rau int!rapti "u privr!!no zabranj!ni &a "! "tanj! SP<CT8
r!*i"tra n! bi pro!nilo int!rapt rutino za vr!! nj!*ov! pro!n! o& "tran!
*lavno* pro*raa$ T!"tiranj! zabran! "vi; int!rapta tako%! j! n!op;o&no (po*l!&ajt!
napo!n! uz int!rapt!)$
3o"ta j! bilo int!rapta$ Sl!&i n!to "a"vi &ru*a2ij!$
PK
2). I'd#re0"'o dre!#r'(e
S!0at! li "! tab!l!? Go& nj! j! "kok na !lj!nu lokaciju izvr!n "abiranj! PC: "a U$
'!to "li2no ali u o&no"u na r!*i"tr!# o*u0! j! po"ti0i kori0!nj! FSC i I'3F
r!*i"tra$
I'3F r!*i"tar nij! 9izi2ki r!*i"tar$ 'j!*ovo a&r!"iranj! u "tvari a&r!"ira r!*i"tar 2ija
a&r!"a j! "a&rana u FSC r!*i"tru (FSC j! point!r a&r!"! !lj!no* r!*i"tra)$ Takav
po"tupak naziva "! in&ir!ktno a&r!"iranj!$
Pr!tpo"tavit! &a P<CT8 "a&ri vr!&no"t +N+K# a P<CT5 +N@5$ -koliko u FSC
ubacit! a&r!"u P<CT8 r!*i"tra (+N+F)# i pro2itat! "a&raj r!*i"tra I'3F# &obi0!t!
vr!&no"t +N+K$ -koliko "a&a inkr!!ntuj!t! FSC# on 0! ukazivati na P<CT5 (+N+6)$
Sa&a 0! o2itavanj! vr!&no"ti iz I'3F r!*i"tra vratiti vr!&no"t +N@5$
I"to tako j! o*u0! i upi"ivanj! po&ataka u !lj!n! r!*i"tr!$
Sl!&!0i pro*ra ilu"truj! upi"ivanj! vr!&no"ti +N++ u r!*i"tr! o& +N@+ &o +N@F$
movlw b'00100000' A Inicijalizacija point!ra
movwf FSR A na r!*i"tar +N@+
Pe& clrf I;(F A In&ir!ktno bri"anj! !lj!no* r!*i"tra
incf FSR,F A Pozicioniranj! point!ra na "l!&!0i r!*i"tar
btfss FSR,4 A Pr!kora2!nj!? +NK+ V bQ++11++++Q
goto Pe& A 'ij!# na"tavi "a bri"anj!
A 7!"t!# na"tavak pro*raa$
Za razliku o& tab!l!# zbo* alo* broja r!*i"tara ko& upotr!b! in&ir!ktno* a&r!"iranja
n!a o*rani2!nja u "i"lu blokova po&ataka (bar ko& PIC16F84 ikrokontrol!ra O
ko& ikrokontrol!ra "a v!0i broj! r!*i"tara ovo nij! "lu2aj)$
In&ir!ktno a&r!"iranj! "! u pro*raia naj2!0! upotr!bljava j!&ino u "lu2aju v!0!
koli2in! po&ataka$
3o "a&a "t! nau2ili KK o& KF in"trukcija# potpunu upotr!bu &!"!t r!*i"tra i &!lii2nu
upotr!bu &va r!*i"tra o& ukupno 1F$ Pr!li "t! najv!0i (i najt!i O int!rapti) &!o
*ra&iva# !%uti ia "! jo no*o to*a nau2iti$
P4
24. EEPRO+ &e&or#(
Zai"lit! &a iat! PIC koji pr!ko "i"t!a 9oto0!lija broji po"!tioc! koji "u uli kroz
ulazna vrata bank!# kao i on! koji "u izali kroz izlazna vrata# i na o"novu broja lica u
banci r!*uli! ra& "!nzora pokr!ta# o"v!tlj!nja i klia ur!%aja$
Gako n! bi"t! !l!li &a ita pr!pu"tit! "lu2aju# ikrokontrol!r ra&i "a uklju2!ni
U3T$ M!%uti# !l!ktro&i"tribucija "! po"tara &a n! bu&! "v! tako i&!alno i o&j!&no
n!"tan! "truj!$ Gako banka n! bi bila banka ukoliko n!a n!ku r!z!rvu# @ "!kun&!
nakon n!"tanka "truj! uklju2uj! "! !l!ktroa*r!*at (to n! "pr!2ava r!"!t kopjut!ra i
zabrinuto I7ao &o%it! ka"nij!# n! ra&! na t!rinaliJ)# i PIC (koji "! tako%!
r!"!tovao) kr!0! "a ra&o inicijalizuju0i u "vo broja2u 1 o"obu (u noralno ra&u
ono*a ko prvi &olazi na po"ao)$ 'akon to "! broj o"oba u banci "anji za 1 o"obu
(to o! na"tati i no*o ka"nij!# j!r "u klij!nti bank! 2uli &a j! l!*la plata)# pr!"taju
&a ra&! klia ur!%aji i o"v!tlj!nj!# a "!nzori pokr!ta uklju2uju alar i &ojavljuju
plja2ku bank! policiji$
Zna zna$ 7!&an anji akuulator ili -PS r!io bi probl!$ 8li &ir!ktor bank! ni
&a 2uj!$ To &ir!ktno po"kupljuj! proj!kat$ Pa nij! valj&a &ab! kupio a*r!*at1
- ovo "lu2aju potr!bno j! &a PIC i nakon n!"tanka napona napajanja zapati
vr!&no"t pro!nljiv! 5C<78C (ili vi! pro!nljivi; ukoliko j! broj o"oba koj! o*u
"tati u pro"toriju v!0i o& @FF)$ Po &ola"ku napona napajanja ov! vr!&no"ti tr!baju "!
pro2itati# i pr!baciti u o&*ovaraju0! r!*i"tr!$
-nutar PIC16F84 nalazi "! 64 bajta ==PC<M !orij! (+N++O+NKF)$ Za razliku o&
r!*i"tara koji "u obi2na C8M !orija# ova !orija za&rava "voj! "tanj! i nakon
n!"tanka napona napajanja ikrokontrol!ra$
'aalo"t zbo* 9izi2ki; o"obina ==PC<M !orij! ra& "a njo nij! ni iz&al!ka tako
j!&no"tavan kao ra& "a obi2ni C8M r!*i"tria$ Por!& in&ir!ktno* a&r!"iranja (za ta
"! kori"t! r!*i"tri ==83C (!n*$ EEPC<M Adr!"") i ==38T8 (!n*$ EEPC<M
D")) potr!bno j! inicirati proc!" 2itanja ili "nianja bajta# to "! vri pr!ko
==C<'1 (!n*$ EEPC<M Co'troll!r1) i ==C<'@ (!n*$ EEPC<M Co'troll!r2)
r!*i"tra$
Pr! n!*o to nau2it! 2itanj! i "nianj! u ==PC<M# upoznajt! int!rnu "trukturu
==C<'1 r!*i"tra$
b-&7 b-&0
H H H ==IF %R=RR %R=; %R R(
5itovi F &o P "! n! kori"t! u ==C<'1 r!*i"tru$ Tr!baju biti na lo*i2koj nuli$
==IF (!n*$ EEPC<M Int!rrupt Fla*) bit pr!&"tavlja 9la* int!rapta izazvano*
zavr!tko proc!"a "nianja bajta$ <vaj int!rapt o! "! &ozvoliti
"!tovanj! ==I= (!n*$ EEPC<M Int!rrupt Enabl!) bita I'TC<' r!*i"tra$
Potr!bno *a j! ru2no obri"ati pr! povratka iz int!rapt rutin!$
PF
UC=CC (!n*$ .rit! Error) bit in&ikuj! pr!ki& "nianja bajta u ==PC<M#
u"l!& i"t!ka vr!!na U3T ili !k"t!rno* r!"!ta ikrokontrol!ra$ Pro*ra
o! nakon r!"!ta t!"tirati ovaj bit (uz to ora otkriti i &a li j! r!"!t na"tao
u"l!& n!"tanka napona napajanja ili n!)# i na o"novu nj!*ovo* "tanja &ovriti
proc!" "nianja ("a&raj ==83C i ==38T8 r!*i"tra n! !nja "! nakon
r!"!ta)$
UC=' (!n*$ .rit! E'abl!) bit ora biti "!tovan# &a bi bio o*u0 upi" u
==PC<M$
UC (!n*$ .rit!) bit kori"ti "! za iniciranj! upi"a u ==PC<M !oriju$
C3 (!n*$ R!ad) bit kori"ti "! za iniciranj! 2itanja iz ==PC<M !orij!$
Po*l!&ajt! najpr! pri!r 2itanja !orij"k! a&r!"! +N1+ iz ==PC<M !orij!$
bcf STATUS,RP0 A Pr!bacuj! na" u 58'G+ zbo* ==83C
movlw 0x10 A E!lio pro2itati "a&raj ==PC<M
movwf ==A(R A !orij! "a a&r!"! +N1+
bsf STATUS,PR0 A Pr!bacuj! na" u 58'G1
bsf ==#";1,R( A Inicira proc!" 2itanja
A ==PC<M !orij!
bcf STATUS,RP0 A Pr!bacuj! na" u 58'G+
movf ==(ATA,% A Sa&raj bajta "a a&r!"! +N1+
A iz ==PC<M !orij! j! u ==38T8#
A o&akl! "! o! pr!baciti u U
<vaj pro*ra tr!bao bi &a >a j! u potpuno"ti ja"an$ S!tovanj! C3 bita iniciran j!
proc!" 2itanja# a zati "! C3 bit autoat"ki nakon 2itanja vra0a na +$ Po&atak iz
==PC<M !orij! &o"tupan j! u ==38T8 r!*i"tru o&a; u nar!&no
in"trukcij"ko ciklu"u# o&akl! j! pr!!t!n u U r!*i"tar$ Po*l!&ajt! "a&a kako j!
r!alizovano "nianj! bajta +N@4 u ==PC<M a&r!"u +N1+$
bcf STATUS,RP0 A Pr!bacuj! na" u 58'G+
movlw 0x24 A 5ajt za "nianj!
movwf ==(ATA A u ==38T8
movlw 0x10 A na a&r!"u
movwf ==A(R A +N1+
bsf STATUS,RP0 A Pr!laz u 58'G1 zbo* ==C<'1
bcf I;T#";,'I= A Zabrana "vi; int!rapta (ukoliko i; ia)
bsf ==#";1,%R=; A 3ozvola pi"anja u ==PC<M
movlw 0x55 A
movwf ==#";2 A
movlw 0xAA A Inicijalizacija upi"a u ==PC<M
movwf ==#";2 A
bsf ==#";1,%R A
bsf I;T#";,'I= A 3ozvola int!rapta (ukoliko "! kori"t!)
bcf ==#";1,%R=; A Zabrana &alj!* pi"anja u ==PC<M
P6
Snianj! u ==PC<M n!0! "! inicirati ukoliko nij! ta2no i"potovana proc!&ura (+NFF
u ==C<'@# +N88 u ==C<'@# "!tovan UC) i to b!z pauza (otu& zabrana int!rapta)
za "vaki poj!&ina2ni bajt$ Microc;ip navo&i &a j! ta proc!&ura uv!&!na kako bi "!
"pr!2io n!;oti2an upi" u ==PC<M zbo* o*u0i; *r!aka u pro*rau$ Iz i"to*
razlo*a UC=' bit j! potr!bno &rati "!tovani j!&ino za vr!! upi"a u ==PC<M$
UC bit "! autoat"ki r!"!tuj! po zavr!tku upi"a$ - "lu2aju "!rij"ko* "nianja
po&ataka u ==PC<M# potr!bno j! pr! "l!&!0!* "nianja prov!riti "tanj! ovo* bita#
kako "! n! bi &!"ilo iniciranj! novo* upi"a u ==PC<M a &a pr!t;o&no "nianj! jo
nij! zavr!no$ To j! obav!zno# j!r "nianj! u ==PC<M nij! "in;ronizovano "a
in"trukcij"ki ciklu"o# v!0 "! za upi" u ==PC<M kori"ti po"!ban int!rni o"cilator#
koji o&r!%uj! vr!! upi"a o& oko 1+S$ Go& 2itanja po&ataka iz ==PC<M !orij!
n!a ovakvi; probl!a$ -!"to t!"tiranja 9la*a o*u0! j! i j!&no"tavno "a2!kati
&ovoljno &u*o (npr$ 1@S)$
Mo&a >a "! !r! inicijaln! proc!&ur! i UC=CC bita 2in! pr!t!rani$ 8li zapitajt!
"! ta bi "! &!"ilo ukoliko bi u ==PC<M !oriji 2uvali npr$ obra"c! za prikaz broja
na :=3 &i"pl!ju$ - "lu2aju korupcij! ==PC<M !orij! PIC ni nakon r!"!ta n! bi
o*ao na"taviti "a noralni ra&o$ Morao bi "! o&l!iti "a tapan! plo2ic! i
ponovo pro*rairati (u ikrokontrol!r "! "a pro*rao "nia i "a&raj ==PC<M
!orij!)$
- "l!&!0! po*lavlju upozna0!t! "! "a pro*rao koji kori"ti ==PC<M !oriju i
nau2i0!t! upotr!bu ==IF bita i proc!" upi"a po&ataka u ==PC<M iz "ao*
a"!bl!ra$ 'a taj na2in "! "a&raj ==PC<M !orij! o! 2uvati zaj!&no "a
pro*rao u j!&no $a" ili $;!N 9ajlu$
PP
24. EEPRO+ # #'"er%"#
S!0at! li "! ono* t!ko*? 3a# int!rapta$ - nji;ovi o"novni po&acia nav!&!no j!
&a "! o*u kori"titi 4 izvora int!rapta$ 3va ;ar&v!r"ka (!lj!na pro!na "tanja na
I'T pinu i pro!na "tanja na pinovia C54BC5P) i &va "o9tv!r"ka (pr!kora2!nj!
taj!ra i zavr!tak "lanja po&atka u ==PC<M)$
Ia li "vr;! kori"titi zavr!tak "lanja po&atka u ==PC<M kao izvor int!rapta? T!ko$
Sav proc!" o! "! zavriti linij"ki kT&o$ <prav&anj! nj!no* kori0!nja o! "!
na0i u vr!!n"ki kriti2ni pro*raia ko& koji; j! potr!bno za vr!! "nianja u
==PC<M izvravati &ru*! op!racij!# kako ikrokontrol!r n! bi *ubio vr!! 2!kaju0i
(2ak 1+S) na zavr!tak "nianja$ 5olj! j! &a pro*ra u!"to 2!kanja na zavr!tak
upi"a u ==PC<M ra&i n!to kori"no$
Sa&a 0!t! "! upoznati "a pro*rao koji po priti"ku na ta"t!r !nja "tanj! na :=3
&i"pl!ju o& Y &o +# i "nia *a u ==PC<M$ Po i"klju2!nju napona napajanja i
nj!*ovo ponovno &ovo%!nju# na :=3 &i"pl!ju na0i 0! "! po"l!&nja zapa0!na
vr!&no"t (to j! i bio cilj u pri!ru "a banko)$ ?lavni pro*ra ia0! j!&ino 9unkciju
u2itavanja i "nianja tr!nutni; vr!&no"ti u ==PC<M# a int!rapt rutino 0! "!
r!alizovati "v! o"talo (t!"t pr!ki&a2a# "anj!nj! broja# prikaz na &i"pl!ju)$ Go&
ovakvo* pro*raa o2i*l!&no j! &a int!rapt rutina traj! &al!ko &u! o& "ao* *lavno*
pro*raa$ To "! ov&! o! tol!ri"ati$ =l!ktri2na !a j! i"ta kao u &!lu "a tab!laa$
A DDDDDD Inicijalizacija i i!novanj! DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!
cb2oc@ 0x0#
T=4P% A Privr!!no 2uvanj! U r!*i"tra
T=4PSTATUS A Privr!!no 2uvanj! ST8T-S r!*i"tra
BR"$A# A 5roja2 za b!bouncin* pauzu$ Inicijalno +NFF
(ISP A 5roj koji "! prikazuj! na
e+dc A &i"pl!ju i "nia (+N+Y O +N++)
A DDDDDD Inicijalizacija vr!&no"ti u ==PC<M !oriji DDDDDD
o)* 21x00 A Po2!tak ==PC<M !orij!
de 0x00 A Inicijalizacija po2!tn! vr!&no"ti na
A &i"pl!ju
A DDDDDD Int!rapt rutina O 2uvanj! "a&raja r!*i"tra DDDDDD
o)* 0x00 A <v&! PC &olazi pri uklju2!nju i r!"!tu
goto 40-+ A <&lazak na *lavni pro*ra
o)* 0x04 A <v&! 0! po2!ti int!rapt rutina
movwf T=4P% A .uvanj! "a&raja U r!*i"tra u T=MPU
swapf STATUS,% A ST8T-S "a okr!nuti niblovia u U
movwf T=4PSTATUS A i zati u T=MPST8T-S r!*i"tar
P8
A DDDDDD T!"t pr!ki&a2a DDDDDD
bcf STATUS,RP0 A Povratak u 58'G+ O u *lavno
A pro*rau pr! "koka na int!rapt rutinu
A pro*ra "! izvravao u 58'G1
#e@1 btfss P"RTB,0 A T!"tiranj! otput!no"ti pr!ki&a2a
goto #e@1 A 'ij! otput!n
goto P0! A 7!"t! otput!n$ I&i na pauzu$
btfss P"RTB,0 A 7o j!&no t!"tiranj! zbo* iuno"ti na
goto #e@1 A !v!ntualna varni2!nja kontakta$
#e@2 btfsc P"RTB,0 A T!"tiranj! priti"nuto"ti pr!ki&a2a
goto #e@2 A 'ij! priti"nut
goto P0! A 7!"t! priti"nut$ I&i na pauzu$
btfsc P"RTB,0 A 7o j!&no t!"tiranj! zbo* iuno"ti na
goto #e@2 A !v!ntualna varni2!nja kontakta$
A DDDDDD Prikaz ci9r! na &i"pl!ju DDDDDD
movf (ISP,% A 3ISP u U
call T0b2 A -zi obrazac iz tab!l!#
movwf P"RTB A i prikai ci9ru na &i"pl!ju$
A DDDDDD T!"tiranj! pr!kora2!nja vr!&no"ti ci9r! na &i"pl!ju DDDDDD
decf (ISP,F A Sanji 3ISP za 1$ C!zultat u 3ISP
btfss (ISP,7 A T!"tiraj MS5$ <n 0! biti 1 j!&ino ukoliko j!
A &olo &o pr!kora2!nja "a +N++ na +NFF
goto PoI) A 'ij!# iza%i iz int!rapt rutin!
movlw 0x0B A 7!"t!# inicijalizuj brojac na
movwf (ISP A vr!&no"t +N+Y
PoI) swapf T=4PSTATUS,% A T=MPST8T-S "a okr!nuti niblovia
A u U$ 3va puta okr!nuti niblovi &aju
movwf STATUS A prvobitno "tanj! koj! i&! u ST8T-S
swapf T=4P%,F A 7!&no okr!ni niblov! u "ao
A T=MPU r!*i"tru#
swapf T=4P%,% A a &ru*i put "a U kao o&r!&it!$
bcf ==#";1,==IF A 3ozvola novi; int!rapta
retfie A Graj int!rapt rutin!$
A DDDDDD ?lavni pro*ra O inicijalizacija DDDDDD
40-+ bsf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1
bcf ==#";1,==IF A C!"!t int!rapt 9la*a
movlw b'11000000' A ?I=V1 O ?lobal int!rrupt !nabl!
movwf I;T#"; A ==I=V1 O ==PC<M int!rrupt !nabl!
movlw b'00000000' A '<TLC5P-V+ B -klju2!ni int!rni
movwf "PTI";:R=' A pull up otpornici na P<CT5
movlw 0x01 A bQ+++++++1Q u TCIS5
movwf TRISB A C5+MI'T kao ulaz# a o"tali kao izlaz
clrf TRISA A Svi pinovi na P<CT8 "u izlazni
bcf STATUS,RP0 A Povratak u 58'G+
PY
A DDDDDD .itanj! iz ==PC<M !orij! DDDDDD
movlw 0x00 A E!lio pro2itati "a&raj ==PC<M
movwf ==A(R A !orij! "a a&r!"! +N++
bsf STATUS,PR0 A Pr!bacuj! pro*ra u 58'G1
bsf ==#";1,R( A Inicira proc!" 2itanja
A ==PC<M !orij!
bcf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G+
movf ==(ATA,% A Sa&raj bajta "a a&r!"! +N++ iz
A ==PC<M !orij! u U
A DDDDDD Inicijalizacija broja2a i :=3 &i"pl!ja DDDDDD
movwf (ISP A Inicijalizacija broja2a
call T0b2 A -zi obrazac iz tab!l! i
movwf P"RTB A Prikai ci9ru na &i"pl!ju
A DDDDDD Snianj! u ==PC<M DDDDDD
'20 movf (ISP,% A 3ISP u U
movwf ==(ATA A pa u ==38T8
movlw 0x00 A na a&r!"u
movwf ==A(R A +N++
bsf STATUS,RP0 A Pr!bacuj! na" u 58'G1 zbo* ==C<'1
bsf ==#";1,%R=; A 3ozvola pi"anja u ==PC<M
movlw 0x55 A
movwf ==#";2 A
movlw 0xAA A <tklju2avanj! upi"a u ==PC<M
movwf ==#";2 A
bsf ==#";1,%R A
J)0> btfss ==#";1,%R A T!"t zavr!tka "nianja
goto J)0>
A - ovo tr!nutku "nianj! j! zavr!no pa "! int!rapt 9la* "!tuj! i na"taj! int!rapt$ -
int!rapt rutini 2!ka0! "! na priti"ak pr!ki&a2a# "anji0! "! vr!&no"t na &i"pl!ju i t!k
on&a 0! "! iza0i iz nj! i na"taviti &alji pro*ra$
bcf ==#";1,%R=; A Zabrana pi"anja u ==PC<M
bcf STATUS,RP0 A Povratak u 58'G+
goto '20 A Povratak na po2!tak pro*raa
A DDDDDD Tab!la DDDDDD
T0b2 movf (ISP,% A - pro!nljivoj 3ISP nalazi "! vr!&no"t o&
addwf P#E,, A $+ &o $Y$ Ta vr!&no"t "! &o&aj! na PC:$
retlw b'01111110' A <brazac za crtanj! ci9r! + B 0
retlw b'00001100' A <brazac za crtanj! ci9r! 1 B 1
retlw b'10110110' A <brazac za crtanj! ci9r! @ B 2
retlw b'10011110' A <brazac za crtanj! ci9r! K B 3
retlw b'11001100' A <brazac za crtanj! ci9r! 4 B 4
retlw b'11011010' A <brazac za crtanj! ci9r! F B 5
retlw b'11111010' A <brazac za crtanj! ci9r! 6 B 6
8+
retlw b'00001110' A <brazac za crtanj! ci9r! P B 7
retlw b'11111110' A <brazac za crtanj! ci9r! 8 B 8
retlw b'11011110' A <brazac za crtanj! ci9r! Y B 9
A DDDDDD Pauza zbo* &!bouncin* rutin! DDDDDD
P0! decfsz BR"$A#,F A Pauza zbo* &!bouncin*
goto P0! A rutin!
return A Povratak iz potpro*raa
A DDDDDD Graj pro*raa DDDDDD
e+d A Graj pro*raa
Priliko "nianja kT&a u PIC16F84 ora "! "a&raj !orij"k! a&r!"! +N++ u
==PC<M !oriji po&!"iti na proizvoljan broj iz!%u +N++ i +N+Y$ - protivno 0!
ikrokontrol!r uz!ti inicijalno "tanj! iz ==PC<M !orij! (+NFF) i pri naila"ku na
tab!lu izvravanj! pro*raa 0! "! na"taviti za @4F bajtova iza "a! tab!l!# to 0!
izazvati n!pravilan ra& (ta2nij! r!"!tovanj!) ikrokontrol!ra$ To j! u pro*rau
u2inj!no upotr!bo 3= (!n*$ D!9in! E=PC<M) &ir!ktiv!$ 'jo "! j!&an (ili vi!)
bajtova "!taju u ==PC<M$ 5u&u0i &a j! za nju potr!bno pr!t;o&no &!9ini"ati
po2!tak upi"a u ==PC<M !oriju (or* &ir!ktivo i a&r!"aa o& @1N++ &o @1NK;)#
najprakti2nij! j! "taviti j! i"pr!& ili iza pro*raa# kako "! n! bi &!"ilo &a "! i pro*ra
*r!ko upi! u ==PC<M$
Pri "!tanju vi! bajtova u ==PC<M# o!t! bajt po bajt iza 3= &ir!ktiv! o&vojiti
zar!zo# ovako/ &! +N+F# +N88# +NPY$$$
Iako iz*l!&a &a j! ==PC<M na n!ki na2in pro&u!tak pro*ra"k! !orij!# razlika
"vakako po"toji$ - ==PC<M !oriji nij! o*u0! izvravati pro*ra!# i"to kao to
"! ni iz pro*raa n! o! 2itati (a ni !njati) "a&raj pro*ra"k! !orij! (bar ko&
PIC16 "!rij!)$
Mo&a "t! pri!tili &a u rutini za "nianj! u ==PC<M nij! izvr!na zabrana
kori0!nja "vi; int!rapta r!"!tovanj! ?I= bita$ -koliko bi "! int!rapti zabranili#
pro*ra n! bi "ko2io na int!rapt rutinu# i n!pr!"tano bi "! vrt!o u p!tlji "niaju0i
j!&an i"ti bajt u ==PC<M a&r!"u +N++$ -koliko bi "! ovo &ovoljno &u*o ponavljalo#
ova ==PC<M a&r!"a bi "! u"l!& "tar!nja pokvarila (kao o*r!botina na 3>3 &i"ku)$
7!&na ==PC<M !orij"ka lokacija o! "! !njati &o 1 ilion puta$ Sv! pr!ko
ov! vr!&no"ti pov!0ava v!rovatno0u na"tupa kvara a&r!"!$
'aravno# ukoliko "! kori"ti vi! izvora int!rapta# o"tali bi "! orali privr!!no
zabraniti$
5u&u0i &a 0!t! "! u i&u0! po*lavlju upoznati "a u"pavani "tanj!
ikrokontrol!ra# vr!! j! &a nau2it! j!&nu l!nju in"trukciju$ To j! '<P (!n*$ No
O%!ration)$ <va in"trukcija# o"i to traj! j!&an in"trukcij"ki ciklu" n! ra&i nita
kori"no$ Ga&a pro*ra ikrokontrol!ra nai%! na nju# utroi0! j!&an in"trukcij"ki
ciklu" nizata$ Pr!0i 0! pr!ko nj!# kao &a j! n!a$ -*lavno "! kori"ti u "ituacijaa
ka&a j! potr!bno r!alizovati ta2no o&r!%!no# ili kratko kanj!nj! (npr$ u p!tljaa
kanj!nja ili &!bouncin* rutini)$
81
26. S$ee% &od A %o(&
Pr!tpo"tavio &a !lit! napraviti ;i&ro!l!ktranu$ 3a bi"t! prov!rili &a li r!ka ia
&ovoljan protok vo&! toko c!l! *o&in!# o&lu2ili "t! &a !rit! nj!n nivo
ikrokontrol!ro# i &a prikuplj!n! po&atk! povr!!no (po popuni ==PC<M
!orij!) pr!bacuj!t! u laptop$ Gako na r!ci n!a !l!ktri2n! r!!# ikrokontrol!r
"! napaja iz akuulatora$ '!*ativni pol akuulatora (a"a) "poj!n j! "a r!ko# a
o2itavanj! nivoa vo&! "! vri int!rapto pri pro!ni "tanja na pinovia C54 &o C5P#
koji "u pov!zani "a o&*ovaraju0i "on&aa na po Fc &ubin!$ Ga&a j! nivo vo&!
i"po& najni! "on&!# na "vi pinovia j! lo*i2ka 1 (uklju2!ni "u int!rni pull up
otpornici)$ Ga&a j! nivo vo&! izna& najvilj!# vo&a "! ponaa kao provo&nik iz!%u
a"! i "on&i# tako &a j! na "vi pinovia lo*i2ka +$ Mikrokontrol!r j! pov!zan "a
&i*italni 2a"ovniko i &o&atno ==PC<M !orijo# koji u oo*u0avaju
!ori"anj! ta2no* tr!nutka ra"ta ili opa&anja nivoa vo&!$
<2i*l!&no j! &a u aktivno "tanju ikrokontrol!r ra&i "ao povr!!no (u tr!nutku
pov!0anja ili "anj!nja nivoa vo&!)# i v!oa kratko (vr!! potr!bno za 2itanj!
ta2no* vr!!na iz "ata# i upi" vr!!na i nivoa vo&! u ==PC<M !oriju)$ Gako 0!
toko @4; najv!rovatnij! na"tupiti j!&an p!rio& pli! i o"!k!# to izno"i "ao oko 8
!r!nja &n!vno$ Pr!o"talo vr!! ikrokontrol!r 0! "! vrt!ti u praznoj p!tlji 2!kaju0i
na int!rapt# i b!"potr!bno tro!0i "truju iz akuulatora$
S:==P I"pavaju0iJ o& pr!&"tavlja "tanj! u koj! "! ikrokontrol!r nalazi u r!iu
"anj!n! potronj! !n!r*ij!$ - S:==P o&u blokira "! ra& *lavno* o"cilatora$
In"trukcij! "! pr!"taju izvravati# taj!r pr!"taj! "a ra&o# a U3T "! (ukoliko j!
uklju2!n) r!"!tuj! (ali na"tavlja "a ra&o zbo* "op"tv!no* o"cilatora)$ Portovi
za&ravaju "voja "tanja (izlaz O +# izlaz O 1 ili ulaz O "tanj! vi"ok! ip!&an"!)$ Za
najanju o*u0u potronju potr!bno j! proj!ktovati "poljna !l!ktron"ka kola tako &a
n! vuku "truju iz izlazni; pinova portova# i &a ulazn! pinov! po"tav! na "tabilan
lo*i2ki nivo (+ ili 1)$ C84MT+CGI pin bi tako%! tr!bao biti na "tabilno nivou (n! bi
"!o biti izlazni "a lo*i2ko 1 j!r j! n! o! &ati)$
'apon napajanja ikrokontrol!ra o! "! "pu"titi i &o 1#F> b!z *ubitka po&ataka$
Potronja ikrokontrol!ra pa&a "a oko @8 na oko F Z 8 $
-koliko >a j! potronja "truj! izuz!tno bitna# o!t! kupiti v!rzuju
ikrokontrol!ra "p!cijalno napravlj!nu za ra& "a to anjo potronjo "truj!$
- S:==P o& ulazi "! S:==P in"trukcijo# a iz nj!*a "! ikrokontrol!r o!
Iprobu&itiJ na tri na2ina$
1$ 3ovo%!nj! lo*i2k! nul! na MC:C pin ikrokontrol!ra# to prouzrokuj!
r!"!t ikrokontrol!ra$ >i! o r!"!tu# u i&u0i po*lavljia$
@$ C!"!to pr!ko i"t!ka vr!!na U3T$
K$ Int!rapto na C5+MI'T pinu# int!rapto pri pro!ni "tanja na P<CT5
r!*i"tru# bitovia 4 &o P# ili int!rapto izazvani zavr!tko upi"a u
==PC<M$
8@
Int!rapt izazvan taj!ro n! o! "! kori"titi za bu%!nj! iz S:==P o&a# j!r j! u
S:==P o&u i taj!r u"pavan$
-la"ko u S:==P o&# !nja "! "tanj! o&r!%!ni; bitova ST8T-S r!*i"tra$ >r!! j!
&a napokon prou2it! i nj!*ovu unutranju "trukturu$
b-&7 b-&0
H H RP0 T" P( ? (# #
5itovi P i 6 n! kori"t! "! u PIC16F84$ Tr!baju biti u "tanju lo*i2k! +$
5it F (CP+) kori"ti "! ko& &ir!ktno* a&r!"iranja za izbor bank! po&ataka po
"l!&!0! /
+ B 58'G+ O +N++B+NPF
1 B 58'G1 O +N8+B+NFF
T< (!n*$ Ti!BOut) Ipr!kora2!nj! vr!!naJ bit j! na "tanju lo*i2k! + nakon
i"t!ka U3T# a u "tanju lo*i2k! 1 po &ola"ku napona napajanja# i izvr!nju
C:CU3T ili S:==P in"trukcij!$ 'a o"novu "tanja ovo* bita pro*ra o!
&!t!ktovati &a j! r!"!t ikrokontrol!ra na"tao u"l!& pr!kora2!nja U3T$
P3 (!n*$ PoR!rBDoRn) bit po"tavlja "! na 1 po &ola"ku napona napajanja ili
izvr!nju C:CU3T in"trukcij!# a na + po izvr!nju S:==P in"trukcij!$
:o*i2ka j!&inica na Z!ro JnultoS bitu pokazuj! &a j! r!zultat za&nj!
arit!ti2k! ili lo*i2k! op!racij! j!&nak +$ :o*i2ka nula na ovo bitu ukazuj!
&a j! r!zultat razli2it o& +$
3C (!n*$ Di*it CarrWMborroR) bit Ibit pr!kora2!njaMpozajic! ci9r!J in&ikuj!
pr!kora2!nj! ili pozajicu &onj! niblu na"talu zbo* izvravanja in"trukcija
"abiranja ili o&uzianja$
:o*i2ka j!&inica na C (!n*$ CarrWMborroR) bitu Ibitu pr!kora2!njaMpozajic!J
ukazuj! &a j! &olo &o pr!kora2!nja ili pozajic! u bajtu na& koji "u "!
izvril! op!racij! "abiranja# o&uzianja ili rotacij!$

Gao to vi&it! iz "ao* ST8T-S r!*i"tra# izvr!nj! S:==P in"trukcij! prouzrokuj!
r!"!tovanj! P3 bita i "!tovanj! T< bita$
Mo&a va 2u&no iz*l!&a bu%!nj! iz S:==P o&a i"t!ko U3T$ <n "! u
ikrokontrol!ru kori"ti za povr!!no bu%!nj! iz S:==P o&a# obavljanj! o&r!%!n!
op!racij!# i ponovni ulazak u S:==P o&$ Tako ikrokontrol!r o! povr!!no
izvriti pon!ku op!raciju# a op!t 0! v!0inu vr!!na prov!"ti "pavaju0i (i tro!0i anj!
"truj!)$ Gako i"t!k U3T prouzrokuj! "o9tv!r"ki r!"!t ikrokontrol!ra pro*ra ora
po r!"!tu t!"tirati T< bit# i na o"novu nj!*ovo* "tanja zaklju2iti &a li "! ra&i o prvo
uklju2!nju ikrokontrol!ra# ili o pr!ki&u na"talo i"t!ko U3T# kako bi "! o*ao
na"taviti zapo2!ti pro*ra$
- prak"i "! no*o 2!0! "r!0! bu%!nj! int!raptia$ - "l!&!0! po*lavlju upozna0!t!
"! "a "p!ci9i2no"tia upotr!b! int!rapta u S:==P o&u$
8K
26. ,3Be'(e #1 S$ee% &od
5u%!nj! iz S:==P o&a int!raptia razlikuj! "! o& obi2ni; int!rapta po to! to j!
o*u0! &a "! u!"to "koka na int!rapt rutinu# izvravanj! pro*raa na"tavi iza
S:==P in"trukcij!$ 'ai!# ukoliko j! u S:==P o&u ?I= "!tovan# pri int!raptu 0! "!
ikrokontrol!r probu&iti i "ko2iti na int!rapt rutinu# kao u obi2no pro*rau$ 8li#
ukoliko j! ?I= r!"!tovan# pri int!raptu (&ozvolj!ni o&*ovaraju0i int!rapt 9la*o)
0! "! probu&iti i na"taviti &alj! izvr!nj! pro*raa# b!z "koka na int!rapt rutinu$
- zavi"no"ti o& tr!nutka "ticanja u"lova za pojavu int!rapta o*u0! j! &a "! int!rapt
&o*o&i n!po"r!&no pr! S:==P in"trukcij!$ - to "lu2aju# S:==P in"trukcija "! n!0!
izvriti# pa n!0! biti r!"!tovan U3T i nj!*ov pr!"kal!r# r!"!tovan P3 bit i "!tovan T<
bit$ Zbo* to*a j! potr!bno ru2no r!"!tovati U3T (ukoliko "! kori"ti) n!po"r!&no pr!
S:==P in"trukcij!$ - "lu2aju &a j! potr!bno "aznati &a li "! izvrila S:==P
in"trukcija# to "! o! prov!riti t!"tiranj! P3 bita ST8T-S r!*i"tra$
Sa&a 0!t! "! upoznati "a pro*rao koji ilu"truj! upotr!bu S:==P o&a i bu%!nj! iz
nj!*a na oba na2ina ("a "!tovani i r!"!tovani ?I=)$ Pro*ra "! "a"toji iz &va &!la$
- prvo &!lu# pro*ra ulazi u S:==P o&# i o& kori"nika "! za;t!va &a po"tavi
kobinaciju ta"t!ra T1 &o T4$ Priliko "vak! pro!n! "tanja ta"t!ra izaziva "!
int!rapt (ta"t!ri "u pov!zani na pinov! C54 &o C5P) i o&abrana kobinacija "!
prikazuj! na :=3 &i"pl!ju u ;!k"a&!cialno 9oratu$ 'akon po"tavlj!no* !lj!no*
broja priti"n! "! TF izazivaju0i novi int!rapt (C5+)$ Stanj! po"tavlj!no na &i"pl!ju
"nia "! u !oriju ikrokontrol!ra pri!no in&ir!ktno* a&r!"iranja$ Po"tupak "!
ponavlja "v! &ok "! n! "nii F kobinacija$ - &ru*o &!lu# ikrokontrol!r "!
ponovo u"pavljuj! ali tako &a int!rapt prouzrokuj! nj!*ovo bu%!nj! i na"tavak
pro*raa b!z "koka na int!rapt rutinu$ Po izazivanju int!rapta (TF) "nilj!n!
kobinacij! "! 2itaju i prikazuju na &i"pl!ju "a uklju2!no &!cialno ta2ko
("!*!nt &p na &i"pl!ju)$ 'akon F prikazani; kobinacija# pro*ra "! ponavlja iz
po2!tka$
Gako j! zbo* int!rapta i int!rni; pull up otpornika potr!bno &a pr!ki&a2i bu&u na
portu 5# "lika 0! "! na &i"pl!ju prikazivati kobinacijo pinova P<CT8 i P<CT5
r!*i"tra (ta2nij! pinovia C8+ &o C84 i C51 &o C5K)$
A DDDDDD Inicijalizacija i i!novanj! DDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
A Po&!ava kon9i*uracion! bitov!
cb2oc@ 0x0#
T=4P% A Pro!nljiva za U r!*i"tar
T=4PSTATUS A Pro!nljiva za ST8T-S r!*i"tar
T=4P A Pro!nljiva za rotaciju
e+dc
A $K@ O $K6 C8M !orija za "nianj! "tanja pr!ki&a2a
o)* 0x00 A <v&! PC &olazi pri uklju2!nju i r!"!tu
goto 40-+ A <&lazak na *lavni pro*ra
84
A DDDDDD Int!rapt rutina za prvi &!o pro*raa O noraln! int!rapt! DDDDDD
o)* 0x04 A <v&! 0! po2!ti int!rapt rutina
movwf T=4P% A .uvanj! "a&raja U r!*i"tra u T=MPU
swapf STATUS,% A ST8T-S "a okr!nuti niblovia u U
movwf T=4PSTATUS A i zati u T=MPST8T-S r!*i"tar
swapf P"RTB,% A -zi "tanj! "a porta i za!ni "tanj! niblova$
andlw b'00001111' A Ma"kiraj n!!lj!n! bitov!
A DDDDDD T!"t int!rapta izazvano* pr!ki&a2! DDDDDD
btfss I;T#";,I;TF A Int!rapt izazvan pr!ki&a2! TF?
goto T14 A 'ij!# i&i na &!o za pr!ki&a2! T1 &o T4$
A DDDDDD Int!rapti izazvani pr!ki&a2! TF DDDDDD
movwf I;(F A In&ir!ktno "nianj! u !lj!ni r!*i"tar
incf FSR,F A Pozicioniranj! point!ra na "l!&!0i r!*i"tar
call G)0& A >rati "a&raj U i ST8T-S r!*i"tra
bcf I;T#";,I;TF A <brii int!rapt 9la* pr!ki&a2a TF
retfie A >rati "! iz int!rapt potpro*raa
A DDDDDD Int!rapti izazvani pr!ki&a2ia T1 &o T4 DDDDDD
call T0b2 A -zi "liku za &i"pl!j iz tab!l!$
8F
call ;0c) A 'acrtaj "liku$
call G)0& A >rati "a&raj U i ST8T-S r!*i"tra
bcf I;T#";,RBIF A <brii int!rapt 9la* pr!ki&a2a T1 &o T4
retfie A >rati "! iz int!rapt potpro*raa
G)0& swapf T=4PSTATUS,% A T=MPST8T-S "a okr!nuti niblovia
A u U$ 3va puta okr!nuti niblovi &aju
movwf STATUS A prvobitno "tanj! koj! i&! u ST8T-S
swapf T=4P%,F A 7!&no okr!ni niblov! u "ao
A T=MPU r!*i"tru#
swapf T=4P%,% A a &ru*i put "a U kao o&r!&it!$
return A Povratak iz potpro*raa$
A DDDDDD Tab!la DDDDDD
T0b2 addwf P#E,F A >r!&no"t u U o& bQ++++++++Q &o bQ++++1111Q
A (+N++ &o +N+F) "! &o&aj! na PC:
A b!z &!cialn! ta2k!
retlw b'00011000' A <brazac za crtanj! ci9r! + B 0
retlw b'00111111' A <brazac za crtanj! ci9r! 1 B 1
retlw b'10010100' A <brazac za crtanj! ci9r! @ B 2
retlw b'00010110' A <brazac za crtanj! ci9r! K B 3
retlw b'00110011' A <brazac za crtanj! ci9r! 4 B 4
retlw b'01010010' A <brazac za crtanj! ci9r! F B 5
retlw b'01010000' A <brazac za crtanj! ci9r! 6 B 6
retlw b'00011111' A <brazac za crtanj! ci9r! P B 7
retlw b'00010000' A <brazac za crtanj! ci9r! 8 B 8
retlw b'00010010' A <brazac za crtanj! ci9r! Y B 9
retlw b'00010001' A <brazac za crtanj! ci9r! 8B A
retlw b'01110000' A <brazac za crtanj! ci9r! 5 B B
retlw b'11010000' A <brazac za crtanj! ci9r! C B C
retlw b'00110100' A <brazac za crtanj! ci9r! 3 B D
retlw b'11010000' A <brazac za crtanj! ci9r! = B E
retlw b'11010001' A <brazac za crtanj! ci9r! F B F
A DDDDDD Potpro*ra za crtanj! "lik! na &i"pl!ju DDDDDD
;0c) movwf P"RTA A Poalji u P<CT8 bitov! C8+ &o C84
movwf T=4P A Poalji u T=MP r!*i"tar zbo* za!n! niblova
swapf T=4P,% A Za!ni !"ta niblovia tako &a C51 bit &o&j!
A na !"to bita 1 (i"to "! o*lo r!alizovati
A i "a 4 CCF in"trukcij!)
movwf P"RTB A Poalji u P<CT5 bitov! C51 &o C5K
return A Povratak iz potpro*raa$
A DDDDDD ?lavni pro*ra O inicijalizacija DDDDDD
40-+ bsf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1
movlw b'11110001' A pinovi C5+ i C54 &o C5P ulazni#
movwf TRISB A a C51# C5@ i C5K izlazni$
clrf TRISA A Svi pinovi porta 8 izlazni
movlw b'00000000' A I'T=3?V+ B Int!rapt "! izaziva pri
86
A opa&aju0oj ivici "i*nala ("a 1 na +)
A '<TLC5P-V+ B -klju2!ni int!rni
movwf "PTI";:R=' A pull up otpornici na P<CT5
bcf STATUS,RP0 K PoI)0&0@ ! BA;J0
"5e& movlw .32 A Inicijalizacija point!ra C8M !orij!
movwf FSR A na r!*i"tar $K@
A DDDDDDD Po"tavi "liku na &i"pl!ju pr! uklju2!nja int!rapta DDDDDD
swapf P"RTB,% A -zi "tanj! "a porta i za!ni "tanj! niblova$
andlw b'00001111' A Ma"kiraj n!!lj!n! bitov!
call T0b2 A -zi "liku za &i"pl!j iz tab!l!$
call ;0c) A 'acrtaj "liku$
A DDDDDD -klju2i int!rapt! DDDDDD
bsf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1
movlw b'10011000' A ?I= O ?lobal int!rrupt !nabl! (1 O uklju2i)
A I'T= O C5+ Int!rrupt !nabl! (1 O uklju2i)
A C5I= O C5 Int!rrupt !nabl! (1 O uklju2i)
A I'TF O Int!rapt 9la* za TF (+ O obrii)
movwf I;T#"; A C5IF O Int!rapt 9la* za T1BT4 (+ O obrii)
bcf STATUS,RP0 A Povratak u 58'G+
A DDDDDD Prvi &!o pro*raa O "!tovan ?I=# noralni int!rapti DDDDDD
Poc sleep A -klju2i S:==P o&
A - ovo tr!nutku pro*ra "! vratio iz int!rapt rutin!$ Sa&a j! potr!bno prov!riti &a li
A j! "nilj!no "vi; F vr!&no"ti$ M!%uti# bolj! j! ov&! prov!riti vr!&no"t FSC
A r!*i"tra "abiranj!# j!r j! o*u0! &a "! (npr$ u"l!& &!bouncin*a na TF) izazov! vi!
A uza"topni; int!rapta i tako "ni! vr!&no"ti u jo par nar!&ni; C8M a&r!"a$ .ak i
A &a "! to &o*o&i# t!"to CarrW 9la*a o! "! &!t!ktovati taj "lu2aj za razliku o&
A t!"ta Z!ro 9la*a$
movf FSR,% A FSC u U
addlw .21B A T!"t pr!kora2!nja$ FSC tr!ba biti o& $K@ &o $K6
btfss STATUS,# A $KP i vi! H $@1Y V "!tovan CarrW
goto Poc A 7o n!a pr!kora2!nja$ Spavaj i &alj!$
A - ovo tr!nutku "nilj!no j! "vi; F vr!&no"ti u C8M a&r!"! o& $K@ &o $K6
A Sa&a "! tr!ba zabraniti o&lazak na int!rapt potpro*ra$
?0b) bcf I;T#";,'I= A 7!"t!$ Zabrani nov! int!rapr!
btfsc I;T#";,'I= A Prov!ri j!"u li int!rapti zai"ta zabranj!ni
goto ?0b) A 'i"u# zabrani i; op!t$
A DD 3ru*i &!o pro*raa O r!"!tovan ?I=# int!raptia "! na"tavlja *lavni pro*ra DD
movlw 0xFF A
movwf P"RTA A <brii :=3 &i"pl!j ("!*!nti na P<CT8)$
movwf P"RTB A <brii :=3 &i"pl!j ("!*!nti na P<CT5)
8P
bcf P"RTA,4 A -klju2i "!*!nt &!cialn! ta2k!$
movlw .32 A Inicijalizacija point!ra C8M !orij!
movwf FSR A na r!*i"tar $K@
A DDDDDD Zabrani bu%!nj! iz "l!!p o&a pr!ki&a2ia T1 &o T4 DDDDDD
bsf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1
movlw b'00010000' A ?I= O ?lobal int!rrupt !nabl! (+ O i"klju2i)
A I'T= O C5+ Int!rrupt !nabl! (1 O uklju2i)
A C5I= O C5 Int!rrupt !nabl! (+ O i"klju2i)
A I'TF O Int!rapt 9la* za TF (+ O obrii)
movwf I;T#"; A C5IF O Int!rapt 9la* za T1BT4 (+ O obrii)
bcf STATUS,RP0 A Povratak u 58'G+
A DDDDDD Ponovo u"pavaj ikrokontrol!r DDDDDD
S50 sleep A -"pavaj ikrokontrol!r &o pojav! int!rapta$
A Po nj!*ovoj pojavi# na"tavi pro*ra b!z "koka
A na int!rapt potpro*ra
nop A -troi j!&an in"trukcij"ki ciklu"
A Pr!poru2ljivo nakon bu%!nja
A - ovo tr!nutku priti"nut j! pr!ki&a2 TF$
movf I;(F,% A In&ir!ktno 2itanj! !lj!no* r!*i"tra
call T0b2 A -zi "liku za &i"pl!j iz tab!l!$
call ;0c) A 'acrtaj "liku$
bcf P"RTA,4 A -klju2i "!*!nt &!cialn! ta2k!$
incf FSR,F A Pozicioniranj! point!ra na "l!&!0i r!*i"tar
A T!"t pr!kora2!nja j! i"ti kao i ranij!# iako bi "a&a "lobo&no o*ao biti "a `<C
A op!racijo
movf FSR,% A FSC u U
addlw .21B A T!"t pr!kora2!nja$ FSC tr!ba biti o& $K@ &o $K6
btfss STATUS,# A $KP i vi! H $@1Y V "!tovan CarrW
goto S50 A 7o n!a pr!kora2!nja$ Spavaj i &alj!$
goto "5e& A Ia pr!kora2!nja$ Po2ni pro*ra iz po2!tka$
A DDDDDD Graj pro*raa DDDDDD
e+d A Graj pro*raa
- Sl!!p o&u o"cilator j! n!"tabilan priliko bu%!nja$ 'ai!# poto j! o"cilator za
vr!! "pavanja blokiran# nij! u ba lako &a o&j!&no po2n! proizvo&iti 2i"t!
taktov!$ 5u%!nj! n!0! biti o*u0! &ok "! o"cilator n! "tabilizuj!$ Zato "! pri
kori0!nju S:==P o&a n! o! vriti !r!nj! vr!!na brojanj! in"trukcij"ki;
ciklu"a in"trukcija u pro*rau# 2ak iako "! bu%!nj! int!rapto &!ava ta2no o&r!%!no
vr!! nakon ula"ka u Sl!!p o&$ Gako CC o"cilator najlak! po2inj! "a o"cilacijaa#
vr!! za nj!*ovu "tabilizaciju j! "koro tr!nutno# &ok j! ko& upotr!b! o"tali; vr"ta
o"cilatora potr!bno 1+@4 takta o"cilatora za kopl!tnu "tabilizaciju$ Sv! &ok "!
"tabilizacija takta n! zavri# ikrokontrol!r "! n!0! o0i probu&iti iz S:==P o&a$
88
28. ,ro(>
Gako o!t! brojali "poljn! "i*nal!? 7!&an o& o*u0i; na2ina pr!&"tavlja n!pr!ki&no
t!"tiranj! pina na lo*i2ku + pa na lo*i2ku 1 iz *lavno* pro*raa (!n*$ poolin*)$
<2i*l!&no j! &a bi ovakaj princip brojanja zauz!o najvi! r!"ur"a ikrokontrol!ra$
3ru*i na2in j! int!raptia$ 'jia j! ikrokontrol!ru o"tavlj!no &ovoljno vr!!na za
*lavni pro*ra# a ipak o! pravovr!!no o&*ovoriti na "poljn! ipul"!$
- prak"i "! 2!"to javlja potr!ba za brojanj! v!0i; vr!&no"ti# pri 2!u "! r!zolucija
broja2a zaokruuj! na &ovoljan broj &!ciala$ 3a li >a j! toliko bitna razlika u
brzini o& +#++@FkM; ukoliko v!0 vozit! biciklu pr!ko K+kM;? T!ko &a 0! biti
ukoliko n! i&!t! na ITour &! Franc!J (poznata bicikli"ti2ka trka u Francu"koj)$
3akl!# kako brojati "a zaokru!nj!? Potr!bno j! po&!"iti taj!r tako &a u!"to
in"trukcij"ki; ciklu"a broji ipul"! "a C84MT+CGI pina# "!tovanj! T+CS bita
<PTI<'LC=? r!*i"tra$ - "lu2aju o&no"a pr!"kal!ra 1/1# trajanj! lo*i2k! + i 1
!k"t!rno* takta ora biti &u! o& K takta o"cilatora PIC16F84 (ta2nij! oko @ takta H
@+nS)# a u "lu2aju bilo ko* &ru*o* o&no"a &u! o& F takova (ta2nij! 4 takta H 4+nS)$
<"i pro!n! izvora takta taj!ra# "v! j! o"talo i"to$ Pr!"kal!r "! po&!ava kao ko&
taj!ra# int!rapt "! izaziva kao ko& taj!ra# 2ak "! i upi"ivanj! u TMC+ r!*i"tar
inicijalizuj! taj!r i pr!"kal!r$ 'a taj na2in Ti!r+ ia 9unkciju broja2a (!n*$
Count!r)$
6ta "! &obija upotr!bo ovakvo* broja2a? -!"to &a "! int!rapt izaziva priliko
"vako* ipul"a# izaziva0! "! t!k priliko pr!kora2!nja broja2a$ Za o&no" pr!"kal!ra
o& 1/1 to zna2i &a 0! "! int!rapt izazivati nakon "vako* @FFBo* ipul"a$ Tako za
*lavni pro*ra o"taj! no*o vi! r!"ur"a$
<*rani2!nj! inialno* trajanja lo*i2k! + i lo*i2k! 1 o*rani2!n j! i ak"ialni
takt koji o! !riti ikrokontrol!r$ M!%uti# ovo "! o! !9ika"no r!iti
kori0!nj! !k"t!rni; int!*ri"ani; &!lit!lja "i*nala (npr$ P4KY+ ili 4+4+)# koji &o&atno
;ar&v!r"ki &!l! ulazni "i*nal$
<v&! "u o0niji ikrokontrol!ri u pr!&no"ti zbo* po"tojanja vi! taj!ra$ 'a pri!r#
j!&an bi "! i"kori"tio za brojanj! !k"t!rni; ipul"a# a &ru*i za to vr!! o!
*!n!ri"ati "tabilnu vr!!n"ku bazu$ Por!%!nj! ov! &v! vr!&no"ti o! "! lako
&obiti 9r!kv!ncija !k"t!rno* "i*nala$
Za vi! &!talja po*l!&ajt! 8'68Y >oj! 8ntoni0a i 8'FY@$
8Y
29. Re!e"
'ajj!&no"tavnij! r!2!no# r!"!t "lui &a izvravanj! pro*raa po2n! iz po2!tka$
PIC16F84 ia K izvora r!"!ta$ Prvi j! "vakako r!"!t priliko &ovo%!nja napona
napajanja (!n*$ P<C O PoR!rBon R!"!t)$ -nutar ikrokontrol!ra nalazi "! alo
!l!ktri2no kolo koj! &!t!ktuj! pora"t napona napajanja &o napona &ovoljno* za ra&
ikrokontrol!ra$ - tr!nutku &o"tizanja noinalno* napona# ikrokontrol!r "!
r!"!tuj!$ <vi "! "pr!2ava ra& ikrokontrol!ra pri pr!ni"ko naponu napajanja$
-koliko j! potr!bno# o! "! uklju2iti PUCT= (!n*$ Po7!rBup Ti!r Enabl!)
kon9i*uracioni bit koji &ri ikrokontrol!r u "tanju r!"!ta oko P@S o& &ovo%!nja
napona napajanja$ <vo kanj!nj! r!alizovano j! int!rni CC o"cilatoro n!zavi"ni
o& takta o"cilatora$ To j! &ovoljno &a "! napon napajanja po&i*n! na noinalnu
vr!&no"t i &a o"cilator ikrokontrol!ra po2n! proizvo&iti 2i"t! n!pri*u!n! o"cilacij!$
'akon to "! ovo kanj!nj! zavri# ikrokontrol!r (za "vaki "lu2aj) 2!ka jo 1+@4
takta o"cilatora pr! n!*o to po2n! izvravati pro*ra$
3ru*i izvor r!"!ta j! MC:C pin ikrokontrol!ra$ <n ora uv!k biti &ran na lo*i2koj
j!&inici$ <bi2no "! to r!alizuj! pov!zivanj! "a napono napajanja pr!ko otpornika
o& 1+k[$ - !aa u ovo uput"tvu on j! "poj!n &ir!ktno zbo* v!0! pr!*l!&no"ti
!!# i j!r "! n! kori"ti$ Pri &ovo%!nju lo*i2k! + na ovaj pin ("pajanj! "a a"o)#
ikrokontrol!r "! r!"!tuj!$ Za "vaki "lu2aj u ulazno "t!p!nu ovo* pina po"tavlj!n j!
6itov oki&a2 koji ia ulo*u 9iltriranja "labi; ipul"a# koji bi o*li prouzrokovati
n!;oti2ni r!"!t ikrokontrol!ra$
Po"l!&nji izvor r!"!ta nau2ili "t! u &!lu "a U3T$ Mo!t! izvriti "o9tv!r"ki r!"!t
na!rni izo"tavljanj! C:CU3T in"trukcij! u !lj!no &!lu pro*raa$
Iako r!"!t prv!n"tv!no "lui za ponovni "tart pro*raa# t!"tiranj! "tanja T< i P3
bitova ST8T-S r!*i"tra# o*u0! j! utvr&iti na koji na2in j! izazvan r!"!t# i na o"novu
to*a na"taviti ra& pro*raa$
TO :D 8ta/1e
1 1 Stanj! nakon izvr!nja C:CU3T in"trukcij!
1 + Stanj! nakon izvr!nja S:==P in"trukcij!
+ + U3T r!"!t za vr!! S:==P o&a
+ 1 U3T r!"!t za vr!! noralno* izvravanja pro*raa
1 + MC:C r!"!t za vr!! S:==P o&a ili bu%!nj! int!rapto
1 1 MC:C r!"!t za vr!! noralno* izvravanja pro*raa
1 1 P<C r!"!t pri &ola"ku napona napajanja
- prilo*u ovo* uput"tva o!t! vi&!ti inicijalno "tanj! "vi; r!*i"tara nakon r!"!ta$
Y+
):. Sr5e &#0ro0o'"ro$er
I"to kao to >a! "rc! pupa krv o&r!%!ni rito# ikrokontrol!r za "voj pravilan
ra& ora iati ta2no po&!!n! taktn! ipul"!$ <ni "! &obijaju iz o"cilatora$ - ovo
po*lavlju bi0! prikazan! !! ;ar&v!r"ko* pov!zivanja razni; vr"ta o"cilatora# i bi0!
bli! objanj!n! nji;ov! "p!ci9i2no"ti$
'ajj!9tiniji j! "vakako CC o"cilator# kori0!n
u &o"a&anji !aa$ Sa"toji "! "ao o&
kon&!nzatora i otpornika$ - tablici "u &at!
vr!&no"ti otporno"ti i kapacitivno"ti za
&obijanj! !lj!ni; 9r!kv!ncija$
Fre!6.
;<.5=
<apa0.
;pF=
Otp*r/*t
;!>=
@6 K++ 1++
8K 1++ 1++
@4K K++ 1+
K11 @+ 1++
4@8 K++ F
PF6 1++ 1+
1K4+ 1++ F
KF++ KK F
@66+ @+ 1+
461+ @+ F
<vaj tip o"cilatora o! "! kori"titi za pun op"!* 9r!kv!ncija ikrokontrol!ra (3C &o
4M,z# o&no"no &o @+M,z za br! v!rzij! PIC16F84 ikrokontrol!ra)$ Mana u j!
loa "tabilno"t 9r!kv!ncij! i I!tanj!J 9r!kv!ncij! u"l!& pro!n! t!p!ratur!$
Pr!poru2!n! vr!&no"ti otporno"ti "u o& Kk[ &o 1++k[# a kapacitivno"ti pr!ko @+pF$
?ornja *ranica kapacitivno"ti zavi"i i"klju2ivo o& !lj!n! ak"ialn! 9r!kv!ncij!$ 6to
"! ti2! ikrokontrol!ra# on 0! b!z probl!a ra&iti 2ak i "a takto o"cilatora anji
o& 1,z$ Gao l!njivac$
- n!ki PIC ikrokontrol!ria (naalo"t n! u PIC16F84) nalazi "! int!*ri"ani
;ar&v!r"ki CC o"cilator$ Zbo* pr!ciznij!* takta# Microc;ip kalibracioni niz "nia u
&!o pro*ra"k! !orij!$ Ga"nij! "! ovaj niz o! pro2itati i "o9tv!r"ki po&!"iti$
'a <SC@ pinu pri ra&u CC o"cilatora &obija "! 2!tvrtina takta o"cilatora# to "! o!
i"kori"titi za "in;ronizaciju &o&atni; !k"t!rni; ur!%aja "a ikrokontrol!ro$ -
S:==P o&u o"cilator "! blokira# pa ni ovaj "i*nal vi! nij! &o"tupan$
Iako j! o"cilator ikrokontrol!ra n!zavi"tan o& o"tatka ;ar&v!ra# o*u0! j!
pri!njuju0i al! "o9tv!r"ko ;ar&v!r"k! trikov! in&ir!ktno uticati na nj!*ovu
9r!kv!nciju$ 3ovoljno j! npr$ j!&ni pino ikrokontrol!ra uklju2ivati paral!lno
pov!zivanj! otpornika u CC 2lanu$ Po"tavljanj! pina na lo*i2ku + ili 1# &o&atni
otpornik 0! "! paral!lno "pojiti "a v!0 po"toj!0i otporniko# "anjuju0i r!zultuju0u
vr!&no"t otporno"ti$ Tako "! o! *rubo !njati 9r!kv!ncija o"cilatora$ <vaj princip
o! biti i"kori0!n za "anj!nj! 9r!kv!ncij! o"cilatora u p!rio&ia ka&a
ikrokontrol!ru nij! potr!bna puna brzina 2i! bi "! i"tovr!!no "anjila potronja
ikrokontrol!ra$ M!%uti# zbo* pr!poru2!ni; vr!&no"ti otporno"ti (&o 1++k[) nij!
Y1
pr!poru2ljivo ovi na2ino !njati 9r!kv!nciju u v!0i op"!zia$ Zbo* to*a "!
o! u!"to "ao otpornika uklju2ivati &o&atni CC 2lan$ >i! o ovo principu
iat! na "ajtu ;ttp/MMRRR$roanblack$coM u &!lu PIC Rit; @ clock "p!!&"1
-koliko j! potr!bno ra& ikrokontrol!ra "in;ronizovati "a
!k"t!rni ur!%ajia# o! u "! "polja ob!zb!&iti "poljni
takt$ Gon9i*uracioni bitovi tr!baju u to "lu2aju biti
po&!!ni na :P# `T ili ,S$
<SC@ pin j! po!ljno pov!zati na a"u ikrokontrol!ra
pr!ko otpornika v!0! vr!&no"ti (1+k[)# zbo* "anj!nja
int!r9!r!ncij!# iako to pov!0ava potronju ikrokontrol!ra$
-koliko nij! potr!bna v!lika brzina izvravanja in"trukcija# a bitna j! potronja i
"tabilno"t 9r!kv!ncij!# (npr$ "at na bat!rij!) PIC tr!ba ra&iti "a K@G,zB@++G,z
kri"talo$ 'a anj! taktu zbo* anj!* poja2anja int!*ri"ano* o"cilatorno* kola
PIC troi anj! "truj! n!*o ina2!$ Za ovakvu vr"tu o"cilatora tr!ba po&!"iti
kon9i*uracioni bit o"cilatora na O <SC :P$
-koliko j! bitna "tabilna 9r!kv!ncija a i c!na PIC16984# &obar izbor bi bio kri"talni
o"cilator &o 4M,z$ Za nj!*a j! potr!bno kon9i*uracioni bit po&!"iti kao B <SC `T$
8 ukoliko j! brzina ip!rativ# o*u "! kupiti v!rzij! PIC16F84 ikrokontrol!ra koj!
o*u b!z probl!a ra&iti na taktu v!0! o& 4M,z$ 'aalo"t# on! "u i "kuplj!$
'ji;ov kon9i*uracioni bit potr!bno j! po&!"iti kao O <SC ,S$ - ovo o&u zbo*
najv!0!* poja2anja int!*ri"ano* o"cilatorno* kola PIC16F84 troi najvi! !l!ktri2n!
!n!r*ij!$
Za ova K na2ina "a kri"talni o"cilatoro pri!njuj! "! "l!&!0a !a/
<tpornik j! potr!ban "ao za r!tk! tipov!
kri"tala$ - najv!0! broju "lu2aj!va o! "!
izo"taviti$ ,S o& o*u kori"titi j!&ino
tipovi PIC16F84 ikrokontrol!ra pr!&vi%!ni
za ra& na vi"oki 9r!kv!ncijaa$
Fre!6.
;<.5=
<apa0.
;pF=
<*/9"-.
+"t*6"
K@ 68B1++ :P
@++ 1FBK+ :P
1++ 68B1F+ `T
4FF @@B1++ `T
@+++ 1FB68 `T
4+++ 1FB68 `T
8+++ 1+B68 ,S
16+++ 1+B@@ ,S
@++++ FB1+ ,S
3izajn int!rno* o"cilatora za;t!va upotr!bu paral!lno r!zano* kri"tala$ M!%uti# i
r!&no r!zani kri"tali o*u "! kori"titi kao izvor takta# ali j!&ino uz !k"t!rno
o"cilatorno kolo$ 'ji;ova upotr!ba u !i kri"talno* o"cilatora &ov!0! &o
9r!kv!ncij! koja o&"tupa o& "p!ci9ikacija u karakt!ri"tikaa proizvo%a2a kri"tala$
Y@
-koliko !lit! iati izuz!tno "tabilnu 9r!kv!nciju o!t! u!"to obi2ni; kori"titi
<C`< (!n*$ Ov!n Controll!& Ctal O"cillator) kri"tal! koji u i"to ku0itu iaju
kri"tal# *r!ja2 i t!ro"tat$ Za napajanj! *r!ja2a potr!bno j! &ov!"ti "poljni izvor
napajanja koji naalo"t &o&atno pov!0ava potronju kola$ ?r!ja2! i t!ro"tato
r!*uli! "! kon"tantna t!p!ratura kri"tala izna& "obn! t!p!ratur!# tako &a j!
t!p!raturni &ri9t 9r!kv!ncij! kri"tala inialan$
Gako "u takvi kri"tali (i takva ku0ita) &o"ta "kuplji o& obi2ni;# o!t! i; "ai
napraviti "l!&!0i uput"tva "a "ajta ;ttp/MMRRR$roanblack$coM u &!lu Sipl! Ntal
ov!n 9or accurat! clock"$
G!rai2ki o"cilator obi2no j! zaj!&no "a kon&!nzatoria
"pakovan u zaj!&ni2ko tropin"ko ku0it!$ Takvi !l!!nti
nazivaju "! k!rai2ki r!zonatori$
>!0a kapacitivno"t kon&!nzatora pov!0ava "tabilno"t
o"cilatora# ali tako%! pov!0ava i vr!! potr!bno za
"tabilizaciju o"cilatorno* kola pri uklju2!nju ikrokontrol!ra
ili bu%!nju iz S:==P o&a$
- principu# ova K "tanja kon9i*uracioni; bitova (:P# `T i ,S) razlikuju "! j!&ino u
poja2anju int!rno* inv!rtora o"cilatorno* kola to oo*u0ava razli2it op"!*
9r!kv!ncija$ -koliko >a "! &!"i &a n!ki kri"tal n! o! prora&iti u j!&no o&u#
probajt! pro!niti kon9i*uracion! bitov! o"cilatora$ 'ajbolj! j! kori"titi o"cilator "a
najanji o*u0i poja2anj!# uz u"lov &a "! nji! o! po"ti0i !lj!na brzina
o"cilatora$
Za &!talj! o tipovia o"cilatora# po*l!&ajt! 8'F88 "a ;ttp/MMRRR$icroc;ip$coM$
.!"tita1 Sa&a znat! 9unkcij! "vi; pinova ikrokontrol!ra# upotr!bu "vi; KF
in"trukcija i "vi; 1F r!*i"tara$ M!%uti# t!k "t! po2!li "a u2!nj!$
Skoro "vaki "o9tv!r"ki probl! o! "! r!iti na vi! na2ina$ -koliko !lit! &a "!
o&r!%!ni &!o pro*raa izvrava F puta# potr!bno brojanj! o!t! ipl!!ntovati
"abiranj!# o&uzianj!# inkr!!ntacijo# &!kr!!ntacijo pa 2ak i rotacijo$ -
"l!&!0i po*lavljia upozna0!t! "! "a naj2!0! kori0!ni "o9tv!r"ko ;ar&v!r"ki
t!;nikaa za r!alizaciju o&r!%!ni; za&ataka$
YK
)1. +PAS+ d#re0"#ve # &0ro#
Canij! "t! nau2ili par najkori0!niji; o*u0no"ti MP:85 a"!bl!ra$ <n! "u &ovoljn!
za analizu bilo ko* a"!bl!r"ko* (pa 2ak i &i"a"!blirano*) pro*raa$ - ovo
po*lavlju nau2i0!t! par a"!bl!r"ki; "p!ci9i2no"ti koji 0! >a pro*ra biti 2itljiviji
i koji 0!t! "anjiti o*u0no"t pojav! *r!aka priliko nj!*ovo* pi"anja$
3a li >a j! zaoran pr!lazak iz bank! u banku? Go bi patio tr!ba li "! CP+ bit
"!tovati ili r!"!tovati1 '! orat!$ Gori"tit! bank"!l &ir!ktivu$ 3ovoljno j! iza nj!
nav!"ti naziv r!*i"tra ko! pri"tupat!# i ona 0! na "vo !"tu ubaciti o&*ovaraju0u
in"trukciju pr!la"ka (bc9 ST8T-S#CP+ ili b"9 ST8T-S#CP+)$
>!0 znat! kako &!luj! !Xu &ir!ktiva$ Pr!tpo"tavio &a "t! i!nu P8-Z8 pri&ruili
&!cialnu vr!&no"t 1++$ -nutar potpro*raa tu vr!&no"t kori"tit! kao broj
ili"!kun&i$ Pr!tpo"tavio &a va u pro*rau zatr!ba pauza &uplo &u!* trajanja$
-!"to i!novanja jo j!&no* broja# o!t! napi"ati "l!&!0!/
movlw PAU?A L 2 A P8-Z8 D @ V $@++
call #e@0> A I&i na potpro*ra
'a i"ti na2in za &uplo kra0u pauzu o!t! napi"ati/
movlw PAU?A H 2 A P8-Z8 M @ V $F+
call #e@0> A I&i na potpro*ra
8"!bl!r u oba "lu2aja za vr!! a"!bliranja ra2una vr!&no"ti koj! "! tr!baju na0i na
o&r!%!ni !"tia$ <n! u "vako "lu2aju oraju biti poznat! pr! ra2unanja$ '!k!
o& arit!ti2ki; op!racija koj! o! izvriti a"!bl!r "u "l!&!0!/
D n!*acija (po &ru*o kopl!!ntu)
L no!nj!
H &!lj!nj!
M o&uo (o"tatak pri &!lj!nju)
C "abiranj!
D o&uzianj!
E!lj!ni priorit!t op!racija o! "! &!9ini"ati za*ra&aa$ 'pr$ (8D6)L5$
<"i at!ati2ki;# a"!bl!r o! izra2unati i vr!&no"ti o&r!%!ni; lo*i2ki;
op!racija$ 'a pri!r/
N kopl!!nt
88 rotacija ul!vo (b!z CarrW Fla*a)
99 rotacija u&!"no (b!z CarrW Fla*a)
< 8'3
O `<C
P I<C
I ko& nji; "! priorit!ti &!9iniu za*ra&aa$ 'pr$ N((BR"$1<BR"$2)OBR"$3)$
Y4
Priliko ovakvi; vr!&no"ti orat! biti "i*urni &a para!tar n! o! iza0i izvan
&ozvolj!ni; *ranica$ I"to tako# orat! obratiti panju na o*u0! zaokruivanj! broja
(na pri!r priliko &!lj!nja)$
Sl!&!0a po*o&no"t koju prua MP:85 a"!bl!r j! za!na t!k"ta$ -koliko u
pro*rau iat! ovakav &!o/
TAST=R e! 3 A Ta"t!r j! pov!zan na C8K pin
btfsc P"RTA,TAST=R A 3a li j! ta"t!r priti"nut?
goto P)-& A 7!"t!
goto "&5! A 'ij!
i &alj! j! potr!bno patiti na ko j! portu pov!zan ta"t!r$ Za!no &!la t!k"ta za
ti n!a potr!b!$
7de,-+e TAST=R P"RTA,3 A Za!ni izraz
A P<CT8#K r!2ju T8ST=C
btfsc TAST=R A 3a li j! ta"t!r priti"nut?
goto P)-& A 7!"t!
goto "&5! A 'ij!
b&!9in! &ir!ktivo nij! o*u0! za!niti v!0i &!o ko&a (@ ili vi! in"trukcija)$ Za to
"! kori"t! akroi$ .ak j! o*u0! u akro pr!n!ti o&r!%!n! para!tr! ranij!
&!9ini"an!$
7de,-+e TAST=R P"RTA,3 A I!nuj! naziv!
Te3& 10c)o 5o)&,5-+ A <&r!%uj! ulazn! para!tr!
ex&e)+ P)-&,"&5! A <zna2ava &a "u lab!l! ili r!*i"tri
A &!9ini"ani izvan akroa
btfsc 5o)&,5-+ A 3a li j! ta"t!r priti"nut?
goto P)-& A 7!"t!
goto "&5! A 'ij!
e+d1 A 3ir!ktiva za oznaku kraja akroa
Ga& *o& j! unutar pro*raa potr!bno na o"novu priti"nuto* ta"t!ra oti0i na Prit ili
<tpu &!lov!# &ovoljno j! ka"nij! u!"to *ornj!* ko&a napi"ati "ao oznaku lab!l!
akroa i para!tra IT!"t T8ST=CJ$ Gako j! i!no T8ST=C za!nj!na oznaka
o&*ovaraju0!* porta i pina# vr!&no"ti port i pin unutar akroa uz!0! ov! vr!&no"ti$
'a taj na2in "! u akro ubacuju !lj!ni para!tri$
-nutar akroa o*u0! j! kori"titi "v! in"trukcij! kao i u *lavno pro*rau$
M!%uti# kako "! akro poziva iz "poljno* pro*raa# po!ljno j! &a lab!l! i r!*i"tri
unutar akroa n! &o%u u kon9likt "a &!lovia pro*raa izvan akroa$ Zbo* to*a j!
potr!bno unutar akroa &!9ini"ati kori0!n! unutranj! i "poljn! lab!l! i r!*i"tr!$ 'a
taj na2in o*u0! j! i unutar *lavno* pro*raa i unutar akroa iati lab!lu i"to*
naziva$ - akrou ona ora biti &!9ini"ana kao int!rna# to zna2i &a joj pro*ra "polja
n! o! pri"tupiti$ :ab!l! &!9ini"an! kao !k"t!rn! o*u "! pozivati i iz akroa$
Za kopl!tno uput"tvo o upotr!bi akroa# &ir!ktiva i arit!ti2ko lo*i2ki; op!racija
po*l!&ajt! 3SKK+147 "a ;ttp/MMRRR$icroc;ip$coM$
YF
)2. Ko&e'"r#
'a po2!tku ovo* uput"tva# alo "! pri2alo o ko!ntaria$ - ovo po*lavlju
upozna0!t! "! "a o&i9ikacijaa za*lavlja tako &a >a bu&! prila*o%!nij!# i "a
na2inia ko!ntari"anja r!*i"tara koji iaju bitov! razli2iti; 9unkcija$
S!0at! "! za*lavlja koj! "t! &o "a&a kori"tili$ Pr!pravit! *a po "l!&!0!/
ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
A 8utor /
A 3atu /
A >!rzija /
A 'a"lov /
A
A <pi" ;ar&v!ra /
A <pi" "o9tv!ra /
A Potr!bni 9ajlovi / p16F84$inc
A
ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
2-3& 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r
7-+c2!de 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra
::#";FI' :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S#
K #P D zatita o& 2itanja
K %(T D Ratc;&o* taj!r
K P%RT= D kanj!nj! po uklju2ivanju
K AT "S# D @ri"talni o"cilator
K EP "S# D o"cilator al! potronj!
K QS "S# D brzi o"cilator
K R# "S# D otpornik i kon&!nzator
A DDDDDD Inicijalizacija r!*i"tara DDDDDD
cb2oc@ 0x0#
T=4P% A Privr!!no 2uvanj! U r!*i"tra
T=4PSTATUS A Privr!!no 2uvanj! ST8T-S r!*i"tra
SP"RTA A S;a&&oR r!*i"tar za P<CT8
SP"RTB A S;a&&oR r!*i"tar za P<CT5
e+dc
A DDDDDD Inicijalizacija vr!&no"ti u ==PC<M !oriji DDDDDD
o)* 21x00 A Po2!tak ==PC<M !orij!
A de 0x00 A Inicijalizacija prvo* bajta
A DDDDDD Start pro*raa DDDDDD
"R' 0x00 A Start pro*raa
goto 40-+ A
Y6
A DDDDDD Int!rapt potpro*ra DDDDDD
"R' 0x04
movwf T=4P% A .uvanj! "a&raja U r!*i"tra
swapf STATUS,% A ST8T-S "a okr!nuti niblovia u U
movwf T=4PSTATUS A i zati u T=MPST8T-S r!*i"tar
A Pro"tor za int!rapt potpro*ra$
B0c@
bcf I;T#";,T0IF A 3ozvoli nov! int!rapt! taj!ra
bcf I;T#";,I;TF A 3ozvoli nov! int!rapt! pr!ki&a2a
bcf I;T#";,RBIF A 3ozvoli nov! int!rapt! po pro!ni "tanja
bcf I;T#";,==IF A 3ozvoli nov! int!rapt! ==PC<MBa
swapf T=4PSTATUS,% A T=MPST8T-S "a okr!nuti niblovia
A u U$ 3va puta okr!nuti niblovi &aju
movwf STATUS A prvobitno "tanj! koj! i&! u ST8T-S
swapf T=4P%,F A 7!&no okr!ni niblov! u "ao
A T=MPU r!*i"tru#
swapf T=4P%,% A a &ru*i put "a U kao o&r!&it!$
retfie A Povratak iz int!rapt rutin!$
A DDDDDD Po2!tak pro*raa DDDDDD
40-+
b0+@3e2 TRISA A 58'G 1
movlw b'00000000' A
movwf TRISA A Gon9i*uri"anj! pinova
movlw b'00000000' A
movwf TRISB A Gon9i*uri"anj! pinova
movlw b'00000000' A
K RRRRR CDDDDDD PS+BPS@ B +++V1/@ ++1V1/4$$$
K RRRRCDDDDDDDD PS8 B 1VU3T +Vtaj!r
K RRRCDDDDDDDDD T+S= !k"t!rni takt 1Vc +VM
K RRCDDDDDDDDDD T+CS B 1V !k"t!rni takt +Vtakt taj!ra
K RCDDDDDDDDDDD I'T=3? B 1VM +Vc
K CDDDDDDDDDDDD C5P- B +Vuklj$ 1Vi"klju2!ni otpornici
movwf "PTI";:R=' A
b0+@3e2 P"RTA A 58'G+
movlw b'00000000' A
movwf P"RTA A Inicijalizacija "tanja portova i
movwf SP"RTA A S;a&&oR r!*i"tara
movlw b'00000000' A
movwf P"RTB A
movwf SP"RTB A
YP
movlw b'00000000' A
K RRRRRRRCDDDDD C5IF O +Vobrii
K RRRRRRCDDDDDD I'TF O +Vobrii
K RRRRRCDDDDDDD T+IF O +Vobrii
K RRRRCDDDDDDDD C5I= O 1Vuklju2i
K RRRCDDDDDDDDD I'T= O 1Vuklju2i
K RRCDDDDDDDDDD T+I= O 1Vuklju2i
K RCDDDDDDDDDDD ==I= O 1Vuklju2i
K CDDDDDDDDDDDD ?I= O 1Vuklju2i
movwf I;T#"; A
S&0)&
A Pro"tor za pro*ra!$
e+d A Graj pro*raa
'a ovaj na2in pro*ra j! pr!*l!&niji n!*o ranij!# razuljivij! j! zna2!nj! bitova u
<PTI<'LC=? i I'TC<' r!*i"tru# a naj2!0! kori0!ni r!*i"tri "u unapr!&
inicijalizovani pravilni r!&o"l!&o# to "anjuj! o*u0no"t n!praviln!
inicijalizacij!$ 3!lov! koji "! n! kori"t! lak! j! o&j!&no obri"ati# n!*o i; po potr!bi
iznova pi"ati za "vaki novi pro*ra$
Po potr!bi u za*lavlj! "! o*u &o&ati i najkori0!niji &!lovi pro*raa (npr$ za pauzu#
za kori0!nj! ==PC<M !orij! ili CS@K@ v!z!)# ali j! prakti2nij! o&vojiti i; u
za"!bn! c!lin! u "klopu potpro*raa# na pri!r ovako/
ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
A Tab!la za i"pi" ci9r! na :=3 &i"pl!ju
A Mora "! nalaziti u bloku o& @F6 bajtova$
T0b2 movf #IFRA,%
addwf P#E,F
retlw b'01111110' A +
retlw b'00001100' A 1
retlw b'10110110' A @
retlw b'10011110' A K
retlw b'11001100' A 4
retlw b'11011010' A F
retlw b'11111010' A 6
retlw b'00001110' A P
retlw b'11111110' A 8
retlw b'11011110' A Y
Mo!t! i; tako%! ubaciti i u 9ori akroa# to li"tin* pro*raa 2ini pr!*l!&niji$
Priliko pi"anja pro*raa n!ki put 0!t! kori"titi T85 a n!ki put par razaka$
MP:85 za razliku o& o"tali; t!k"t !&itora za T85 po"tavlja 4 (u!"to 8) razaka$
Zato j! &obro pr! tapanja li"tin*a pro*raa &o&atno I"r!&itiJ $a" 9ajl$ Za to
o!t! kori"titi 8SPICLFI` pro*ra "a ;ttp/MMRRR$!b!&inc$coM $
Y8
)). +!0#r'(e
Po& a"kiranj! "! po&razu!va iz&vajanj! !lj!no* bita pr!pi"ivanj! niza nula ili
j!&inica u o"tal!$ Pr!tpo"tavio &a j! potr!bno &ov!"ti tr!0i bit r!*i"tra PCIG8Z na
tr!0i bit P<CT8 r!*i"tra# ali tako &a "! n! pro!ni "tanj! o"tali; bitova P<CT8
r!*i"tra$
movf P"RTA,% A P<CT8 u U#
movwf SP"RTA A a o&atl! u S;a&&oR r!*i"tar
movlw b'00001000' A Ma"kiranj! "vi; o"i tr!0!* bita
andwf PRIJA?,% A C!zultat bQ++++1+++Q ili bQ++++++++Q u U#
A u zavi"no"ti o& "tanja tr!0!* bita
A PCIG8Z r!*i"tra
bcf SP"RTA,3 A C!"!tovanj! ranij!* "tanja tr!0!* bita
iorwf SP"RTA,% A Po"tavljanj! "ao tr!0!* bita na novu vr!&no"t
A C!zultat u U#
movwf P"RTA A a o&atl! u P<CT8 r!*i"tar i
movwf SP"RTA A u S,833<U r!*i"tar$

C!zultat 8'3 op!racij! na& bitovia# bi0! 1 "ao ako j! na oba bita pri"utna lo*i2ka
1$ -koliko "! o"tali bitovi a"kiraju# u U 0! "! na0i j!&ino "tanj! tr!0!* bita PCIG8Z
r!*i"tra$
'a"uprot 8'3 op!raciji# r!zultat I<C op!racij! &aj! 1 ukoliko j! bar 1 bit na lo*i2koj
1$ - to "lu2aju (bu&u0i &a j! tr!0i bit r!"!tovan 5CF in"trukcijo)# "tanj! tr!0!* bita
SP<CT8 r!*i"tra zavi"i0! j!&ino o& "tanja tr!0!* bita U r!*i"tra# koj! j! pr!uz!to iz
PCIG8Z r!*i"tra$ <"tali bitovi u SP<CT8 r!*i"tru za&ra0! "voja "tanja# j!r I<C
op!racija "a bilo kojo vr!&no0u bita i nulo# &aj! "a taj bit$
YY
)4. Ko&%re!#(
Gopr!"ija j! po"tupak koji "! troi anj! !orij! za 2uvanj! v!0!* broja
po&ataka !9ika"niji "!tanj! po&ataka u !oriji$
<"novni pr!&u"lov j! &a "! u po&atcia nalaz! prazni (n!i"kori0!ni) bitovi$ 'a
pri!r# ukoliko j! potr!bno u ==PC<M "niati *rup! o& &va bita (kao u pri!ru "a
bu%!nj! iz S:==P o&a)# t!ta j! n! i"kori"titi i o"tatak bitova u bajtu$ 8 ukoliko
nij! poznata kona2na v!li2ina (kraj) !ori"ani; po&ataka# o*u "! brojati ciklu"i
"nianja i po zavr!tku "nianja "niiti u npr$ za&njoj ==PC<M a&r!"i (+NKF)$
-koliko "! "niaju "ao @ bita# on&a j! ra"poloiva !orija u kopr!"ovano
"tanju 4 puta (8 bita M @ bita) v!0a o& ak"ialn!$ Za ==PC<M to zna2i &a u!"to 64
o"obitna# po"taj! &o"tupno 1@8 2!tvorobitna (1@8 nibla) ili @F6 &vobitna &!la$
Gopr!"ija# nij! o*rani2!na "ao na ==PC<M !oriju$ Mo! "! b!z probl!a
kori"titi u obi2noj kao i u pro*ra"koj !oriji u tab!laa$ 'oralno# u "lu2aju
pro*ra"k! !orij! po&atk! u tab!li nij! o*u0! !njati# v!0 "ao 2itati$
Pr!tpo"tavio &a j! potr!bno prva &va bita iz r!*i"tara ST8'7=1# ST8'7=@#
ST8'7=K i ST8'7=4 kopr!"ovati u r!*i"tar ST8'7=$
movlw 00000011b A Ma"kiranj! n!potr!bni; bitova
andwf STA;$=1,% A Prva &va bita iz ST8'7=1 r!*i"tra u U
movwf STA;$= A a o&atl! u ST8'7= r!*i"tar
rlf STA;$=2,F A Cotacija bitova tako &a
rlf STA;$=2,F A &o%u na pravo !"to
movlw 00001100b A Ma"kiranj! n!potr!bni; bitova
andwf STA;$=2,% A Sl!&!0a &va bita iz ST8'7=@ r!*i"tra u U
iorwf STA;$=,F A a o&atl! u ST8'7= r!*i"tar
rlf STA;$=3,F A Cotacija bitova tako &a
rlf STA;$=3,F A &o%u na
rlf STA;$=3,F A pravo
rlf STA;$=3,F A !"to
movlw 00110000b A Ma"kiranj! n!potr!bni; bitova
andwf STA;$=3,% A Sl!&!0a &va bita iz ST8'7=K r!*i"tra u U
iorwf STA;$=,F A a o&atl! u ST8'7= r!*i"tar
rrf STA;$=4 A Cotacija bitova
rrf STA;$=4 A tako &a &o%u
rrf STA;$=4 A na pravo !"to
movlw 11000000b A Ma"kiranj! n!potr!bni; bitova
andwf STA;$=4,% A Za&nja &va bita iz ST8'7=4 r!*i"tra u U
iorwf STA;$=,F A a o&atl! u ST8'7= r!*i"tar
b-&7 STA;$= b-&0
ST4.1 ST4.0 ST3.1 ST3.0 ST2.1 ST2.0 ST1.1 ST1.0
1++
Proc!" vra0anja u prvobitno "tanj! (iz ST8'7= u ST8'7=1# ST8'7=@# ST8'7=K i
ST8'7=4) naziva "! &!kopr!"ija$
movf STA;$=,% A ST8'7= u U
movwf STA;$=1 A Prva &va bita u ST8'7=1
rlf STA;$=,F A Cotacija bajtova tako &a
rlf STA;$=,F A &o%u na pravo !"to
movf STA;$=,% A ST8'7= u U
movwf STA;$=2 A Sl!&!0a &va bita u ST8'7=@
rlf STA;$=,F A Cotacija bajtova tako &a
rlf STA;$=,F A &o%u na pravo !"to
movf STA;$=,% A ST8'7= u U
movwf STA;$=3 A Sl!&!0a &va bita u ST8'7=K
rlf STA;$=,F A Cotacija bajtova tako &a
rlf STA;$=,% A &o%u na pravo !"to
movwf STA;$=4 A Za&nja &va bita u ST8'7=4
- ovoj &!kopr!"iji na ta2nu vr!&no"t po"tavlj!ni "u "ao nulti i prvi bit u "vako
r!*i"tru# a "tanj! o"tali; bitova zavi"i o& "tanja bitova u o"tali r!*i"tria$ -koliko j!
to n!po!ljno# o"tali bitovi o*u "! "!tovati ili r!"!tovati a"kiranj!$
B"t*6a 5a
!*%pre"1u
:*tre+a/
+r*1
#e,*6a
B"t*6a 5a
pu/e
+a1t*6e
1 8 8 (1)
@ 4 8 (1)
K 8 @4 (K)
4 @ 8 (1)
F 8 4+ (F)
6 4 @4 (K)
P 8 F6 (P)
8 1 8 (1)
Sa kopr!"ijo broja bitova "a kojia
o"obitni bajt nij! &!ljiv# po"tupak j! alo
t!i$ Potr!bno j! o&r!&iti inialan broj
puni; bajtova# kopr!"ovati bitov! u nji;# a
zati i; r!&o "niati u !oriju$
'a i"ti na2in o*u0! j! izvriti kopr!"iju i
&!kopr!"iju po&ataka koji "a&r! vi! o& 8
bitova# "a ti to "! on&a po&atci uv!k
"niaju u vi! o& j!&no* bajta$
<"i ovo*# po"toj! i no*o koplikovaniji
na2ini kopr!"ij! (npr$ ZIP al*orita)$
5u&u0i &a oni pr!vazilaz! okvir! ovo*
uput"tva# ov&! n!0! biti razatrani$
Iajt! na uu &a "! ==PC<M !orija ItroiJ za vr!! "nianja$ Zbo* to*a nij!
po!ljno "niati "vaki &vobitni &!o po"!bno$ Si*urnij! j! "a2!kati &a broj &!lova
&o"ti*n! c!lobrojni broj bajtova# i t!k on&a "niiti c!o bajt u ==PC<M$
1+1
)4. I/ ... T@e' ... E$!e ...
Iznova i iznova upotr!ba in"trukcija *rananja zbunjuj! po2!tnik!$ - ovo po*lavlju
bi0! &o&atno objanj!na nji;ova pri!na$ Po*l!&ajt! "l!&!0i pri!r# zaj!&no "a
o&*ovaraju0i al*orito/
movlw .5 A 5roj F?
xorwf BR"$,% A -por!&i
3a
btfsc STATUS,? A I9 Z V +
goto I3&- A !l"! *oto I"ti
goto R0S2-c-&- A t;!n *oto Cazliciti '!
Gao to pri!0uj!t!# u pro*rau "! n! t!"tira r!alno "tanj! r!*i"tara# v!0 j!&ino
lo*i2ko "tanj! o&*ovaraju0!* 9la*a (o&no"no bita) unutar r!*i"tra$ Gako 0! "tanj! 9la*a
&ir!ktno zavi"iti o& r!zultata pr!t;o&n! in"trukcij! (F `<C F V + pa j! Z "!tovan) koja
uti2! na nj!*ovo "tanj!# upravo j! nj!*ovi t!"tiranj! oo*u0!no *rananj!$
Probl!! o! izazvati i razu!vanj! pr!"koka nar!&n! in"trukcij!$ 'ai!# priliko
izvr!nja bt9"c ili bt9"" in"trukcij!# n!a r!aln! potr!b! (o"i lak! 2itljivo"ti takvo*
pro*raa) za &v! *oto in"trukcij!# j!r 0! pro*ra u "lu2aju &a j! o&*ovaraju0i u"lov
i"punj!n ("!tovan ili r!"!tovan 9la*) pr!"ko2iti nar!&nu in"trukciju$
movlw .12 A 5roj 1@?
xorwf BR"$,% A -por!&i
3a
btfss STATUS,? A I9 Z V 1
goto R0S2-c-&- A !l"! *oto Cazliciti
I3&- ... A t;!n I"ti '!
R0S2-c-&- ... A Cazliciti
Iako j! j!&no"tavnij! al*orit! t!"tiranja o*u0! napraviti b!z &v! *oto in"trukcij!#
&ok n! u"avrit! pro*rairanj! upotr!bljavajt! prvi oblik ("a &v! ?<T< in"trukcij!)$
Por!& bt9"c i bt9"" in"trukcija# t!ko j! razu!ti i inc9"z i &!c9"z in"trukcij!$
Po*l!&ajt! ilu"traciju nji;ov! pri!n! u al*oritu koji broji o& @F &o +/
movlw .25 A $@F 3a
movwf BR"$ A u 5C<7
S10+ decfsz BR"$,F A 5C<7V+? '!
goto S10+ A 'ij!# vrati "!
B)o>0 A 7!"t!$
1+@
Z V + ?
I"ti Cazli2iti
Z V 1 ?
I"ti
Cazli2iti
Sanji 5C<7
5C<7V+?
>rati "!
)6. U!$ov'o !e&b$#r'(e
Pr!tpo"tavio &a iat! pro*ra koji kontroli! :=3 &i"pl!j$ 'ita 2u&no$ >!0 "t! to
nau2ili$ 7!&ini j! probl! u to! to j!&no nabavit! &i"pl!j "a zaj!&ni2ko ano&o#
a &ru*i put *a n!a u pro&avnicaa# pa orat! kupiti &i"pl!j "a zaj!&ni2ko
kato&o$ 'a "r!0u# po*o&ilo "! &a "u priklju2ci i"ti# &a o!t! lako pr!baciti kato&u
"a napajanja na a"u# j!&ini j! probl! tab!la$
6ta o!t! ura&iti? Za!niti tab!lu1 - r!&u$ 8li ta ukoliko i &ru*i put pro!nit!
&i"pl!j? 3a li &a 2uvat! &v! v!rzij! pro*raa? Mora &a po"toji bolji na2in1
MP:85 a"!bl!r "a&ri par u"lovni; &ir!ktiva$ 'jia "! u zavi"no"ti o& &ati; u"lova
o! izabrati koji &!o pro*raa 0! "! a"!blirati# a koji n!$
Po*l!&ajt! na pri!r "l!&!0i &!o/
'a"tavak "l!&i1
1+K
)6. Jed'0o!" dv bro(
- pro*raia "! 2!"to javlja potr!ba za t!"tiranj! o&r!%!ni; vr!&no"ti$ Gao to "t!
v!0 nau2ili# lako j! por!&iti j!&nako"t &va broja kori0!nj! `<C op!racij!# i
o&*ovaraju0i "koko u zavi"no"ti o& "tanja Z!ro 9la*a$ - "lu2aju t!"ta vi!
vr!&no"ti# o*u0! j! t!"tirati i; na "l!&!0i na2in/
movlw ''' A Slovo J?S?
xorwf SE"G",% A -por!&i
btfsc STATUS,? A 3a li "u i"ti?
goto E0be21 A 7!"u# i&i na :ab!l1
movlw 'R' A 'i"u$ Slovo JCS?
xorwf SE"G",% A -por!&i
btfsc STATUS,? A 3a li "u i"ti?
goto E0be22 A 7!"u# i&i na :ab!l@
movlw '?' A 'ij!$ 3a li j! to "lovo JZS
xorwf SE"G",% A -por!&i
btfsc STATUS,? A 3a li "u i"ti?
goto E0be23 A 7!"u# i&i na :ab!l@
goto E0be24 A 'ij! na%!na o&*ovaraju0a vr!&no"t$
A I&i na :ab!l4
Po"tupak j! o*u0! "kratiti por!%!nj! vi!"truko `<CBovani; vr!&no"ti/
movf SE"G",% A 5roj u U
xorlw ''' A 3a li j! to "lovo J?S?
btfsc STATUS,? A 3a li "u i"ti?
goto E0be21 A 7!"u# i&i na :ab!l1
xorlw ''' O 'R' A 3a li j! to "lovo JCS (? `<C (? `<C C) V C)
btfsc STATUS,? A 3a li "u i"ti?
goto E0be22 A 7!"u# i&i na :ab!l@
xorlw 'R' O '?' A 3a li j! to "lovo JZS (C `<C (C `<C Z) V Z)
btfsc STATUS,? A 3a li "u i"ti?
goto E0be23 A 7!"u# i&i na :ab!lK
goto E0be24 A 'ij! nij!&na vr!&no"t o& ponu%!ni;$
A I&i na :ab!l4
- ovo "lu2aju a"!bl!r 0! priliko a"!bliranja pro*raa izra2unati vr!&no"t J?S
`<C JCS (oznaka d ozna2ava `<C lo*i2ku op!raciju) i po"tavi0! &obij!nu vr!&no"t
na r!zultat$ 'a taj na2in ut!%!no j! vr!! potr!bno za ru2no `<CBovanj!$ 7!&no
`<CBovana vr!&no"t ponovo "! `<CBuj! i takva "! upor!%uj! "a o"tali$
1+4
<"i `<C op!racij! t!"tiranj! j!&nako"ti o! "! izvriti i o&uzianj! &va broja i
t!"tiranj! Z!ro 9la*a$
movlw ''' A Slovo J?S?
subwf SE"G",% A U V S:<>< B K+
btfss STATUS,? A 3a li j! U V + (bi0! ka&a "u vr!&no"ti i"t!)?
goto R0S2-c-&- A >r!&no"ti "! razlikuju
goto I3&- A >r!&no"ti "u i"t!
T!"tiranj! o&uzianj! vi! "! "r!0! u pro*raia$ >!rovatno j!r j! j!&no"tavnij! za
razu!vanj!$
-koliko iat! 2!"tu pro!nu vr!&no"ti r!*i"tra koji t!"tirat! b!z o*u0no"ti
t!"tiranja nj!n! j!&nako"ti "a za&ato vr!&no0u n!po"r!&no nakon pro!n! (npr$ t!"t
TMC+ r!*i"tra)# pouz&anij! j! t!"tirati pr!kora2!nj! vr!&no"ti t!"to CarrW (u!"to
Z!ro) 9la*a$ <vo j! bolji na2in j!r j! o*u0! &a iz!%u &v! uza"topn! prov!r!
(po*otovu ukoliko kori"tit! &u! int!rapt! ili r!tko t!"tirat! j!&nako"t) r!*i"tar &o%! a
zati i pr!%! pr!ko za&at! vr!&no"ti pr! prov!r!$ CarrW 9la* bi (za razliku o& Z!ro
9la*a) bio "!tovan i pri &o"tizanju vr!&no"ti $+# a i pri pr!kora2!nju$ 3!taljniji
po"tupak pr!kora2!nja nau2i0!t! u nar!&no po*lavlju$
1+F
)8. +'(# #$# ve<#
I"to kao i por!%!nj! j!&nako"ti PIC16F84 o! uz par in"trukcija t!"tirati &a li j!
o&r!%!ni broj 8 anji ili v!0i o& broja 5$ Za to j! najprakti2nij! kori"titi o&uzianj! i
t!"tiranj! CarrW 9la*a$
Po*l!&ajt! "l!&!0i pri!r$ - nj!u "! t!"tiraju vr!&no"ti U r!*i"tra i r!*i"tra 5C<7$
movlw .2 A @
subwf BR"$,% A U V 5C<7 B @
btfss STATUS,# A T!"tiraj pr!kora2!nj!
goto 40+>- A Ue+A 5C<7 e @
goto Gec- A UaV+A 5C<7 aV @
Priliko o&uzianja broj @ "! !nja u "voj &ru*i kopl!!nt (+NF=) i ova vr!&no"t
"! "abira "a vr!&no0u iz r!*i"tra 5C<7$ Sto*a# ukoliko j! 5C<7 anji o& @ n!0! biti
"!tovan CarrW 9la*# pa 0! "! &alj! izvravanj! na"taviti o& lab!l! Manji$ Gako "! CarrW
9la* "!tuj! i ka&a "u broj!vi j!&naki# ukoliko j! 5C<7 v!0i ili j!&nak broju @ pro*ra
0! "! na"taviti o& lab!l! >!ci$
-koliko "! okr!n! 9orula U V 5C<7 B @ u U V @ B 5C<7 o*u0! j! t!"tirati alo
&ru*a2ija "tanja$ 'a pri!r/
movf BR"$, % A 5C<7 u U
sublw .2 A U V @ B 5C<7
btfss STATUS,# A T!"tiraj pr!kora2!nj!
goto Gec- A Ue+A 5C<7 a @
goto 40+>- A UaV+A 5C<7 eV @
I u ovo "lu2aju CarrW 9la* 0! biti "!tovan ka&a "u broj!vi j!&naki$ 3a bi !liini"ali
j!&nako"t o*u0! j! kobinovati j!&an o& ovi; al*oritaa "a prov!ro j!&nako"ti/
movlw .2 A @ u U
xorwf BR"$,% A -por!&i
btfsc STATUS,? A 3a li "u i"ti?
goto I3&- A 5C<7 V @
xorwf BR"$,% A >rati inicijalnu vr!&no"t (@) u U &upli `<C
A -!"to ovo*a o*lo "! pi"ati i ovlR $@
subwf BR"$,% A U V 5C<7 B @
btfss STATUS,# A T!"tiraj pr!kora2!nj!
goto 40+>- A 5C<7 e @
goto Gec- A 5C<7 a @
3upla `<C op!racija upotr!blj!na j! &a bi vr!&no"t "a kojo "! t!"tira 5C<7 o*la
biti un!ta u "ao j!&noj in"trukciji# to oo*u0ava laku iz!nu t!"tiran! vr!&no"ti$
1+6
T!"tiranj! j!&nako"ti o&uzianj! u!"to `<CBovanj!# po"ti*nuta j! ut!&a &v!
in"trukcij!$
movlw .2 A
subwf BR"$,% A U V 5C<7 B @
btfsc STATUS,? A 3a li j! r!zultat +?
goto I3&- A 5C<7 V @
btfss STATUS,# A 'ij!$ T!"tiraj CarrW 9la*$
goto Gec- A 5C<7 e @
goto 40+>- A 5C<7 a @
1+P
)9. Z&e' !drD( dv reg#!"r
Pon!ka& (npr$ pri "ortiranju po&ataka) "! javlja potr!ba za za!no "a&raja &va
r!*i"tra$ <bi2no "! za to kori"ti &o&atni privr!!ni (!n*$ t!p) r!*i"tar$
movf BR"$1,% A 5C<71 u U
movwf T=4P A U u T=MP
movf BR"$2,% A 5C<7@ u U
movwf BR"$1 A 5C<71 &obija po2!tnu vr!&no"t r!*i"tra 5C<7@
movf T=4P,% A T=MP u U
movwf BR"$2 A 5C<7@ &obija po2!tnu vr!&no"t r!*i"tra 5C<71
'a "l!&!0i na2in o!t! &ir!ktno izvriti nji;ovu za!nu b!z upotr!b! &o&atno*
r!*i"tra$
movf BR"$1,% A 5C<71 u U
xorwf BR"$2,% A 5C<71 d 5C<7@ u U
xorwf BR"$1,F A U d 5C<71 u 5C<71# U "! n! !nja
xorwf BR"$2,F A U d 5C<7@ u 5C<7@
<vaj al*orita o*u0 j! j!r "! &uplo `<CBovana vr!&no"t bilo koji broj! n!
!nja$ Potpuno i"ti na2ino o*u0! j! pro!niti "a&9raj 5C<7 i U r!*i"tra$
xorwf BR"$,F A
xorwf BR"$,% A
xorwf BR"$,F A
1+8
4:. O' . go"o ...
Sli2no kao ko& tab!l!# "abiranj! PC: "a o&r!%!ni broji o!o oti0i na
proizvoljn! !orij"k! lokacij!$
Pr!tpo"tavio &a j! "! r!*i"tar <FS=T uv!0ava pri "vako prola"ku kroz pro*ra i
&a "! na o"novu nj!*ovo* tr!nutno* "tanja izvravaju &alji pro*rai j!&an za &ru*i$
'a kraju "vo* izvr"avanja "vaki pro*ra izvrava *oto Poc in"trukciju koji "!
na"tavlja iz po2!tka$ I"to kao u tab!laa i ov&! j! potr!bno prov!riti &a li pro*ra
pr!lazi *ranicu o& @F6 in"trukcija$
Poc incf "FS=T,F A -v!0aj <FS=T
movlw .8 A 5roj pr!kora2!nja
xorwf "FS=T,% A
btfsc STATUS,? A 3a li j! na"tupilo pr!kora2!nj!?
clrf "FS=T A 7!"t!# inicijalizuj <FS=T
movf "FS=T,% A <FS=T u U
S@o@ addwf P#E,F A - U "! nalazi broj o& + &o P
goto P)o*)011 A UV+
goto P)o*)012 A UV1
goto P)o*)013 A UV@
goto P)o*)014 A UVK
goto P)o*)015 A UV4
goto P)o*)016 A UVF
goto P)o*)017 A UV6
goto P)o*)018 A UVP
Svakako o!t! zapaziti &a "! ovaj po"tupak n! razlikuj! no*o o& tab!l!$
<*rani2!nja v!zana za nji; va! i u ovo "lu2aju$
- *ornj! pro*rau u!"to za&nj! intrukcij! (*oto Pro*ra8) o*lo "! o&a;
na"taviti "a izvravanj! o"o* pro*raa$ Ipak# ovako pro*ra iz*l!&a pr!*l!&nij! i
laki j! za analizu$ Iako j! ti! utro!na j!&na in"trukcija vi!# analiza ovakvo*
pro*raa j! prili2no j!&no"tavnija$ Morat! iati u vi&u &a 0! "! u pro*rau
v!rovatno javljati *r!k!$ Cazuljiv i &obro ko!ntari"an pro*ra olakava nj!*ovu
nakna&nu i"pravku$ - protivno# na0i 0!t! "! u *oili naiz*l!& b!"i"l!ni;
in"trukcija$ .!"ta j! pojava &a "! priliko ka"nij!* razvoja pro*raa vi! vr!!na
utroi na nj!*ovu analizu# n!*o na pi"anj! novo* pro*raa iz po2!tka$ 'ij! ni 2u&o
to "! ko& n!razuljivi; pro*raa naziva pa*!ti ko&$
1+Y
41. K;'(e'(e 3 %e"$(#
- &o"ta "lu2aj!va potr!bno j! &a pro*ra j!&no"tavno 2!ka u p!tlji o&r!%!no vr!!$
Gako (za 4M,z kri"talni o"cilator) in"trukcij"ki ciklu" traj! "ao 1ZS# potr!bno j!
"o9tv!r"ki r!alizovati &ua kanj!nja$
Ganj!nj! j! najprakti2nij! ipl!!ntirati unutar potpro*raa$ Pri prora2unu ta2no*
vr!!na kanj!nja ora "! uz!ti u obzir i vr!! potr!bno za "kok na potpro*ra# kao
i za povratak iz nj!*a (@ D @ in"trukcij"ka ciklu"a)$
<v&! j! &at potpro*ra koji 0! "! (pri 4M,z) r!alizovati kanj!nj! o& ta2no 1S$
P0! movlw 0xFB A Inicijalna vr!&no"t u U$ Tu ni"u ura2unata @
nop A in"trukcij"ka ciklu"a za "kok na potpro*ra
P0!4 addlw 0xFF A <&uzi 1 o& U "abiraju0i U "a +NFF
btfss STATUS,? A 3a li j! r!zultat +?
goto P0!4 A 'ij!# na"tavi "a p!tljo
return A 7!"t!# vrati "! iz potpro*raa$
Svaki prolazak kroz p!tlju troi 4ZS$ 8&&lR traj! 1# bt9"" 1 i *oto @ZS$ I u tr!nutku
izla"ka iz p!tlj! (UV+) kanj!nj! j! tako%! 4ZS$
Potpro*ra za "voj ra& n! kori"ti r!*i"tr!$ 7!&ino U$
- "lu2aju &a j! to pot!bno# o*u0! j! u U za&ati !lj!nu &uinu pauz! (4ZS D U) i
"ko2iti &ir!ktno na Pau4$ Iajt! na uu &a j! i Call in"trukciji potr!bno @ZS$
Za &u! pauz!# ora "! kori"titi r!*i"tar (u ovo "lu2aju P8-Z8)$ Pr! poziva
potpro*raa j! u U potr!bno za&ati !lj!ni broj ili"!kun&i kanj!nja$ 'ji j!
o*u0! r!alizovati pauz! o& 1 &o @FFS (f S)$
J03 movwf PAU?A A U u P8-Z8 r!*i"tar
Pe&1 movlw 0xF8 A Inicijalizacija vr!&no"ti
call P0!4 A @48 D 4 H @ V YY4 ov&!
nop A <"tatak#
nop A za jo 6ZS
decfsz PAU?A,F A Sanji vr!&no"t u r!*i"tru
goto Pe&1 A 7o p!tlji$
return A Povratak iz potpro*raa
-koliko >a "! ovaj na2in 2ini pr!vi! t!ak# o!t! i"probati Pic:oop" pro*ra
koji *!n!ri! &!o potr!bno* kT&a u zavi"no"ti o& un!to* vr!!na kanj!nja i brzin!
o"cilatora$ 8utor to* pro*raa pr!"tao j! &a pro*raira ikokontrol!r!# izbri"ao j!
Pic:oop" "a "vo* "ajta i "a&a kol!kcionira "tar! vi&!o i*ric!$ Pro*ra "a po"tavio na
"vo "ajtu 2iji link o%!t! na0i na kraju ovo* uput"tva$
-koliko n! !lit! ita in"talirati onlin! *!n!rator kanj!nja iat! na linku
;ttp/MMRRR$picli"t$coMc*iBbinM&!laW$!N!$ Iako iz*l!&a kao pro*ra# ra&i "! o linku$
11+
42. Se&%$ov'(e
Pr!tpo"tavio &a j! potr!bno o&r!%!no vr!! pratiti pro!n! na ulazni pinovia# i
&obij!n! po&atk! "niati r!&o (bit po bit) u C8M r!*i"tr! ili ==PC<M !oriju$
Takav po"tupak naziva "! "!plovanj!# a poj!&ina2ni &obij!ni po&aci (lo*i2ka "tanja
pinova u o&r!%!no tr!nutku) "!plovi$
Go& "!plovanja "! javljaju 2!tiri probl!a$ Prvi "! o&no"i na ak"ialan broj
"!plova# &ru*i na &uinu pauz! iz!%u "!plova# tr!0i na r!zoluciju "!plova# a
2!tvrti na pr!cizno"t pauz!$
Pr!tpo"tavio &a j! potr!bno pro!no lo*i2ko* "tanja na j!&no pinu pratiti nivo
r!k! (p!rio&! pli! i o"!k!)$ Iako "! "!plovi o*u uziati "vak! ili"!kun&!#
tolika pr!cizno"t j!&no"tavno nij! potr!bna$ 5i0! "a"vi &ovoljno ukoliko "! iz!%u
"!plova ubaci pauza o& 1+ inuta# tako &a za 1 "at ikrokontrol!r &obij! 6 "!pla#
o&no"no 6D@4 V 144 "!pla &n!vno$
<v&! "! javlja prvi probl!$ Mak"ialna ra"poloiva koli2ina !orij!$ Po*l!&ajt!
kako "! ona o! o&r!&iti$
Gako "u "!plovi j!&nobitni# oni "! o*u kopr!"ovati i tako zauz!ti "ao 144M8 V
18 ==PC<M a&r!"a$ Gako ==PC<M PIC16F84 ikrokontrol!ra ia 64 a&r!"a# to
zna2i &a bi u nj!*a bilo o*u0! "niati "!plov! ak"ialno (64D8)M144 V K#F &ana1
-koliko >a j! ovaj p!rio& pr!vi! kratak (i&!t! na o&or u =*ipat)# orat! n!to
rtvovati$ Ili 0!t! kupiti &o&atnu ==PC<M !oriju# ili 0!t! pov!0ati pauzu iz!%u
"!plova$ Po*l!&ajt! ta "! &o*a%a ukoliko izab!r!t! &ru*o r!!nj!$
- zavi"no"ti o& ra"poloivo* vr!!na (i &ubin! nov2anika)# o&or u =*iptu o!
trajati i &o 1F &ana (nakon to*a po"taj! &o"a&no)$ Zna2i# za 1F &ana o!t! u
==PC<M "niiti ak"ialno (64D8)M1F V K4 "!pla &n!vno$ S!plovi bi "! uziali
(otprilik!) "vaki; (@4D6+)MK4 V 4@ inuta$ <vo j! i &alj! "a"vi &ovoljno$
<v&! "! javlja &ru*i probl!$ 3okl! 0! biti &ovoljno? <bjanj!nj! &aj! t!orija
"!plova$ Po njoj j! bilo koji "i*nal o*u0! pr!&"taviti "!plovia uz!ti; na
9r!kv!nciji koja j! bar &uplo v!0a o& ak"ialn! 9r!kv!ncij! ori*inalno* "i*nala$ 6ta
to zna2i? -koliko j! za p!rio& o& @4 2a"a o*u0a pojava ak"ialno &v! pli! i &v!
o"!k!# to pr!&"tavlja ak"ialno 4 pro!n! lo*i2ko* "tanja na pinu$ 3a bi "! "vaka
pro!na "i*urno &!t!ktovala# "!plovanj! ora biti bar &uplo br! o& ti; pro!na#
o&no"no bi0! potr!bno bar 8 "!pla &n!vno$
<vo j! inialni &ovoljan broj "!plova# ali vi! "!plova 0! "vakako v!rnij!
prikazati "i*nal$ 'a pri!r# po i"toj t!oriji "vaki analo*ni au&io "i*nal (@+,z O @+
k,z) o! "! pr!&"taviti &i*italni "i*nalo "!plovani na (&ovoljni;) 4+k,z#
!%uti tako ali broj! "!plova j! t!ko razlikovati violinu o& ba" *itar!$
3ovoljan kvalit!t po"ti! "! t!k pri &!"!to"truko v!0oj 9r!kv!nciji (@++k,z)$
Po"toji li jo n!ki na2in? Po"toji i o&no"i "! na pov!0anj! r!zolucij! "!plova$ To j!
tr!0i probl!$
111
3o "a&a j! r!zolucija "!plova bila j!&nobitna# o&no"no oo*u0avala j! "ao &va
lo*i2ka "tanja (iaMn!a vo&!)$ S!0at! "! &a j! pri u2!nju int!rapta pr!&la*an !to&
!r!nja nivoa r!k! pr!ko vi! ulazni; pinova$ -koliko "! za !r!nj! kori"t! K pina#
o*u0! j! &obiti "l!&!0a "tanja/ +++# ++1# +11 i 111$ <na "! o*u konv!rtovati u
binarni oblik# i ta&a "! &obija ++# +1# 1+ i 11$ >i&it! &a j! &vobitno r!zolucijo
o*u0! pr!&"taviti 4 nivoa r!k!$ Zna2i# ukoliko "! za !r!nj! nivoa vo&! kori"t! tri
ulazna pina (u!"to j!&no*)# o*u0! j! prikazati 2!tiri nivoa r!k! uz &va bita unutar
"!pla$
3uplo vi! bitova &ono"i i &uplo pov!0anj! !orij!$ -*lavno j! potr!bno o&abrati
koproi" iz!%u &ovoljno* broja "!plova i nji;ov! r!zolucij!# a to op!t zavi"i o&
konkr!tni; potr!ba !r!nja$
'a pri!r za po2!tni "lu2aj (!r!nj! na "vaki; 1+ inuta) uz tri "on&! bi0! potr!bno
(6D@4)D@ V @88 "!pla# o&no"no @88M8 V K6 bajtova &n!vno$ M!%uti# "a&a 0! biti
o*u0! &o"ta (2!tiri puta) pr!ciznij! pratiti pov!0anj! i "anj!nj! nivoa$
Pauzu iz!%u "!plova tr!ba to pr!ciznij! o&r!&iti$ To j! 2!tvrti probl!$ ?r!ka o&
j!&n! "!kun&! unutar j!&no* "ata za p!tna!"t &ana nara"la bi na *r!ku o& 6 inuta$
'!ka&a to o! biti zan!arljivo# ali n!ka&a n!$ Zbo* to pr!ciznij!* vr!!na
"!plovanj! "! u*lavno izvrava nakon pr!kora2!nja taj!ra (ili unutar int!rapta
izazvani; taj!ro)$
S!plovanj! nij! o*rani2!no "ao na !r!nj! I!*zoti2ni;J "i*nala kao to j! nivo
r!k!$ - i&u0! po*lavlju nau2i0!t! kako "! "!plovanj! o! !9!ktno i"kori"titi
unutar &!bouncin*a$
11@
4). Debo3'5#'g
Canij! "t! vi&!li &a "! &!bouncin* o! r!alizovati t!"tiranj! ta"t!ra# pa kratki
2!kanj!# i on&a ponovni t!"tiranj!$ 5olji na2in pr!&"tavlja t!"tiranj! ta"t!ra vi!
puta# i iz!nu j!&ino ukoliko j! u "vi "lu2aj!via t!"tiranja &obij!no novo "tanj!$
Za t!"tiranj! "! b!z probl!a o! i"kori"titi "!plovanj!# "a to po*o&no0u to
ta&a ranij! opi"ani; probl!a n!a$
3ovoljno j! napraviti p!tlju (ili p!tlju unutar p!tlj!)# uz!ti "!pl i r!"!tovati p!tlju
ukoliko "! "!pl pro!nio# kako bi t!"tiranj! ponovo po2!lo iz po2!tka$ -koliko "!
p!tlja zavri# to zna2i &a "! "tanj! pr!ki&a2a nij! pro!nilo "vo vr!! trajanja p!tlj!#
pa tako za&nji "!pl o! biti uz!t kao "tabilno "tanj! pr!ki&a2a$
<vako j!&no"tavan princip ia naravno i par ana$ Pro*ra "! tr!ba bar @+S vrt!ti
u p!tlji# i za to vr!! n!0! o0i &a izvrava o"tal! op!racij!$ -koliko kontakti
pr!ki&a2a n!pr!"tano varni2!# pro*ra n!0! o0i &a iza%! iz p!tlj!$ <"i to*a
int!rapti o*u izazvati privr!!n pr!"tanak ili &u! vr!! t!"tiranja pr!ki&a2a$
3obar j! j!&ino za pro*ra! *&! "! o! &ozvoliti 2!kanj! na priti"nuto"t (ili
otput!no"t) ta"t!ra$ - o"tali "ituacijaa tr!balo bi kori"titi t!"tiranj! pr!ki&a2a
unutar int!rapta izazvani; taj!ro$
Gako "! int!rapti izazvani taj!ro pozivaju prili2no r!tko# potr!bno j! &a
"!plovanj! traj! to kra0!# o&no"no &a "! u j!&no prolazu uz! "ao j!&an "!pl#
upor!&i "a pr!t;o&ni i "anji (uv!0a) unapr!& za&at broja2 "!plova$ -koliko j!
"a&anj! "tanj! "!pla &ru*a2ij! o& pr!t;o&no*# broja2 bi "! ponovo inicijalizovao$
Ga&a broja2 (napokon) i"t!kn!# potr!bno j! "aoptiti *lavno pro*rau &a j! pr!ki&a2
priti"nut (otput!n)$
Gounikacija iz!%u *lavno* pro*raa i int!rapta nij! ba j!&no"tavna$ -*lavno
"! pri!njuj! kounikacija pr!ko par r!*i"tara opt! na!n!$
'a pri!r "!tovan bit + r!*i"tra T8ST=CI zna2io bi &a j! priti"nut ta"t!r I:=><J# a
"!tovan bit 1 &a j! priti"nut ta"t!r I3=S'<J$ ?lavni pro*ra tr!bao bi p!rio&i2no
t!"tirati ov! bitov!# i u zavi"no"ti o& nji;ovo* "tanja pr!&uziati o&r!%!n! akcij!$
- "l!&!0i po*lavljia upozna0!t! "! "a par kounikacioni; protokola$ 7!&an &!o j!
;ar&v!r"ki int!*ri"an u "avr!!niji PIC ikrokontrol!ria$ Si*urno 0!t! pri!titi
koproi" iz!%u broja pinova koji "! kori"t! za kounikaciju i brzin!
kounikacij!$
11K
44. +$o "eor#(e o0o &e&or#(e
- po2!tku b!! 3C8M$ Gla"i2an pr!&"tavnik 3C8M !orij! j! 4164 int!*ri"ano
kolo$ 'ji! j! o*u0! a&r!"irati ukupno 64Gbita (6FFK6 bitova) po&ataka$
5it"ka atrica j! unutar !orij! or*anizovana u obliku r!&ova i kolona$ 3a bi "!
pri"tupilo o&r!%!no bitu (bilo za 2itanj! ili upi" po&ataka)# potr!bno j! pr!ko a&r!"n!
a*i"tral! pri"tupiti 0!liji u kojoj "! taj bit nalazi$ Zai"lit! r!u z*ra&a u kojoj
r!&ovi iaju naziv! ulica# a kolon! broj!v! z*ra&a$
Groz takvu r!u probija "! na *lavni junak O n!rvozni potar$ <n "a kov!rt! 2ita
&v! in9oracij!$ 'aziv (broj) ulic! i broj z*ra&!$ Za o2itavanj! kopl!tn! a&r!"!
!orija bi orala iati 2ak 16 ulazni; pinova (8 za ulicu i 8 za broj)$ <vo "!
u*lavno r!ava ultipl!k"o a&r!"n! a*i"tral! (vi! o principu ultipl!k"a
nau2i0!t! ka"nij!)# tako &a "! u !oriju najpr! alj! broj r!&a# a za nji i broj
kolon!$ '!op;o&na "in;ronizacija ob!zb!%uj! "! pr!ko &va (ovo j! "vakako anj! o&
o"a) &o&atna pina$
Potar kao to "i*urno v!0 znat! o! obavljati &v! op!racij!$ Mo! &on!ti p!nziju#
ili (&on!ti ra2un i) o&n!ti p!nziju$ 3a li potar &on!ti ili o&n!ti p!nziju (2itati ili
upi"ivati po&atk! u !oriju) zavi"i o& lo*i2ko* "tanja U= (!n*$ .rit! Enabl!) pina$
I na kraju !orija ia ulazni 3I' (!n*$ Data In) i izlazni 3<-T (!n*$ Data O3")
pin$ 'ji; j! o*u0! pov!zati &ir!ktno na &va -MI pina ikrokontrol!ra$ M!%uti#
kako j! "ao j!&an o& nji; tr!nutno u 9unkciji u zavi"no"ti o& "tanja U= pina# oni "!
b!z probl!a o*u "pojiti j!&an za &ru*i$ -koliko "! "poj!# &obija "! j!&an -MI pin
pr!ko ko*a j! o*u0! upi"ati ili pro2itati j!&an bit po&ataka "a pr!&at! a&r!"!$ Tako
"! j!&an pin kori"ti i za ulaz i za izlaz (i"to kao i pinovi ikrokontrol!ra)$ 'aravno#
priliko 2itanja po&atka -MI pin ikrokontrol!ra pov!zan za a*i"tralu po&ataka
("poj!ni 3I' i 3<-T pin) orao bi biti &!9ini"an kao ulazni (pr!ko TCIS8 ili TCIS5
r!*i"tra)# a priliko upi"ivanja kao izlazni$
114
To bi bilo to za 2itanj! i pi"anj! j!&no* bita$ Za 2itanj! i pi"anj! j!&no* bajta o*u0!
j! r!&o 2itati (ili pi"ati) u *rupaa o& 8 bitova# ili kao ko& Coo&or! 64
kopjut!ra paral!lno a&r!"noj a*i"trali &o&ati jo "!&a 4164 3C8M !orija$ -
to "lu2aju v!li2ina a&r!"n! a*i"tral! o"taj! i"ta# a a*i"trala po&ataka u!"to
j!&no* zauzia 2ak 8 provo&nika (ili 16 ukoliko "! ulazni i izlazni pinovi !orij!
n! "poj! j!&an za &ru*i)$ Mo*u "! kori"titi i 4464 !orij! koj! iaju u "!bi 64Gbita
D 4 (6FFK6 D 4 bitova)# o&no"no uz i"tu a&r!"nu a*i"tralu iaju 4 pina na a*i"trali
po&ataka ("poj!ni 3I' i 3<-T 9oriraju 31# 3@# 3K i 34)$
Sa&a ono t!ko$ Svaka bit"ka 3C8M 0!lija "a"toji "! o& j!&no* kon&!nzatora i j!&no*
tranzi"tora$ Gako bi "! kon&!nzator po"l! par S potpuno i"praznio# n! bi vi! bio u
"tanju 2uvati po&atak# pa "! orao povr!!no (npr$ "vak! &ru*! ili"!kun&!)
o"v!avati$ Tako unutar Sp!ctru kopjut!ra Z8+ ikroproc!"or paral!lno "a
izvravanj! in"trukcija povr!!no o"v!ava 3C8M !oriju# &ok ko& C64 vi&!o
kontrol!r o"v!ava !oriju za vr!! &!la in"trukcij"ko* ciklu"a u ko!
ikroproc!"or n! pri"tupa !oriji$ Mikrokontrol!r bi zna2i orao povr!!no
pro2itati "a&raj c!lokupn! !orij! (ili bar oni; !orij"ki; lokacija koj! kori"ti)# a
zati i; ponovo upi"ati$
T!or!t"ki# 3C8M !oriju kapacit!ta j!&no* bita o!t! &obiti pov!zivanj!
kon&!nzatora &ir!ktno na -MI pin ikrokontrol!ra$ -koliko u "! najpr! o&r!%!no
vr!! &ov!&! lo*i2ka 1# kon&!nzator 0! "! napuniti# i ukoliko "! ka"nij! o2ita
nj!*ovo "tanj! taj pin 0! &avati lo*i2ku 1$ -koliko u "! pak &ov!&! lo*i2ka +#
kon&!nzator 0! "! i"prazniti# i ka"nij! 0! pri o2itavanju &avati lo*i2ku +$ 3a "! n! bi
vr!!no i"praznio# ora "! povr!!no o2itati i o"v!iti$
3C8M !orija ia vi! ana n!*o pr!&no"ti$ Punj!nj! i pranj!nj! kon&!nzatora
za;t!va o&r!%!no vr!!# tako &a j! vr!! pri"tupa (!n*$ acc!"" ti!) 0!lijaa "porij!
o& o"tali; vr"ta !orija$ M!orija n!0! ra&iti u "lu2aju pokuaja o2itavanja ili upi"a
v!0o brzino o& &ozvolj!n!$ <"v!avanj! !orij! troi &o"ta ikrokontrol!r"ko*
vr!!na$ Zbo* to*a "! 3C8M !orija "v! r!%! kori"ti i por!& ni"k! c!n!$
Cazvoj! !l!ktronik! pojavljuj! "! SC8M ("tati2ka C8M !orija) po pri"tupa2noj
c!ni$ - njoj "! !orij"k! 0!lij! "a"toj! o& n!koliko tranzi"tora pov!zani; u 9ori
Flip Flopa# tako &a i o"v!avanj! nij! potr!bno# a j!&no upi"an po&atak o"taj! u
SC8M !oriji "v! &o upi"a "l!&!0!* ili &o *ubitka napona napajanja$
Za razliku o& 3C8M# u SC8M !oriji j! naput!n princip ultipl!k"a a&r!"n!
a*i"tral! (zbo* v!0! brzin!)# tako &a "! a&r!"a !lj!no* bita o! za&ati u j!&no
koraku$ Gla"i2an nj!n pr!&"tavnik bila bi npr$ FF64 !orija (SC8M 8Gbita D 8)$
'!zaobilazna j! i =PC<M !orija$ <na na "!bi ia ali "takl!ni IprozorJ pr!ko
ko*a "! o! bri"ati$ 'ai!# po&aci "! u =PC<M o*u "niati pr!ko o&*ovaraju0i;
pro*raatora "p!cijalno proc!&uro (kao "nianj! ko&a u PIC)$ Taj proc!" obi2no
za;t!va vi! napon! o& ra&ni; (H1@> u!"to HF>)$ Ga&a "! po&aci j!&no "ni! u
=PC<M !oriju# n! o*u "! "niiti nar!&ni "v! &ok "! =PC<M o&r!%!no vr!!
n! izloi ultraljubi2a"toj "v!tlo"ti$ Taj proc!" ubrzava Icur!nj!J na!l!ktri"anja
i"pro*rairan! =PC<M !orij!# i na taj na2in "! =PC<M obri!$ T!k on&a j!
o*u0! ponovno pro*rairanj!$ >!0inu =PC<M !orija o*u0! j! po"taviti u
"l!!p o&# &ovo%!nj! lo*i2k! 1 na nj!n C= (!n*$ C;ip Enabl!) pin$
11F
-koliko j! na <= (!n*$ Output Enabl!) pinu =PC<M !orij! pri"utna lo*i2ka 1#
"vi pinovi a*i"tral! po&ataka (3+ pa na&alj!) na0i 0! "! u "tanju vi"ok! ip!&an"!$
To oo*u0ava ultipl!k" a*i"tral! po&ataka# i nj!no &!lj!nj! iz!%u =PC<M i
C8M !orij! (Coo&or! 64 kori"ti i"ti princip "a "vojo C<M !orijo)$
Pri ra&u "a bilo koji !k"t!rni !orijaa orat! obratiti panju na brzinu
pri"tupa po&acia (obi2no o& 4FnS &o 4F+nS)$ Iako j! u*lavno o*u0! &on!kl!
Iov!rklokovatiJ !oriju# to n! pr!&"tavlja &obru prak"u$ 7!&no 0! "vakako
"tra&ati$ 5olj! &a to bu&! to ka"nij!$
Gao to uo2avat! za upotr!bu a&r!"n! i a*i"tral! po&ataka potr!ban j! v!liki broj
pinova# ali joj j! i brzina ak"ialna$ Zbo* to*a "! najvi! kori"ti u kopjut!ria$
Mikrokontrol!ri "! zbo* v!liko* broja potr!bni; pinova u*lavno uopt! n! pov!zuju
"a !k"t!rni ;ar&v!ro a&r!"no a*i"tralo# v!0 "! "v! vi! razvija "p!ci9i2an
;ar&v!r# koji "! o&r!%!ni kounikacioni protokolia o! upravljati anji
broj! pinova# uz anju brzinu pri"tupa$
Za vi! &!talja po*l!&ajt! T5+11 "a ;ttp/MMRRR$icroc;ip$coM$
116
44. RS2)2 # RS42)
Gako po"lati po&atak iz PIC ikrokontrol!ra u >a kopjut!r? Po"toj! &va na2ina$
Pov!zati potr!ban broj pinova porta 5 &ir!ktno za a&r!"nu a*i"tralu (npr$ paral!lni
port kopjut!ra)# i po"taviti pinov! porta 5 u o&r!%!no "tanj!# ili pov!zati "ao @
pina (j!&an za "lanj!# a &ru*i za prij! po&ataka) na kopjut!r (npr$ "!rij"ki port) i
"lati po&atk! kroz nji; bit po bit o&r!%!no brzino$
<2i*l!&no j! &a bi paral!lni pr!no" po&ataka tr!bao biti no*o bri o& "!rij"ko*$
M!%uti# brzina kojo kopjut!r o! pro2itati ov! po&atk! j! (u o&no"u na PIC)
toliko ala# &a "! n! &obija nikakvo zna2ajno pov!0anj! brzin!# a za pr!no" po&ataka
j! zauz!to vi! pinova ikrokontrol!ra$ <"i to*a# paral!lni port ia prili2no
n!"tan&ar&an int!r9!j"# a ni ko!rcijalno ni"u &o"tupni pro*rai za nj!*ovu upotr!bu$
Sl!&!0i pro*rao pr!no"i "! poruka u kopjut!r# pr!ko "!rij"ko* (CSB@K@) porta$
'ajpr! j! potr!bno un!ti poruku koja 0! "! po"lati$ 'ajlak! j! un!ti j! u PIC u obliku
tab!l!$ MP:85 a"!bl!r o! "a vriti konv!rziju 8SCII ko&a# to olakava uno"
poruk!$ 8SCII ko& za "lovo T# ozna2ava "! "a 0'T' ili 'T'$
A DDDDDD Tab!la "a t!k"to DDDDDD
Tex& addwf P#E,F A &o&aj U na PC:
d& '?d)0IoR', 0x0(, 0x0A, 0x00 A >ra0a karakt!r!#
A +N+3 >ra0a znak C!turn
A +N+8 >ra0a oznaku za novi r!&
A +N++ <zna2ava kraj t!k"ta
3a bi "! na "!rij"ki port po"lao karakt!r# potr!bno j! u j!&no r!*i"tru 2uvati r!&ni
broj "lova koj! "! prikazuj! (broj koji "! &o&aj! na PC:) i pozvati rutinu za "lanj!
karakt!ra# pov!0avaju0i "vaki put vr!&no"t u point!r r!*i"tru$ Ga&a "! &o&j! &o
za&nj!* karakt!ra# iz tab!l! "! vra0a +N++# na o"novu 2!*a potpro*ra &!t!ktuj! kraj
niza karakt!ra$ - rutinu "! ulazi "a r!&ni broj! prvo* karakt!ra (o9"!to) u U$
US1- movwf P"I;T=R A Po"tavi vr!&no"t iz U u point!r poruk!
Pe& movf P"I;T=R,% A Stavi point!r u U
call Tex& A >ra0a 8SCII karakt!r u U
addlw 0x00 A S!tuj! Z!ro 9la* ako j! U V +
btfsc STATUS,? A Pr!"ka2! ako Z!ro 9la* nij! "!tovan
return A Zavrava potpro*ra ako j! U V +
call S20+ A 6alj! karakt!r na "!rij"ki port
incf P"I;T=R,F A Pozicioniraj point!r na "l!&!0i karakt!r
goto Pe& A 7o karakt!ra
S!rij"ki pr!no" po&ataka "a"toji "! o& po"tavljanja o&*ovaraju0!* pina na lo*i2ku + i
lo*i2ku 1 u ta2no o&r!%!ni tr!nutcia$ 'j!*ovo uobi2aj!no "tanj! j! vi"ok lo*i2ki
nivo (1)# a nizak nivo (+) pri to! ozna2ava "tartni bit$ Pri brzini pr!no"a po&ataka o&
48++ bo&a# vr!! koj! bit prov!&! u "tanju lo*i2k! + tr!ba biti 1M48++ V @+8ZS$ 8 bita
po&ataka "vaki trajanja j!&no* p!rio&a "l!&! za ovi "tartni bito$ >i"ok lo*i2ki
11P
nivo &ui o& p!rio&a j!&no* bita ozna2ava "top bit$ 5itovi "! alju "a prvi bito
najanj! t!in! (:S5)$ Po&atci "! u kopjut!ru 2itaju na polovini bit"ko* p!rio&a# &a
bi "! pouz&anij! &!t!ktovalo &a li j! o&*ovaraju0i bit na lo*i2koj + ili 1$ Priliko
"lanja 8SCII ko&a "lova 8 (bQ+1++ +++1Q) u kopjut!r bi "! po"lala ovakva "!kv!nca/
ST8CT +1@K 4F6P ST<P
+ 1+++ ++1+ 1
Start i "top bit n!op;o&ni "u ra&i "in;ronizacij! prij!nika "a pr!&ajniko$
'apon"ki nivoi CS@K@ porta "u BK> ili ni! za lo*i2ku j!&inicu# i HK> i vi! za
lo*i2ku +$ <vo "! u*lavno o! zaobi0i# tako to "! kori"t! nivoi o& HF> za lo*i2ku
+ i +> za lo*i2ku 1# ukoliko j! kabl za pov!zivanj! &ovoljno kratak$ Pri!0uj!t! &a j!
ovo obrnuto o& ono*a to bi"t! o*li o2!kivati1
Za ta2no o&r!%ivanj! potr!bni; pauza o! "! kori"titi ranij! opi"an potpro*ra za
kanj!nj! "a F@ D 4ZS p!tljo za j!&nu bit"ku p!rio&u pri 48++ bo&a$ Gako "a
pro*ra za "lanj! traj! 1@ZS# u U 0! "! na0i broj 4Y$ - potpro*ra "! ulazi "a
!lj!ni karakt!ro u U$ Izlaz za kopjut!r j! na P<CT8 r!*i"tru# bit @ (pin 1)$
IS2 movwf TAR=' A Stavi U u r!*i"tar pr!&aj!
movlw 0x08 A 8 bitova po&ataka
movwf BIT"GI A 5rojac za bitov!
bsf P"RTA,2 A Startni bit (inv!rtovan# "!0at! "!) HF> na C8@
Pe& movlw .4B A 4Y &!cialno# vr!! za ka"nj!nj!
call P0!4 A - potpro*rau za pauzu c!kaj 4YD4V1Y6ZS
rrf TAR=',F A Pr!baci za&nji &!"ni bit u CarrW 9la*$
btfsc STATUS,# A 8ko j! CarrW 9la* V +# !li "! "!tovanj! bita
A (nizak napon"ki nivo)
goto "b) A u protivno j! bit V + (vi"ok nivo)
bsf P"RTA,2 A HF> na pinu 1 (C8@)
goto J)0> A 7! li *otovo?
"b) bcf P"RTA,2 A +> na pinu 1 (C8@)
nop A &a bi ob! opcij! trajal! ta2no 1@ZS
J)0> decfsz BIT"GI,F A 1 bit anj!$ Pr!"ko2i ka&a &o%! &o +
goto Pe& A ia jo bitova$ Ganj!nj! za "lanj! ovo*$
movlw .52 A F@ &!cialo# vr!! za kanj!nj! @+8ZS
call P0!4 A Ganj!nj! za za&nji bit po&ataka
bcf P"RTA,2 A +> (vi"oko "tanj!) za "top bitov!
movlw .104 A 1+4 &!cialno
call P0!4 A za &va puta &ui "top bit
return A Povratak
- ovi potpro*raia prikazan! "u "koro "v! potr!bn! rutin! potr!bn! &a bi PIC
po"lao poruku IZ&ravo1J u kopjut!r pr!ko "!rij"ko* porta$ <"talo j! jo nji;ovo
pov!zivanj!$ Pro*ra koji "v! to pov!zuj!# o*ao bi iz*l!&ati ovako/
118
S20+ bsf STATUS,RP0 A Pr!bacuj! u 58'G1
movlw 0x00 A Po"tavlja "v! pinov! kao izlazn!
movwf TRISA A na P<CT8
bcf STATUS,RP0 A >ra0a u 58'G+
clrf P"RTA A C8@ V + (CS@K@ vi"oko "tanj!)
movlw .50 A Ga"nj!nj! o& F+ S
call J03 A pr!ko potpro*raa za &u! pauz!
movlw 0x00 A <9"!t za prvi karakt!r poruk!
call IS2 A Slanj! poruk! u kopjut!r
B2o@ goto B2o@ A Graj u b!"kona2noj p!tlji
Malo ko!ntara o pro*rau/
Svi bitovi na P<CT8 r!*i"tru "u po"tavlj!ni kao izlazi$ Gako pro*ra kori"ti tab!lu#
potr!bno j! t!"tirati nj!no pr!kora2!nj!$ C!&o"l!& potpro*raa# naravno# nij! bitan$
5itno j! j!&ino &a *lavni pro*ra (Slan) bu&! prvi$
Za i"pravan ra& pro*raa# potr!bno j! o"i*urati &ovoljnu pr!cizno"t takta o"cilatora#
pa "! ovaj pro*ra o! upotr!biti j!&ino uz kri"talni o"cilator o& 4M,z$ Za
pov!zivanj! "a kopjut!ro &ovoljno j! pin 1 ikrokontrol!ra (C8@) pov!zati "a
pino @ (C`) &!v!topin"ko* !n"ko* S-5 3 kon!ktora# i a"u (?'3) na pin F
kon!ktora$ Gabl n! bi tr!bao biti &ui o& 1#F$ - protivno# orali bi "! kori"titi
o&*ovaraju0i &rajv!ri (obi2no "! to ra&i int!*ri"ani kolo M8`@K@) na!nj!ni
pr!tvaranju lo*i2ki; nivoa "a pinova ikrokontrol!ra u nivo! po*o&n! za CS@K@
kounikaciju$
'a "trani kopjut!ra uklju2it! >a t!rinal"ki pro*ra$ - "ao Uin&oR"u iat!
,Wp!r t!rinal$ Izab!rit! o&*ovaraju0i C<M port i u po&!avanjia izab!rit! 48++
bita u "!kun&i# 8 bita po&ataka# b!z prov!r! parno"ti i j!&an "top bit$ Spojit! kon!ktor
"a kopjut!ro i uklju2it! ikrokontrol!r$ Svaki put ka&a *a uklju2it! (ili r!"!tuj!t!)#
poruka IZ&ravo1J 0! "! prikazati na !kranu$
- pro*rau nij! kori0!n S;a&&oR r!*i"tar zbo* ja"nij! ilu"tracij!$ M!%uti# u
r!alnoj "ituaciji bilo bi *a kori"no ipl!!ntirati$
Iako j! za "!rij"ku kounikaciju n!op;o&an ta2no o&r!%!n takt o"cilatora# po"toj!
"o9tv!r"k! t!;nik! koj! oo*u0avaju CS@K@ kounikaciju !r!nj! "i*nala "a
kopjut!ra# i kalibri"anj! "op"tv!no* vr!!na "i*nala i pauz! po ovo "i*nalu$
Ti! j! oo*u0!na upotr!ba j!9tinij!* CC o"cilatora &ovoljn! brzin!$ Za &!talj!
po*l!&ajt! t!;ni2ka uput"tva 8'F1+# 8'FFF# 8'FYK i 8'P1@ "a
;ttp/MMRRR$icroc;ip$coM$
Savr!!niji PIC ikrokontrol!ri iaju ;ar&v!r"ki r!!nu CSB@K@ kounikaciju$
Go& CS4@K &rajv!ra prij!nik i pr!&ajnik "u (kao ko& CS@K@) polarizovani u o&no"u
na a"u$ M!%uti# napon"ki nivoi "u u o& B4 &o B6 za lo*i2ku 1 i H4 &o H6> za
lo*i2ku +$ To oo*u0ava &a j! (uz kori0!nj! i"to* kounikaciono* protokola)
CS4@K kopatibilan "a CS@K@ &rajv!ro# ali &a o! po"ti0i brzinu pr!no"a
po&ataka &o 1++k5MS# kao i &a "i*nal "a j!&no* pr!&ajnika o*u i"tovr!!no priati
1+ prij!nika$
11Y
46. A$gor#"&# 1 de"e05#(3 gre;0
Priliko pr!no"a po&ataka o*u0! j! &a "! na "pojni put!via jav! o&r!%!n!
"!tnj!$ 'a pri!r# ukoliko "! obilni t!l!9on uklju2i u blizini kablova koji "u
pov!zani PIC i kopjut!r$ Priliko "lanja po&ataka in9racrv!no v!zo o*u0! j!
&a "v!tlo"t "unca ili "ijalic! o!ta i"pravan prij!$ Pri ra&io v!zi "!tnj! bi o*la
izazvati *rljavina ili aktivno"t lokalno* ra&io pr!&ajnika$
Gako bi ikrokontrol!r o*ao i"pravno priati "i*nal! i u "lu2aju "!tnji# po!ljno
j! "o9tv!r"ki &!t!ktovati "!tnj! i (ukoliko j! to o*u0!) ukloniti i; iz kori"no*
"i*nala$ To n! zna2i &a "! "a ti! tr!ba pr!t!rivati (u pri!ru u prolo po*lavlju
pr!tpo"tavlja "! &a "! ikrokontrol!r nalazi u n!po"r!&noj blizini kopjut!ra pa j!
uticaj "!tnji zan!arljiv)# po*otovu to al*oritii zauziaju &!o brzin! i
!orij! ikrokontrol!ra i to "u njia pr!n!ti po&aci v!0i o& ori*inalni;# pa j!
"lanj! "porij!$
- va! t!rinal"ko pro*rau pri!tili "t! po&!avanj! prov!r! parno"ti$ Go& nj!
bit nakon MS5 "a&ri in9oraciju o i"pravno prilj!ni; raniji; P bita$
Gako 9unkcioni! prov!ra parno"ti? 'ajpr! "! bitovi +BP ko&a !lj!no* karakt!ra
r!&o "abiraju# i prov!rava "! &a li j! nji;ov zbir paran broj (&!ljiv "a @ b!z o"tatka)$
-koliko j!"t! MS5 "! "!tuj! (parna parno"t) ili r!"!tuj! (n!parna parno"t)$ Za "lovo 8
(bQ+1++ +++1Q) i n!parnu parno"t po"lati bitovi bi iz*l!&ali ovako/
ST8CT +1@K 4F6P 5IT P8C'<STI ST<P
+ 1+++ ++1+ + 1
T!rinal"ki pro*ra u kopjut!ru nakon prij!a "abira r!&o bitov! +BP i
upor!&juj! nji;ovu parno"t "a prilj!ni bito parno"ti$ - "lu2aju n!"la*anja
prijavi0! *r!ku ili 0! j!&no"tavno i*nori"ati prilj!ni karakt!r$
<vaj princip j! &ovoljno pouz&an za &!t!kciju *r!k! na& j!&ni bito po"lato*
po&atka$ M!%uti# u "lu2aju pojav! *r!k! na& vi! bitova bit parno"ti nij! &ovoljan$
-!"to prov!r! bita parno"ti o! "! o&r!%!ni broj prilj!ni; bajtova "abrati i
upor!&iti nji;ov zbir$ 'a pri!r ukoliko "! u kopjut!r alju "l!&!0i po&atci/ K# 8# 1F#
4# @6# 8P u ikrokontrol!ru bi "! izra2unao nji;ov zbir KH8H1FH4H@6H8PV14K koji bi
"! po"lao nakon po&ataka unutar par &o&atni; bajtova$ Gopjut!r bi nakon prij!a
"abrao "v! po&atk! i upor!&io &obij!ni r!zultat "a prilj!ni$ Taj princip naziva "!
prov!ra ukupno* zbira (!n*$ c;!ck"u)$ 'aalo"t "a nji "u pr!n!!ni po&atci &ui# a
ni on nij! pouz&an u "lu2aju po*r!no prilj!na @ (ili vi!) bita (ukoliko na pri!r
nij! prilj!n nij!&an bit po&ataka niti kontroln! vr!&no"ti# "vi Jprilj!niJ bajtovi kao
i nji;ov zbir bi0! j!&naki +# to po*r!no in&ikuj! i"pravno prilj!n! po&atk!)$ <vo j!
ipak no*o pouz&anij! o& prov!r! parno"ti$ >i! o c;!ck"uu iat! u T5+@6$
'ajprakti2niji na2in &!t!kcij! *r!aka u pr!no"u po"ti! "! pri!no CCC (!n*$
CWclic C!&un&ancW C;!ck) al*orita# koji prua najbolji koproi" iz!%u brzin!
al*orita# pouz&ano"ti &!t!kcij! *r!k! i v!li2in! &o&atno pr!n!ti; po&ataka$ >i! o
nj!*ovo principu iat! u 8'PK+$
1@+
- "lu2aju &vo"!rn! kounikacij! (ikrokontrol!r ka kopjut!ru i kopjut!r ka
ikrokontrol!ru) o*u0! j! nakon &!t!ktovan! *r!k! u "uprotno "!ru po"lati
po&atak o r!&no broju n!i"pravno* po&atka# i na taj na2in zatraiti j!&ino nj!*ovo
ponovno "lanj!# ili pak ponovno "lanj! c!l! *rup! po&ataka (ta2nij! za "i*nalizaciju
*r!k! pri CS@K@ v!zi kori"t! "! &o&atni provo&nici# ali "! oni u*lavno izb!*avaju)$
Svakako &a j! ovaj na2in prili2no vr!!n"ki za;t!van# a nij! ni o*u0 u "lu2aju
j!&no"!rn! kounikacij!$ 3a ti probl!i pr!vazili pri!njuju "! al*oriti za
kor!kciju *r!aka$ <ni 0! biti &!taljnij! objanj!ni u nar!&no po*lavlju$
-*lavno j! potr!bno prona0i koproi" iz!%u naj2!0i; vr"ta *r!aka i koli2in!
pr!n!ti; po&ataka za "pojni put (provo&nici# opti2ka v!za# au&io v!za# ra&io tala"i$$$)
koji "! kori"ti$ Pri to! no*o o! poo0i o&*ovaraju0i izbor o&ulacij! "i*nala$
Priliko CS@K@ kounikacij! "i*nali "! o&uliu pr!ko o&*ovaraju0!* &rajv!ra
(M8`@K@) koji pr!tvara napon"k! nivo! o& HF> i +> u H1F> i B1F># i &alj! "! oni
tako o&uli"ani pr!no"! kroz provo&nik!$ Go& -S5 ili I
@
C v!z! napon"ki nivoi "u +>
i HF>$ Go& o"tali; vr"ta "pojni; put!va u*lavno j! n!op;o&no !liini"ati
j!&no"!rnu kopon!ntu napona (&uu pojavu lo*i2k! + i lo*i2k! 1)$ Zbo* to*a "! za
o&ulaciju "poriji; (npr$ au&io) v!za o*u pri!njivati CTTg# 3TMF# FSG# PSG i
razni &ru*i na2ini$ Za o&ulaciju bri; (npr$ opti2ki;) v!za naj2!0! vr"t! o&ulacij!
"u Manc;!""t!r# CMI# Mill!r# MCMI i F565$ Iako j! ra&io# au&io ili opti2ka
kounikacija n!"unjivo int!r!"antna# pr!vazilazi okvir! ovo* uput"tva# tako &a 0!
na&alj! biti objanj!na j!&ino v!za i2ani provo&nicia$
-z n!o&*ovaraju0i izbor o&ulacij! n!0! >a poo0i ni najbolji kor!ktivni
al*orita$ Po*l!&ajt! "ao kolik! "u razlik! u brzini pr!no"a po&ataka pr!ko CS@K@ i
SPI v!z!# ili u &aljini pr!ko I
@
C i CS48F v!z!1
1@1
46. A$gor#"&# 1 0ore05#(3 gre;0
'ajj!&no"tavniji al*orita za kor!kciju po"lati; po&ataka za;t!vao bi pr!no"
po&ataka K puta# pri 2!u bi "! za i"pravno prilj!n! po&atk! uz!li "ao oni koji "u
bar u &va "lu2aja i"ta$ 'a taj na2in i"tovr!!no j! r!alizovana i &!t!kcija i kor!kcija
*r!aka$ M!%uti# taj princip j! prili2no n!!9ika"an# j!r "u pr!n!ti po&aci tri puta &ui
o& ori*inalni;# pa i pr!no" po&ataka traj! tri puta &u!$
8l*orita za kor!kciju j!&no* bita u tri po"lata bajta o*ao bi "! r!alizovati po
"l!&!0! principu$
Pr!tpo"tavio &a j! potr!bno CS@K@ v!zo pr!n!ti &va bajta (nazovio i; 8 i 5)$
Ca&i &!t!kcij! *r!aka alj! "! i bit parno"ti$ '!po"r!&no nakon nji; poalj! "! i bajt
C koji pr!&"tavlja r!zultat `<C op!racij! na& bajtovia 8 i 5$ I"pravna "ituacija
iz*l!&ala bi ovako/
A P B P # P
1011 1001 1 0110 1011 1 1101 0010 0
M!%uti ukoliko bi u pr!no"u po&ataka &olo &o *r!k! u bajtu 8# &o*a%a "! "l!&!0!/
A P B P # P
1010 1001 1 0110 1011 1 1101 0010 0
Prij!nik bi najpr! na o"novu bita parno"ti &!t!ktovao &a j! po*r!no prilj!n bajt 8$
3a bi *a r!*!n!ri"ao pri!njuj! `<C na& i"pravno prilj!ni bajtovia 5 i C$ <vo
j! "li2no zakonia u at!atici/ -koliko j! 8D5VC# on&a vai i 8VCM5 i 5VCM8$
0110 1011 B
A"R 1101 0010 #
6 1011 1001 A
3a j! po*r!no prilj!n bajt 5 izvrila bi "! `<C op!racija na& bajtovia C i 8# a &a
j! po*r!no prilj!n bajt C# n! bi "! ni izvravala kor!kcija# j!r "u na bitni j!&ino 8
i 5$ Sp!cijalan "lu2aj pr!&"tavljao bi po*r!no prilj!n bit parno"ti 8 ili 5 bajta$
<n&a bi "! r!*!n!ri"ani bajt upor!&io "a ori*inalni# i u "lu2aju &a "u oba bajta i"ta
zaklju2io &a j! po*r!no prilj!n upravo bit parno"ti$
Gako j! prov!ro bita parno"ti o*u0! i"pravno &!t!ktovati korupciju "ao j!&no*
bita unutar bajta# ovaj princip po*o&an j! j!&ino za r!*!n!raciju j!&no* bita unutar K
po"lata bajta (8# 5 i C)$ - "lu2aju korupcij! vi! bitova# potr!bno j! kori"titi &ru*a2ij!
al*orit!$
1@@
48. I
2
C
CS@K@ kounikacija po*o&na j! j!&ino za &ir!ktno pov!zivanj! &va ur!%aja$ 'jo j!
t!ko pov!zati PIC "a vi! ur!%aja i"tovr!!no (npr$ "a 8M3 konv!rtoro# &o&atno
==PC<M !orijo i jo j!&ni ikrokontrol!ro)$ Svakako &a j! takvu
kounikaciju o*u0! o"tvariti &ir!ktni pov!zivanj! pinova ikrokontrol!ra# ali
to troi nji;ov! &ra*oc!n! pinov!# i koplikuj! "o9tv!r zbo* razli2iti;
kounikacioni; al*oritaa$ I
@
C (!n*$ Int!r Int!*rat!& Circuit bu") v!za oo*u0ava
pov!zivanj! ikrokontrol!ra "a j!&ni ili vi! &o&atni; ur!%aja kori"t!0i za to "ao
&va pina# i I
@
C kounikacioni protokol$ 'aravno# i ti ur!%aji oraju iati o*u0no"t
("o9tv!r"ku ili ;ar&v!r"ku) I
@
C kounikacij!$ Za&nji; *o&ina pojavljuj! "! "v! vi!
;ar&v!r"ki; &o&ataka koji proiruju upotr!bu ikrokontrol!ra# a za kounikaciju
kori"t! upravo I
@
C v!zu (u!"to ranij! a&r!"n! i a*i"tral! po&ataka)$
- I
@
C v!zi o*u0! j! iati j!&an *lavni ikrokontrol!r (!n*$ Ma"t!r) koji upravlja
&o&atni I
@
C ;ar&v!ro (!n*$ Slav!)# ili pak vi! *lavni; ikrokontrol!ra (!n*$
Multia"t!r) o& koji; "vaki o! upravljati &o&atni Slav! I
@
C ;ar&v!ro$ -
na"tavku 0! biti opi"an j!&ino prvi "lu2aj$
I
@
C v!za j! "p!ci9i2na po to! to "! lo*i2ka 1 n! alj! na uobi2aj!ni na2in# v!0
pr!&ajnik priliko pr!&aj! lo*i2k! 1 pr!lazi u "tanj! ulaza (vi"ok! ip!&an"!)# a
lo*i2ka 1 "! javlja po& uticaj! (!k"t!rno* ili int!rno*) pull up otpornika$ Prij!nik
j! za to vr!! tako%! u "tanju ulaza# ali on (za razliku o& pr!&ajnika) vo&i ra2una o
"i*nalu koji pria$ 'a taj na2in oo*u0!na j! kounikacija pr!ko j!&n! linij!# uz
n!o*u0no"t kratko* "poja$ Pr!ko &ru*! linij! Ma"t!r ob!zb!%uj! takt n!op;o&an za
"in;ronizaciju prij!nika "i*nala$ Takt ora biti "tro*o "in;ronizovan "a "lanj!
"i*nala$ Po"toji o*rani2!nj! nj!*ov! ak"ialn! brzin!# ali n! i inialn!# tako &a 0!
Slav! priliko "lanja po&ataka po potr!bi 2!kati &ok Ma"t!r n! bu&! "lobo&an za
nji;ov prij! (tj$ &ok Ma"t!r n! poalj! takt)$
Gako j! al*orita I
@
C protokola razvij!n tako &a j! n!o*u0! &a &va ur!%aja
i"tovr!!no alju po&atk!# "vaki Slav! ia "voju j!&in"tv!nu a&r!"u pr!ko koj! u "!
pri"tupa$ 7!&an &!o a&r!"! u 9abri2ki &o&!lj!n na o"novu 9unkcij!# a &ru*i &!o bira
"! 9izi2ki pr!"pajanj! pinova$ Svako Slav! ;ar&v!ru pov!zano "a Ma"t!ro
tr!ba inicirati "lanj! ili prij! po&ataka$ - "lu2aju &a j! potr!bno n!pr!ki&no
t!"tiranj! Slav! ;ar&v!ra# n!pr!"tano bi "! izvravala nji;ova prozivka (kao u >oj"ci)$
Priliko prij!a bajta za a&r!"iranj! Slav! ;ar&v!ra "vaki o& priklju2!ni; Slav!
&!t!ktuj! &a li "! ra&i o nj!u# i pr!&uzia tra!nu akciju (obi2no "lanj! ili prij! par
bajtova)$ Svaki Slav! ;ar&v!r ia "voj! "p!ci9i2no"ti tako &a "! oraju prou2iti
nj!*ovi t!;ni2ki po&atci$ 'a pri!r priliko "nianja bajta u I
@
C ==PC<M
!oriju potr!bno j! po"lati P bita za a&r!"iranj! ba to* Slav! ;ar&v!ra (r!"!tovan
:S5 u nj!u inicira upi")# @ bajta za a&r!"u (za !orij! &o 64Gb) i 1 bajt po&atka$
Za 2itanj! "! alj! P bita za a&r!"iranj! Slav! ;ar&v!ra ("!tovan :S5 inicira 2itanj!)# @
bajta za a&r!"u i 2ita "! 1 bajt$ Po2!tak# kraj kao i raz&vajanj! bajtova r!alizovani "u
"li2no kao u CS@K@ kounikaciji pr!ko ST8CT# ST<P i jo par kontrolni; bitova$
I"to kao CS@K@ i I
@
C protokol j! ;ar&v!r"ki ipl!!ntovan u o0niji PIC
ikrokontrol!ria$ Za vi! &!talja po*l!&ajt! 8'F1F# 8'F41# 8'FF4 i 8'FP8$
1@K
49. RS484? RS422
CS@K@ za;t!va napon! o& BK> i ni!# i HK> i vi!$ CS4@K napon! o& B4 i ni!# i H4 i
vi!$ I
@
C napon! o& HF> i +>$ M!%uti# nji;ovi &rajv!ri kori"t! zaj!&ni2ku a"u#
tako &a i por!& tolik! razlik! napona ni"u po*o&ni za v!0! &aljin! zbo* o*u0i;
"!tnji$ S!tnj! koj! o*u biti in&ukovan! (u o&no"u na a"u) o*u na "trani
prij!nika uticati na po*r!nu &!t!kciju napona$ Zbo* to*a j! za v!0! &aljin!
prakti2nij! kori"titi &i9!r!ncijalni pr!&ajnik i prij!nik$
Go& &i9!r!ncijalno* priopr!&ajnika u!"to linij! za "i*nal i a"! kori"t! "! &v!
linij! (8 i 5) za "i*nal# i zaj!&ni2ka a"a$ Ga&a j! na liniji 8 HF> na 5 j! +> i to
pr!&"tavlja lo*i2ku 1$ :o*i2ku + pr!&"tavlja +> na 8 i HF> na 5 liniji$ - prij!niku
"! &!t!ktuj! razlika napona na ov! &v! linij!$ Zbo* u"p!n! &!t!kcij! razlika napona
ora biti bar +#@># ali &rajv!ri 0! po CS48F "tan&ar&u ra&iti i "a bilo koji naponia
o& BP> &o H1@>$ Gako "! in&ukovan! "!tnj! javljaju na "vi provo&nicia# on! "!
potiru# oo*u0avaju0i brzinu pr!no"a o& 1+MbMS &o 1+ &aljin!# ili 1++kbMS &o
1#@k$
- "lu2aju &a brzina nij! bitna# "o9tv!r "! po&!ava za najanju (a ipak &ovoljnu)
brzinu$ - protivno# po"t!p!no "! pov!0ava brzina &o pojav! *r!aka$ <n&a "! brzina
alo "anji# i o"tavi na toj vr!&no"ti$ Za &!t!kciju *r!aka o*u "! kori"titi ranij!
opi"ani al*oriti$ Po2!tni i krajnji &rajv!r tr!baju na "voji ulazni M izlazni
pinovia iati It!rinator"k!J otpornik! kojia "! !liini! r!9l!k"ija "i*nala "a
kraj!va linija$
5u&u0i &a j! pr!ko PIC ikrokontrol!ra o*u0! j!&ino pr!&ati# a n! i priiti "i*nal!
"a CS48F v!z! (<vo nij! "a"vi ta2no$ Za &!t!kciju bi "! o*li kori"titi int!*ri"ani
koparatori napona ili 8M3 konv!rtori pri"utni u o0niji ikrokontrol!ria# ali "a
loiji r!zultatia)# za &!t!kciju "i*nala oraju "! kori"titi M8`48F# TI PF1PF#
3S148P ili S'PF1P6 &rajv!ri$ Iako j! "a"vi o*u0! &ir!ktno "a pinova
ikrokontrol!ra proizvo&iti potr!bn! pr!&ajn! napon!# po!ljno j! i za to kori"titi ova
kola# j!r "u ona proj!ktovana tako &a "anjuju !l!ktri2n! "!tnj!# 2ak i u "lu2aju
n!po"tojanja t!rinator"ki; otpornika$
Iako j! pri!no CS48F kounikaciono* protokola o*u0! po"ti0i v!lik! &aljin!
kori"t!0i j!9tin! linij! (npr$ t!l!9on"k! paric!)# ra&i bolji; r!zultata i v!0i; &aljina
po!ljno j! izabrati provo&nik! 2ija j! ip!&an"a priblino j!&naka ulaznoj ip!&an"i
prij!nika$ Za anj! brzin! i &aljin! ovo n! bi tr!balo pr!&"tavljati probl!$
Pr! proj!ktovanja kola# prou2it! t!;ni2k! po&atk! o&*ovaraju0i; kola# j!r "! nji;ov!
karakt!ri"tik! prili2no razlikuju$ 'a pri!r uz M8`481# M8`48K# M8`48F#
M8`48P i M8`148P o*u0! j! o"tvariti &vo"!rnu naiz!ni2nu kounikaciju
("ipl!k") pr!ko "ao &v! linij!# &ok j! M8`488 i M8`4Y+ kolo o*u0
i"tovr!!n prij! i pr!&aja# ali pr!ko 2!tiri linij! (&upl!k")$ M8`488 ili M8`4Y1
&rajv!ro o*u0! j! r!alizovati r!p!titor "i*nala koji po"tavlj!n na polovini linij!
r!*!n!ri! "i*nal i tako oo*u0ava &uplo &u! linij!$ Po"toj! i *alvan"ki izolovani
&rajv!ri (po*o&ni za po&ru2ja "a jaki "!tnjaa O *rljavino)# npr$ M8`@FK i
M8`148+$ Ipak# najbolj! j! u ti "lu2aj!via ukopati linij! ili kori"titi koak"ijaln! ili
opti2k! kablov! (jo ka&a bi i T!l!ko Srbij! to ";vatio)$
1@4
Gako j! CS48F protokolo o*u0! &a "! pinovi pr!&ajnika i"klju2! (tako to pr!%u u
vi"okoip!&an"no "tanj! O "li2no ulazia ikrokontrol!ra)# o*u0! j! na taj na2in
kao u I
@
C protokolu pr!ko i"ti; linija paral!lno pov!zati vi! ikrokontrol!ra$
'aravno# ora "! pov!"ti ra2una o "pr!2avanju i"tovr!!n! pr!&aj! (npr$
poj!&ina2ni a"&r!"iranj! kao u I
@
C protokolu)$
<vo j! o*u0! j!r CS48F "tan&ar&o nij! propi"an kounikacioni "o9tv!r# v!0
j!&ino ;ar&v!r$ To zna2i &a o!t! napi"ati "op"tv!ni kounikacioni protokol (ili
kori"titi *otovi CS@K@ O po*otovu ukoliko j! ;ar&v!r"ki ipl!!ntovan u
ikrokontrol!ru) koji 0! za&ovoljiti va! konkr!tn! potr!b!$ To prua "lobo&u
pro*ra!ru &a unutar protokola u*ra&i "op"tv!n! al*orit! Iprozivk!J vi! &o&atni;
ikrokontrol!ra (&o K@ ili uz vi! &rajv!ra u j!&no int!*ri"ano kolu &o @F6)#
al*orit! &!t!kcij! i kor!kcij! *r!aka# j!&no r!2ju &a kori"t!0i "tan&ar&an "tabilan
kounikacioni ;ar&v!r "o9tv!ro kounicira na koji *o& na2in !li$
Gori0!nj! r!p!titora o*u0! j! r!alizovati virtu!lno b!"kona2n! r!!$ M!%uti
uz v!0! &aljin! i vi! pov!zani; ikrokontrol!ra (po*otovu uz r!p!titor!) kanj!nj!
"i*nala o! biti pr!v!liko$ 6to &u! linij!# to v!0! kanj!nj!# "ai ti i anja
brzina$
'ajv!0a razlika iz!%u CS48F i CS4@@ protokola j! u pr!&ajniku$ CS4@@ pr!&ajnik
n! o! "! na0i u "tanju vi"ok! ip!&an"!# tako &a ikrokontrol!r o! j!&ino "lati
"i*nal pr!ko &v! linij!# &ok bi taj "i*nal o*lo i"tovr!!no priati &o 1+ prij!nika$
Za vi! &!talja po*l!&ajt! 8'1+P6$
<"i ovi;# po"toji jo par CS (!n*$ R!co!n&!& Stan&ar&) protokola poput CS44Y
i CSFK+# !%uti bu&u0i &a oni pr!&"tavljaju varijaciju v!0 opi"ani; principa# kao i
&a "! r!tko ka&a kori"t!# ov&! n!0! biti razatrani$
1@F
4:. D+C412
Pon!ka& j! &ovoljno "lati in9oracij! "ao u j!&no "!ru$ 3M`F1@ (!n*$ Di*ital
+ultipl!C) pr!&"tavlja kounikacioni protokol "po"oban za a&r!"iranj! &o 412
prij!nika i koji "! u*lavno kori"ti za upravljanj! ra"v!to$ Za pov!zivanj! "!
kori"t! CS48F &rajv!ri# a protokol pr!&"tavlja "o9tv!r za upravljanj! ti &rajv!ria$
Gako "! 3M`F1@ protokolo pov!zuj! j!&an pr!&ajnik "a vi! prij!nika "ao u
j!&no "!ru# prij!nici n!aju na2in "i*nalizacij! n!i"pravno prilj!no* po&atka$
Gonkr!tno za "lu2aj ra"v!t!# to i nij! ni potr!bno$ .ak i &a &o%! &o *r!k!# ionako
0! nar!&ni po&atak "a&rati i"pravnu vr!&no"t ja2in! "v!tla$ 3M`F1@ protokol
napravlj!n j! tako &a "! po&aci n!pr!"tano (ta2nij! bar j!&no u "!kun&i) alju
prij!nicia$
Poto j! CS@K@ kounikacioni protokol int!*ri"an u noviji ikrokontrol!ria#
3M`F1@ pr!&"tavlja o&i9ikaciju CS@K@ protokola kako bi "! nji pr!ko CS48F
&rajv!ra o*lo a&r!"irati &o F1@ prij!nika$ Mo&i9ikacija "! "a"toji u &ru*a2ij!
obliku ST8CT bita (&o"ta &ua lo*i2ka + pa 1)# ST<P bita (&v! lo*i2k! 1) i r!&no
"lanju "vi; F1@ bajtova "a ST<P bitovia iz!%u nji;$ 5roj po"lati; bajtova o*ao
bi "! "anjiti za "lu2aj anj!* broja prij!nika$
Prij!nici bi orali r!&o brojati prilj!n! bajtov! kako bi vi&!li koji j! bajt za nji;$
>i! &!talja iat! u 8'1+P6 i na RRR$!"ta$or*$
1@6
41. -IN
:I' kounikacioni protokol po&rava &vo"!rnu kounikaciju pr!ko j!&no*
provo&nika (H a"a)$ Protokol j! na"tao ukrtanj! I
@
C i CS@K@ protokola$ 'apon na
liniji j! u n!aktivno "tanju na nivou lo*i2k! 1 *!n!ri"an! (kao ko& I
@
C) pull up
otporniko$ 5ilo koji 2lan r!! (!n*$ no&) o! na liniju po"lati lo*i2ku +# koja na
taj na2in pr!lazi u &oinantno "tanj! i bri! po"toj!0u lo*i2ku 1$
Za razliku o& I
@
C v!z! u!"to linij! za takt# po&aci "! kroz provo&nik pr!no"!
a"in;rono# kao ko& CS@K@ v!z!$
'apon na liniji (*!n!ri"an pullBup otporniko) izno"i o& Y &o 18> u o&no"u na a"u$
:I' protokol j! zbo* v!0!* broja no&ova napravlj!n tako &a ikrokontrol!ria
oo*u0i to j!9tiniji ;ar&v!r# pa j! zato o*u0! kori"titi CC o"cilator!# pri 2!u "!
"vi "lav! no&ovi "o9tv!r"ki "in;ronizuju "a a"t!ro po prij!u nj!*ovo* "i*nala$
Zbo* to*a kao "in;ronizacioni ipul" pr! "vak! poruk! a"t!r alj! bajt bQ+1+1+1+1Q$
Tako j! "vako "lav! no&u oo*u0!na "in;ronizacija kor!kcijo "op"tv!ni;
vr!!n"ki; rutina u "kla&u "a prilj!ni bit"ki vr!!nia lo*i2k! + i 1$
'akon "in;ronizaciono* bajta "l!&i j!&nobajtno za*lavlj!# u ko! "! "aoptava kakvi
po&aci "l!&!$ - nj!u 4 bita (bit + &o bit K) a&r!"iraju no&ov! na liniji# @ bita (bitovi 4
i F) o&r!%uju &uinu in9oracija (@# 4 ili 8 bajtova)# i za&nja @ bita (6 i P) "lu! za
prov!ru parno"ti za*lavlja$
:I' protokolo nij! "p!ci9iran 9orat nar!&ni; in9oracija# o"i S:==P koan&! i
c;!ck"ua in9oracija$
Gako nakon pojav! *r!k! :I' protokolo nij! oo*u0!na nj!na prijava# a"t!r
o! u &!lu "a in9oracijaa zatraiti prij!ni "tatu" o& poj!&ina2ni; no&ova$
Svi no&ovi o*u priati poruk! o& o"tali; no&ova &ir!ktno# tako &a &o&atna
int!rv!ncija a"t!ra u to "lu2aju nij! potr!bna$ Ipak# a"t!r ora ob!zb!&iti
povr!!nu prozivku no&ova u "lu2aju &a "u nji;ovi po&aci potr!bni o"tali
no&ovia$
Ma"t!r o! po"lati "v! no&ov! u "l!!p o&# "lanj! i&!nti9ikaciono* bajta +N8+$
<"tali no&ovi po prij!u ov! koan&! tr!baju po&!"iti int!rapt po pro!ni "tanja na
pinu na liniji# tako &a i oni o*u oti0i u "l!!p o&$
5ilo koji no& o! probu&iti o"tal! "lanj! +N8+ ko&a$ Po nj!*ovo prij!u "vi
no&ovi "! bu&! i 2!kaju &alj! in9oracij! o& a"t!ra$
:I' protokol nij! "t!kao v!liku popularno"t zbo* kanj!nja u proizvo&nji
o&*ovaraju0i; int!*ri"ani; &rajv!ra# al! &aljin! i po&lono"ti "!tnjaa u"l!&
&ir!ktno polari"an! linij!$ Za vi! &!talja po*l!&ajt! 8'P@Y# 8'@KF i 8'@KP$
1@P
42. DA-I
3M`F1@ kounikacija j! j!&no"!rna$ Zato joj j! pri!na o*rani2!na na upravljanj!
ra"v!to$ M!%uti# nj!n princip j! n!prakti2an u "lu2aju kvara "ijalic! (r!9l!ktora)$
Z*o&nij! bi bilo ka&a bi bilo o*u0! &a &rajv!r za "ijalicu &!t!ktuj! &a li ona zai"ta
ra&i# i &a po potr!bi obav!"ti a"t!r o kvaru$
38:I (!n*$ 3i*itallW 8&&r!""abl! :i*;tin* Int!r9ac!) protokol j! na!nj!n
upravljanju pr! "v!*a 9luo c!via$ Zbo* 2!*a ba njia? Zbo* to*a za i"tu potronju
!l!ktri2n! !n!r*ij! ja2u "v!tlo"t o& nji; (:MU) &aju j!&ino !talB;ali&n!#
"o&iju"k! (i ni"ko* i vi"oko* priti"ka) "ijalic!# krio*!n"k! i r!tki :uN!on
!k"p!ri!ntalni tipovi :=3$ 6to "! ti2! po2!tni; inv!"ticija# o& "vi; ovi; tipova
j!&ino 9luo c!vi "! o*u nabaviti po povoljnoj c!ni$ Iako j!&na 9luo c!v kota oko
1#K_ (u o&no"u na "ijalicu "a uar!ni vlakno koja j! oko +#@_)# vr!!no 0! "!
i"platiti kroz anji ra2un za !l!ktri2nu !n!r*iju$ >!rujt! i na r!2$ Ia i; u "vi
pro"torijaa o"i kupatila (zbo* vla*!)$
Iako "! r!*ulacija "v!tlo"ti "ijalica "a uar!ni vlakno lako ipl!!ntira 9azno
r!*ulacijo# ko& 9luo c!vi "a pri*unicaa j! to no*o t!! izv!"ti$ T!k "u "! oko
@+++Bt! *o&in! pojavili tranzi"tori &ovoljno j!9tini i &ovoljno v!liko* probojno*
napona &a o*u po"luiti kao konv!rtori r!no* napona u napon potr!ban za ra&
9luo c!vi$ Taj princip kori"ti 38:I za 9unkciju &i!ra (!n*$ 38:I &iin* balla"t)$
3i!ro j! oo*u0!no &a "! potronja !l!ktri2n! !n!r*ij! jo vi! "anji$
'a 38:I int!r9!j" o*u0! j! pov!zati &o 64 no&ova$ C!*ulacija "v!tlo"ti po"ti*nuta
j! u @FF koraka# ali lo*arita"ko* o&no"a$ <n prua priro&niji o&no" poja2anja i
"anj!nja "v!tlo"ti$ Tako%! j! o*u0! proizv!"ti i o0n! !9!kt! po"t!p!no*
poja2anja ili "anj!nja "v!tla# po&!avalj! "v!tla po *rupaa i "li2no$
38:I protokol n!a po"!bn! int!*ri"an! &rajv!r!$ -!"to nji;# ipl!!ntirani "u
&i"kr!tno t!;nolo*ijo$ Ta2nij!# za prij! i pr!&aju "i*nala kori"t! "! optokapl!ri#
2i! j! por!& ni"k! c!n! &rajv!ra oo*u0!no i *alvan"ko o&vajanj! linij! o& r!no*
napona$
Gako j! 38:I protokol r!zultat "ara&nj! Microc;ipa i Int!rnational C!cti9i!ra#
&o&atn! in9oracij! o 38:I protokolu o*u "! j!&ino naru2iti na C3Bu "a "ajta ;ttp/MM
RRR$ir9$coMpro&uctBin9oMli*;tin*M$ Za vi! &!talja po*l!&ajt! 8'8+Y i 8'811$
1@8
4). SPI
SPI (!n*$ S!rial P!rip;!ral Int!r9ac!) pr!&"tavlja kounikacioni protokol na!nj!n
brzo pr!no"u "i*nala# na kratki o&"tojanjia$ Iako SPI protokol n!a o*rani2!nj!
najanj! brzin!# zbo* br!* pr!no"a v!0! koli2in! po&ataka "! ikrokontrol!ru
obi2no zabranjuj! izvravanj! o"tali; op!racija$ -pravo zbo* to*a >a &i*italni 9oto
aparat n! o!t! i"tovr!!no kori"titi kao R!b ka!ru# niti na MPK pl!j!ru n!
o!t! "luati uziku &ok j! pov!zan "a kopjut!ro$
<bi2no "! kori"ti priliko kounikacij! "a "!rij"ki ==PC<M !orijaa# kao i
!orij"ki karticaa (MMC# S3# N3# CF$$$)$ Iako !orij"k! kartic! u o"novi
pr!&"tavljaju v!liku ==PC<M !oriju# iajt! u vi&u &a j! proc!" 9oriranja
"i"t!a za po&rku 9ajlova (!n*$ Fil!"W"t! npr$ F8T16# F8TK@ ili 'TFS) u
!orij"ki karticaa kao i "i"t! "nianja i 2itanja 9ajlova iz takvo* 9ajl "i"t!a
prili2no koplikovan# tako &a PIC16 "!rija ikrokontrol!ra obi2no n!a &ovoljno
r!"ur"a za nj!no !9!ktno kori0!nj!$
SPI protokol "li2an j! I
@
C protokolu# "a *lavno razliko a&r!"iranja razni; "lav!
ur!%aja pr!ko po"!bno* pina# a n! prozivko nji;ov! a&r!"!$ 'a taj na2in "lav!
;ar&v!r n! ora iati &o&atn! pinov! za 9oriranj! "voj! a&r!"!# ali ikrokontrol!r
ora ob!zb!&iti po j!&an pin za a&r!"iranj! "vako* "lav! ;ar&v!ra ponao"ob$
Za j!&an SPI "lav! ;ar&v!r &ovoljn! "u tri linij!# a "vaki nar!&ni ora iati "voj CS
(!n*$ C;ip S!l!ct) pin$ -koliko j! na CS pinu pov!zano na o&*ovaraju0i "lav! SPI
;ar&v!r pri"utna lo*i2ka +# on&a 0! on r!a*ovati na "i*nal! "a o"tal! &v! linij!$ -
protivno# i*nori"a0! i; i nj!*ovi pinovi bi0! n!pr!"tano u "tanju vi"ok! ip!&an"!#
oo*u0avaju0i a&r!"iranj! o"tali; "lav! SPI ;ar&v!ra$ Int!r!"antna j! o*u0no"t
i"tovr!!no* "lanja po&ataka "vi Slav! ;ar&v!ria ukoliko "u "v! CS linij! na
lo*i2koj + ("vi "lav! o2!kuju po&atk!)$
I"to kao ko& I
@
C protokola# ikrokontrol!r (a"t!r) j! uv!k za&u!n za *!n!ri"anj!
takta pr!ko SCG linij!$ Pr!ko &ru*! (SI) linij! "in;ronizovano "a takto alju "!
po&atci u ili iz ikrokontrol!ra$
Za vi! &!talja po*l!&ajt! 8'@48# 8'648 i 8'Y+Y$
I"to kao i CS@K@ i I
@
C ko& o0niji; ikrokontrol!ra j! SPI ;ar&v!r"ki
ipl!!ntovan$
1@Y
44. INK'e"
CS48F "tan&ar&o propi"an j! j!&ino ;ar&v!r$ I'Gn!t pr!&"tavlja "o9tv!r razij!n o&
"tran! =& 'i"l!WBja# a 2iji "u principi opi"ani u Circuit C!llar 2a"opi"u$ Za razliku o&
3M`F1@ protokola# I'Gn!t protokolo o*u0a j! &vo"!rna kounikacija$
Iako j! I'Gn!t protokol prv!n"tv!no razvij!n za 8+F@ ikroproc!"or (ti; *o&ina "u
ikrokontrol!ri bili r!tki i "kupi)# protokol "! o! i"kori"titi ili prila*o&iti bilo ko
&ananj! ikrokontrol!ru$
Gounikaciju inicira c!ntralni ikrokontrol!r (a"t!r)# alju0i za;t!v za
in9oracijaa poj!&ina2ni 0!lijaa (no&ovia B !n*$ no&!)$ <blik poruk! j! takav
&a "! u njoj pr! in9oracij! alj! &!"!tobajtno za*lavlj!# a nakon nj!*a in9oracij!
"v! &o ak"ialn! v!li2in! poruk! o& @FF bajtova$
bajt + O r!z!rvi"ano# ora biti +
bajt 1 O &uina poruk! "a za*lavlj! (Y &o @FF)
bajt @ O a&r!"a no&a priaoca in9oracij!
bajt K O koan&a priaocu
bajt 4 O a&r!"a no&a poaljioca in9oracij!
bajt F O a&r!"a r!z!rvi"ano* no&a
bajt 6 O MS5 bajt "tatu" 9la*ova no&a
bajt P O :S5 bajt "tatu" 9la*ova no&a
bajt 8 O :S5 bajt c;!ck"ua
bajt Y O MS5 bajt c;!ck"ua
bajtovi 1+ &o @FF O in9oracij!
-o2avat! &a j! ovi na2ino o*u0! po"lati ak"ialno @4F bajtova in9oracija$
>i! in9oracija oralo bi "! po"lati unutar vi! poruka (kao SMS poruk!)$ Iako "vi
no&ovi o*u i"tovr!!no priiti in9oracij!# a"t!r j! taj koji 0! na o"novu
za*lavlja (i in9oracija) r!*uli"ati ra& i kounikaciju iz!%u no&ova$
Sli2no kao a&r!"a no&a priaoca i poaljioca# r!z!rvi"ani no& 0! na&alj! o&*ovarati na
poruk! poaljioca koji *a j! r!z!rvi"ao$
Goan&a priaocu ukazuj! ta no& priaoc poruk! tr!ba ura&iti "a in9oracijo$
<v&! "u prikazan! "tan&ar&n! koan&!# ali o*u "! po potr!bi proiriti# to zavi"i o&
konkr!tni; za;t!va r!!$
8+ B P<:: Poll 9ro a"t!r to no&!
81 B ST8T-S Statu" r!"pon"! 9ro no&! to a"t!r
8@ B -'5-Sg Forc! no&! ^unbu"W^ r!*ar&l!"" o9 actual "tatu" (u"! Rit; caution1)
88 B C=S=C>= C!"!rv! no&! 9or !Nclu"iv! u"! o9 ^9ro^ no&! (!Nc!pt 9or poll" h
r!"pon"!")
8Y B C=:=8S= C!l!a"! no&! 9or *!n!ral u"! (aW b! "!nt bW anW no&!)
Y+ B C<'S<-T Con"ol! output (to &i"plaW)
Y1 B C<'SI' Con"ol! input (9ro k!Wboar&)
Y@ B C<'S=C,< =c;o o9 con"ol! input !""a*!
YK B C<'SFI:= Con"ol! input (9ro 9il!)
1K+
-nutar "tatu" bajta no&a# tako%! (kao ko& ST8T-S r!*i"tra ikrokontrol!ra)
o&r!%!ni 9la*ovi opi"uju 9unkcij! no&a$ Fla*ovi "u "l!&!0i/
1F B 5-Sg 'o&! i" bu"W ;an&lin* pr!viou" !""a*!
14 B <>=CC-' 8t l!a"t on! pr!viou" !""a*! Ra" lo"t
1K B =C,< 'o&! Rill !c;o all C<'SI' !""a*!"
1@ B :FSTCIP 'o&! "trip" :F a9t!r CC on C<'SI' "*"
11 B CS-M 'o&! &!t!ct!& a c;!ck"u !rror
1+ B r!"!rv!&
+Y B r!"!rv!&
+8 B M8ST=C 'o&! i" n!tRork a"t!r
Fla*ovi o& + &o P "u r!z!rvi"ani$
<vakav princip oo*u0ava !9ika"nu int!*raciju "tan&ar&no* CS48F &rajv!ra i
na!n"ko* "o9tv!ra za pravlj!nj! "op"tv!n! r!! ikrokontrol!ra$ 3!t!kcija *r!aka
ipl!!ntirana j! c;!ck"uo# a kor!kcija ponovni "lanj! in9oracij! ukoliko
prij!ni no& poalj! za*lavlj! "a "!tovani CS-M bito nj!*ovo* "tatu" bajta$
Za vi! &!talja po*l!&ajt! 2a"opi"! Circuit C!llar broj 1+ (av*M"!p 1Y8Y)# 11 i 1@$ -
njia o!t! prona0i i objanj!nja int!r!"antni; principa kounikacija b!z a"t!ra
(&!t!kcijo kolizij! ili r!&ni tran"9!ro &ozvol! pr!&aj! o& j!&no* ka &ru*o
no&u)$ -nutar i"ti; 2a"opi"a o!t! vi&!ti i or*anizacionu "trukturu "lo!niji;
kounikacioni; protokola# 9oriranu po "loj!via (!n*$ :aW!r") u C=5u" protokolu$
Za j!&no"tavniji kounikacioni protokol pr!ko CS48F &rajv!ra po*l!&ajt! 2a"opi"
Circuit C!llar broj @1$
1K1
44. SAART'e"
I'Gn!t protokol "a CS48F &rajv!ria por!& o2i*l!&ni; pr!&no"ti ia i par ana$
Por!& "i*nala# "vako no&u potr!bno j! &ov!"ti i napon napajanja (HF> i +>)$ 5ilo bi
"vakako j!9tinij! ako bi "! broj provo&nika o*ao na n!ki na2in "anjiti$ SB8CTn!t
(!n*$ S!rial# 8&&r!""abl!# C!c!iv!MTran"itt!r) protokol r!ava ovaj probl!# tako to
"! kroz &va provo&nika pr!no"i i napon napajanja i kori"tan "i*nal$ <vo j! oo*u0!no
tako to izlazni napon &rajv!ra o! biti 1F># P#F> ili +>$ Prij!nik na o"novu ovi;
napona &!t!ktuj! &a li j! po"lata lo*i2ka + ili lo*i2ka 1$ Gako napon o& +> traj!
prili2no kratko# no&ovia 0! za to vr!! napajanj! ob!zb!%ivati kon&!nzator$
SB8CTn!t protokolo o*u0! j! a&r!"irati &o K+ "lav! no&ova$
SB8CTn!t protokol kao i I'Gn!t ia a"t!r koji za kounicira "a poj!&ini "lav!
no&ovia$ M!%uti# nj!*ovi "lav! no&ovi ni"u &o&atni ikrokontrol!ri# v!0 i;
pr!&"tavlja "p!cijalizovano int!*ri"ano kolo CS@1@$ <no u "!bi ia obj!&inj!n
kounikacioni protokol# &va ulazna i &va izlazna pina i ulazno izlazni &rajv!r$
8&r!"a o&*ovaraju0!* "lav! no&a ;ar&v!r"ki "! po"tavlja pov!zuju0i pinov! CS@1@
kola ka a"i ili naponu napajanja ("li2no kao ko& I
@
C)$ Ma"t!r i "lav! no&ovi
kouniciraju pr!ko 1+Bbitni; poruka$ Poruka o! biti j!&na o& K "l!&!0a tipa/
1$ Sin;ronizacija O Ma"t!r alj! poruku +11111111+$ 'a o"novu nj! "vi "lav! no&ovi
"in;ronizuju "voj takt$
@$ Pii O Ma"t!r alj! poruku tipa 8+ 81 8@ 8K 84 Pa Ur 3+ 31 P& *&! 8+ &o 84
bitovi "a&r! a&r!"u !lj!no* no&a# 3+ i 31 lo*i2ko "tanj! koj! "! tr!ba po"taviti na
izlazni pinovia CS@1@ kola# Ur bit (1 za in&ikaciju upi"a) i Pa i P& bitov! za
prov!ru parno"ti a&r!"! i o"tatka poruk!
K$ .itaj O Ma"t!r alj! poruku 8+ 81 8@ 8K 84 Pa C& *&! "u 8+ O 84 bitovi a&r!"!#
Pa bit za prov!ru parno"ti a&r!"! i C& bit (+ za in&ikaciju 2itanja)$ Po prij!u# CS@1@
alj! poruku I+ I1 P& *&! "u I+ i I1 lo*i2ka "tanja na nj!*ovi ulazni pinovia# a P&
j! bit prov!r! parno"ti$
SB8CTn!t kao ni 38:I n! "a&ri int!*ri"an! &rajv!r! za a"t!r# ali i; ia u CS@1@
kolia$ '!op;o&na konv!rzija lo*i2ki; nivoa "! za a"t!r ob!zb!%uj! o&*ovaraju0i
konv!rtoria "i*nala$ Pr!ko ovo* protokola a"t!r o! a&r!"irati &o K+ "lav!
no&ova# o&no"no o2itavati 6+ u&alj!ni; ulazni; pinova# i po"tavljati &o 6+ u&alj!ni;
izlazni; pinova "lav! no&ova$
Po potr!bi# a"t!r o! p!rio&i2no vriti prozivku "vi; no&ova$ Zbo* al! &uin!
poruka i tro"t!p!no* "tanja na liniji# o*u0! j! prozivati "vi; K+ no&ova 6 &o P puta u
"!kun&i$ >i! o ovo protokolu iat! u 2a"opi"u Circuit C!llar broj @1$
1K@
46. CAN
Svi raniji principi za;t!vaju "o9tv!r"ku &!t!kciju iMili kor!kciju *r!aka u okru!nju
po&lono "!tnjaa$ 'aravno &a j! to o*u0! ura&iti (kao u I'Gn!t protokolu)# ali
Microc;ip "! potru&io pa j! "o9tv!r koji bi ina2! opt!r!0ivao ikrokontrol!r pr!bacio
u ;ar&v!r$ Tako j!&no int!*ri"ano kolo (MCP@F1+ ili MCP@F1F) obavlja
kounikacionu 9unciju (u kojoj j! ipl!!ntirana CCC &!t!kcija *r!aka# kor!kcija
*r!aka# izazivanj! int!rapta po prij!u "i*nala$$$)# a &ru*o pr!&"tavlja &rajv!r za
"pojni put (MCP@FF+ ili MCP@FF1)$ 3rajv!ro upravlja kounikacioni 2ip# a
kounikacioni 2ipo ikrokontrol!r pr!ko SPI protokola$
I"to kao CS48F# i C8' "tan&ar& kori"ti &i9!r!ncijaln! "i*nal!$ M!%uti# za razliku o&
CS48F# C8' "tan&ar&o propi"an j! i kounikacioni protokol$ - nj!u j!
ikrokontrol!r ra"t!r!0!n o& kounikacioni; al*oritaa# i o! "vu "voju "na*u
upotr!biti za ono za ta j! i na!nj!n$
Po C8' protokolu n! vri "! (kao ko& I
@
C ili I'Gn!t) prozivka "vako* poj!&ina2no*
no&a$ '!$ 'o&ovi "! n! a&r!"iraju ni po"!bni pinovia kao ko& SPI protokola$
-!"to to*a# no&ovi "u ravnopravni$ Svi oni oraju o&r!%!no vr!! Io"lukivatiJ
"tanj! na liniji pr! n!*o to po2nu "a pr!&ajo# kako n! bi upali u v!0 po"toj!0u v!zu$
-koliko "! ipak &o*o&i &a &va ili vi! no&ova i"tovr!!no zapo2nu pr!&aju po&ataka#
na "c!nu "tupa kolo za &!t!kciju kolizij! (!n*$ Colli"ion 3!t!ction)$
Po &!t!kciji kolizij! no& koji j! prvi pr!&ao lo*i2ku + unutar po&atka na"tavlja "a
pr!&ajo# &ok o"tali (2i &!t!ktuju + &ok u "tvari alju 1) o!ntalno pr!"taju "a
pr!&ajo# 2!kaju &ok "! n! zavri "a "lanj! kao i n!ko vr!! nakon to*a (&a "! n! bi
javilo novo pr!plitanj!)# i t!k on&a pokuavaju novu pr!&aju$ Gako j! lo*i2ka +
I&oinantnaJ# ona 0! uv!k pr!bri"ati lo*i2ku 1 ("li2no kao u I
@
C)$ 'a taj na2in
po&atak 0! "ti0i &o prij!nika n!iz!nj!n i b!z ikakvo* kanj!nja ili kor!kcij!# a za
kounikaciju "! (zbo* i"t! linij! za "lanj! i prij! po&ataka) kori"t! "ao &va
provo&nika (i zaj!&ni2ka a"a)$
- C8' r!i poj!&ina2ni no&ovi n!aju a&r!"!$ C8' protokol nij! a&r!"no v!0
koan&no orj!nti"an "i"t!$ Zbo* to*a no&ovi obi2no kouniciraju iz!%u "!b!
p!rio&i2no alju0i poruk! po liniji$ 8ko j! n!ko! potr!bna# !to u j!$ -koliko nij!#
i*nori"a0! "!$
Struktura C8' protokola oo*u0ava upotr!bu ;ar&v!r"ki; C8' !k"pan&!ra (kao ko&
SB8CTn!t v!z!)$ Microc;ip j! zaklju2io &a "! v!liki broj no&ova "a"toji j!&ino o&
o&*ovaraju0!* -MI ;ar&v!ra (-MI pinova# 8M3 konv!rtora ili PUM o&ulatora)# pa j!
proizv!o "!riju -MI !k"pan&!ra koji "! o*u &ir!ktno pov!zati na C8' r!u# i 2iji
j! ;ar&v!ro o*u0a &ir!ktna anipulacija o& "tran! o"tali; (int!li*!ntniji;) no&ova$
Za vi! &!talja po*l!&ajt! &ata";!!tov! &rajv!ra# kounikaciono* 2ipa# C8' IM<
!k"pan&!ra# 8'@1F# 8'@@8 i 8'PF4$
Cazvitko C8' r!! ori*inalni protokol pr!trp!o j! iz!n! "o9tv!ra# pa j! o*u0!
"r!"ti v!rzij! C8' 1$@# C8' @$+8# C8' @$+5 i =C8'$ 'a "r!0u# novij! v!rzij!
po&ravaju "tarij! (!n*$ backRar& copatibil!)$ Za vi! &!talja po*l!&ajt! 8'Y16$
1KK
7!&an &!o &o "a&a opi"ani; kounikacioni; protokola j! ;ar&v!r"ki int!*ri"an u ja2i
"!rijaa ikrokontrol!ra$ To ipak n! zna2i &a "! "labiji ikrokontrol!ri (2itaj
PIC16F84) n! o*u kori"titi za o&r!%!n! vr"t! kounikacija$ -v!k j! o*u0! (u
"lu2aju &a j! ikrokontrol!r &ovoljno brz) pravovr!!no &ir!ktno anipuli"ati
ulazno izlazni pinovia# i na taj na2in o"tvariti "o9tv!r"ku ipl!!ntaciju
;ar&v!r"ki; kounikacioni; rutina (!n*$ bitBban*in*) kao to j! ilu"trovano u CS@K@
v!zi$ Taj na2in n!ka&a o! biti i n!op;o&an (na pri!r priliko i"tovr!!n!
upotr!b! K CS@K@ v!z! j!&ni ikrokontrol!ro)$
Gounikacioni protokoli n! pr!"taju &a "! razvijaju$ I "ai v!rovatno znat! &a "!
n!ka&a o*ao kori"titi j!&ino &ialBup# zati IS3'# a on&a 83S:$ 5rzina i &alj! ra"t!$
Mikrokontrol!ri "u u potpuno i"toj "ituaciji$
1K4
46. Ko(3 ve13 odbr"#E
'! po"toji univ!rzalan o&*ovor na ovo pitanj!$ Sv! zavi"i o& to*a za ta >a j! potr!bna$ 3obar upor!&ni prikaz iat! u 2a"opi"u Circuit C!llar broj
@6$ - "l!&!0oj tab!li &at j! upor!&ni pr!*l!& ov&! opi"ani; vr"ta kounikacij! "a "voji "p!ci9i2no"tia/
:ara,e,/a R8232 R8485 D(X512 8:' '
2
C L'& DAL' 8?ART/et CA&
&rajv!r n! M8`@K@ M8`48F M8`48F n! n! &a PCKFP'T &a MCP@FF1
"o9tv!r nij! potr!ban ipl!!nt$ n! n! ipl!!nt$ ipl!!nt$ ipl!!nt$ n! ;ar&v!r"ki MCP@F1+
aN$ broj
2lanova
zavi"i o& a&r$
a*i"tral!
1 pr!&$# 1
prij$
K@ pr!&$# K@
prij$
1 pr!&$# F1@
prij$
1 pr!&$# alo
prij$
zavi"i o&
kapacit!ta linij!
1 a"t!r H
16 "lav!
1 a"t!r H 64
"lav!
1 a"t!r H K+
"lav!
11@ pr!&$#
11@ prij$
aN$ brzina o*rani2!na
;ar&v!ro
@+kbitaMS 1++kbitaMS
&o KMbitaMS
1++kbitaMS FMbitaMS 1++# 4++kbitaMS
ili K#@MbitaMS
@+kbitaMS ? ? 1MbitMS
aN &aljina ala#oko
+$F
1F 1#@k 1#@k ala#oko
+$F
ala#oko @+c 4+ ? ? 4+ pri
1MbitMS
&!t!k$ *r!"aka n! bit parno"ti zav$ o& "o9t$ n! n! n! parno"t H
c;!ck"u
? &va bita
parno"ti
;ar&v!r"ka
kor!k$*r!"aka n! zav$ o& "o9t$ zav$ o& "o9t$ n! n! n! zav$ o& "o9t$ ? n! ;ar&v!r"ka
aN$ napon
&rajv!ra
+># HF> B@F># H@F> BP># H1@> BP># H1@> +># HF> +># HF> +># H18> ? +># P$F># 1F> B4+># H4+>
o"!tljivo"t
prij!nika
zavi"i o&
;ar&v!ra
HBK>#
pr!a a"i
HB+$@>
&i9!r!ncijalni
HB+$@>
&i9!r!ncijalni
zavi"i o&
;ar&v!ra
zavi"i o&
;ar&v!ra
zav$ o& &rajv$ HB?>
&i9!r!ncijalni
tro"t!p!na HB+#F>
&i9!r!ncijalni
n!aktivno
"tanj!
+> pr!ko HK> zavi"i o&
"o9tv!ra
pr!ko +#4>
razlik! u H
n!a takta vi"oka ip$ b!z
takta
Pr!ko Y>
razlik! u H
pr!ko ?>
razlik!
1F> n!a "i*nala
na2in pr!n$ zav$o& ;ar&$ a"in;roni zav$ o& "o9t$ a"in;roni "in;roni "in;roni a"in;roni a"in;roni a"in;roni a"in;roni
"ipl$br$prov zav$ o& a*$ 1 H a"a @ H a"a @ H a"a 4 H a"a @ H a"a 1 H a"a @ 1Ha"a @ H a"a
&upl$br$prov$ zav$ o& a*$ @ H a"a 4 H a"a M M M M M M M
r!p!titor M M &a &a M M M M M
ul$ ip!&an"a zav$o& ;ar&v$ Kk &o Pk aV1@k aV1@k zav$o& ;ar&v$ zav$o& ;ar&v$ zav$ o& &rajv$ zav$ o& optok$ zav$ o& ;ar&v$ 1++k
16+
48. Pr$e$' DFA 0o'ver1#(
<v&! 0! biti prikazana &va ;ar&v!r"ka na2ina r!alizacij! paral!lno* 3M8 konv!rtora$
Paral!lna 3M8 konv!rzija za razliku o& "!rij"k! zauzia vi! pinova# ali &aj! "tabilniji
*!n!ri"ani napon i n! opt!r!0uj! ikrokontrol!r$
Po*l!&ajt! najpr! ;ar&v!r"ku r!alizaciju paral!lno* 3M8 konv!rtora principo
binarn! t!in"k! otporn! r!! (!n*$ binarW R!i*;t!& 38C)$
<v&! j! pri!nj!na binarna otporna r!a
ko& koj! j! otporno"t pov!zana na pinov! bita
v!0! t!in! &va puta anja$ 'a P<CT5
&ovoljno j! &ov!"ti !lj!nu binarnu
kobinaciju# i na izlazu 0! "! o&a; javiti
"tabilno analo*no "tanj!$ Zbo* karakt!ri"tika
ov! r!!# bitovi v!0! t!in! vi! uti2u na
"tanj! izlazno* napona o& bitova anj!
t!in!$ Tako "!tovanj! C5K pina po&i!
napon za @#F1># a C5+ za "ao +#48>$
Zbo* bolj! lin!arno"ti i&!alno bi bilo
upotr!biti otpornik! "a &uplirano vr!&no0u
pr!t;o&ni;$ M!%uti# to zbo* "tan&ar&ni;
vr!&no"ti otpornika po"kupljuj! r!alizaciju$
De0"%a,/"
+r*1
B"t*6"
RB3 RB0
'5,a5/"
&ap*/
+ ++++ +>
1 +++1 +#48>
@ ++1+ +#8P>
K ++11 1#@1>
4 +1++ 1#FF>
F +1+1 1#PY>
6 +11+ 1#YY>
P +111 @#1P>
8 1+++ @#F1>
Y 1++1 @#6K>
1+ 1+1+ @#PF>
11 1+11 @#8F>
1@ 11++ @#Y6>
1K 11+1 K#+F>
14 111+ K#1@>
1F 1111 K#@+>
Gako j! ip!&an"a izlazni; pinova (pri oba lo*i2ka "tanja) PIC ikrokontrol!ra
prili2no ni"ka (anja o& PF[ pri naponu napajanja o& F>) &alji ir!nj! otporn!
r!! n! bi "! po"ti*li za&ovoljavaju0i r!zultati# pr! "v!*a u po*l!&u lin!arno"ti
izlazno* napona$ <"i to*a# pr!cizno"t ovo* kola u v!likoj !ri zavi"i o& ta2ni;
vr!&no"ti i tol!rancij! upotr!blj!ni; otpornika$
Po potr!bi binarna t!in"ka r!a o! "! napraviti "a lo*arita"ko a n! lin!arno
karakt!ri"tiko izlazno* "i*nala$ To o! biti o& kori"ti ko& pov!0anja &inai2ko*
op"!*a *ovora u "i"t!ia za &i*italizaciju zvuka# j!r po :aplacianovoj &i"tribuciji
obla"t oko napona bli"ko* + no"i vi! in9oracija o& obla"ti "a v!0i aplitu&aa$
Za vi! &!talja ovakv! t!in"k! r!! po*l!&ajt! ;ttp/MMRRR$k!4nWv$coMin&!N@$;t$
- "ituacijaa ka&a j! n!op;o&na v!0a r!zolucija 3M8 konv!rtora o! "! kori"titi 3M
8 konv!rtor "a CB@C otporni nizo (!n*$ CB@C la&&!r 38C)$
1K6
Go& ov! !!# u!"to &upliranja vr!&no"ti otporno"ti
kori"t! "! otpornici i"ti; vr!&no"ti$ Gori0!nj!
int!*ri"ano* otporno* niza# kolo "a ovakvo !o
o! 2ak iati anj! &i!nzij!$ C!zolucija ovo* kola
j! o"obitna$ To zna2i &a "! ovi kolo o! (za
razliku o& pr!t;o&no*) &obiti 2ak @FF "tabilni;
analo*ni; "tanja$ - tablici o!t! vi&!ti n!k! tipi2n!
vr!&no"ti izlazno* napona u zavi"no"ti o& po"tavlj!no*
binarno* "tanja na P<CT5$
De0"%a,/" +r*1 RB7 RB0 '5,a5/" /ap*/
+ ++++++++ +>
@P +++11+11 +#F>
FK ++11+1+1 1>
PY +1++1111 1#F>
1+F +11+1++1 @>
1FP 1++111+1 K>
@+Y 11+1+++1 4>
@KF 111+1+11 4#F>
@FF 11111111 F
:in!arno"t ovo* kola j! "koro i&!alna# a zavi"i j!&ino o& tol!rancij! upotr!blj!ni;
otpornika$ Za kopl!tnu tablicu izlazni; napona i &!talj! po*l!&ajt! 8'6FF "a ;ttp/MM
RRR$icroc;ip$coM$
Za *!n!ri"anj! "lo!niji; tala"ni; oblika izlazni; napona# najprakti2nij! j! uziati
bajtov! za P<TC5 iz tab!l!$ Tako "! o*u "a lako0o r!alizovati t!"t!ra"ti#
trou*la"ti# "inu"oi&ni oblici napona# pa 2ak i 3TMF tonovi$ -koliko ikrokontrol!r
tr!ba izvravati i &ru*! op!racij! za vr!! *!n!ri"anja "i*nala# o!t! j!&no"tavnij!
9unkcij! r!alizovati i "o9tv!r"ki$ 'a pri!r# u int!rapt rutini o!t! n!pr!ki&no
pov!0avati "tanj! P<CT5 r!*i"tra$ Tako &obijat! t!"t!ra"ti "i*nal$ 'aiz!ni2ni
pov!0avanj! i "anjivanj! "tanja P<CT5 r!*i"tra &obijat! t!"t!ra"ti "i*nal$ I
"inu"ni "i*nal o!t! &obiti kori0!nj! at!ati2ki; 9unkcija$
1KP
49. Ser#(!0 DFA 0o'ver1#(
S!rij"ka 3M8 konv!rzija kori"ti &ru*a2iji princip$ Go& nj! "! kon&!nzator na izlazu
naiz!ni2no puni i prazni ta2no o&r!%!ni o&no"o# o&ravaju0i tako napon na
nj!u u !lj!ni *ranicaa$ Po"tupak koji "! puni i prazni kon&!nzator naziva "!
o&ulacijo irin! ipul"a (!n*$ PUM O Pul"! .i&t; +o&ulation)$ Iako j!
;ar&v!r"ki r!alizovana u n!ki "avr!!niji PIC ikrokontrol!ria# u PIC16F84
o! "! ipl!!ntirati "o9tv!r"ki$
<va t!;nika 2!"to "! kori"ti za uklju2!nja i i"klju2!nja pr!ki&a2ko* trani"tora
o&r!%!no vr!!$ 'a pri!r ukoliko j! napon H1@> a tranzi"tor provo&i @F# F+ ili PFi
vr!!na# !9!ktivni napon bi0! K# 6 i Y>$ Miniu napona po"toja0! ka&a j! na pinu
n!pr!ki&no pri"utna lo*i2ka +# ak"iu ka&a j! n!pr!ki&no pri"utna lo*i2ka 1# a
polovina ka&a "! na F+i p!rio&! naiz!ni2no !nja lo*i2ko "tanj! pina$ <vaj na2in
3M8 konv!rzij! u*lavno "! upotr!bljava za r!*ulaciju brzin! otora j!&no"!rn!
"truj!$ 'ij! po*o&an za pri!n! u kojia j! potr!bna v!0a "tabilno"t izlazno* "i*nala
zbo* *!n!ri"anja "!tnji i ;aronika$
'a"tavak "l!&i
Por!& ovi;# po"toji jo no*o# no*o principa po kojia "! o! ipl!!ntovati 3M
8 konv!rzija$ Po*l!&ajt! ;ttp/MM!n$Rikip!&ia$or*MRikiM8nalo*BtoB&i*italLconv!rt!r za
vi! &!talja$ Za PIC16F84 o& zna2aja bi o*ao biti int!r!"antan na2in o&ulacij! tona
"a &oRnloa& "!kcij! "ajta RRR$!l!ktronika$ba (pic"oun&)$
?ornja *rani2na 9r!kv!ncija koju o!t! &obiti bilo koji o& prikazani; na2inina 3M
8 konv!rzij! zavi"i i"klju2ivo o& brzin! o"cilatora ikrokontrol!ra$ Svakako &a j!
o!t! pov!0ati anji broj! razli2iti; "!plova koj! kori"tit! za *!n!ri"anj!
!lj!no* tala"no* oblika# ali u to "lu2aju *ubit! na pr!cizno"ti *!n!ri"ano* "i*nala$
Sv! zavi"i o& to*a kakav "i*nal !lit! *!n!ri"ati$ 'a pri!r 2!tvorobitna r!zolucija 3M
8 konv!rtora "a"vi j! &ovoljna za *!n!ri"anj! prili2no 2i"to* "inu"oi&no* "i*nala# ali
j! za *!n!ri"anj! 3TMF tonova n!op;o&na bar o"obitna r!zolucija$
-koliko "! ikrokontrol!ro *!n!riu "inu"oi&alni naponi "taln! 9r!kv!ncij!#
po!ljno j! na izlazu 3M8 konv!rtora "taviti analo*ni 9ilt!r# propu"nik !lj!no* op"!*a
9r!kv!ncij!$ Po"!bno j! to po!ljno ko& "!rij"ki; 3M8 konv!rtora zbo* ;aronika i
"!tnji koj! oni *!n!riu$
1K8
6:. F$!@ AFD 0o'ver"or
>!rovatno >a j! v!0 poznato &a PIC16F84 n!a u "!bi int!*ri"an 8M3 konv!rtor za
razliku o& n!ki; "avr!!niji; ikrokontrol!ra$ M!%uti# uz j!&no"tavan int!r9!j" "a
nji j! o*u0! !riti o&*ovaraju0! vr!&no"ti napona$ - nar!&ni po*lavljia bi0!
prikazano par principa 8M3 konv!rzij!$ 3a bi"t! ";vatili ra& razni; vr"ta 8M3
konv!rtora orat! "! najpr! upoznati "a principo ra&a napon"ko* koparatora$
'apon"ki koparator nalazi "! int!*ri"an u "avr!!niji v!rzijaa PIC
ikrokontrol!ra$ M!%uti# iako *a PIC16F84 n!a# o! u "! &o&ati "polja$ 4
napon"ka koparatora u "!bi "a&ri popularno analo*no int!*ri"ano kolo :MKKY$ Sa
j!&ni kolo o*u0! j! &!t!ktovati F &!cialni; "tanja# a "a &va Y "tanja$ Gako j!
:MKKY potpuno analo*no kolo# &a bi"t! na nj!*ovo izlazu &obili napon"k! nivo!
lo*i2k! + i lo*i2k! 1# orat! *a napajati i"ti napono napajanja kao i PIC (HF>)$
6ta u "tvari ra&i napon"ki koparator? <n por!&i (!n*$ Copar!) napon! "voja &va
ulaza# i ukoliko j! j!&an v!0i o& &ru*o*# !nja "tanj! "vo* izlaza$ 'a pri!r# ukoliko
"! na j!&an nj!*ov ulaz &ov!&! "! r!9!r!ntni napon o& K># a na &ru*o ulazu "!
napon polako pov!0ava o& + &o F># izlaz koparatora bi0! u "tanju lo*i2k! + "v! &ok
napon na &ru*o ulazu n! pr!%! za&ati; K>$
'ajt!! 0! "! napon"ki koparator "na0i ukoliko "! po*o&i &a j! napon na oba ulaza
potpuno i"ti (K>)$ Ga ko 0! izlazu (lo*i2ka + ili lo*i2ka 1) ta&a biti naklonj!n
u*lavno zavi"i o& "tanja izlaza n!po"r!&no pr! j!&naki; napona$
7!&ini pr!&"tavnik potpuno paral!lno* 8M3 konv!rtora j!
Fla"; 8M3 conv!rtor$ <n j! r!alizovan poo0u vi!
napon"ki; koparatora$ 'a j!&an ulaz "vi; koparatora
&ov!&!n j! !r!ni napon# a na &ru*i "u &ov!&!ni
r!9!r!ntni napon"ki nivoi koji "! r!&o "anjuju o&
najv!0!* &o najanj!*$
Pri to "anjivanju o! "! (!njanj! vr!&no"ti
otpornika) kori"titi lo*arita"ki ili lin!arni o&no" napona$
?lavna pr!&no"t Fla"; konv!rtora j! kako u i! ka!
(!n*$ unja) nj!*ova brzina$ Gako on nij! v!zan za takt
ikrokontrol!ra# kopl!tnu 8M3 konv!rziju o! obaviti
tr!nutno$ M!%uti# ia on "voj! an!$ 5roj upotr!blj!ni;
napon"ki; koparatora &ir!ktno o&r!%uj! broj "tanja
izlaza$ 8ko !lit! 9la"; 8M3 konv!rtoro r!alizovati
2!tvorobitnu konv!rziju# bi0! >a potr!bno 16 ulaza (i 16
ulazni; pinova ikrokontrol!ra)$ Za o"obitnu konv!rziju
potr!bno j! @FF ulaza$
Pinovi C54 &o C5P upotr!blj!ni "u j!r "! njia o! izazvati int!rapt pri pro!ni
ulazno* napona$ Iako j! probl! v!liko* broja ulazni; pinova o*u0! pr!vazi0i
upotr!bo o&r!%!ni; &i*italni; konv!rtora u binarni 9orat# ovoliki broj napon"ki;
koparatora nij! ba najj!9tiniji$ Zato "! ovaj tip 8M3 konv!rtora r!tko kori"ti$
1KY
61. ,ro(>0# AFD 0o'ver"or
<vaj tip 8M3 konv!rtora u "tranoj lit!raturi (!n*$) "! jo "r!0! "r!0! po& nazivia
Countin* ili 3i*ital rap$
Zaolit! "vo* prijat!lja &a zai"li broj iz!%u + i 1+++$ Zai"lio j!$ Gr!nit! r!&o
"a pitanjia/
3a li j! to broj +? 'ij!$
3a li j! to broj 1? 'ij!$
3a li j! to broj @? 'ij!$
$$$
>!rovatno 0! u &o"a&iti no*o pr! n!*o to "! uopt! pribliit! zailj!no broju$
'j!u 0! &o"a&iti$ Mikrokontrol!ru n!0!$
<vaj 8M3 konv!rtor "p!ci9i2an j! po to! to
u j! za ra& potr!ban 3M8 konv!rtor$ Taj 3M
8 konv!rtor u !i j! r!alizovan CM@C
otporni nizo$
Izlaz 3M8 konv!rtora vo&i "! na j!&an ulaz
!k"t!rno* napon"ko* koparatora# a na &ru*i
ulaz &ovo&i "! !r!ni napon$ Izlazni napon
3M8 konv!rtora "! pov!0ava korak po korak
(o& +> &o F>)$ - tr!nutku ka&a napon"ki
koparator pro!ni "tanj!# o2ita "! tr!nutno
"tanj! na izlazni pinovia 3M8 konv!rtora$
To "tanj! o&*ovara !r!no analo*no
naponu$ Sa"i ti pr!cizno"t 8M3
konv!rtora u najv!0oj !ri zavi"i o&
pr!cizno"ti 3M8 konv!rtora$
>!rovatno i "ai uvi%at! anu ovo*
principa$ -koliko j! !r!ni napon blizu "voj!
ak"ialn! vr!&no"ti# ikrokontrol!r ora
3M8 konv!rtoro pov!0avati napon o& +> pa
"v! &o !r!no* napona$ To o! potrajati$
3a bi "! vr!! !r!nja to vi! "kratilo#
pri!njuj! "! princip opi"an u nar!&no
po*lavlju$
?lavna rutina pro*raa "a ovakvi principo iz*l!&ala bi ovako/
Pe& incf SP"RTB,F A Pov!0aj S;a&&oR r!*i"tar$
movf SP"RTB,% A Pr!baci u U#
movwf P"RTB A pa u P<CT5 O tako pov!0aj izlazni napon$
btfsc P"RTA,RA0 A 7!"u li "! ovi naponi "a&a izj!&na2ili?
goto Pe& A 'i"u# pov!0avaj i &alj!$
... A 7!"u# U "a&ri vr!&no"t 8M3 konv!rzij!$
14+
62. S305e!#v'o %ro0!#&"#v'#
AFD 0o'ver"or
3a bi; >a ilu"trovao princip ra&a ov! 8M3 konv!rzij! obrazloi0u >a princip
al*orita binarn! pr!tra*! unutar "ortirano* niza po&ataka$
<p!t zaolit! "vo* prijat!lja &a zai"li broj iz!%u + i 1+++$ Zai"lio j!$
Sa&a *a pitajt! j! li nj!*ov broj v!0i o& \+H((1+++B+)M@) V F++] F++$ 'ij!$ Zna2i
nj!*ov broj j! iz!%u + i F++$
3a li j! v!0i o& \+H((F++B+)M@) V @F+] @F+? 'ij!$ Zna2i broj j! iz!%u + i @F+$
3a li j! v!0i o& \+H((@F+B+)M@) V 1@F] 1@F? 'ij!$ 5roj j! iz!%u + i 1@F$
3a li j! v!0i o& \+H((1@FB+)M@) V 6@#F] 6K? 7!"t!$ 5roj j! iz!%u 6K i 1@F$
3a li j! v!0i o& \6KH((1@FB6K)M@) V Y4] Y4? 7!"t!$ 5roj j! iz!%u Y4 i 1@F$
3a li j! v!0i o& \Y4H((1@FBY4)M@) V 1+Y#F] 11+? 7!"t!$ 5roj j! iz!%u 11+ i 1@F$
3a li j! v!0i o& \11+H((1@FB11+)M@) V 11P#F] 118? 'ij!$ 5roj j! iz!%u 11+ i 118$
3a li j! v!0i o& \11+H((118B11+)M@) V 114] 114? 'ij!$ 5roj j! iz!%u 11+ i 114$
3a li j! v!0i o& \11+H((114B11+)M@) V 11@] 11@? 7!"t!$ 5roj j! iz!%u 11@ i 114$
3a li j! v!0i o& \11@H((114B11@)M@) V 11K] 11K? 7!"t!$ <n&a j! to broj 114$
<vaj princip o!t! zai"liti kao "!2!nj! pic!$ I"!2! "! na pola# zati na 2!tvrtin!# pa
na o"in!# i tako "v! &o najanj!* par2!ta$
>i&it! &a "t! za razliku o& pr!t;o&no* "lu2aja "a "ao 1+ pitanja u"p!li &a &o%!t! &o
ta2no* r!zultata$ = "a&a$ -koliko ovaj princip pri!nit! u!"to (kao u broja2ko 8M
3 konv!rtoru) po"t!p!no* pov!0anja napona korak po korak# vr!! utro!no na
!r!nj! bi0! no*o# no*o kra0!# uz potpuno i"tu !l!ktri2nu !u$
Pro*ra j! prili2no j!&no"tavan$ 'ajpr! "! "!tuj! bit najv!0! t!in! (MS5 B C5P) na
P<CT5 r!*i"tru$ - zavi"no"ti o& "tanja napon"ko* koparatora# ovaj pin o"tavi "!
"!tovan ili "! r!"!tuj!$ <n&a "! pr!lazi na C56# C5F# C54$$$
clrf P"RTB A Inicijalizuj P<CT5
bsf P"RTB,7 A S!tuj MS5
btfss P"RTA,0 A -koliko j! napon pr!v!liki#
bcf P"RTB,7 A r!"!tuj *a$
bsf P"RTB,6 A S!tuj nar!&ni
btfss P"RTA,0 A -koliko j! napon pr!v!liki#
bcf P"RTB,6 A r!"!tuj *a$
bsf P"RTB,5 A S!tuj nar!&ni
$ $ $
I tako "v! &o C5+ pina$ 'a kraju 0! P<CT5 "a&rati iz!r!nu vr!&no"t napona$ Go&
j! &at ilu"trativno# a u pravi pro*raia bi "! kori"tio i S;a&&oR r!*i"tar$
141
6). .#$0#'!o'ov AFD 0o'ver"or
Canij! !! zbo* upotr!b! 3M8 konv!rtora zauziaju pr!vi! &ra*oc!ni; pinova
ikrokontrol!ra$ <"i to*a# on! za;t!vaju upotr!bu napon"ko* koparatora za "voj
ra&$ <2i*l!&no j! &a "! PIC16F84 takav kakav j! n! "nalazi najbolj! "a !r!nj! i
por!%!nj! napona$ Sa nj!*ov! "tran! no*o j! z*o&nij! !r!ni napon konv!rtovati
u n!ku &ru*u 9izi2ku v!li2inu$ 'a pri!r u vr!!$ Taj princip pri!nj!n j! u "l!&!0i
!aa$ <n! >a o*u po"luiti za !r!nj! otporno"ti# t!p!ratur! (upotr!bo
'TC ili PTC otpornika)# int!nzit!ta "v!tlo"ti (upotr!bo 9otootpornika) ili
kapacitivno"ti (upotr!bo kapacitivni; "!nzora)$
Gako ra&i ovaj int!r9!j"? 'ajpr! &ri C5+ na lo*i2koj 1
&ovoljno &u*o &a bi "! kon&!nzator napunio$ <vo vr!! j!
FDCDC# o&no"no za ak"ialnu vr!&no"t t!"tirano*
otpornika o& 1+k[ oko FS$ .i "! kon&!nzator u
potpuno"ti napuni# naiz!ni2no "! vri po"tavljanj! pina na
lo*i2ku + (pranj!nj! kon&!nzatora)# kon9i*uri"anj! pina kao
ulaz i t!"tiranj! &a li "! kon&!nzator &ovoljno i"praznio
(prazan j! ka&a na pinu ikrokontrol!ra javi lo*icka +)$ 5roj
ciklu"a pranj!nja M t!"tiranja ili prot!klo vr!! &ir!ktno
o&r!%uj! vr!&no"t !r!n! otporno"ti$
Pr!ki& pro*raa int!raptia za vr!! !r!nja &ov!0! &o n!pr!cizno* o2itavanja
vr!&no"ti$ Zato "! oni oraju i"klju2iti &ok "! !r!nj! n! zavri$
-koliko >a j! potr!bno br! !r!nj!# o!t! u!"to naiz!ni2no* !njanja "tanja
pina (ulazMizlaz) o!t! kori"titi n!ku o& "l!&!0i; !a/
<vo kolo najpr! &ri C5+ na lo*i2koj + &ovoljno &u*o &a "!
kon&!nzator i"prazni# o&no"no &a u oba pola bu&u na
pot!ncijalu o& +>$ Zati "! pin C5+ po"tavlja u "tanj! ulaza# i
!ri "! vr!! za koj! 0! "! na pinu javiti lo*i2ka j!&inica$ Gako
"! kon&!nzator "a&a puni pr!ko otpornika# ovo vr!! &ir!ktno
0! zavi"iti o& tr!nutn! vr!&no"ti otporno"ti$ Pr!&no"t ov! !!
na& pr!t;o&no j! o*u0no"t pojav! int!rapta po pro!ni
"tanja na C5+MI'T pinu# to ra"t!r!0uj! ikrokontrol!r za o"tal!
potr!b!$
Sa ovi kolo "! u*lavno &obijaju najbolji r!zultati$ C5+
"! po"tavi na lo*i2ku 1# kon&!nzator "! napuni# a zati "!
!ri vr!! koj! j! potr!bno &a "! na pinu javi lo*i2ka +$ I "a
ovo !o o*u0! j! po zavr!no !r!nju oti0i na
int!rapt rutinu$
Mo&a >a 2u&no &!luj! taj "kok na int!rapt rutinu$ Gako
0! on&a pro*ra !riti vr!!? 7!&no"tavno$ 7o j!&ni
int!rapto izazvani taj!ro$
<v! t!;nik! o*u "! pri!niti za bilo koju vr!&no"t otpornika i kon&!nzatora$
M!%uti# ukoliko "! kori"ti kon&!nzator kapacitivno"ti v!0! o& 1++nF iz!%u
14@
kon&!nzatora i pina potr!bno j! po"taviti zatitni otpornik o& oko @@+[$ <n "pr!2ava
pr!v!liku "truju na pinu ikrokontrol!ra u tr!nutku na*lo* punj!nja ili pranj!nja
kon&!nzatora$ Microc;ip 2ak navo&i &a "! u"l!& pr!v!lik! "truj! na pinovia portova
o! pro!niti "tanj! TCIS8 ili TCIS5 r!*i"tra# pa *a j! "to*a po!ljno povr!!no
"o9tv!r"ki Io"v!itiS$ 3onja *ranica kapacitivno"ti kon&!nzatora zavi"i j!&ino o&
brzin! va!* ikrokontrol!ra$ Pri kri"talu o& 4M,z "a"vi j! o*u0! kori"titi
vr!&no"ti o& KKpF$ 6to anji kon&!nzator upotr!bljavat!# !r!nj! 0! biti kra0!$
Gako vr!! za koj! "! kon&!nzator napunio ili i"przanio n!a &ir!ktn! v!z! "a
c!lziju"ovi "t!p!nia ili "v!tlo"ni luk"o# vr!&no"ti ovi; v!li2ina
najj!&no"tavnij! j! &obiti iz o&*ovarajuc! tab!l!$ 5ilo koja izobli2!nja pri !r!nju
(poput n!lin!arn! karakt!ri"tik! upotr!blj!no* "!nzora) o*u "! o&a; kop!nzovati
u "aoj tab!li$
7o j!&na o*u0no"t *ornji; !a o*l!&a "! u o*u0no0u !r!nja kapacitivno"ti
u!"to otporno"ti$ 'a taj na2in o! "! na pri!r iz!riti poloaj o"ovin!
pro!nljivo* kon&!nzatora$ 'aravno# u to "lu2aju u!"to pro!nljivo*# u !u j!
potr!bno po"taviti obi2an otpornik to anj!* "t!p!na tol!rancij!$
<v! !! zbo* "voj! j!&no"tavno"ti iaju j!&an v!liki n!&o"tatak$ Sa njia nij!
o*u0! &obiti v!0u pr!cizno"t zbo* pro!n! ra&ni; karakt!ri"tika upotr!blj!no*
kon&!nzatora u"l!& pro!n! ra&n! t!p!ratur!$ Zbo* to*a "! o! kori"titi
kop!nzacija ovi; n!&o"tataka kori"t!0i kalibracioni otpornik i !r!nj! nj!*ov!
vr!&no"ti n!po"r!&no pr! !r!nja otporno"ti "!nzora$ Za &!talj! po*l!&ajt! 8'F1@#
8'F1K i 8'86K "a ;ttp/MMRRR$icroc;ip$coM$
Mo&a "atrat! &a ovo nij! prava 8M3 konv!rzija zbo* o*rani2!nja na !r!nj!
otporno"ti i kapacitivno"ti# a n! napona1 - pravu "t!$ M!%uti# uz al! iz!n!
!l!ktri2n! !! o*u0! j! r!alizovati pravu &!"!tobitnu 8M3 konv!rziju$ Za princip
ra&a i &!talj! po*l!&ajt! ;ttp/MMRRR$!l!$uva$!"Mjj!"u"Ma&"&$p&9$
<vakav princip !r!nja u lit!raturi "! naziva jo i Sin*l! Slop! 8M3 konv!rtor$
14K
64. Ko'ver1#( o"%or'o!"# #
0%5#"#v'o!"# 3 /re0ve'5#(3
Caniji principi 8M3 konv!rzij! bili "u po*o&ni za !r!nj! razni; 9izi2ki; v!li2ina
j!&ino u "lu2aju &a "!nzori ni"u pr!vi! u&alj!ni o& ikrokontrol!ra$ -koliko bi"t!
!l!li &a !rit! npr$ t!p!raturu na t!ra"i# orali bi razvu0i bar oko F provo&nika$
Ti provo&nici otporno"ti "!nzora &o&aju "voju otporno"t koja zavi"i o& nji;ovo*
popr!2no* pr!"!ka i &uin!$ <"i to*a u"l!& "voji; 9izi2ki; v!li2ina uvo&! pov!0anj!
o*u0no"ti po*r!no* !r!nja$ 'a pri!r u"l!& "op"tv!n! zavi"no"ti otporno"ti o&
t!p!ratur! (ponaaju "! kao ini "!nzor t!p!ratur!)# u"l!& pov!0anja
kapacitivno"ti na vo&ovia (provo&nici "u u*lavno bli"ki j!&an &ru*o# pa "!
ponaaju kao kon&!nzator) ili u"l!& in&ukovani; !l!ktri2ni; "!tnji (to &ui kablovi#
to bolja ant!na)$ - in&u"triji "! upravo iz ti; razlo*a u&alj!ni "!nzori u!"to "a
pro!nljivi napono prav! "a pro!nljivo "trujo (4B@+8)$
PIC16F84 j! prili2no ali potroa2 !l!ktri2n! !n!r*ij!$ '!a "vr;! napraviti kolo za
!r!nj! "poljn! t!p!ratur!# ubaciti u 2ak i S:==P o&# a on&a u &o&ati "!nzor
2ija j! pro"!2na potronja 1@8$ 'ij! li upravo to ra"ipnitvo u !9ika"no
i"kori0!nju &ati; na r!"ur"a &ov!lo &o opt!* pov!0anja za*a%!nja plan!t! Z!lj!1
Gao to "t! ranij! vi&!li PIC16F84 "! n! "nalazi najbolj! "a &ir!ktni !r!nj!
napona$ 6ta najlak! ra&i? M!ri vr!! i broji$
- ovoj !i upotr!blj!no j! popularno int!*ri"ano
kolo '=FFF pov!zano kao a"tabilni ultivibrator$
Tako pov!zano# ono 0! u zavi"no"ti o&
kapacitivno"ti !l!ktrolit"ko* kon&!nzatora o& 1ZF i
otporno"ti !r!no* otpornika o& 1+k[ u
ikrokontrol!r "lati ipul"!# ta2no o&r!%!no
9r!kv!ncijo$ 6to j! otporno"t pro!nljivo*
otpornika anja# ova 9r!kv!ncija 0! biti v!0a$
8l*orita pro*raa tr!bao bi u 9ik"no
vr!!n"ko int!rvalu (npr$ +#FS O to &ui int!rval
to v!0a pr!cizno"t) brojati ipul"!$
Gako j! za !liinaciju "!tnji po!ljno kori"titi ulaz "a itovi oki&a2!# ipul"!
j! najprakti2nij! &ov!"ti na C84 (ukoliko "! n! kori"t! int!rapti za brojanj!) ili C5+
(ukoliko "! kori"t! int!rapti za brojanj!) pin$ C5+ pin "! ponaa kao ulaz "a itovi
oki&a2! j!&ino ka&a j! po&!!n za int!rapt!$ -koliko j! &aljina o& ikrokontrol!ra
&o '=FFF pr!vi! v!lika# o!t! pov!0ati napon napajanja '=FFF$ Za jo v!0!
&aljin! o! "! kobinovati '=FFF "a CS48F &rajv!ro$ - "tvari kako j! ov&!
potr!ban j!&ino pr!&ajnik# &!o int!*ri"ano* inv!rtora "i*nala (P4+6) bi0! &ovoljan$
-koliko u!"to pro!nljivo* otpornika po"tavit! "talan otpornik alo* "t!p!na
tol!rancij! &obijat! o&li2an !ra2 kapacitivno"ti upotr!blj!no* kon&!nzatora$
3!talj! o ovo principu iat! na ;ttp/MMRRR$*lobu$n!tMppM!n*li";MPPMn!FFF$;t$ Tu
"! nalaz! po&aci o 9r!kv!ncijaa u zavi"no"ti o& kapacitivno"ti i otporno"ti$
144
64. Ko'ver1#( '%o' 3 /re0ve'5#(3
Gonv!rtor napona u 9r!kv!nciju (!n*$ >C< B Volta*! Controll!& O"cilator O napon"ki
kontroli"ani o"cilator) u 9r!kv!nciju pr!tvara !r!ni napon$
'a"tavak "l!&i1
14F
66. I'"egr#!'# AFD 0o'ver"or#
Pr!tpo"tavio &a >a j! potr!ban 8M3 konv!rtor koji bi brzo !rio !lj!ni napon# n!
za;t!vaju0i pri to! int!rv!nciju ikrokontrol!ra (npr$ priliko "nianja i
kopr!"ij! zvuka)$ - to "lu2aju najprakti2nij! j! kori"titi int!*ri"an! 8M3
konv!rtor! rtvuju0i o&r!%!n broj pinova za o2itavanj! po&ataka iz nji;$ Tipi2ni
pr!&"tavnici int!*ri"ani; 8M3 konv!rtora "u 83C+8K1# :TC1@Y8# M8` 1Y+ ili M8`
1Y1$
Pon!ka& j! potr!bno !riti v!liki &inai2ki op"!* napona$ >!0ina int!*ri"ani; 8M3
konv!rtora "po"obna j! !riti j!&ino napon! o& + &o HF>$ M8`1K4 j! "p!cijalno
na!nj!n za u*ra&nju u !rni in"tru!ntia# pa "! nj!*ov op"!* !r!nja o!
!njati u iroki *ranicaa# oo*u0avaju0i na taj na2in !r!nj! napona u op"!zia
o& + &o KYY#Y> r!zolucijo o& +#1># pa "v! &o + &o KYY#Y> r!zolucijo o& +#1>$
146
66. Ko&%e'15#( 'e$#'er'#@
0r0"er#!"#0
S!nzori koj! upotr!bljavat! pri !r!nju obi2no n!aju lin!arnu karakt!ri"tiku$ 'a
pri!r 'TC otpornik 0! pri 1+
o
C iati otporno"t o& 1k[# pri @+
o
C @k[# pri K+
o
C
4k[ i pri 4+
o
C 8k[$ <2i*l!&no j! &a on u!"to lin!arn! ia lo*arita"ku
karakt!ri"tiku$ Iako "! at!ati2ki 9orulaa (npr$ St!in;artB,art ili !to&o
lin!arizacij! kao u 8'Y4@) o! i"praviti nj!*ov op"!*# 2!"to razni &ru*i 9aktori
uti2u na po*oranj! lin!arno"ti$ T! 9aktor! izaziva princip 8M3 konv!rzij!# pro!na
t!p!ratur! o"cilatora# kablova &o "!nzora ili upotr!blj!no* >C< konv!rtora$ 3a bi
"! &obila to ta2nija !r!nja potr!bno j! na o&*ovaraju0i na2in kop!nzovati
n!lin!arna izobli2!nja kako upotr!blj!no* "!nzora tako i "vi; o"tali; 2inilaca$
7!&an o& na2ina kop!nzacij! n!lin!arno"ti j! crtanj! *ra9ika iz!r!ni; vr!&no"ti$ 'a
` o"i po"tavlja "! r!&ni broj !r!nja koji 0! na o&*ovaraju0i na2in biti prikazan
ikrokontrol!ro (npr$ + &o F+ r!zolucijo o& 1
o
C ili + &o 1++ r!zolucijo o& k
o
C
za t!p!raturni op"!* o& +
o
C &o F+
o
C)# a na g o"i vr!&no"t 9izi2k! v!li2in! iz!r!n!
ikrokontrol!ro i kalibri"an! in"tru!nto v!0! kla"! pr!cizno"ti$ 3alj! j!
potr!bno "o9tv!r"ki "vakoj vr!&no"ti "a ` o"! pri&ruiti (naj2!0! pr!ko tab!l!)
o&*ovaraju0u vr!&no"t "a g o"!$ <2i*l!&no j! &a j! ra&i bolj! pr!cizno"ti *ra9ika
n!op;o&no &a !r!nja bu&u to pr!ciznija# i "a to vi! !rni; ta2aka$
Gako bi "anjili broj potr!bni; !r!nja# &ipl$ in*$ :azar Pan2i0 i &ipl$ in*$ 5ojan
Miti0 "u >a pripr!ili pro*ra za int!rpolaciju !r!ni; vr!&no"ti$ <n na o"novu
par za&ati; ta2aka ra2una vr!&no"ti pr!o"talo* broja potr!bni; ta2aka$ Izlazni $tNt 9ajl
pro*raa o!t! !&itovati pr!a "voji potr!baa i i"kopirati *a u "op"tv!ni
pro*ra$ Pri to! ni"t! o*rani2!ni "ao na upotr!bu PIC ikrokontrol!ra$
Pro*ra j! i"pitan po& UinY8 i Uin@+++# a &o"tupna j! i nj!*ova :inuN v!rzija$
5!"platan j! (&at j! 2ak i izvorni ko&) i nalazi "! na o "ajtu 2iji link o!t! na0i na
kraju ovo* uput"tva$
14P
68. D"$odger
3atalo&*!r pr!&"tavlja ur!%aj koji "nia "!plovan! po&atk! (obi2no u !k"t!rni
==PC<M) i iz ko*a j! potr!bno povr!!no "polja i2itavati po&atk!$ - raniji
pri!ria vi&!li "t! kako "! o! !riti nivo r!k!$ - !%uvr!!nu "t! nau2ili i
upotr!bu 8M3 konv!rtora# I
@
C i CS@K@ kounikaciono* protokola$
Sa&a i nij! t!ko zai"liti !t!oroloku "tanicu "a an!o!tro (!ra2! brzin!
v!tra)# ;i&ro!tro (!ra0! vlano"ti vaz&u;a)# t!ro!tro i !ra2! "!ra
v!tra$ - "lu2aju &a "! "v! ov! v!li2in! &obijaju u analo*no obliku# &ovoljno j!
&ov!"ti i; u 8M3 konv!rtor i nakon to*a u PIC$ S!plovi "vi; konv!rtovani; napona
povr!!no "! "niaju u !k"t!rnu ==PC<M !oriju pr!ko I
@
C v!z!# a ona "!
p!rio&i2no prazni pr!ko CS@K@ v!z! u kopjut!r$
Gopjut!r bi on&a o*ao analizirati &obij!n! po&atk! i pr!&vi&!ti na pri!r pojavu
"u! ili ki!$ -z vi! i"tovr!!no pov!zani; "i"t!a (vi! u&alj!ni; !ra2a) o*la bi
"! "a prili2no ta2no0u pr!&vi&!ti ikroklia o&r!%!ni; po&ru2ja$
148
69. Ko'"ro$ "e&%er"3re
'ita lak!$ 3ovoljno j! pov!zati "!nzor na 8M3 kontrol!r# i za&ati ikrokontrol!ru
*rani2nu vr!&no"t r!zultata 8M3 konv!rzij!$ -koliko na pri!r "!nzor kao r!zultat 8M
3 konv!rzij! broj anji o& $1PF uklju2i0! "! r!l!j *r!ja2a# a za broj $1PF (ili v!0i) koji
o&*ovara t!p!raturi o& @F
o
C i"klju2i0! "! r!l!j$ Ilu"tracija ovo*a o*la bi ovako
iz*l!&ati/
movlw .175 A Za&ata vr!&no"t t!p!ratur!
subwf A(,% A U V 83 B $1PF
btfss STATUS,# A T!"tiraj pr!kora2!nj!
goto U@2>!c- A 83 e $1PF
goto I3@2>!c- A 83 aV $1PF
3a li j! ovo &obar na2in kontrol!? 'ij!1
Svi "!nzori po&loni "u "!tnjaa$ 6ta o! izazvati t! "!tnj!? Za po2!tak# tu j!
"a ikrokontrol!r$ 'j!*ov takt o"cilatora proizv!0! alo "anj!nj! i pov!0anj!
napona napajanja$ 3alj!# tu "u ur!%aji koji "! kontroliu ikrokontrol!ro$ Pri
ultipl!k"u :=3 &i"pl!ja najvi! "truj! troi0! &i"pl!j na ko! "! prikazuj! broj 8
(ta&a "u "v! poj!&ina2n! :=3 uklju2!n!)# a najanj! onaj "a broj! 1 (uklju2!na
"ao &v! :=3)$ '! ora to obav!zno biti :=3 &i"pl!j$ I"ti !9!kat prouzrokova0! i
r!l!j *r!ja2a$ Sl!&!0a j! vaa koinica "a "voji (a&! in C;ina) u"i"iva2!$ Iako
0! &!kaplin* kon&!nzator u &obroj !ri !liini"ati ov! "!tnj!# j!&an &!o 0! "!
"vakako pr!n!ti i &o "!nzora# i tu 0! proizv!ti u$
-pravo j! taj u po*uban za u"p!nu kontrolu t!p!ratur!$ Sa nji 0! pri i"toj
t!p!raturi r!zultat 8M3 konv!rzij! j!&no biti 1P+# a &ru*i put 18+# to 0!
ikrokontrol!r ";vatiti kao o&*ovaraju0u pro!nu t!p!ratur!# i brzo 0! uklju2ivati i
i"klju2ivati r!l!j$ Gontakti obi2ni; r!l!ja j!&no"tavno ni"u na!nj!ni za takav ra&# i
r!l!j 0! po"l! par n!&!lja "tra&ati$
6ta j! r!!nj!? C!0i ikrokontrol!ru &a pro!ni "tanj! j!&ino ukoliko "! iz!r!na
t!p!ratura &ovoljno (npr$ za $1+) u&aljila o& za&at! vr!&no"ti ($1PF)# "li2no kao to
to itov oki&a2 ra&i ;ar&v!r"ki$ Zna2i# &a uklju2i *r!ja2 ukoliko j! o2itana vr!&no"t
16F i anja# i &a *a i"klju2i ukoliko j! o2itana vr!&no"t 18F i v!0a$ <v&! j! najbolj!
ra&i to anj!* variranja t!p!ratur! po&!"iti *rani2n! vr!&no"tzi# tako &a "! po"ti*n!
koproi" iz!%u 2!0!* ra&a r!l!ja i "poljni; "!tnji$
3a li j! "a&a "v! u r!&u? I &alj! n! ora &a bu&!$
-koliko j! "!nzor t!p!ratur! po"tavlj!n u blizini *r!ja2a# u!"to !r!nja
t!p!ratur! pro"torij!# !ri0! "! t!p!ratura *r!ja2a$ Tako 0! pri uklju2!nju *r!ja2a
r!zultat 8M3 konv!rzij! v!oa brzo po"tati $@FF# o&no"no# i &alj! 0! "! r!l!j pr!vi!
brzo uklju2ivati i i"klju2ivati$ <vo "! o! r!iti u&aljavanj! "!nzora na !"to *&!
n!0! &ir!ktno o"!0ati t!p!raturu *r!ja2a$
<vo bi o*lo biti &ovoljno &obro r!!nj! za <'M<FF (uklju2iMi"klju2i) kontrolu
*r!ja2a (r!l!jo)$ M!%uti# n!ka&a <'M<FF kontrola j!&no"tavno nij! &ovoljna$ -
14Y
ti "ituacijaa kori"ti "! kontinualna r!*ulacija "na*!# 9azni poako triaka
("li2no kao PUM za j!&no"!rni napon)$
-zio za pri!r &a !lit! u &voritu napraviti inkubator za jaja$ <v&! j! ra&i to
anji; o"cilacija t!p!ratur! po!ljno kori"titi kontinualnu r!*ulaciju$ M!%uti# ta
"a "ituacijo ka&a napolju po2n! &a pa&a kia (o&j!&no za;la&ni)?
-z &ovoljno &obro toplotno izolovan inkubator# n!0! biti nikakvi; probl!a$ 8li
n!ka&a j!&no"tavno n!ao &ovoljno "tiropora (i op!t j! "n!* izn!na&io na! putar!)$
- ovo "lu2aju potr!bno j! ikrokontrol!ru &o&ati jo alo lo*ik!$
<"i t!p!ratur! potpuno i"ti principi pri!njuju "! za kontrolu bilo koj! 9izi2k!
v!li2in!$ >i! o ovi kontrolni proc!"ia iat! u 2a"opi"ia Circuit C!llar br$ 1P i
1Y$
1F+
6:. Ro"5#o'# e'0oder
>!rovatno >a j! poznata ulo*a pot!ncio!tra u analo*noj !l!ktronici$ <n !nja
"voju otporno"t u zavino"ti o& poloaja o"ovin!# po!ranj! kontakta kliza2a pr!ko
otporn! povrin!$ 'a taj na2in r!alizovano j! na pri!r poja2anj! zvuka na
ka"!to9onu$
8nalo*ni pot!ncio!tri iaju par ana$ Gao prvo nji;ovi kontakti ni"u v!2ni$ <ni "u
kao i kontakti !;ani2ki; pr!ki&a2a po&loni varni2!nju (!n*$ 5ouncin*)$ <tu&a
kr2anj! pri poja2avanju i "anj!nju zvuka$ 7o *or!# ukoliko upotr!bit! 8M3
konv!rtor &a pr!v!&!t! "tanj! analo*no* pot!ncio!tra u &i*italni oblik# o*u0! j! &a
kontakti pot!ncio!tra ba u tr!nutku !r!nja u"l!& lo!* "poja bu&u o&voj!ni o&
otporn! povrin!# to 0! prouzrokovati o2itavanj! ak"ialn! otporno"ti$
Sl!&!0a ana analo*no* pot!ncio!tra o&no"i "! na poloaj nj!*ov! o"ovin! pri
*rani2ni vr!&no"tia$ Goliko puta "t! orali !njati *uicu na "lavini j!r j! n!ko
pr!vi! zavrnuo? I"to j! i "a analo*ni pot!ncio!tro$ '! o!t! o2!kivati o&
kori"nika &a 0! biti In!anJ pr!a "voji ur!%ajia$ 5olj! "tavit! anju kapicu na
o"ovini$ '!0! "! o0i pr!vi! jako priti"nuti$
Po"toji vi! vr"ta rotacioni; !nko&!ra$ Po na2inu kon"trukcij! o*u biti !;ani2ki#
opti2ki i a*n!t"ki$ M!;ani2ki iaju najvi! n!&o"tataka zbo* varni2!nja "voji;
kontakata i anj! r!zolucij!$
Po obliku "i*nala koji "! o! &obiti na izlazu &i*italni; pot!ncio!tra po"toj!
!nko&!ri "a ap"olutni a&r!"iranj! koji na "vo izlazu &ir!ktno &aju binarni ko& (4B
bitni# 6Bbitni# 8Bbitni)# ili koji kori"t! alo &ru*a2iji 9orat brojanja (tzv$ "ivi !n*$
?r!W co&!) i !nko&!ri "a r!lativni a&r!"iranj!$ - &alj! opi"u bi0! opi"ana j!&ino
upotr!ba rotacioni; !nko&!ra "a r!lativni a&r!"iranj! (!n*$ r!lativ! rotarW !nco&!r#
incr!!ntal rotarW !nco&!r ili Xua&ratur! !nco&!r)$ Za &!taljniji opi" po"!tit!
;ttp/MM!n$Rikip!&ia$or*MRikiMCotarWL!nco&!r$
C!lativni rotacioni !nko&!r tr!ba "prov!"ti o&*ovaraju0! obrtno kr!tanj! o"ovin! u
ikrokontrol!r$ M!%uti# za razliku o& ap"olutno* !nko&!ra PIC n! ora znati
kolika j! nj!*ova tr!nutna vr!&no"t u "vako tr!nutku$ .!u to$ Ionako 0! j!
inicijalizovati po uklju2!nju (npr$ 2itanj! iz ==PC<MBa)$ 3ovoljno j! &ati u
po&atak u ko "!ru "! okr!0! o"ovina !nko&!ra (kao ko& obi2ni; ta"t!r pr!ki&a2a O
l!voB&!"no)# a ikrokontrol!r 0! to "tanj! "o9tv!r"ki upor!&iti "a pr!t;o&ni i na
o"novu r!zultata izvriti pr!&vi%!nu op!raciju$ <vo uvo&i zna2ajnu pr!&no"t
rotacioni; !nko&!ra u to! to ko& nji; n!a *rani2ni; poloaja$ 3ru*i r!2ia#
o!t! okr!tati nji;ovu o"ovinu koliko *o& !lit!# kao ko& 'autilu" "lavina$
Si*nal &obij!n "a r!lativno* rotaciono* !nko&!ra u
j!&no tr!nutku o! iati "tanja prikazana u
"l!&!0oj tab!li/
BBa Cotacija u "!ru kazaljk! na "atu BB@
00 01 11 10 00
eBB Cotacija "uprotno o& "!ra kazaljk! eBB
1F1
Gao to vi&it!# ukoliko "! "i*nal !nja u "!ru ++# +1# 11# 1+ to zna2i &a "! o"ovina
okr!0! u "!ru kazaljk! na "atu$ - "uprotno (1+# 11# +1# ++) o"ovina !nko&!ra "!
okr!0! u "uprotno "!ru$ Takvo "tanj! "i*nala oo*u0ava &a por!%!nj!
pr!t;o&no* i "a&anj!* "tanja lako otkrij!o u koj! "! "!ru okr!0! o"ovina$ 'a
pri!r# ukoliko j! pr!t;o&no "tanj! bilo 11 a "a&anj! j! +1# o"ovina "! okr!0!
"uprotno o& kazaljk! na "atu$
Iako >a o! iz*l!&ati &a "u rotacioni !nko&!ri "pori# to nij! "lu2aj$ <ni o*u iati
i pr!ko @FF poloaja za "ao 1 okr!taj o"ovin!$ Mo! "! &!"iti &a zbo* "poro"ti
ikrokontrol!ra (ukoliko izvrava i &ru*! op!racij! za vr!! okr!tanja
pot!ncio!tra) PIC nakon "tanja 1+ &!t!ktuj! "tanj! +1 to j! o2i*l!&no *r!ka$ 7o
*or!# pri pr!vi! brzo okr!tanju npr$ u "!ru kazaljk! na "atu o*u0! j! &a nakon
"tanja +1 n! o2ita (zbo* "poroti) "l!&!0a @ "tanja (11 i 1+)# v!0 t!k tr!0! (++)# pa na
o"novu to*a o! zaklju2iti &a j! o"ovina okr!nuta u "uprotno "!ru$
Go& !;ani2ki; rotacioni; !nko&!ra "ituacija j! jo "lo!nija# j!r "! ora izvravati i
&!bouncin* rutina$ <na "! u*lavno o! upro"titi tako to "! u!"to nj! za j!&nu
pro!nu "tanja !nko&!ra trai uza"topan "l!& @ ili vi! i"pravni; "tanja$ 'a taj na2in
j! po"ti*nuta i"pravna &!t!kcija trvovanj! r!zolucij! !nko&!ra$
-koliko n! !lit! iz*ubiti na r!zoluciji o!t! iz!%u !;ani2ko* !nko&!ra i
ikrokontrol!ra po"taviti ;ar&v!r"ki &!bouncin* ("a r!&ni otporniko iz!%u pina
ikrokontrol!ra i !nko&!ra i kon&!nzatoro iz!%u izlaza !nko&!ra i a"!)$ 6to j!
v!0a kapacitivno"t kon&!nzatora# v!0a 0! biti iuno"t na "!tnj! varni2!nja# ali 0!
ak"ialna brzina okr!tanja o"ovin! !nko&!ra biti "raz!rno anja$ <bi2no j!
&ovoljna vr!&no"t o& 1+nF$ -potr!blj!ni kon&!nzatori oraju biti o&abrani pr!a
ak"ialnoj r!zoluciji i ak"ialnoj proc!nj!noj brzini okr!tanja o"ovin! !nko&!ra$
Gako 0! "! "tanj! o"ovin! !nko&!ra najv!rovatnij! r!tko ka&a !njati# najprakti2nij!
j! pov!zati izlaz! rotaciono* !nko&!ra na int!rapt ulaz! ikrokontrol!ra$ - "lu2aju &a
j! potr!bno "nianj! tr!nutn! (ap"olutn!) vr!&no"ti poloaja o"ovin! rotaciono*
!nko&!ra u ==PC<M# prakti2nij! j! "niiti j! t!k nakon to "! o"ovina pr!"tan!
po!rati (na pri!r 6S nakon za&nj!* "i*nala)$ 'a taj na2in titi "! ==PC<M$
>i! &!talja o upotr!bi r!lativni; rotacioni; !nko&!ra iat! na "ajtu
;ttp/MMRRR$cani"$coMc;uckMrobotic"Mproj!ct"MlabBNKMXua&ratrak$;tl$
Tr!bat! ";vatiti &a rotacioni !nko&!ri n! o*u za!niti analo*n! pot!ncio!tr! u
pravo "i"lu t! r!2i$ <ni n!aju nikakvu v!zu "a pro!no otporno"ti$ To "u "ao
&i*italni &ava2i poloaja o"ovin!$ M!%uti# to n! zna2i &a "! (u kobinaciji "a
ikrokontrol!ro) n! o*u upotr!biti kao pot!ncio!tar$ 3ovoljno j! o2itanu
vr!&no"t &ov!"ti na 3M8 konv!rtor i iat! izlazni napon proporcionalan poloaju
o"ovin! !nko&!ra$ Taj analo*ni izlazni napon o!t! kori"titi kao izvor napajanja za
pr!&poja2ava2 ka"!to9ona# 2i! "t! &obili o&li2an r!*ulator ja2in! zvuka$ Po"toj!
int!*ri"ana kola koja izvravaju upravo tu op!raciju b!z upotr!b! 3M8 konv!rtora
(3S166Y# T388FF1)$ 8 ukoliko "t! ba r!!ni &a &obij!t! pro!nljivu otporno"t
pov!it! na PIC bilo koji pr!tvara2 &i*italno* "i*nala u otporno"t$ 'a pri!r 3F1P+4$
1F@
61. Reg3$5#( !&er # br1#'e
0o$e0"or!0#@ DC &o"or
Po& kol!ktor"ki 3C otoria po&razuj!vaju "! otori j!&no"!rn! "truj! "a
2!tkicaa$ >!liko broju kol!ktor"ki; otora j!&no"!rn! "truj! o*u0! j! !njati
"!r i brzinu$ 'a pri!r ali otoria iz vok!na ili ka"!to9ona# otoria
v!ntilatora za ;la&njak autoobila# pa "v! &o otora za viljukar!$ Princip nji;ovo*
ra&a j! i"ti# a razlikuju "! j!&ino po "vojoj potronji i &i!nzijaa$
Gako otori najbolj! i"kori0!nj! iaju pri "vo noinalno naponu napajanja# &a
bi i "! pro!nio ("anjio) broj obrtaja nij! ba prakti2no kori"titi 3M8 konv!rtor za
"anj!nj! to* napona$ -!"to to*a kori"ti "! PUM princip 3M8 konv!rzij!# ali b!z
int!*ratora (otpornika i kon&!nzatora)$ 'a taj na2in otoru n!0! biti "anj!na "na*a
obrtanja o"ovin! (u"l!& "anj!no* napona napajanja)# v!0 0! "! "na*a r!*uli"ati
PUM o&no"o puno* napona napajanja$
Za pro!nu "!ra okr!tanja o"ovin! otora kori"ti "! poznata o"obina kol!ktor"ki;
otora &a i "! rotor o! okr!tati u "uprotno "!ru priliko pro!n! polarit!ta
napona napajanja (opr!z O n!ki otori pri to! iaju "anj!nu "na*u)$ Iz to* razlo*a
potr!bno j! pro!niti "!r napona napajanja otoru$ Sto*a "! izlazi ikrokontrkora
pov!zuju "a &rajv!ro u obliku tzv$ ,Bo"ta (!n*$ ,Bbri&*!)# koji ob!zb!%uj!
n!op;o&nu pro!nu polarit!ta$ >i! o ovo! iat! na "ajtu/
RRR$cani"$coMc;uckMCobotic"MtutorialM;Bbri&*!Min&!N$;tl
Gako kol!ktor"ki otor o! u tr!nutku uklju2!nja povu0i no*o v!0u "truju o&
noinaln!# po!ljno j! *alvan"ki *a o&vojiti o& ikrokontrol!ra$ Tako%!# potr!bno j!
o"i*urati "! &a kvar ikrokontrol!ra ili n!pravilna "!kv!nca na nj!*ovi izlazia n!
o! &ov!"ti &o kratko* "poja kroz tranzi"tor! zaobilaz!0i otor$ <ba probl!a
u"p!no "u r!!na !l!ktri2no !o "a "ajta/
RRR$cani"$coMc;uckMCobotic"MtutorialM;Bbri&*!MbjtBcircuit$;tl
Ca&i anj!* opt!r!0!nja otora# &rajv!ra i !;ani2ki; !l!!nata# priliko pro!n!
"!ra potr!bno j! po"t!p!no u"poriti otor ("anjivanj! PUM o&no"a)# zati *a
zako2iti# a t!k on&a polako ubrzavati (pov!0anj! PUM o&no"a) u "uprotno "!ru$
-koliko ovo n! i"potuj!t! (pri ak"ialnoj brzini u j!&no "!ru &ov!&!t! "i*nal
za ak"ialnu brzinu u "uprotno "!ru) !9!kat 0! biti i"ti kao ko& autoobila koji
iz 2!tvrt! brzin! ubacit! u rikv!rc$
Pr! t!"tiranja na ;ar&v!ru "iulirajt! pro*ra i prov!rit! &a li "t! otoru o"tavili
&ovoljno vr!!na za zau"tavljanj!$ -"poravanj!# ko2!nj! i ubrzavanj! n!0! iati
"voju 9unkciju ukoliko "! zavr! za "ao +#1S$
1FK
62. Po"ro;> 0o !e'1or
Znat! li zato nova# t!k kuplj!na "ijalica po prvo uklju2!nju pr!*ori? '!ojt! "!
u2iti$ Miki# pro9!"or !l!ktri2ni; aina =l!ktrot!;ni2k! kol! u 8l!k"incu po"tavio
j! naa u2!nicia to pitanj!$ Po"l! pola kol"ko* 2a"a# orao j! "a o&*ovoriti na
nj!*a$ 'ij!&an ponu%!ni o&*ovor nij! bio ta2an$
>ol9raova "ijalica ia pozitivni t!p!raturni ko!9icij!nt otporno"ti (!n*$ PTC)$ To
zna2i &a joj j! otporno"t &ok kroz nju n! proti2! "truja ni"ka# r!&a oa$ - tr!nutku
uklju2!nja (&ok j! jo ;la&na)# kroz nju pro%! i &o 1+ puta v!0a "truja$ M!%uti# pri
proputanju ov! "truj! vol9raovo vlakno "! za*r!j! i pov!0a "voju otporno"t na vi!
&!"!tina oa# to o*rani2ava &alj! pov!0anj! "truj!$ -koliko u proizvo&no proc!"u
vol9raovo vlakno nij! pravilno &i!nzioni"ano (npr$ pr!kratko j!)# nj!*ova
otporno"t n!0! "! po prvo uklju2!nju &ovoljno pov!0ati# "truja "! n!0! &ovoljno
o*rani2iti i ono 0! "! zato i"topiti$ Iz to* razlo*a "! ko& "kuplji; ;alo*!ni; "ijalica
pon!ka& pri!njuj! !l!ktron"ko kolo "a o*rani2!nj! ak"ialn! "truj! (!n*$ curr!nt
liit!r) ili po"t!p!ni pov!0anj! "truj! (!n*$ "o9t "tart)$
Pr!tpo"tavio &a !lit! iz!riti !l!ktri2nu otporno"t "ijalic! &ok j! vol9raovo
vlakno jo u"ijano$ 7a"no j! &a to o!t! ura&iti pri!no oovo* zakona i
!r!nj! napona i "truj!# ali o!t! li to ura&iti &ir!ktno? -z ikrokontrol!r i ovo j!
o*u0!$ Pr!tpo"tavio &a "! "ijalica napaja "a F> j!&no"!rn! "truj! (n! pokuavajt!
ovo ura&iti "ijalico o& @@+> iz b!zb!&no"ni; razlo*a)$ Pino C8+ "! pr!ko
pr!ki&a2ko* tranzi"tora uklju2uj! i i"klju2uj! r!l!j$ Sijalica j! pov!zana &ir!ktno na
HF> i na r!l!j# nj!*ov irni kontakt (i"klju2!n r!l!j) pov!zan j! na paral!lni 8M3
konv!rtor na P<CT5# a ra&ni kontakt (uklju2!n r!l!j) na a"u$
S!tovanj! C8+ pina# uklju2uj! "! r!l!j# i "a2!ka "! &a "ijalica za"v!tli$
C!"!tovanj! C8+ pina i"klju2uj! "! r!l!j i "ijalica "! (i &alj! vru0a) pr!bacuj! na 8M
3 konv!rtor$ Struja koja prolazi kroz int!rn! otporno"ti 8M3 konv!rtora j! toliko ala
&a n! o! u v!likoj !ri uticati na &alj! za*r!vanj! "ijalic!$ 5rzi nizo !r!nja
o! "! u r!*i"tr! ikrokontrol!ra pri!no in&ir!ktno* a&r!"iranja "niiti *ra9ik
opa&anja otporno"ti u"l!& ;la&j!nja "ijalic!$ .ak "! o! !r!nj! prot!klo*
vr!!na &o inialn! otporno"ti "ijalic! *rubo iz!riti "poljna t!p!ratura ("ijalica
0! "! br! ;la&iti ukoliko j! "poljna t!p!ratura nia)1 Zazi"lit! bojl!r# ko! j!
"!nzor t!p!ratur! nj!*ov "op"tv!ni *r!ja2$ Sao ka& n! bi iao toliko ka!nca1
<vaj princip nij! o*rani2!n "ao na "ijalicu$ =l!ktri2ni otori j!&no"!rn! "truj!
priliko i"klju2!nja in!rcijo na"tavljaju "voj ra&# pri to! ra&!0i u *!n!rator"ko
r!iu$ 'a nji;ovi kontaktia o! "! 8M3 konv!rtoro iz!riti *!n!ri"ani napon#
i na o"novu nj!*a# po potr!bi# 3M8 konv!rtoro kalibri"ati brzina otora$ Po i"to
principu v!tr!nja2i "! o! 9ino r!*uli"ati u*ao zakr!tanja krila u zavi"no"ti o&
*!n!ri"ano* napona (2i! bi "! "pr!2io nji;ov lo pri pr!jako v!tru)# a akuulatoru
oo*u0iti naiz!ni2no punj!nj! i t!"tiranj! napunj!no"ti$
Iako n!a &ir!ktn! v!z! "a potroa2ia# v!rovatno 0! >a" zaniati kako o!t!
obi2nu :=3 upotr!biti za "!nzor o"v!tlj!no"ti$ 3!talj! iat! na "ajtu
;ttp/MM9r!!Bvz$tBco$;rMIvicaB'ovakovicMin&!N$;tl$
1F4
6). Servo &o"or#
S!rvo otori pr!&"tavljaju obi2n! kol!ktor"k! 3C otor! kojia j! &o&at
o&*ovaraju0i &ava2 poloaja# o&no"no brzin!$ 'a taj na2in o!t! biti "i*urni &a j!
otor napravio ta2no toliko i toliko obrtaja$ <vo bi >a o*lo biti potr!bno priliko
r!*ulacij! protoka vo&! ili vaz&u;a poi2ni pr!*ra&aa# kon"trukcij! C'C ain!#
ili pr!cizn! r!*ulacij! brzin! otora$ S!rvo otori obi2no iaju r!&uktor! pr!ko
koji; i "! "anjuj! brzina (a pov!0ava "na*a) u o&r!%!no op"!*u$
Gako "! o"ovina otora okr!0! prili2no brzo# najprakti2nij! j! uziati "i*nal "a
o"ovin! r!&uktora$ <n j! tu i pr!cizniji zbo* zazora koji o! !v!ntualno po"tojati
(npr$ priliko r!&ukcij! kai!via kao ko& "tariji; v! aina)$ Si*nal "! "a o"ovin!
o! &ov!"ti u PIC na vi! na2ina$ -koliko o"ovina r!&uktora n! zatvara pun kru*
(npr$ za pozicioniranj! ant!n!)# o*u0! j! o"ovinu r!&uktora pov!zati na obi2an
analo*ni pot!ncio!tar$ Taj princip objanj!n j! u 8'FK1$
Za o"tal! pri!n! o&a bi po*o&niji bio na2in "a rotacioni !nko&!ro$ <n j!
objanj!n u 8'P18$
Motori koji "! i por!& r!&uktora n! o*u &ovoljno brzo zau"taviti (iaju v!liki
zaajac) oraju por!& rotaciono* !nko&!ra pri!njivati u"poravanj!# ko2!nj! pa
ubrzanj!$ To j! obja"nj!no u 8'FK@
Pon!ka& "! rotacioni !nko&!r n! o! upotr!biti zbo* pr!v!lik! ak"ialn! brzin!
otora$ 'a "r!0u# o&*ovaraju0! &ava2! poloaja o"ovin! otora nij! t!ko napraviti
uz par o&*ovaraju0i; "!nzora$ >i! o to! iat! u 8'F6Y i 8'8Y4$
1FF
64. S"e% &o"or#
St!p otori pr!&"tavljaju "p!cijalan oblik otora prila*o%!ni; pr!ciznoj r!*ulaciji
poloaja o"ovin!$ 'i"u na!nj!ni za ra& "a v!0i brzinaa v!0 i "! o"ovina u
"vako tr!nutku o! na0i u j!&no o& ta2no &!9ini"ani; poloaja (koraka !n*$
"t!p)$ -kupni broj! koraka o&r!%!n j! u*ao po!ranja o"ovin!$ -z @++ koraka#
u*ao iz!%u &va koraka j! K6+
o
M @++ V 1#8
o
$
Za "voj! upravljanj! kori"t! o&*ovaraju0! "!kv!nc! "li2n! onia iz rotacioni;
!nko&!ra$
Po "ao principu nji;ovo* ra&a o2i*l!&no j! &a i za razliku o& "!rvo otora nij!
potr!ban ikakav oblik povratn! in9oracij! o poloaju$ 3ovoljno j! priliko
inicijalizacij! vratiti o"ovinu "t!p otora &o po2!tno* poloaja# a zati j! okr!nuti za
!lj!ni broj koraka$
1F6
64. De"e05#( %ro$!0 '%o' 0ro1 :
.!"to "! javlja potr!ba &a "! ikrokontrol!ro tr!ba &!t!ktovati prolazak
naiz!ni2no* napona kroz +$ 'a pri!r pri kon"trukciji &i!ra vol9ra"k! "ijalic! ili
pri kon"trukciji "ata taktovano* r!no 9r!kv!ncijo o& F+,z$ -koliko j! u pitanju
nizak napon# n!a nikakvi; probl!a$ 3ovoljan 0! >a biti j!&an tranzi"tor# &io&a i
par otpornika$
Slika
M!%uti# ukoliko ikrokontrol!r tr!ba &!t!ktovati prolazak kroz + za @@+># ovaj
na2in nij! o*u0! kori"titi zbo* pr!v!liko* napona na bazi tranzi"tora i iz
b!zb!&no"ni; razlo*a$ 3a bi "! ovaj probl! pr!vaziao# o! "! kori"titi "l!&!0a
!l!ktri2na !a/
Slika
Mo&a "! pitat! zbo* 2!*a j! ovoliko *ra&iva po"v!0!no upravo analo*noj !l!ktronici$
PIC16F84 "a po "!bi n! n! o! no*o to*a$ 3a bi ra&io ita kori"no potr!bno j!
&ov!"ti u "polja n!k! "i*nal!$ 3a li 0! to biti "i*nal "a t!ro!tra# ta;o!tra#
a!ro!rta# ;i&ro!tra# baro!tra ili t!ropara u ovo tr!nutku nij! bitno$ 5itno j! &a
"!nzori ov! "i*nal! u*lavno &aju u analo*no obliku$ -koliko n! po"toji na2in &a
"! oni o2itaju i &a "! na o"novu &obij!ni; in9oracija pr!&uz! o&r!%!na akcija (npr$
navo&njavanj! povr0a u pla"t!niku ili aktiviranj! alara)# &ab! "t! kupovali PIC$
1FP
66. I'"egr#!' 0o$ 4::: # 64:: !er#(e
- &i*italnoj !l!ktronici "! za r!alizaciju j!&no"tavni; za&ataka u*lavno
upotr!bljavaju popularna int!*ri"ana kola "!rij! 4+++ ili P4++ (poznatija kao C34+++
i S'P4++)$ 'ji;ova *lavna pr!&no"t j! ni"ka c!na i laka &o"tupno"t$ PIC16F84 "!
o! b!z probl!a pov!zivati "a ob! "!rij! int!*ri"ani; kola$ - ovi kolia "u na
;ar&v!r"ko nivou ipl!!ntiran! j!&no"tavn! lo*i2k! op!racij!# broja2i#
ultipl!k"!ri# po!ra2ki r!*i"tri# &i"pl!j &rajv!ri i &r$ tako &a "u no*o bra o&
ikrokontrol!ra$
-koliko >a iz bilo ko* razlo*a zatr!ba n!ka 9unkcija koja nij! ipl!!ntirana u
PIC16F84# o!t! *a &ir!ktno pov!zati "a o&*ovaraju0i int!*ri"ani kolo# koj!
r!alizuj! po!nutu 9unkciju$
-put"tvo koj! &!taljno objanjava 9unkcij! o"novni; lo*i2ki; kola o!t! na0i na
;ttp/MMRRR$ibiblio$or*MobpM!l!ctricCircuit"M3i*italMin&!N$;tl "ajtu$
Gnji*a koja i"to tako &!taljno obra%uj! ovu t!u j! I=l!ktronika &i*italni; ra2unaraJ
8lb!rta Paula Malvina$ Iako j! iz&ata jo 1Y81# toliko po"tupno izla! *ra&ivo# &a j!
nj!n "a&raj i &alj! aktu!lan$ 7!&ini za"tar!li &!o u knjizi j!"t! opi" o&avno
pr!vazi%!ni; a*n!t"ki; !orija$
'!ki o& pro*raa koji >a o*u poo0i u "iuliranju o"novni; lo*i2ki; kola "u/
:o*i"i
3i* ital Siulator
3i* ital Uork"
Gako ob! "!rij! za pov!zivanj! "a ikrokontrol!ro kori"t! a&r!"nu a*i"tralu#
brzina kounikacij! 0! biti o*rani2!na j!&ino ;ar&v!ro# ali 0! "! i za
najj!&no"tavnij! op!racij! orati utroiti v!0i broj pinova$
1F8
66. +3$"#%$e0!#r'(e #1$1
PIC16F84 ia 1K ulazno izlazni; pinova$ Sai ti iz*l!&a n!o*u0! "pojiti
&ir!ktno na ikrokontrol!r vi! o& 1K :=3$ M!%uti# pri!no ultipl!k"iranja
o*u0! j! &ir!ktno na ikrokontrol!r "pojiti no*o v!0i broj :=3$
Gako ra&i ultipl!k"iranj!$ Znat! i "ai &a j! t!l!vizij"ki prikaz o*u0 j!&ino zbo*
troo"ti lju&"ko* oka$ <v&! j! pri!nj!n "li2an pri"tup$
Po*l!&ajt! "l!&!0u !u$ 8no&! :=3 "poj!n! "u na P<CT5# a kato&! na tranzi"tor!$
Sa ovo !o oo*u0!no j! upravljanj! atrico o& K@ :=3$
C84 pin P<CT8 r!*i"tra "! ov&! n! kori"ti# j!r n! o! &ati na "vo izlazu lo*i2ku
j!&inicu$ M!%uti uz alo trikova (za!no polarit!ta :=3 i pov!zivanj!
tranzi"tora na naponu napajanja) i on o! biti u 9unkciji$ - prak"i "! u*lavno "r!0!
potr!ba za bar j!&ni ulazo# tako &a "! taj na2in n! praktikuj!$
'ajpr! j! potr!bno i"klju2iti "v! pr!ki&a2k! tranzi"tor! &ovo%!nj! lo*i2k! + u
P<CT8$ Zati j! potr!bno na P<CT5 r!*i"tru po"taviti "tanj! 8 :=3 u prvoj koloni#
i na kratko (obi2no oko @+S &a "! pro"!2an int!nzit!t "v!tlo"ti n! bi pr!vi!
"anjio) uklju2iti pr!ki&a2ki tranzi"tor na C8+ pinu$ 3io&! na koj! j! &ov!&!na
lo*i2ka 1 0! na tr!nutak za"v!tl!ti$ <n&a "! po"tavlja "tanj! :=3 &ru*! kolon!# i na
kratko uklju2uj! tranzi"tor na C81 pinu$ Po"tupak "! ponavlja &ok "! n! prika!
"tanj! i na za&njoj (2!tvrtoj) koloni# ka&a "! c!lokupan proc!" ponavlja$
Zbo* troo"ti oka# iz*l!&a0! kao &a :=3 n!pr!ki&no "v!tl!$ :=3 0! "v!tl!ti anji
int!nzit!to n!*o ina2!# ali to "! o! na&okna&iti proputanj! v!0! "truj! kroz nji;
("anjivanj! vr!&no"ti otpornika na pinovia P<CT5 r!*i"tra)# ili po&!avanj!
&uin! uklju2!no* "tanja# tako &a "! po"ti*n! koproi" iz!%u ja2in! "v!tla &io&a i
nji;ovo* tr!p!r!nja$
Cutinu za i"pi" "tanja na &i"pl!ju# najprakti2nij! j! r!alizovati u int!rapt rutini
izazvanoj taj!ro$ 'a taj na2in prikaz "tanja :=3 n! uti2! (pr!vi!) na ra& *lavno*
pro*raa$
'a i"ti na2in o*u0! j! prikazati o&*ovaraju0! ci9r! na vi! "!&o"!*!ntni;
&i"pl!ja$
1FY
Svi izvo&i "vi; zaj!&ni2ki; "!*!nata (a# b# c# &# !# 9# *# i &p O ukupno 8 izvo&a)
"poj!ni "u pr!ko otpornika za P<CT5 ikrokontrol!ra$ Zaj!&ni2k! kato&! &i"pl!ja
"pajaju "! pr!ko pr!ki&a2ko* tranzi"tora na P<CT8$
'ajpr! "! i"klju2uju "vi pr!ki&a2ki tranzi"tori &ovo%!nj! lo*i2k! + u P<CT8$ Zati
j! potr!bno na P<CT5 r!*i"tru po"taviti "liku ci9r! prvo* &i"pl!ja# i kratko uklju2iti
pr!ki&a2ki tranzi"tor na C8+ pinu$ <n&a "! po"tavlja "lika ci9r! &ru*o* &i"pl!ja# i na
kratko uklju2uj! tranzi"tor na C81 pinu$ Po"tupak "! ponavlja &ok "! n! prika! ci9ra
i na za&nj! (2!tvrto) &i"pl!ju# ka&a "! c!lokupan proc!" ponavlja$
- prak"i "! o! vi&!ti ovakav princip r!alizovan b!z ikakvi; opornika i pr!ki&a2ki;
tranzi"tora# o&no"no &ir!ktni pov!zivanj! &i"pl!ja na PIC$ 'j!*ova ana j!
pov!0ana potronja# "ai ti i *r!janj! ikrokontrol!ra kao i n!j!&nako"t "v!tla
poj!&ini; ci9ara$ <vo "to*a to pin za pr!ki&anj! &i"pl!ja ora kroz "!b! propu"titi
"truju "vi; "!*!nata &i"pl!ja# pa "ai ti int!nzit!t "v!tla nij! i"ti ka&a j! na
&i"pl!ju prikazan broj 8 (uklju2!ni "vi "!*!nti) i broj 1 (uklju2!ni "!*!nti b i c)$
5roj pinova o! "! "anjiti upotr!bo :=3 &rajv!ra 4+++ ili P4++ "!rij!$
4F11 int!*ri"ano kolo pr!&"tavlja &rajv!r za "!&o"!*!ntni :=3 &i"pl!j$ Ga&a u
"! na ulaz &ovo&! binarni broj!vi o& + &o Y# na izlazu uklju2uj! o&r!%!n! "!*!nt!
:=3 &i"pl!ja$ -!"to 4F11# o! "! kori"titi P44P$
Po"tupak j! i"ti kao i ranij!# "a ti to u!"to o&*ovaraju0!* obra"ca za prikaz na
&i"pl!ju# na ulaz! 4F11 tr!ba &ov!"ti binarni broj o& + &o Y$ S!*!nt &!cialn! ta2k!
(&p)# orao j! biti &ov!&!n &ir!ktno na ikrokontrol!r# j!r 4F11 (i P44P) ia
o*u0no"t prikaza "ao j!&n! ci9r!$ -koliko "! &!cialna ta2ka n! kori"ti# &obi0!t!
jo j!&an "lobo&an pin$
Za &!taljni opi" pov!zivanja 4F11 ili P44P int!*ri"ani; kola# "kinit! "a int!rn!ta
nji;ov! t!;ni2k! po&atk!$
16+
68. Ko&%$e&e'"r'o %ove1#v'(e -ED
Poznato va j! &a pin o! biti po"tavlj!n kao izlaz na vi"oko lo*i2ko nivou# kao
izlaz na ni"ko lo*i2ko nivou# i kao ulaz ka&a j! u "tanju vi"ok! ip!&an"!$
Sl!&!0! kolo kori"ti "va tri "tanja j!&no* pina# za po*on @ :=3$
3a bi "! ovo kolo o*lo pri!njivati# potr!bno j! iz!riti o&r!%!n! para!tr!$
>o991 O ak"ialni napon pri ko! :=31 n! !ituj! "v!tlo
>o99@ O ak"ialni napon pri ko! :=3@ n! !ituj! "v!tlo
>on1 O iniinalni napon pri ko! :=31 !ituj! "v!tlo
>on@ O iniinalni napon pri ko! :=3@ !ituj! "v!tlo
Ion1 O !lj!na "truja kroz :=31 pri uklju2!no "tanju
Ion@ O !lj!na "truja kroz :=3@ pri uklju2!no "tanju
>cc O napon napajanja
Potr!bni prora2uni "u "l!&!0i/
Ion1 V \ (>ccB>on1)MC1 ] B \ >on1M(C@HCK) ]
Ion@ V \ (>ccB>on@)MC@ ] B \ >on@M(C1HCK) ]
(>o991H>o99@)MCKV>ccB>o991B>o99@M(C1HC@)
3a bi "! "anjila n!potr!bna potronja "truj! potr!bno j! za CK izabrati to v!0u
vr!&no"t# b!z uklju2ivanja :=3 pri ulazno "tanju pina$ Priblin! vr!&no"ti otpornika
(za "truju o& 88 po uklju2!noj :=3) "u "l!&!0!/ C1VK++[# C@VK++[# CKV1#@k[$
-klju2!nj! :=31 po"ti! "! po"tavljanj! pina na lo*i2ku +# :=3@ na lo*i2ku 1#
i"klju2!nj! ob! :=3 pr!la"ko pina u vi"okoip!&an"no "tanj! (po"tavlj!n kao ulaz)#
a uklju2!nj! ob! :=3 n!pr!"tani naiz!ni2ni &ovo%!nj! lo*i2k! + i 1 na pin (za
to j! najprakti2nij! kori"titi int!rapt izazvan taj!ro)$
Za razliku o& "tan&ar&ni; ultipl!k"a# ovo kolo troi 2ak @#F8 u "tanju i"klju2!ni;
:=3# pa nij! po*o&no za bat!rij"ko napajanj!$ Prakti2nij! j! kori"titi ultipl!k"$ <v&!
j! ilu"trovano "ao kao pri!r ono*a to tr!bat! izb!*avati u "voji aplikacijaa$
'a "li2an na2in o!t! pov!zivati i no*o v!0i broj :=3$ Za &!talj! po*l!&ajt!
T5+@Y "a ;ttp/MMRRR$icroc;ip$coM$
- lit!raturi "! ovaj princip o! na0i i po& nazivo C;arli!pl!Nin*$
161
69. -CD A %o(&
Pr! "v!*a tr!bat! znati &a po"toji vi! vr"ta :C3 (:iXui& CrW"tal 3i"plaW)$ :C3 u
"vo najo"novnij! obliku o!t! vi&!ti na &i*italno "atu# &i*itronu ili vi&!o
i*ricaa$ Ci9r! na :C3Bu "a"toj! "! (kao i ko& :=3 &i"pl!ja) o& "!*!nata$ M!%uti#
njia "! za razliku o& :=3 "!*!nata n! "! &ov!"ti j!&no"!ran napon &a bi
po"tali vi&ljivi$ 6tavi!$ 7!&no"!rni napon 0! i; unititi$ To zna2i &a "! o&r!%!no
"!*!ntu &a bi po"tao vi&ljiv ora n!pr!ki&no &ovo&iti naiz!ni2ni napon (kao ko&
ultipl!k"a poj!&ini; :=3)$ 'a "r!0u# i :C3 o! ra&iti u ultipl!k"u# ali u &o"ta
&ru*a2ij! obliku$ Pri to! broj pinova za uklju2!nj! poj!&ini; &i"pl!ja o"taj! i"ti# ali
j!&an o"obitni port o! kontroli"ati ak"ialno &va "!&o"!*!ntna :C3
&i"pl!ja (zaj!&no "a &!cialno ta2ko)$ PIC16F84 bi pr!a to! o*ao &a
&ir!ktno kontroli! j!&nu &o &v! ci9r! &i"pl!ja va!* &i*itrona$ >i! o principu
&ir!ktno* po*ona :C3Ba iat! u 8'F6K "a ;ttp/MMRRR$icroc;ip$coM$
3a bi "! ovo o*rani2!nj! pr!vazilo izilj!ni "u tzv$ int!li*!ntni :C3$ <ni por!&
&i"pl!ja iaju int!*ri"ano kolo koj! "lui &a "! pr!ko anj!* broja pinova o!
upravljati v!0i broj! "!*!nata :C3Ba$ Po"toj! &v! opt! vr"t! ovi; &i"pl!ja$
8l9anu!ri2ki i *ra9i2ki$ 'a al9anu!ri2ki "! o*u prikazati j!&ino "lova i broj!vi
(vi&!li "t! i; na ;alo *ovornicaa)# a na *ra9i2ki ta *o& !lit! (iat! i; na
obilni t!l!9onia)$ - o"tatku t!k"ta bi0! opi"ani al9anu!ri2ki int!li*!ntni
&i"pl!ji$
Int!*ri"ani kontrol!r al9anu!ri2ki; int!li*!ntni; &i"pl!ja za&u!n j! za *!n!ri"anj!
naiz!ni2no* napona n!op;o&no* za ra& &i"p!ja# za ultipl!k"# za i"pi" "kra0!no*
"!ta 8SCII ili *!n!ri"anj! "op"tv!no* "!ta karakt!ra# pa 2ak i za tr!p!r!nj! i rotaciju
t!k"ta na &i"pl!ju$ -*lavno "! kao kontrol!r kori"ti int!*ri"ano kolo ,itac;i
,348PP+ ili n!ki o& nj!*ovi; kopatibilni; klonova$
6ta pr!&"tavlja 8SCII "!t karakt!ra? - rano &oba in9oratik! "vaki kopjut!r
(Coo&or!# Sp!ctru# 8tari# 8"tra&# <ric 'ova# Paco# ?alak"ija) iao j!
"op"tv!ni 9orat pr!&"tavljanja t!k"ta$ Go& n!ki; j! v!liko "lovo 8 u !oriji bilo
pr!&"tavljano broj! +N++# ko& n!ki; +N@1 a ko& n!ki; +N41$ Mala "lova tako%! "u
iala n!"u*la"ica$ - n!ki kopjut!ria ni"u ni po"tojala$ Pr!&"tavljanj! ci9ara
broj!va i znakova int!rpunkcij! j! op!t po"!ban "lu2aj$ Svakako &a j! bilo potr!bno na
n!ki na2in "tan&ar&izovati !l!ktron"ki oblik zapi"a t!k"ta u ra2unaria# kako bi "!
po&atci "a j!&ni; ra2unara o*li b!z konv!rzij! kori"titi na &ru*i$ Tako j! na"tao
8SCII ko&$ Po nj!u "vaki karakt!r ("lovo# broj ili znak int!rpunkcij!) ia "voj
j!&in"tv!n r!&ni broj$
-koliko paljivo za*l!&at! al9anu!ri2ki :C3 o!t! vi&!ti &a u "! !"ta za
karakt!r! (0!lij!) "a"toj! o& "itni; ta2kica (pik"!la)$ Zatanjivanj! o&r!%!ni;
pik"!la &obija "! "lika (!n*$ patt!rn) karakt!ra u "vakoj poj!&ina2noj 0!liji$ <bi2no "!
int!li*!ntni :C3 proizvo&! "a 8D@# 16D1# 16D@ @+D@# @+D4# @4D@ ili 4+D1 0!lija$
'!a ba no*o "i"la kori"titi PIC16F84 za i"pi" t!k"ta na :C3Bu ukoliko u
nj!*ovoj (ionako aloj) !oriji tr!bao 2uvati "liku (kao u tab!li za :=3 &i"pl!j!)
"vako* poj!&ina2no* karakt!ra$ Tu obav!zu na "!b! pr!uzia int!*ri"ani kontrol!r
int!li*!ntno* &i"pl!ja$ <n ia C<M !oriju u kojoj "! nalaz! "lik! "vako*
karakt!ra$ 'a taj na2in PIC tr!ba po"lati j!&ino 8SCII ko& o&*ovaraj;u0!* karakt!ra#
16@
a &i"pl!j 0! "! "a pobrinuti za "v! o"talo$ To o! biti n!&o"tatak ukoliko !lit! na
&i"pl!ju prikazati naa "lova (npr$ 6lE.)$ Iz to* razlo*a pr!&vi%!na j! o*u0no"t &a
pro*ra!r pro!ni "liku par "p!cijalni; karakt!ra$ Gako int!*ri"ani kontrol!r :C3Ba
n!a ==PC<M !oriju# "liku ovi; karakt!ra j! n!op;o&no 2uvati u !oriji
ikrokontrol!ra i inicijalizovati u :C3Bu po "vako uklju2!nju$
Slika karakt!ra u C<MBu :C3Ba obi2no "! 2uva u atrici o& FDP
ili FD8 pik"!la# ali na &i"pl!ju j! ko& pon!ki; :C3Ba o*u0!
prikazati i proir!nu atricu o& npr$ FD1+ pik"!la$ I"klju2!ni *ornji
i &onji pik"!li j!&no"tavno "! n!0! vi&!ti$ 'aa ti &o&atni pik"!li o*u biti o& kori"ti
ra&i prikaza npr$ "lova 6$
Iako "! &i"pl!ji o*u razlikovati po broju i ra"por!&u 0!lija# upotr!blj!ni 9ontovia
za karakt!r!# vr"ti# na2inu i boji poza&in"ko* o"v!tlj!nja# nji;ovo pov!zivanj! na
ikrokontrol!r j! prili2no "tan&ar&izovano$ 14 pina kori"ti "! za upravljanj! :C3Bo#
a jo @ pina za poza&in"ko o"v!tlj!nj!$ <na o*u biti u i"to r!&u "a o"tali
pinovia# ili po"!bno iz&voj!na$ Mo*u0! j! na0i i :C3 b!z poza&in"ko* o"v!tlj!nja#
ali "a 16 pinova$ Pri to! za&nja &va pina (1F$ i 16$) ni"u pov!zana$
Pinovi :C3Ba o*u biti po"tavlj!ni u
j!&no (16D1) ili u &va (8D@) r!&a$
<bi2no "u broj!via ob!l!!ni bar krajnji
pinovi$ 'a :C3Bu na "lici vi&it! j!&an r!&
pinova$ Pinovi 1F i 16 pov!zani "u
(o&oz&o) na :=3 kao izvor poza&in"ko*
"v!tla (b!li pravou*aonik "a &!"n! "tran!)$
Funkcija pinova j! "l!&!0a/
:"/ 8"%+*, Op"
1 >SS Ma"a
@ >33 'apajanj! za kontrol!r
K >< 'apajanj! za :C3 &i"pl!j
4 CS (!n*$ C!*i"t!r "!l!ction)
F CMU (!n*$ C!a&MRrit! S!l!ction)
6 = =nabl! pin Si*nal 9or :CM
PB14 35+B35P :inij! za po&atk! (+BP)
1F 8 'apajanj! za :=3 (H)
16 G 'apajanj! za :=3 (B)
Gako :C3 za;t!va 2ak 8 pinova za pr!no" bajtova u :C3 (35+O35P)# kontrol!ro
:C3Ba j! pr!&vi%!na o*u0no"t upotr!b! "ao 4 pina (354B35P) a o"obitni bajt
"! u :C3 alj! u @ *rup! niblova$ -t!&a 4 pina "! "vakako i"plati$
Gako j! kontrol!r :C3 &i"pl!ja u "tvari j!&an ali ikrokontrol!r# PIC16F84 tr!ba
o&r!%!ni protokolo (kao CSB@K@) u nj!*a "lati po&atk!$ 3obro j! to ("a izuz!tko
16K
"tartno* pul"a) n! po"toji ak"ialno vr!! za koj! "! ovi po&atci tr!baju po"lati$ 'a
taj na2in ikrokontrol!ru o"taj! prili2no vr!!na za o"tal! op!racij! koj! tr!ba
obavljati$ Ipak# po&atci "! na :C3 n! "!ju "lati pr!vi! v!liko brzino# j!r i; u
to "lu2aju kontrol!r :C3Ba n!0! o0i i"pravno priiti$
=nabl! ("tartni) pin o!t! "atrati pino za i"klju2!nj! :C3Ba$ 3ok j! na nj!u
pri"utna lo*i2ka 1# :C3 n!0! r!a*ovati na o"tal! "i*nal!$ 'a taj na2in o*u0! j!
o"tal! pinov! :C3Ba (kao u ultipl!k"u) kori"titi za n!k! &ru*! op!racij!$ Ipul" za
inicijalizaciju int!*ri"ano* kontrol!ra :C3Ba ora trajati bar 4F+nS$ 3ok j! "tartni
'a"tavak "l!&i
164
8:. +3$"#%$e0!#r'(e 3$1
'a "li2an na2in kao u pr!t;o&no po*lavlju# o*u0! j! r!alizovati vi! o& 1K ulaza
ikrokontrol!ra$
Izvo&i pinova ikrokontrol!ra "pajaju "! u atricu tako &a "u ta"t!r pr!ki&a2i "poj!ni
iz!%u 2vorova$ - ovo pri!ru na P<CT5 r!*i"tar "poj!ni "u pinovi C5+# C51#
C5@ i C5K# a na P<CT8 C8+# C81 i C8@$ 'a taj na2in r!alizovana j! atrica "a 1@
ulaza$ <na "! ina2! naj2!0! kori"ti# j!r npr$ t!l!9on"k! ta"tatur! ("a 1@ ta"t!ra) kori"t!
i"ti princip$
Ca&i lak!* razu!vanja pr!tpo"tavio &a "u pr!ki&a2i ob!l!!ni broj!via o& 1 &o
1@$ 'ajpr! "! P<CT8 r!*i"tar po"tavi na bQ+++++111Q$ Zati "! C8+ pin po"tavi na
lo*i2ku +# 2i! "! u prvu kolonu &ovo&i nivo lo*i2k! +$ C!&o "! t!"tiraju bitovi
C5+ &o C5K P<CT5 r!*i"tra$ -koliko nij!&an nij! r!"!tovan# ni"u priti"nuti
pr!ki&a2i ozna2!ni "a 1# 4# P i 1+$ <n&a "! C8+ "!tuj!# a C81 r!"!tuj!$ Ponovo "!
t!"tiraju bitovi P<CT5 r!*i"tra# ali ovo*a puta za *rupu pr!ki&a2a @# F# 8 i 11$ -
za&nj! prolazu "!tuj! "! C81# a r!"!tuj! C8@# i t!"tiraju bitovi koji o&*ovaraju
pr!ki&a2ia K# 6# Y i 1@$ Pull up otpornici oraju biti uklju2!ni kako "! na ulazni
pinovia n! bi javilo n!&!9ini"ano "tanj!$ Zbo* nji; "! t!"tiranj! obavlja za lo*i2ku +$
-koliko j! potr!bno obaviti o&r!%!nu op!raciju po otputanju ta"t!ra# pro*ra ora
patiti za&nj! "tanj! o&*ovaraju0!* ta"t!ra$ - to "lu2aju prakti2nij! bi bilo pov!zati
pinov! C54 &o C5P u atricu# i po pro!ni "tanja izazvati int!rapt$ Int!rapt rutina
tr!ba &!t!ktovati "tanj! pinova P<CT8 i P<CT5 r!*i"tra# utvr&iti koji bit j! izazvao
int!rapt# i izvriti za&atu op!raciju$ <tpornici o& 1++[ "u pov!zani ra&i zatit! o&
lano* oki&anja u"l!& !l!ktro"tati2ki; "!tnji$ -koliko "! ta"tarura nalazi blizu (e@)
ikrokontrol!ra# o*u "! izo"taviti$
8 ukoliko !lit! po"ti0i jo vi! ulaza uz inialni broj upotr!blj!ni; pinova# o!t!
kori"titi "l!&!0u !u$
16F
Pr!tpo"tavio &a "u upotr!blj!ni pinovi C5+ &o C5K# i &a "u pr!ki&a2i ob!l!!ni
&!cialno (1 O 1@)# kao u prolo pri!ru$ Pr! "v!*a# potr!bno j! uklju2iti pullBup
otpornik!$ <n&a tr!ba &!9ini"ati pin C5+ kao izlazni# a C51# C5@ i C5K kao ulazn! i
po"taviti C5+ na lo*i2ku +$ C!&o "! t!"tiraju "tanja na C51 (za priti"nut broj 6)#
C5@ (za broj Y) i C5K (za broj 1@)$ Zati "! C5+# C5@ i C5K &!9iniu kao ulazni# a
C51 kao izlazni "a lo*i2ko +# i t!"tiraju "! "tanja na C5+ (za broj K)# C5@ (za broj
8) i C5K (za broj 11)$ Po"tupak "! ponavlja za pinov! C5@ i C5K$
<vaj na2in j! "o9tv!r"ki alo t!i za ipl!!ntaciju# j!r "! u i"to r!*i"tru ora
vriti anipulacija iz!%u ulazni; i izlazni; "tanja pinova (to povla2i za "obo
pr!lazak iz!%u banki)$ M!%uti# nji j! o*u0! t!"tirati 1@ pr!ki&a2a "a "ao 4
pina$
I u ovo "lu2aju ora "! patiti za&nj! "tanj! o&*ovaraju0!* ta"t!ra ukoliko j!
potr!bno obaviti o&r!%!nu op!raciju po nj!*ovo otputanju$
<vakvi na2ini t!"tiranja ta"t!ra o*u0i "u j!r j! (kao troo"t oka ko& ultipl!k"a "a
:=3) ov&! pri!nj!na troo"t pr"ta koji "! priti"ka pr!ki&a2$ 'ai!# pro"!2no
inialno vr!! za koj! kori"nik &ri ta"t!r pr!ki&a2 priti"nuti j! oko F+ &o
1++S$
:i2no "a iao za&ovolj"tvo &a na kratko popri2a "a prvako Srbij! u kucanju na
t!l!print!ru ("prava poput !l!ktri2n! pi"a0! ain!)$ Guca 6++ "lova za 1 inut#
o&no"no 1+ "lova za 1S$ Go& nj!*a j! ovo pro"!2no vr!! "i*urno n!to kra0!$
Mo! li "! jo "anjiti broj potr!bni; pinova? 'aravno &a o!$ >i! o to! u
nar!&ni po*lavljia$
166
81. D3%$# &3$"#%$e0!
Sl!&!0o !o r!alizovana j! kobinacija ultipl!k"a ulaza "a ultipl!k"o
izlaza$ 'a taj na2in pinovi P<CT5 r!*i"tra iaju &uplu 9unkciju$
S!tit! "! ultipl!k"a izlaza$ Pic p!rio&i2no po"tavlja "tanj! na :=3 "!*!ntia i
pr!ko zaj!&ni2k! kato&! uklju2uj! kopl!tan &i"pl!j$ Zati *a i"klju2uj!# pa po"tavlja
"tanj! na "l!&!0!$ 3upli ultipl!k"o bi "! u tr!nutku &ok j! "u "vi &i"pl!ji
i"klju2!ni t!"tirali ta"t!r pr!ki&a2i pov!zani paral!lno "a &i"pl!jia po principu
ultipl!k"a ulaza$ <tpornici o& @@+[ po"tavlj!ni "u zbo* o*rani2avanja "truj! kroz
:=3 "!*!nt! i "anj!nja uticaja in&ukovani; napona na ulazia ikrokontrol!ra
("ao 4 *ornja)# a otpornici o& @#@k[ &a o"tali "!*!nti &i"pl!ja n! bi za"v!tl!li pri
priti"kanju pr!ki&a2a &ok j! uklju2!n n!ki o& &i"pl!ja$
'ajpr! j! &a "! n! bi javilo n!&!9ini"ano "tanj! na ulazia potr!bno uklju2iti pull up
otpornik!$ To "! o! ura&iti priliko inicijalizacij!# na po2!tku pro*raa$ Gako "u
:=3 &i"pl!ji aktivni "ao ka&a j! P<CT5 &!9ini"an kao izlazni# ovo i n!0! "!tati$
- ultipl!k" rutini "! u pauzi iz!%u uklju2!nja &i"pl!ja (&ok "u "vi &i"pl!ji pr!ko
P<CT8 r!*i"tra i"klju2!ni) C5+ &o C5K &!9iniu kao ulazni# a C54BC5P kao izlazni
pinovi$ C!&o "! na C54 &o C5P po"tavlja lo*i2ka +# i t!"tiraju "tanja na C5+# C51#
C5@ i C5K pinovia$ -koliko j! na n!ko o& nji; pri"utna lo*i2ka +# to in&ikuj!
priti"nut o&*ovaraju0i pr!ki&a2$
Po t!"tiranju "vi; pr!ki&a2a# pinovi P<CT5 r!*i"tra &!9iniu "! kao izlazni# na
P<CT5 "! po"tavlja "lika koja 0! "! pojaviti na :=3 &i"pl!ju i uklju2uj! "!
o&*ovaraju0i &i"pl!j$
T!"tiranj! "! o! obavljati iz!%u ci9ara poj!&ini; &i"pl!ja ili nakon to j!
prikazana "lika na "vi &i"pl!jia$ Goji 0!t! na2in o&abrati zavi"i o& !lj!n! brzin!
t!"tiranja pr!ki&a2a$
Za &!talj! po*l!&ajt! 8'F@Y i 8'FFP "a ;ttp/MMRRR$icroc;ip$coM$
16P
82. K%5#"#v'# %re0#d>#
- ovo po*lavlju nau2i0!t! kako "! unutar PIC ikrokontrol!ra o! ipl!!ntirati
&!t!kcija pri"u"tva pr"ta kori"nika u blizini o&r!%!no* polja$ S!0at! "! principa ra&a
Rilkin"onovo* 8M3 konv!rtora? <n (por!& otporno"ti) o! biti i"kori0!n i za
!r!nj! kapacitivno"ti$ 3ovoljno j! u!"to pro!nljivo* po"taviti otpornik "taln!
vr!&no"ti i to anj! tol!rancij!$ Gao j!&na oblo*a kon&!nzatora kori"ti "! v!0a
povrina plo2ic! p!rtinak"a# a kao &ru*a pribli!n pr"t kori"nika$ Pro!na iz!r!n!
kapacitivno"ti ukazuj! na pri"u"tvo &ru*! oblo*! ovakvo* kon&!nzatora (pr"ta) u
blizini prv! oblo*!$ Gako j! pro!na kapacitivno"ti pr!vi! ala (FpFB1FpF) &a bi "!
o*la &ovoljno u"p!no &!t!ktovati 8M3 konv!rtoro# obi2no "! u!"to j!&no*
kori"ti @FF ciklu"a !r!nja# pri 2!u "! za nji;ovo brojanj! o! kori"titi T+CGI pin$
Fr!kv!ncija ovakvo* o"cilatorno* kola &ir!ktno zavi"i o& kapacitivno"tu iz!%u
oblo*! i pr"ta$ 'j!na pro!na izno"i o& 1i &o Fi$ Za !r!nj! ovako ali; pro!na
"u napr!&niji ikrokontrol!ri u pr!&no"ti zbo* po"tojanja &va taj!ra$ 7!&an "!
kori"ti za brojanj! ipul"a# a &ru*i za *!n!ri"anj! vr!!n"k! baz!$
<vaj !9!kat o*u0 j! j!r "! lju&"ko t!lo ponaa kao provo&nik$ -z &ovoljnu v!liku
povrinu oblo*! i &ovoljno alo ra"tojanj! iz!%u oblo*! i pr"ta kori"nika &!t!kcija
j! prili2no pouz&ana$ 'aravno &a j! zbo* "vo* principa ra&a po&lonija "!tnjaa# ali
!liinacija !;ani2ki; pr!ki&a2a uti2! na "anj!nj! c!n! i l!pi iz*l!& proj!kta$
E!lj!ni oblik ta"tatur! o! "! o&tapati na ;artiji ili t!rootpornoj 9oliji (o! "!
nabaviti u knjiaraa)# i takva "lika o! "! po"taviti iz!%u "takla i oblo*!$
Gako "! u ovo "lu2aju tr!baju &!t!ktovati "ao &va "tanja (ala kapacitivno"t O
n!a pr"ta i v!lika kapacitivno"t O ia pr"ta) "o9tv!r tr!ba &!t!ktovati "ao ova &va
"tanja$ -z &ovoljno tanak izolator ("taklo# pl!k"i*la"# t!rootporna 9olija$$$) o*u0!
j! &!t!ktovati pribliavanj! i o&aljavanj! pr"ta o& oblo*!# naravno u &o"ta
o*rani2!no &o!tu$
I "ai o!t! zaklju2iti &a najv!0i !9!kat na &a i"pravnu &!t!kciju ia upravo oblik i
povrina oplat!$ Zato "! nj!noj kon"trukciji ora po"v!titi po"!bna panja$ Za &!talj!
po*l!&ajt! 8'11+1# 8'11+@ # 8'11+K i 8'11+4 "a ;ttp/MMRRR$icroc;ip$coM i
RRR$icroc;ip$coMTouc;$
Gapacitivni pr!ki&a2i iaju i par ana$ <ni iaju alo v!0u potronju !n!r*ij!#
o&ailju !l!ktroa*n!tn! tala"! (zbo* v!0! povrin! oblo*! "! ponaa kao ant!na) na
aloj &aljini# jaki !l!ktroa*n!tni tala"i o*u izazvati po*r!nu &!t!kciju (
;ttp/MMRRR$Woutub!$coMRatc;?vVL*:@>;8P=b8hapARatc;Lr!"pon"! )
priti"nuto"ti ta"t!ra# za "vaki pr!ki&a2 za;t!vaju najanj! j!&an -MI pin i zbo*
pouz&ano* !r!nja tra! &a PIC ra&i na to v!0oj 9r!kv!nciji$ Sl!!p o& ni
ultipl!k" j!&no"tavno ni"u o*u0i$
168
8). Do 16 3$1 ' 1 %#'3
<&a; &a napo!n! &a >a n! pr!poru2uj! upotr!bu ovo* kola$ 3ovoljno j! &a
upotr!blj!n! kopon!nt! u"l!& "tar!nja alo pro!n! "voj! vr!&no"ti i &!t!kcija vi!
n!0! biti u"p!na$ <"i to*a# "koro "vaka !l!ktron"ka kopon!nta !nja "voj!
para!tr! pri pro!ni t!p!ratur!$ Mo*u0! &a 0! "a ovi kolo i"pravna &!t!kcija
vr!!no biti o*u0a j!&ino pri ni"koj t!p!raturi$ Zato j! za ovu !u n!op;o&no
kori"titi kopon!nt! al! tol!rancij!$
Princip ra&a j! "l!&!0i$ Pin C5+ pov!zan j! kao Rilkin"onov 8M3 konv!rtor# ali
u!"to !r!n! otporno"ti# ov&! "! pojavljuj! otporna r!a$ C!zultuju0a otporno"t
na pinu zavi"i o& to*a koji ta"t!r j! priti"nut u o&r!%!no tr!nutku$ 'ajanja j!
(1k[) ka&a j! priti"nut ta"t!r 1# pov!0ava "! &o ta"t!ra 16 (1k[ H 4kP H 4kP H 4kP H
1k[ H 1k[ H 1k[ V 18#1G[)# a najv!0a j! (t!orij"ki b!"kona2na) ka&a nij! priti"nut
ij!&an ta"t!r$
So9tv!r tr!ba po iz!riti vr!&no"t otporno"ti po principu 8M3 konv!rtora i na o"novu
&obij!n! vr!&no"ti prona0i koji ta"t!r j! priti"nut$
Za razliku o& o"tali; !a "a vi! ulaza# ovo !o j! "koro n!o*u0! r!alizovati
&!t!kciju vi! i"tovr!!no priti"nuti; ta"t!ra zbo* v!0!* broja r!&ni; i paral!lni;
"poj!va otpornika$
>i! o ovo principu iat! na ;ttp/MMRRR$jo"!pino$coM i na
;ttp/MMRRR$roanblack$coMk!Wpa&$;t $
16Y
84. ,3Be'(e #1 !$ee% &od %o
%r#"#!'3"o& "!"er3
8ko j! potr!ban 1 ta"t!r pr!ki&a2# n!a probl!a$ Gori"tit! bu%!nj! int!rapto na
C5+ pinu$ -koliko va j! potr!bno bu%!nj! uz &o 4 pr!ki&a2a# &ovoljno j! po"taviti
pr!ki&a2! na C54 &o C5P pinovia# &ozvoliti int!rapt po pro!ni "tanja na C54 &o
C5P pinovia "a "!tovani ?I= bito i oti0i u "l!!p o&$ Zaj!&ni2ki int!rapt 9la*
pr!ki&a2a 0! "! po priti"ku bilo ko* pr!ki&a2a "!tovati# ali ikrokontrol!r u tr!nutku
int!rapta n! zna koji pr!ki&a2 *a j! probu&io$ 'akon bu%!nja o*u0! j! t!"tirati C54B
C5P pinov! kako &a bi "! utvr&ilo na ko pinu j! i &alj! priti"nut ta"t!r$
Iz*l!&a &a j! n!o*u0! bu%!nj! iz "l!!p o&a izazvati kori0!nj! v!0!* broja
pr!ki&a2a$ Gako on&a napraviti &aljin"ki upravlja2? Po"toji kao i uv!k vi! r!!nja$
7!&no kori"ti int!rapt! a &ru*o r!"!t ikrokontrol!ra$ 6ta 0!t! kori"titi zavi"i o& vai;
konkr!tni; potr!ba$
<v&! "! najpr! uklju2! pull up otpornici# a zati "! C5+ &o C5K pinovi &!klariu kao
izlazni "a lo*i2ko +# a C54 &o C5P kao ulazni# po&!"i "! intarapt i o&! "! u "l!!p
o&$ Priti"ko na bilo koji pr!ki&a2 PIC 0! "! probu&iti iz "l!!p o&a# i on&a j!
potr!bno r!&o po"tavljati C5+ &o C54 pinov! na lo*i2ku + (&r!0i o"tal! na
lo*i2koj 1)# i "k!nirati C54 &o C5P pinov! &a bi "! utvr&ilo koji j! ta"t!r i &alj!
priti"nut$ Za vi! &!talja po*l!&ajt! 8'FF@ "a ;ttp/MMRRR$icroc;ip$coM$
3ru*i na2ino ikrokontrol!r "! r!"!tuj! po priti"ku pr!ki&a2a$
1P+
'a ovoj !i "vi izlazi (C5+ &o C5K) po"tavlj!ni "u na lo*i2ku +$ Gon&!nzator C "!
napunio pr!ko otpornika o& 4Pk[ i &ovo&i lo*i2ku 1 na MC:C pin ikrokontrol!ra$
.i "! bilo koji ta"t!r priti"n!# C "! i"prazni kroz j!&an o& 4kP otpornika (zavi"i o&
to*a koji "! ta"t!r priti"nuo)# napon na kon&!nzatoru opa&a (oko 1S) "v! &ok "! PIC
zbo* pojavljivanja lo*i2k! + na MC:C pinu n! r!"!tuj!$ Po r!"!tu "! "vi -MI pinovi u
;ar&v!r"koj inicijalizaciji ikrokontrol!ra &!9iniu kao ulazi# to "pr!2ava &alj!
pranj!nj! kon&!nzatora$ >r!&no"ti otpornika i kon&!nzatora izabran! "u tako &a j!
trajanj! ciklu"a pranj!nja i punj!nja kon&!nzatora anj! o& vr!!na r!"!ta
ikrokontrol!ra (oko 18S)$
.i "! r!"!t zavri# potr!bno j! uklju2iti Pull up otpornik!# na C5+ &o C5K pinovia
r!&o na kratko po"taviti lo*i2ku + (&r!0i o"tal! izlaz! na lo*i2koj 1)# to br!
t!"tirati "tanj! pr!ki&a2a na C8+ &o C8K pinovia# i vratiti pinov! C5+ &o C54 na
lo*i2ku 1$ Pr!bacivanj! izlaza na lo*i2ku + n! o! prouzrokovati ponovni r!"!t
ikrokontrol!ra ukoliko j! vr!! t!"tiranja pr!vi! brzo (r!&a 1+ZS)$
Za vi! &!talja o ovo! po*l!&ajt! 8'F@8 "a ;ttp/MMRRR$icroc;ip$coM$
1P1
84. +oDe $# (o; &'(eE
Mo!# ali uz upotr!bu "p!cijalizovani; int!*ri"ani; kola koja u "!bi v!0 iaju
int!*ri"anu ultipl!k" rutinu# i &ovoljan broj pinova za pov!zivanj! na :=3 &i"pl!j!#
o&no"no pr!ki&a2ku atricu$
Tipi2ni pr!&"tavnici ovi; int!*ri"ani; kola "u/
=3=P+@ O :C3 &i"pl!j &rajv!r$ -pravljanj! pr!ko 1 pina$
=3=P+P O :=3 &i"pl!j &rajv!r za 8 "!&o"!*!ntni; &i"pl!ja (b!z &!cialn!
ta2k!)$ Prikaz ci9ara +# 1# @# K# 4# F# 6# P# 8# Y# 8# b# C# &# = i F$
-pravljanj! pr!ko 4 pina$
=3=1144 B 3!ko&!r za 16 ta"t!ra$ S!rij"ka &!t!kcija pr!ko @ pina# ili paral!lna
pr!ko 4 pina (H1 za "i*nalizaciju i"pravno prilj!no* "tanja pr!ki&a2a)
=3=1188 B 3!ko&!r za 64 ta"t!ra$ S!rij"ka &!t!kcija pr!ko @ pina$
ICMP@188 O :=3 &i"pl!j &rajv!r za 8 "!&o"!*!ntni; &i"pl!ja "a zaj!&ni2ko
ano&o (b!z &!cialn! ta2k!)$ Prikaz ci9ara +# 1# @# K# 4# F# 6# P# 8# Y#
8# b# C# &# = i F "a o*u0no0u &ir!ktno* a&r!"iranja poj!&ini; :=3
ICMP@185 O :=3 &i"pl!j &rajv!r za 8 "!&o"!*!ntni; &i"pl!ja "a zaj!&ni2ko
kato&o (b!z &!cialn! ta2k!)$ Prikaz ci9ara +# 1# @# K# 4# F# 6# P# 8# Y#
8# b# C# &# = i F "a o*u0no0u &ir!ktno* a&r!"iranja poj!&ini; :=3
-z nji; j! za razliku o& ultipl!k"a izazivano* ikrokontrol!ro b!z probl!a
o*u0! oti0i u S:==P o&$ =3=P+P int!*ri"ano kolo 0! na"taviti "a prikazo po
j!&no &ov!&!no "tanju# b!z ikakv! nakna&n! int!rv!ncij! ikrokontrol!ra# a
=3=1144 i =3=1188 "! o*u pov!zati tako &a po priti"nuto ta"t!ru pr!ko j!&no*
pina izazovu int!rapt (ovo "! o! upotr!biti za bu%!nj! iz S:==P o&a)# i (4FS
nakon int!rapta O &ovoljno za "tabilizaciju o"cilatora ikrokontrol!ra) "!rij"ki pr!ko
&ru*o* pina u ikrokontrol!r poalju kT& ta"t!ra$
1P@
86. Pove<'(e bro( UFI %#'ov
Pon!ka& nij! o*u0! kori"titi ultipl!k" zbo* potr!b! za "talni (n!i"pr!ki&ani)
lo*i2ki nivoia$ <2i*l!&no j! &a bi u to "lu2aju tr!bali na o&*ovaraju0i na2in
izvriti pov!0anj! broja ulazno izlazni; pinova$
Za to "! o! kori"titi "tan&ar&no int!*ri"ano kolo P41K8 u kobinaciji "a P4@FY ili
4+YY kao ulazni kolia# i u kobinaciji "a P4@F1 ili 4F1@ kao izlazni kolia$
'a taj na2in o!t! kori"t!0i "ao P<CT5 &obiti &o 64 ulazni; ili izlazni; pinova$
-koliko >a j! ovo pr!"kupo# o!t! kori"titi po!ra2k! (i9t) r!*i"tr! P4FYF za 8
izlaza# ili P4FYP za 8 ulaza$ <vi r!*i"tri iaju jo po j!&an "!rij"ki izlaz (P4FYF) i ulaz
(P4FYP)# tako &a "! nji;ovi r!&ni v!zivanj! i pov!zivanj! pr!ko "ao K pina
ikrokontrol!ra o! r!alizovati proizvoljno v!liki broj ulaza M izlaza$ So9tv!r
ikrokontrol!ra orao bi r!*uli"ati po!ranj! i "!rij"k! ulazno M izlazn! rutin!$
Multipl!k" kori0!nj! ovako proir!no* broja ulazno M izlazni; pinova j! o*u0
j!&ino u "lu2aju &a nij! potr!bno !njati "tanj! pinova o& ulazno* u izlazni i obrnuto#
ali uz &o"ta koplikovaniji pro*ra$ - S:==P o& j! o*u0! oti0i# j!&ino ukoliko
"! i"tovr!!no n! pri!njuj! ultipl!k"$
-koliko >a j! potr!bno 8 ulaza ili izlaza# o!t! kori"titi PCF8FP4$ Sa nji j!
ultipl!k" t!! o"tvariti# ali j! o*u0 S:==P o&$
- prak"i "! ovi na2ini v!oa r!tko kori"t!$ 7!&no"tavnij! (i j!9tinij!) j! uz!ti
ikrokontrol!r "a v!0i broj! ulazno izlazni; pinova$
1PK
86. Odb#r # 0o'ver1#( bro('#@ !#!"e&
5inarni brojni "i"t! n! ora uv!k biti najpo!ljniji$ -koliko >a j! na pri!r
potr!bno prikazivanj! @ ci9r! na :=3 &i"pl!ju# najpo!ljniji j! 5C3 oblik$ - 5C3
obliku 2ak o!t! *ornji nibl kori"titi za prikaz j!&n!# a &onji nibl to* i"to* r!*i"tra
za prikaz &ru*! ci9r!$ Za prikaz na :C3Bu po*o&niji >a j! 8SCII oblik broj!va$ I"to
tako# za koplikovan! at!ati2k! op!racij! prakti2nij! bi bilo kori0!nj! op!racija
"a pokr!tni zar!zo (!n*$ Floatin* Point ili "kra0!no 9loat)$
- zavi"no"ti o& konkr!tn! pri!n! o&a >a j! lak! "v! op!racij! izvravati u
obliku koji vaa o&*ovara# a zati na kraju prora2una konv!rtovati r!zultat u oblik
po*o&an za prikazivanj! pr!ko konv!rzioni; al*oritaa$
'a "ajtu ;ttp/MMRRR$icroc;ip$coM &at j! o&r!%!ni broj konv!rzioni; rutina$ To "u/
8'F@6 B 5C3 (5inarW Co&!& 3!cial) to binarW conv!r"ion routin!"
B 5inarW to 5C3 conv!r"ion routin!"
8'FF4 B 8Bbit binarW to @ &i*it 5C3 conv!r"ion
B 16Bbit binarW to F &i*it 5C3 conv!r"ion
B FBbit 5C3 to 16Bbit binarW conv!r"ion
8'FPF B 9loat to int!*!r conv!r"ion
B int!*!r to 9loat conv!r"ion
8'6P+ B Floatin* Point to 8SCII Conv!r"ion
Za anji broj vr!&no"ti pro!n! brojni; "i"t!a o!t! ru2no izvriti kori"t!0i
int!*ri"an :inuNov ili Uin&oR"ov &i*itron$ Priliko pro!n! b!z &i*itrona# o*u0!
j! konv!rziju obavljati po "l!&!0i principia/
B"/ar/" u .e!a#e0"%a,/" *+,"!
'ajpr! "! binarni broj po&!li u niblov!/ 1 11++ +1++ 1+++ 1+++ :1::# a on&a "!
prona%! o&*ovaraju0a ci9ra za "vaki nibl / 1 C 4 8 8 4 V 1C48N84$
Ae!a#e0"%a,/" u +"/ar/" *+,"!
Mo*u0! j! pro!niti "vaku ci9ru u nibl/ 4 F K P , V 4FKNP,
po "l!&!0!/ 1:1 1111 ++11 +111 1:11
B"/ar/" u #e0"%a,/" *+,"!
<vo j! alo probl!ati2no$ 'ajpr! napiit! &!cialnu vr!&no"t izna& "vako* bita/
1:24 F1@ @F6 1@8 64 K@ 16 8 4 @ 1# a on&a "ab!rit! vr!&no"ti za "vaku 1
1 + 1 1 + 1 + 1 1 + + V 1:24H@F6H1@8HK@H8H4 V $14F@
De0"%a,/" u +"/ar/" *+,"!
<vo j! tako%! koplikovano$ <&uzit! o& &!cialno* broja ak"ialni unoak
broja @ (1#@#4#8#16#K@#64#1@8#@F6#F1@#1+@4#$$$) koji o! biti o&uz!ti o& nj!*a# b!z
pr!la"ka u n!*ativnu vr!&no"t$ 5itovi 2iji unoak broja @ "! kori"ti# bi0! na lo*i2koj
1# &ok 0! o"tali biti na lo*i2koj +$ Za broj $F8@ to iz*l!&a ovako/
1P4
F8@ B 412 V P+ 412 @F6 1@8 64 K@ 16 8 4 2 1
P+ B 64 V 6 1 + + 1 + + + 1 1 + V bQ1+ +1++ +11+Q
6 B 4 V @
@ B 2 V +
De0"%a,/" u .e!a#e0"%a,/" *+,"!
'ajpr! konv!rtujt! &!cialni oblik u binarni# a zati binarni u ;!k"a&!cialni$ Za
*ornji "lu2aj to bi iz*l!&alo ovako/ $F8@ V bQ1+ +1++ +11+Q V @N46
Po"toji i na2in &ir!ktn! konv!rzij! &!lj!nj! unocia ak"ialn! vr!&no"ti
j!&no* nibla$
F8@ M @F6 V 2 "a o"tatko P+
P+ M 16 V 4 "a o"tatko 6
6 M 1 V 6 "a o"tatko +
C!zultat j! 2N46$
Ae!a#e0"%a,/" u #e0"%a,/" *+,"!
Gonv!rtujt! iz ;!k"a&!cialno* u binarni oblik# a zati iz binarno* u &!cialni$
Za raniji "lu2aj to bi iz*l!&alo ovako/ FFKNP5 V bQ1+11111++11+1111+11QV$KY++11
Po"toji i na2in &ir!ktn! konv!rzij! no!nj! unoaka ak"ialn! vr!&no"ti
j!&no* nibla$ 'a pri!r za broj KN83 to j!/
K N @F6 V 668
8 N 16 V 1@8
3N 1 V 1)
C!zultat j! 668 H 1@8 H (o"tatak koji nij! o*ao biti pono!n) 1) V $Y+Y$
Ipak# i &alj! j! j!&no"tavnij! kori"titi &i*itron$
1PF
88. Ge!'e!"ob#"' r#"&e"#0
Canij! "t! nau2ili upotr!bu in"trukcija "abiranja i o&uzianja$ Mo*uc! j! &a
o"obitn! op!racij! ni"u &ovoljn! za o&r!%!n! pri!n!$ Iako PIC16F84 n!a
;ar&v!r"k! in"trukcij! za ra& "a !"na!"tobitni broj!via# nij! i; pr!vi! t!ko
ipl!!ntovati "o9tv!r"ki$
Pr! "v!*a# broj!v! kao i r!zultat op!racij! orat! &rati u &va bajta$ <& ta &va bajta
j!&an 0! biti bajt v!0! t!in! (!n*$ MS5 O +o"t Si*ni9icant ,Wt!)# a &ru*i anj! (!n*$
:S5 O -!a"t Si*ni9icant ,Wt!)$ 5roj!vi "! "abiraju tako to "! najpr! "ab!ru :S5# u
zavi"no"ti o& "tanja CarrW 9la*a &o&a "! +N+1 na j!&an o& MS5# a on&a "! "ab!ru oba
MS5$
Sl!&!0i potpro*rao ilu"trovano j! "abiranj! !"na!"tobitni; broj!va$
cb2oc@ 0x1#
ESB1 A Pro!nljiva 1# bajt anj! t!in!
4SB1 A Pro!nljiva 1# bajt v!0! t!in!
ESB2 A Pro!nljiva @# bajt anj! t!in!
4SB2 A Pro!nljiva @# bajt v!0! t!in!
ESBR=S A C!zultat# bajt anj! t!in!
4SBR=S A C!zultat# bajt v!0! t!in!
e+dc
S0b movf ESB1,% A -zi bajt anj! t!in! prvo* op!ran&a
addwf ESB2,% A "ab!ri "a bajto anj! t!in! &ru*o* op!ran&a$
movwf ESBR=S A C!zultat u bajt anj! t!in! r!zultata$
movf 4SB1,% A -zi bajt v!0! t!in! prvo* op!ran&a
btfsc STATUS,# A 3a li j! &olo &o pr!kora2!nja?
addlw 0x01 A 7!"t!# &o&aj CarrW 9la*$
addwf 4SB2,% A "ab!ri "a bajto v!0! t!in! &ru*o* op!ran&a$
movwf 4SBR=S A C!zultat u bajt v!0! t!in! r!zultata$
return
C!zultat 0! biti ta2an j!&ino u "lu2aju &a &a "! zbir o! pr!&"taviti "a 16 bita (+ &o
6FFKF u "lu2aju n!ozna2!ni; ili BK@P68 &o K@P6P u "lu2aju ozna2!ni; broj!va)$ -
protivno# bi0! obav!zan jo j!&an r!*i"tar za 2uvanj! "tanja CarrW 9la*a$
'a "li2an na2in o! "! r!alizovati i o&uzianj! &va !"na!"tobitna broja$
Por!& ovi; op!racija# unutar PIC16F84 ikrokontrol!ra o*u0! j! r!alizovati
no!nj!# &!lj!nj!# kva&ratni kor!n# *!n!ri"anj! p"!u&o"lu2ajno* niza broj!va pa 2ak
i no*o# no*o koplikovanij! op!racij!$ Po potr!bi# ov! 9unkcij! o*u "! proiriti
za v!0u r!zoluciju# kao i za ra& "a pokr!tni zar!zo (!n*$ 9loatin* point)$
Za &!talj! po*l!&ajt! 8'F@6# 8'F44# 8'FPF# 8'61P# 8'66+ "a
;ttp/MMRRR$icroc;ip$coM i ;ttp/MMRRR$picli"t$coMc*iBbinMcon"t&ivul$!N! link$
1P6
89. ,r1e &"e&"#>0e o%er5#(e
Pr!tpo"tavio &a !lit! izra2unati kva&ratni kor!n$ -nutar 8'F@6# 8'F44 i 8'66+
&ata";!!ta tvr&i "! &a 0! "! za nj!*ovo ra2unanj! utroiti oko K+++ in"trukcij"ki;
ciklu"a (KS pri 4M,z taktu)# kao i &a 0! za nj!*ovo ra2unanj! biti utro!no "koro
"vi; 8 nivoa "t!ka$ - ovo po*lavlju nau2i0!t! par trikova koji >a o*u po"luiti
za brzo ra2unanj!$
Pr!tpo"tavio &a !lit! izra2unati kva&ratni kor!n na& o"obitni broj! ($+ &o $
@FF)$ 'ita lak!$ Gori"ti0!t! tab!lu$
T0b1 addwf P#E,F A - U "! nalazi broj o& $+ &o $@FF$
retlw .0 A + O :
retlw .1 A 1 O 1
retlw .1 A @ O 1
retlw .1 A K O 1
retlw .2 A 4 O 2
retlw .2 A F O 2
$ $ $
retlw .15 A @F4 O 14
retlw .15 A @FF O 14
Tab!lo koja >a vra0a c!lobrojnu vr!&no"t o!t! &obiti ta2an c!lobrojni r!zultat
u "ao FB6 in"trukcij"ki; ciklu"a$ I "ai uo2avat! &a j! pr!cizno"t r!zultata pr!vi!
ala za ikakav ozbiljniji ra&$ '!a probl!a$ >r!&no"t prv! &!cial! r!zultata na0i
0! "! u "l!&!0oj tab!li$
T0b2 addwf P#E,F A - U "! nalazi broj o& $+ &o $@FF$
retlw .0 A + O +#:
retlw .0 A 1 O 1#:
retlw .4 A @ O 1#4
retlw .7 A K O 1#6
retlw .0 A 4 O @#:
retlw .2 A F O @#2
$ $ $
retlw .B A @F4 O 1F#9
retlw .B A @FF O 1F#9
Za &ru*u &!cialu kori"tila bi "! nar!&na tab!la# i tako &alj!$
Iako "u ovi na2ini izuz!tno brzi# ni"u !konoi2ni u po*l!&u utroka pro*ra"k!
!orij!$ 3obar koproi" iz!%u brzin! i v!li2in! pro*raa pr!&"tavljao bi
2uvanj! &!ciala u binarno ili 5C3 obliku$ 'a taj na2in *ornj! &v! tab!l! o*l! bi
"! kopr!"ovati u j!&nu# tako to bi *ornji nibl "a&rao c!lobrojnu vr!&no"t (+ &o 1F)#
a &onji vr!&no"t prv! &!cial!$ Za prikaz c!lobrojn! vr!&no"ti na :=3 &i"pl!ju
pozvala bi "! o&*ovaraju0a konv!rziona rutina za *ornji nibl# a &onji nibl (&!cialna
vr!&no"t) bi "! ionako nalazila u 5C3 9oratu$ Tab!la bi o*la iz*l!&ati ovako/
1PP
T0b2 addwf P#E,F A - U "! nalazi broj o& $+ &o $@FF$
retlw 0x00 A + O :?:
retlw 0x10 A 1 O 1?:
retlw 0x14 A @ O 1?4
retlw 0x17 A K O 1?6
retlw 0x20 A 4 O 2?:
retlw 0x22 A F O 2?2
$ $ $
retlw 0xFB A @F4 O 14?9
retlw 0xFB A @FF O 14?9
Za v!0i broj &!ciala po*o&nij! bi bilo kori"titi binarni oblik zapi"a (akar "ao za
&!cial!) i o&*ovaraju0! konv!rzion! rutin!$ Sv! zavi"i o& to*a kolika >a j! brzina
ra2unanja potr!bna$
3obro poznavanj! oblika "i*nala o&*ovaraju0! at!ati2k! op!racij! o! >a
poo0i priliko kopr!"ij! nj!n! tab!l!$ Gopr!"ija opi"ana ranij! n! bi bila
o*u0a &a j! c!lobrojni r!zultat op!racij! na& broj! @FF v!0i o& 1F# j!r "! broj v!0i
o& 1F n! o! na0i u j!&no niblu$ Po*l!&ajt! na pri!r "inu"nu 9unkciju$
Slika
-!"to 2uvanja vr!&no"ti c!l! p!rio&! unutar vi! tab!la# o*li bi"t! kori"titi
ozna2!n! broj!v! i nakna&no &o&ati MS5 bito pokazivali pripa&no"t *ornjoj#
o&no"no &onjoj polup!rio&i$ 'a taj na2in pr!polovili bi"t! broj potr!bni; tab!la za i"ti
broj &!ciala$
Slika
7o v!0u kopr!"iju &obili bi"t! ukoliko "! o*rani2it! "ao na 2!tvrtinu p!rio&!# j!r
zbo* "i!rti2no"ti polup!rio&! &ru*i &!o o!t! r!*!n!ri"ati o&uzianj! in&!k"a
tab!l! o& ak"ialn! vr!&no"ti$ Tako j! broj potr!bni; tab!la "anj!n na 2!tvrtinu$
7!&an na2in ra2unanja "inu"n! (i ko"inu"n!) 9unkcij! za u*lov! o& + &o 4F "t!p!ni i "a
ta2no0u o& 6 &!ciala &obiti obra"cia/
SI'(`) V 1$P4FK@YK D ` D (1 O +$F+PF8 D ` D ` D (1 O +$14Y D ` D `))
C<S(`) V l O 1$F@K+8P D ` D ` D (1 O +$@FK8@ D ` D ` D (1 O +$1 D ` D `))
Za u*lov! o& 4F &o Y+ "t!p!ni# "!tit! "! &a j! SI'(`) V C<S(Y+ O `)$
Sl!&!0i na2in brzo* ra2unanja po&razu!va upotr!bu !k"t!rn! ==PC<M !orij!$
'a pri!r uz o&*ovaraju0u I
@
C ==PC<M !oriju o*u0! j! unutar ==PC<MBa
2uvati r!zultat! "vi; potr!bni; at!ati2ki; op!racija$ 5rzina ra2unanja bila bi
j!&naka brzini I
@
C v!z!# a pro*ra n! iao &u*! tab!l!$ Mak"ialnu brzinu &obili bi
1P8
upotr!bo !k"t!rn! =PC<M !orij!# ali ona troi najv!0i broj pinova$ 5u&u0i &a j!
nj!na c!na &ana" izuz!tno ni"ka# to bi ipak o*lo pr!&"tavljati &obro r!!nj!$
-koliko >a ni ovaj princip n! o! za&ovoljiti ap!tit# razi"lit! o !k"t!rno
kooproc!"oru$ Int!*ri"ano kolo uMBFP- >K$1 pr!&"tavlja K@Bbitni kooproc!"or "a
pokr!tni zar!zo i int!*ri"ano I
@
C i SPI v!zo$ Za razliku o& ikrokontrol!ra on
j! "p!cijalno razvij!n za brzo izvravanj! "lo!ni; at!ati2ki; op!racija# tako &a 0!
na pri!r r!zultat kva&ratno* kor!na zavi"iti j!&ino o& brzin! kounikacij!$
- prak"i "! at!ati2ki prora2uni uz !k"t!rni ;ar&v!r r!tko ka&a kori"t!$ I"to kao ko&
pov!0anja broja -MI pinova# &al!ko j! j!&no"tavnij! (i j!9tinij!) kori"titi o0niji
ikrokontrol!r$
1PY
9:. +ere'(e vre&e'
>!0 znat! kako o!t! !riti vr!!$ <bav!zan j! kri"talni o"cilator# i &!lj!nj!
nj!*ovi; taktova$ M!%uti uz kri"talni o"cilator o& 4M,z orali bi "! alo pou2iti
&ok &o%!t! &o vr!!na o& ta2no 1S$ '! v!ruj!t!? Zato to raziljat! &!cialno# a n!
binarno1
S!0at! "! &a "! j!&na in"trukcija izvri za 4 takta ikrokontrol!ra$ -z kri"tal o& 4M,z
in"trukcija "! izvri za 1 ikro"!kun&u# o&no"no (ukoliko "! zbo* lak!* razu!vanja
pr!tpo"tavi &a "! j!&na in"trukcija izvri za vr!! j!&no* takta o"cilatora) kao &a j!
kori0!n kri"tal o& 1M,z$ Mo&a "atrat! &a j! to i&!alno1
1,z O 1+,z O 1++,z O 1M,z$
I bilo bi tako# "ao ka&a bi PIC o*ao lako &!liti "a 1+$ Gako j! ikrokontrol!ru
o"nova za &!lj!nj! @ a n! 1+# !vo ta bi "! &!"ilo u to "lu2aju/
1,z O @,z O 4,z O 8,z O 16,z O K@,z O 64,z O 1@8,z O @F6,z O F1@,z O
1#+@4k,z O @#+48k,z O 4#+Y6k,z O 8#1Y@k,z O 16#K84k,z O )2?668k,z$$$
Mno*o j! prakti2nij! uz!ti kri"tal (kakav "! i ina2! kori"ti u &i*italni 2a"ovnicia)
o& K@#P68k,z# ili kri"tal "a n!ko o& 9r!kv!ncija iz niza$ 'j!*ov takt o! "!
vi!"truki uza"topni &!lj!nj! "a &va "anjiti na ravno 1,z$ 7o bolj!# za proc!"
&!lj!nja o! "! kori"titi int!*ri"ani pr!"kal!r taj!ra "a "koko na int!rapt po
&o"ti*nuto o&no"u &!lj!nja$ Int!rapt bi >a ionako bio potr!ban zbo* ultipl!k"a
:=3 &i"pl!ja$ <"i to*a kvarcni kri"tali ov! 9r!kv!ncij! 9abri2ki iaju anj!
o&"tupanj! 9r!kv!nij! o& o"tali;# upravo zbo* nji;ov! pri!n! u *!n!ratoria
pr!cizni; vr!!n"ki; int!rvala$
-koliko ikrokontrol!r tr!ba (por!& "ata) obavljati i n!k! &ru*! op!racij!# prakti2nij!
j! na T+CGI ulaz &ov!"ti "i*nal! "a K@#P68k,z kri"tala i po&!"iti po"t"kal!r &a
ipul"! za brojanj! uzia "a ovo* pina u!"to "a takta o"cilatora$ Tako PIC o!
ra&iti "vojo ak"ialno brzino# uz i"to tako ak"ialnu pr!cizno"t vr!!na$
'aravno# ovo alo koplikuj! ;ar&v!r zbo* potr!b! za !k"t!rni kri"talni
o"cilatoro$ Tu "u napr!&niji ikrokontrol!ri u pr!&no"ti na& PIC16F84 zbo*
po"tojanja !"na!"tobitno* TIM=C1 o&ula$ Sa nji j! o*u0! &ir!ktno na pinov!
ikrokontrol!ra pov!zati kri"tal ("a pripa&aju0i kon&!nzatoria)# i tako &obiti takt
n!zavi"an o& 9r!kv!ncij! ikrokontrol!ra$ 7o bolj!# ovaj taj!r aktivan j! i u S:==P
o&u$
-koliko planirat! u "at (!n*$ CTC O R!al Ti! Clock) ubaciti i kal!n&ar# orat! pr!
"v!*a o&lu2iti &a li 0!t! u ipl!!ntirati kor!kciju @Y$ 9!bruara za "lu2aj pr!"tupn!
*o&in! (:!ap W!ar) i autoat"ko auriranj! priliko pro!n! vr!!na (!n*$ 3aWli*;t
"avin*")$ Zbo* to*a >a" va kopjut!r pita za pr!lazak na l!tnji ili zi"ki na2in
ra2unanja vr!!na$
3a li "t! ika&a po&!"ili "at na "vo kopjut!ru# ali nako* 6 !"!ci pri!0uj!t! &a on
uri F inuta$ Iako "! 9abrik! tru&! &a i kri"tali bu&u "a to pr!ciznijo
9r!kv!ncijo# n! u"p!vaju uv!k u to!$ Sr!0o# o!t! "o9tv!r"ki kalibri"ati vr!!
18+
tako to "atu &o&at! (ili o&uz!t!) 1 "!kun&u "vaki; par "ati# &ana# n!&!lja ili !"!ci$
>!rovatno 0! >a biti potr!bno par !"!ci za ta2nu kalibraciju upotr!blj!no*
kri"tala$ 'ajbolj! j! "vakako ovu kor!kciju ubaciti za o&r!%!ni (9ik"ni) broj "!kun&i#
ali to &o"ta koplikuj! pro*ra i "ai ti na!0! potr!bu za nj!*ovi "poriji
izvravanj!$ 3ru*a2iji na2in (;ar&v!r"ki) kalibracij! vr!!na "a"tojao bi "! u
!njanju kapacitivno"ti j!&no* o& kon&!nzatora por!& kri"tala o& K@G,z$ 'ajlak!
t!lovanj! po"ti! "! tri!r kon&!nzatoro$
3o&atnu pr!cizno"t o!t! po"ti0i t!p!raturno kontroli"ani o"cilatoro$
?otov! "o9tv!r"k! rutin! za "at o!t! na0i iro int!rn!ta$ >!0 iat! a"!bl!r"ku
rutinu u Microc;ip Ma!"tro pro*rau$ >!rovatno "t! *a v!0 in"talirali uz MP:85
pak!t$ 7o n!k! "u na a&r!"aa ;ttp/MMRRR$iki$9iMjap i
;ttp/MMourRorl&$copu"!rv!$coM;o!pa*!"M5illL5oR&!nM;o!pa*!$;tb!nu$
Pravlj!nj! najobi2nij!* &i*italno* 2a"ovnika ikrokontrol!ro nij! ba prakti2no$
3i*italni 2a"ovnici iaju "voja "p!cijalizovana int!*ri"ana kola$ '!a "vr;! troiti
novac na "kuplji ikrokontrol!r$ I"plati "! to ra&iti j!&ino u "lu2aju &a j! potr!bno
napraviti "at "p!ci9i2ni; o"obina (vi! alara# pov!zivanj! "a kopjut!ro)# kao na
pri!r "a "ajta ;ttp/MMRRR$bobblick$coMt!c;r!9Mproj!ct"MpropclockMpropclock$;tl$
8 ukoliko j! ala potronja ip!rativ# o*u "! "p!cijalizovana int!*ri"ana kola
pov!zati "a ikrokontrol!ro$ Tipi2ni pr!&"tavnici ovakvi; int!*ri"ani; kola "u
3S1K+P# PCF8FYK i '7-6KFF$ Zbo* nji;ov! inialn! potronj! &ir!ktno na
tapanu plo2icu o! "! zal!iti ala litiju"ka bat!rija pr!ko koj! bi "! "at
napajao !l!ktri2no !n!r*ijo u "lu2aju n!"tanka "truj! (i"to kao ko& ati2ni; plo2a
kopjut!ra)$ Por!& to*a ova kola (i"to kao i *or! po!nuti Ma!"tro "o9tv!r) u "!bi
"a&r! kal!n&ar# zaj!&no "a prora2unia pr!"tupni; *o&ina$ '!ojt! i"liti &a bi
upotr!bo ti; kola &obili v!0u pr!cizno"t$ Pr!cizno"t takta &ir!ktno zavi"i o&
upotr!blj!no* kri"tala (i nj!*ov! kalibracij!)# a potpuno i"ti kri"tal "! kori"ti i u ti
kolia$
181
91. Dr(ver#
Iako >a o! tako iz*l!&ati# ovo nij! ala$ <v&! "! &o&u! n! ra&i o &rajv!ria za
"k!n!r# tapa2 ili *ra9i2ku karticu# v!0 o &rajv!ria za :=3# :C3 &i"pl!j# pr!ki&a2!
ili "t!p otor$
Po*l!&ajt! najj!&no"tavniji pri!r$ Pr!tpo"tavlja &a >a j! lak! i razuljivij! &a
t!"tirat! pr!ki&a2! tako &a pri nji;ovoj priti"nuto"ti o2!kuj!t! pojavu lo*i2k! 1# a n!
lo*i2k! + (to bi "! "i*urno &!"ilo pri upotr!bi pullBup otpornika)$ 'ajj!&no"tavnij! j!
u to "lu2aju inv!rtovati "v! ulaz!$
()0>Ie):S0:5)e@-d0ce A Stanj! pr!ki&a2a u bitovia + i 1 u U
comf P"RTB,% A Inv!rtovani P<CT5 u U
andlw b'00000011' A Ma"kiranj! bitova @ &o P (izlazni)
return A Povratak iz potpro*raa
3rajv!r bi "! o*ao &o&atno kobinovati "a *lavni pro*rao tako &a "! vr!&no"t
bQ++++++11Q za&aj! j!&no pr! inicijalizacij! (npr$ "a 5L-:8ZI !Xu bQ++++++11Q)# a
zati &a "! inicijalno po&!avanj! TCIS5 r!*i"tra kao i an&lR in"trukcij! unutar
&rajv!ra po&!"i ovako i!novano vr!&no0u$
Po*l!&ajt! "a&a "l!&!0i pri!r$ 7!&an :=3 &i"pl!j na portu 5$ 3rajv!r bi "! "a"tojao
o& v!0 ranij! nau2!n! tab!l! i potpro*raa za i"pi"$ To bi o*lo iz*l!&ati ovako/
()0>Ie):S0:2ed A 3rajv!r za i"pi" U broja na :=3 &i"pl!j
call T0b2 A Poziv za "liku :=3 &i"pl!ja
movf SP"RTB A Slika ci9r! u ";a&&oR r!*i"tar za port 5$
call U5d0&e A Poziv potpro*raa za i"pi"
return A Povratak iz potpro*raa
T0b2 A - U "! nalazi "! vr!&no"t o&
addwf P#E,, A $1 &o $6$ Ta vr!&no"t "! &o&aj! na PC:$
retlw b'00001100' A <brazac za crtanj! ci9r! 1 B 1
retlw b'10110110' A <brazac za crtanj! ci9r! @ B 2
retlw b'10011110' A <brazac za crtanj! ci9r! K B 3
retlw b'11001100' A <brazac za crtanj! ci9r! 4 B 4
retlw b'11011010' A <brazac za crtanj! ci9r! F B 5
retlw b'11111010' A <brazac za crtanj! ci9r! 6 B 6
U5d0&e
movf SP"RTA,% A S;a&&oR r!*i"tar porta 8
movwf P"RTA A u P<CT8
movf SP"RTB,% A S;a&&oR r!*i"tar porta 5
movwf P"RTB A u P<CT5
return A Povratak iz potpro*raa
Potpro*ra -p&at! o! "! ovako pozivati i za port 8# o&no"no o! "luiti kao
po"!bna c!lina$
18@
Ga& *o& j! o*u0! "tan&ar&izujt! "o9tv!r za uobi2aj!ni ;ar&v!r &rajv!ria$ Potru&it!
"! &a o&r!%!n! "tan&ar&n! vr!&no"ti (ulazi u prvo &rajv!ru) i!nuj!t! i po&!"it!
"ao j!&no u pro*rau$ Tako 0! pri ka"nijoj iz!ni "o9tv!ra (npr$ pri &o&avanju jo
j!&no* ulazno* pina) biti &ovoljno iz!niti "ao j!&an j!&ini r!& pro*raa$ Manj!
iz!na# anj! *r!aka$
3rajv!ri koji "u vr!!n"ki kriti2ni (npr$ za o"v!avanj! vi! :=3 &i"pl!ja#
&!bouncin* ili kontrolu "t!p otora) o*u "! pozivati u o&r!%!ni tr!nutcia iz
int!rapta$ Ipak# ra& "a vi! ovakvi; vr!!n"ki kriti2ni; &!lova unutar j!&no*
pro*raa &o&atno koplikuj! o"novni al*orita pro*raa$ 3a bi "! takvi &!lovi
o*li izvravati b!z &o&atni; u"lonjavanja# *lavni pro*ra tr!ba p!rio&i2no# po
za&ati krit!rijuia pozivati ov! &!lov!$ >i! o takvo principu nau2i0!t! u
nar!&no po*lavlju$
18K
92. O%er"#v'# S#!"e&
3a li j! ikrokontrol!ru potr!ban op!rativni "i"t!? -*lavno nij!$ M!%uti# ia
pri!ra ka&a j! j!&no"tavnij! po&!liti pro*ra u vi! n!zavi"ni; c!lina o& koji; "!
"vaka tr!ba izvravati n!zavi"no o& &ru*i;$ Pro*ra na taj na2in o! biti "a"tavlj!n
o& no*o n!zavi"ni; (ta2nij! u"lovno n!zavi"ni;) &!lova (!n*$ ta"k) pri 2!u "u
poj!&ina2ni ta"kovi u o"novi j!&no"tavni$ 'a pri!r ko& &uplo* ultipl!k"a j!&an
ta"k brinuo bi "! o o"v!avanju :=3 &i"pl!ja pr!ko nj!*ovo* &rajv!ra# &ru*i o
&!bouncin*u pr!ki&a2a# a tr!0i bi u "tvari ra&io ono za ta j! ikrokontrol!r i
na!nj!n$ Ta"kovi o*u !9!ktno !%u"obno kounicirati pr!ko na!n"ki; r!*i"tara
opt! na!n! i 9l!*ova unutar nji; (npr$ r!*i"tar 3ISP:=71 i 3ISP:=7@ za prikaz na
:=3 &i"pl!jia i r!*i"tar T8ST=CI "a 9la*ovia bit +Bta"t!r1# bit 1Bta"t!r@$$$)$ 'a taj
na2in &obija "! j!&an pravi ali ultita"kin* "i"t!$ Svakako &a j! u ovo "lu2aju
po!ljno napraviti ali <S koji bi r!*uli"ao pozivanj! poj!&ini; c!lina po unapr!&
za&ati para!tria (npr$ u ta2no o&r!%!no vr!!)$ - na"tavku t!k"ta bi0! opi"ani
o"novni principi takvi; "i"t!a$
'ajj!&no"tavniji ultita"kin* <S bio bi r!&o pozivao ta"kov! po pr!kora2!nju
taj!ra$ Poj!&ina2ni ta"kovi r!&o bi "! o*li pozivati on U *oto principo
opi"ani ranij!$ Pr!"kal!r tr!ba biti tako po&!!n &a oo*u0i i najza;t!vnij! ta"ku
"i*uran zavr!tak pr! novo* pr!kora2!nja taj!ra$
Svakako &a tako j!&no"tavan <S ia &o"ta ana$ Mikrokontrol!r 0! "v! ta"kov!
orati &a izvrava alo &ui vr!!no o& ta"ka naj&u!* trajanja$ To j! prili2no
n!!konoi2no ra"ipanj! r!"ur"a$ Ta"kovi u*lavno za;t!vaju pozivanj! u razli2iti
int!rvalia (npr$ ta"k za o"v!avanj! :=3 &i"pl!ja tr!ba 2!0! pozivati o& ta"ka za
t!"tiranj! pr!ki&a2a)$ Int!rapti oraju trajati to kra0! kako n! bi pr!vi! ko2ili
ta"kov!$
Slo!niji princip &avao bi o&r!%!no 9ik"no vr!! za "vako poj!&ina2no ta"ku$ To
j! najlak! po"ti0i int!raptia izazvani taj!ro$ Iako to vr!! n! ora biti
&ovoljno za zavr!tak ta"ka# po i"t!ku vr!!na nj!*ovo izvravanj! bi "! pr!kinulo# i
po2!o bi "l!&!0i ta"k$ Sa&raj U i ST8T-S r!*i"tra bi "! orao "niati (kao ko&
int!rapta) za "vaki poj!&ina2ni ta"k$ C!&ni broj ta"ka koji "! tr!nutni izvrava kao i
"tatu" poj!&ina2ni; ta"kova (npr$ zauz!t ili zavrio) o*ao bi "! "niiti u par
kontrolni; r!*i"tara$
Ta"kovi "! o*u razlikovati po za;t!via za op"luivanj!$ 'a pri!r o"v!avanj!
&i"pl!ja ora iati priorit!t na& o"tali ta"kovia# i ora biti pozivano u ta2ni
vr!!n"ki int!rvalia$ Za razliku o& nj!*a ta"k za izra2unavanj! kva&ratno* kor!na
n!a za;t!va za o&r!%!ni vr!!no# tako &a "! o! izvravati ka& *o& "! n!
izvrava ta"k v!0!* priorit!ta$ - kopjut!r"ki op!rativni "i"t!ia# na pri!r#
najvi! proc!"or"k! "na*! troi tr!nutno aktivan prozor$
Za vi! &!talja po*l!&ajt! 8'F14# 8'F8F# 8'PPP i 2a"opi" =l!ktor =l!ctronic" broj
FMY8$
184
9). E$e0"ro'#0? &"e&"#0? /#1#0...
Pro*rairanj! ikrokontrol!ra "! (za razliku o& pro*rairanja kopjut!ra) n! o!
po"atrati kao u"alj!n# iz&voj!n proc!"$ - naj2!0! broju "lu2aj!va
ikrokontrol!r 0! obra%ivati "poljn! "i*nal!$ Canij! po!nut! !to&! (ultipl!k" i
&upli ultipl!k"# pov!0anj! broja -MI pinova# principi 8M3 i 3M8 konv!rzij!#
konv!rzija otporno"ti i kapacitivno"ti# princip ra&a kapacitivni; pr!ki&a2a$$$)
za;t!vaju poznavanj! o"novni; principa !l!ktronik!$ Mat!ati2ki principi "u tako%!
bitni (npr$ zbo* int!rpolacij!# kopl!!nta &vojk!# "ortiranja po&ataka# CCC
al*orita# op!racija "a n!*ativni ili broj!via "a pokr!tni zar!zo$$$)$ M!%uti#
iako "! to u*lavno n! "poinj! u lit!raturi poznavanj! 9izi2ki; zakona o! >a
it!kako poo0i u pravilno &izajniranju ur!%aja$
'a pri!r pri!no &opl!rovo* !9!kta oo*u0!no j! (zvu2no ili opti2ko za br!
ikrokontrol!r!) !r!nj! brzin! pokr!tno* obj!kta$ Sv!"t o n!j!&nakoj propu"tljivo"ti
ato"9!r! za razli2it! tala"n! &uin! "v!tlo"ti oo*u0i0! va pravilan izbor tala"n!
&uin! pr!&ajn! i prij!n! 9oto&io&!$ Fazna o&ulacija (!n*$ P;a"! S;i9t K!Win*)
tona oo*u0ava uzak au&io 9r!kv!ntni op"!*# a "ai ti v!0u izlaznu "na*u ra&io
pr!&ajnika$ Tako%! j! i najo"!tljivija "a "tran! prij!nika$ Poznavanj! karakt!ri"tika
lju&"ko* oka oo*u0ava ultipl!k" izlaza a lju&"ko* uva kopr!"iju uzik! ili
*ovora (npr$ 83PCM ili Sp!!N al*orito) b!z zna2ajnij!* *ubitka kvalit!ta$
Poznavanj! in9oratik!# o! >a it!kako poo0i priliko pov!zivanja kopjut!ra
i ikrokontrol!ra$ Mikrokontrol!r bi o*ao "kupljati po&atk! na t!r!nu# a kopjut!r
bi i; o*ao na iru "vo "vojo "na*o analizirati$
18F
94. S"r'#>e'(e &e&or#(e
- po*lavlju "a tab!laa upoznali "t! "! "a probl!o "trani2!nja pro*ra"k!
!orij! u blokovia o& po @F6 bajtova$ -koliko !lit! j!&no pr!0i i na
"avr!!nij! (ili "tarij! a j!9tinij!) ikrokontrol!r!# orat! ";vatiti princip i potr!bu za
"trani2!nj! !orij!$
Tab!laa j! kao to "t! v!0 nau2ili n!op;o&no "trani2!nj! u pro*ra"koj (C<M)
!oriji$ -koliko &!o tab!l! iza%! iz bloka o& @F6 bajtova# pro*ra 0! v!rovatno
kra;irati$ - potpuno i"toj "ituaciji nalaz! "! ikrokontrol!ri PIC16 "!rij! "a vi! o&
@Gb !orij!$
Go& ikrokontrol!ra iz PIC16 "!rij! koji iaju vi! o& @Gb pro*ra"k! !orij!
(PIC16F84 ia 1Gb) in"trukcij! C8:: i ?<T< o*u a&r!"irati ak"ialno @Gb
!orij!$ <vo o*rani2!nj! proi"ti2! iz "intak"! "ai; in"trukcija$ 'ai!# "v!
in"trukcij! "u 2!trna!"tobitn!$ Gako j! PC trina!"tobitan# on o! &ir!ktno a&r!"irati
pro*ra"k! a&r!"! o& + &o 81Y1 (1FNFF)# o&no"no ak"ialno 8Gb pro*ra"k!
!orij!$ M!%uti# unutar j!&n! 2!trna!"tobitn! in"trukcij! nalazi "! i ko&
in"trukcij! i op!ran&$ Go& C8:: in"trukcij! to iz*l!&a ovako/
ko& a&r!"a
100 xxxxxxxxxxx
Gao to vi&it!# unutar 2!trna!"tobitn! in"trukcij! za a&r!"u pr!o"taj! ak"ialno 11
bitova$ Sa ti; 11 bitova o*u "! &ir!ktno a&r!"irati j!&ino !orij"k! a&r!"! o& + &o
@+4P (PNFF)# o&no"no ak"ialno @Gb$ I"ta "ituacija j! i "a ?<T< in"trukcijo$ Iz
to* razlo*a ni ?<T< ni C8:: in"trukcija n! o*u kao o&r!&it! kori"titi a&r!"! v!0!
o& "tran! (!n*$ Pa*!) o& @Gb unutar pro*ra"k! !orij!$ 3a bi "! ovo pr!vazilo#
potr!bno j! kao ko& tab!l! pr! "koka po&!"iti o&*ovaraju0! bitov! PC:8T, r!*i"tra$
C8M !orija tako%! pati o& "li2no* probl!a$ =vo kako iz*l!&a ko& 8'3UF
in"trukcij!/
ko& o&r!&it! a&r!"a
000101 d ,,,,,,,
Sa P bita &o"tupni; za a&r!"u o*u0! j! a&r!"irati ak"ialno 1@8 r!*i"tra unutar
j!&n! bank!$ Go& ikrokontrol!ra PIC16 "!rij! "a vi! o& 1@8 r!*i"tara (uklju2uju0i i
"p!cijaln! r!*i"tr! B PIC16F84 ia 68 opti; i 1@ "p!cijalni; r!*i"tara u 58'G+)
kori"t! "! r!*i"tri na &ru*i "tranicaa C8M !orij! (58'G1# 58'G@ i
58'GK)$ Pr!lazak "a bank! na banku obavlja "! pr!ko CP+ i CP1 bitova$ To op!t
ra%a nov! probl!!$ >!0ina r!*i"tara &o"tupna j! "ao iz poj!&ini; banki$ To
on!o*u0ava !9!ktno kori0!nj! c!lokupn! C8M !orij!$ 3a bi "! probl! bar
&on!kl! ublaio# po"toji par r!*i"tara koji "u zaj!&ni2ki za "v! bank!$
7o koplikacija o! izazvati in&ir!ktno a&r!"iranj! pr!ko I'3F i FSC r!*i"tara$ Sa
8 bitova koji "! o*u na0i u njia o*u0! j! a&r!"irati &o @F6 r!*i"tara$ Zato "!
unutar ST8T-S r!*i"tra nalazi ICP bit koji "! oo*u0ava in&ir!ktno a&r!"iranj!
o"tatka C8M !orij!$
186
Iz "vi; ovi; razlo*a PIC16 9ailija ikrokontrol!ra j! prili2no n!za;valna za
pravlj!nj! pro*raa v!0i; o& @Gb$ Mora "! vo&iti ra2una o pr!vi! "itnica$ Go&
PIC18 "!rij! na pri!r ukinuto j! "trani2!nj! pro*ra"k! !orij!# &ok j! pro"tor za
r!*i"tar! u bankaa pov!0an na @F6$
18P
94. D#!!e&b$er
Si*urno >a "! &!"ilo &a "t! na int!rn!tu naili na pro*ra koji ra&i upravo ono to j!
>aa potr!bno# ali bi"t! u &o&ali jo par o*u0no"ti$ 'aalo"t autor *a j! napi"ao u
PIC 5a"ic ili C j!ziku u!"to u a"!bl!ru# ali j! na "ajtu o"tavio i $;!N kT&$
3i"a"!bl!ro j! o*u0! $;!N kT& pr!tvoriti u a"!bl!r"ki li"tin*# koji "! ka"nij!
o! !&itovati$ - to! j! j!&na o& pr!&no"ti a"!bl!ra na& vii pro*ra"ki
j!zicia$ '! po"toji &i"a"!bl!r koji o! $;!N 9ajl pr!baciti u PIC 5a"ic ili C$
'!ki o& najpoznatiji; &i"a"!bl!ra za PIC16F84 "u
Mika&o
PIC 3IS :IT=
3IS8SM 84
>!0 ranij! poinjani PIC Siulator I3=$
<v&! j! potr!bno napo!nuti &a MP:85 a"!bl!r oo*u0uj! kori0!nj! &o&atno*
"!ta in"trukcija$ T! in"trukcij! ikrokontrol!r n! razu!# pa "u "to*a ipl!!ntovan!
upotr!bo &v! ili vi! obi2ni; in"trukcija$ <vaj "!t in"trukcija o*u0! j! na0i u
n!ki (r!tki) $a" 9ajlovia$ -koliko !lit! "aznati na koji na2in ikrokontrol!r
izvrava takav pro*ra# o!t! &i"a"!blirati nj!*ov $;!N 9ajl i vi&!ti na2in
r!alizacij! iz a"!bl!r"ko* li"tin*a$
8naliza &i"a"!blirani; pro*raa uopt! nij! laka$ Go!ntara n!a (o"i oni; koj!
&i"a"!bl!r !v!ntualno po"tavi)# r!*i"tri i bitovi ni"u uv!k i!novani# a oni koji j!"u#
ia0! i!na iz bank! + (iako "! o&a r!alno nalaz! u banci 1)$ :ab!laa
&i"a"!bl!r &o&!ljuj! onak! r!&o# a r!*i"tria a&r!"o (tipa :ab!l4 i C!*@8)$
5inarni broj!vi ili 8SCII karakt!ri uv!k "u prikazani u ;!k"a&!cialno 9oratu$
'!uobi2aj!no r!!n! op!racij! (npr$ "kok upotr!bo PC: r!*i"tra) o*u biti izuz!tno
koplikovan! za analizu$ Zato j! pr!poru2ljivo u &i"a"!blirani li"tin* ubaciti
o&*ovaraju0! ko!ntar!# i po&!liti i; u lo*i2k! c!lin! (blokov!)$ I"to tako# ukoliko "t!
"i*urni u 9unkciju o&r!%!ni; r!*i"tra ili lab!la# o!t! i iz!niti naziv u "vi
!"tia u kojia "! pojavljuju u pro*rau (pr!ko =&it# C!plac! opcij!)$
8naliza tu%i; pro*raa poo0i 0! >a u razvijanju "op"tv!no* "tila pro*rairanja# i
u u2!nju novi; "o9tv!r"ki; t!;nika$ <"i to*a# n!a "vr;! ponovo iziljati toplu
vo&u$ >!liki broj ikrokontrol!r"ki; proj!kata "a int!rn!ta j! &at kao potpuno
b!"platan$ <naj ko !li naplatiti "voj tru&# n! o"tavlja pro*ra na int!rn!tu# v!0
pro&aj! pro*rairan! i zati0!n! ikrokontrol!r! (uklju2!n CP kon9i*uracioni bit)$
5u&u0i &a j! ovaj na2in zatit! pro*raa ikrokontrol!ra "a"vi &ovoljan za
"pr!2avanj! pirat!rij!# i >i o!t! biti "i*urni &a >a "! &u*o pi"ani pro*ra n!0!
o&j!&no pojaviti na int!rn!tu$
188
96. Pre%ro5e!or
- pro*raia "! 2!"to javlja potr!ba za "tan&ar&ni pro*ra"ki "trukturaa tipa
i9$$$t;!n$$$!l"!$$$ ili &o$$$R;il!$$$ (pri!ri "u iz Pa"kal j!zika# iako "! i"ta "truktura "r!0!
u "vi vii pro*ra"ki j!zicia)$ Svakako &a "! ov! "truktur! o*u r!alizovati
ru2no u a"!bl!ru# ali u v!0i pro*raia nji;ov ko& j! t!ko pratiti# 2ak i uz
ko!ntar!$
Pr!proc!"or pr!&"tavlja pro*ra koji j! o*u0! ubrzati razvoj; pro*raa#
za&ravaju0i pri to! "vu "na*u a"!bl!ra$ Gako j! to o*u0!? Pr!tpo"tavio &a
iat! v!0 razvij!n! &rajv!r! za "tan&ar&n! p!ri9!rij!$ -toliko bolj! po >a"$ M!%uti#
nij! ba lako pov!zati i; u c!linu$ Za najobi2nij! t!"tiranj! &vobajtno* broja i
izvravanj! razli2ito* ko&a u zavi"no"ti o& r!zultata# orali bi napi"ati &o"ta ko&a$ 6to
vi! ru2no pi"ano* ko&a# to v!0a o*u0no"t pojav! *r!aka$ 'ij! li lak! pi"ati/
-, '"(I;A 9 .2008
&he+
-+c, BR"$,F
e23e
dec, BR"$,F
e+d-,
n!*o/
movf QI:'"(I;A,%
sublw 0x07
btfsc STATUS,?
goto Te3&
btfsc STATUS,#
goto S10+>-
UIec0> incf BR"$,F
goto J)0>
Te3& movf E":'"(I;A,%
sublw 0x(8
btfss STATUS,#
goto UIec0>
S10+>- decf BR"$,F
J)0> ...
Prvi "lu2aj j! razuljiviji (op!t "u ko!ntari na!rno izo"tavlj!ni)# i nji! j!
pr!proc!"oru pr!put!na bri*a oko ra2unanja konkr!tni; vr!&no"ti (+N+P i +N38) za
por!%!nj!# r!alizovanj! o&*ovaraju0! pro*ra"k! "truktur! i iziljanj! naziva lab!la$
Potr!bno j! naravno pr!t;o&no &!9ini"ati &a j! ?<3I'8 &vobajtna vr!&no"t$
'akon to "! pr!proc!"oro &obij! o&*ovaraju0i a"!bl!r"ki ko&# tako &obij!n $a"
9ajl "tan&ar&no bi "! kopajlirao MP:85 a"!bl!ro$
18Y
Mo&a "atrat! &a j! lak! kori"titi C ili PIC 5a"ic$ 3!lii2no "t! u pravu$ Probl!
j! to vii pro*ra"ki j!zici n! o"tavljaju pro*ra!ru o*u0no"t "iuliranja
pro*raa in"trukciju po in"trukciju (bar n! na na2in koji bi pro*ra!r o*ao uticati
na pro*ra na in"trukcij"ko nivou)# nji;ov ko& j! &ui i "porij! "! izvrava$
Pr!proc!"or pak &o&aj! "ao a"!bl!ru (o"novn!) o*u0no"ti vii; pro*ra"ki;
j!zika# tako &a "! a"!bl!r"k! in"trukcij! "lobo&no o*u nalaziti u okviru ko&a koji
izvrava pr!proc!"or$ Pr!proc!"or 0! i; j!&no"tavno i*nori"ati$ 'akon to pr!proc!"or
*!n!ri! o"novni a"!bl!r"ki ko&# lako j! nakna&no *a iz!niti &ir!ktno u MP:85Bu#
ukoliko >a &obij!ni ko& iz bilo koji; razlo*a n! o&*ovara$
Pr!pic pr!proc!"or o!t! "kinuti "a ;ttp/MMRRR$!b!&inc$coMpicM&loa&$;t$ Gako
on n!a ?-I (?rap;ical -"!r Int!r9ac!) probl! 0! >a v!rovatno pr!&"tavljati
pr!no!nj! para!tara unutar koan&n! linij!$
S8SM (7!""ica M!r!ont!Q" Structural PIC 8""!bl!r pr!proc!""or) pr!proc!"or
nalazi "! na ;ttp/MMRRR$picbook$coM&oRnloa&"$;tl$ <n j! "kroniji; o*u0no"ti# i
n! o"tavlja pro*ra!ru o*u0no"t nakna&n! iz!n! &obij!no* ko&a (&obija "!
"ao $;!N 9ajl)$
.i"ta j! t!ta to "! o*u0no"ti pr!proc!"ora n!&ovoljno i"kori0avaju$ -z
pr!proc!"or j! razvoj pro*raa "koro i"to toliko brz kao ko& vii; pro*ra"ki; j!zika#
a op!t j! kori"niku oo*u0!na ak"ialna o*u0a kontrola pro*raa$
1Y+
96. *r/#>0# or(e'"#!'# %rogr&!0# (e1#5#
Za razliku o& a"!bl!ra i vii; pro*ra"ki; j!zika *ra9i2ki orj!nti"ani pro*ra"ki
j!zici "a"toj! "! iz blokova (lo*i2ki; c!lina)# kojia j! o*u0! &!9ini"ati
o&*ovaraju0a "tanja$ Proizvo&! naj&ui (i naj"poriji) o*u0i ko&# i uopt!
n!racionalno ra"ipaju r!"ur"! ikrokontrol!ra$ <"i to*a n!aju &ovoljno kontrol! u
o&no"u na bilo koji &ru*i pro*ra"ki j!zik$ Zato "u on&a uopt! nav!&!ni ov&!? Zato
to oo*u0avaju v!oa brzu izra&u j!&no"tavniji; pro*raa$
7!&an o& najbolji; *ra9i2ki orj!nti"ani; pro*ra"ki; j!zika j! :3icro "a ;ttp/MMcX$cNM
la&&!r$pl$ Iako "! u nj!u n! o! izabrati PIC16F84# o! "! kori"titi PIC16F6@8
koji u j! naj"li2niji$ Gako ni on n! proizvo&i $a" v!0 j!&ino $;!N 9ajl# ka"nij! 0! biti
n!op;o&no i nj!*ovo &i"a"!bliranj! ra&i pr!vo%!nja ko&a za PIC16F84$
1Y1
98. A 0o$#0o "o 0o;"E
Gao pro*ra!r orat! o&abrati najoptialnij! "o9tv!r"ko M ;ar&v!r"ko r!!nj! za >a
proj!kat$ <bi2no "! r!!nj! nalazi u razni koproi"ia$ Pr! "v!*a u c!ni 9inalno*
proizvo&a$
'!ojt! i"liti &a "u &i*italn! "tvari on! najbolj!$ <n! o*u o&li2no po"luiti u
kontroli proc!"a ili u upravljanju razni analo*ni ur!%ajia# ali analo*na
!l!ktronika i &alj! &ri v!liko vo%"tvo$ Iako j! "a"vi o*u0! kori"titi &i*italn!
"!nzor! t!p!ratur! (npr$ 3S18@+)# po*l!&ajt! koliko kotaju pr! n!*o to i; kupit!$
'ij! li no*o j!9tinij! kori"titi 'TC otpornik i 8M3 konv!rtor? Pr!cizno"t koju bi"t!
"a nji o*li &obiti o&a >a n!0! biti &ovoljna za inkubator ili razvijanj!
9ilova# ali za r!*ulaciju t!p!ratur! pro"torij! "vakako ;o0!$ Ionako >a
ikrokontrol!r u v!0ini "lu2aj!va b!"potr!bno troi &ra*oc!n! taktov!$ '!ka bar ra&i
n!to kori"no# po*otovu ukoliko "! ti! o! ut!&!ti$
Gri"talni o"cilator &aj! no*o pr!cizniju 9r!kv!nciju o& CC o"cilatora# ali pitanj! j!
koliko >a j! ona u "tvari potr!bna$ -*lavno "! o! b!z nj!$ -por!&it! c!nu `T
"a c!no CC o"cilatora$ -koliko j! to o*u0!# probajt! ikrokontrol!ru to vi!
"anjiti takt# b!z uticaja na pravovr!!no izvravanj! pro*raa$ Ca&i0! "tabilnij!#
anj! 0! "! *r!jati# troi0! anj! "truj! i &u! 0! trajati$ Mala brzina takta o"cilatora u
v!0ini "lu2aj!va uopt! n! pr!&"tavlja n!&o"tatak$ -o"talo# zapitajt! "! ta pokr!0!
in&u"triju kopjut!ra$ >i&!o i*ric!1 3>3 o!t! *l!&ati i na kopjut!ru "a anj! o&
8++M,z$
3i*italna kola "a int!*ri"ani "ato i kal!n&aro "i*urno >a &!luju prialjivo$
8li po*l!&ajt! nji;ovu c!nu1 -por!&it! j! "a c!no K@#P68k,z kri"tala1
Po"!bna "ituacija j! :C3 &i"pl!j$ -*lavno j! toliko ali; &i!nzija i toliko "labo
o"v!tlj!n &a "! u prak"i prili2no alo kori"ti$ '!ojt! i"liti &a 0! >a "a nji
iz*ra%!ni ur!%aji iz*l!&ati pro9!"ionalnij!$ '!a "vr;! na :C3 &i"pl!ju prikazati @ ili
K ci9r!# koj! bi upotr!bo :=3 &i"pl!ja o*li no*o j!9tinij! r!alizovati$ <"i to*a
:=3 &i"pl!j "! o! po"atrati po& "vi u*lovia i o&li2no "! vi&i po raku$
7o j!&na o&!rna novotarija j! -S5 kon!kcija$ 5ila bi "a"vi u r!&u# ka&a bi
pro"!2an PIC ikrokontrol!r iao koji !*abajt !orij!$ <vako# j!&ina pr!&no"t
joj j! kopatibilno"t iz!%u "vi; PC kon9i*uracija$ '! ka! &a j! to ala pr!&no"t#
ali zapitajt! "! po kojoj c!ni >a j! potr!bna$
1Y@
99. +r/#(ev 10o'
- razni proj!ktia "a ikrokontrol!ria no*o ta o! po0i naopako$ 'a >aa
j! &a pr!&upr!&it! to vi! v!rovatni; *r!aka$ Iajt! u vi&u &a iako ikrokontrol!r
o! b!z probl!a obavljati jako koplikovan! op!racij!# ni on nij! "v!o*u0$ >i
u tr!bat! ob!zb!&iti optialn! u"lov! za ra&$ Tu "! pr! "v!*a i"li na "poljn!
9izi2k! v!li2in! koj! o*u o!tati ra& ikrokontrol!ra# ili nj!*ovi; &o&atni;
"klopova$ Svakako >a j! ja"no &a ikrokontrol!r n! "!t! kori"titi u u"lovia
vla*!# t!p!ratur!# !;ani2ki; vibracija ili !l!ktroa*n!tno* zra2!nja koj! izlazi iz
*ranica po"tavlj!ni; u nj!*ovo t!;ni2ko uput"tvu$ 7!&na o& naj2!0i; *r!aka j!
&ir!ktno uklju2!nj! v!0i; potroa2a$
-koliko v!0 iat! n!ki potroa2 (@BKkU) koji !lit! uklju2ivati i i"klju2ivati
ikrokontrol!ro# orat! znati &a bi pr!v!lika "truja koju povu2! taj potroa2 u
tr!nutku uklju2!nja o*la izazvati pa& napona u r!i# to bi uzrokovalo r!"!t
ikrokontrol!ra u"l!& "putanja nj!*ovo* napona napajanja i"po& o&r!%!n! *ranic!$
I"ti "lu2aj o! uzrokovati i obi2an r!l!j zbo* in&uktivn! kopon!nt! nj!*ovi;
naotaja$ < "tabilno"ti o"cilatora u ovakvi "lu2aj!via# &a ni n! *ovori$
3ru*a tipi2na *r!ka j! napon in&ukovan na tapanoj plo2ici i priklju2ni
kablovia$ '! v!ruj!t! &a o! toliko uticati? -klju2it! obilni u blizini ra&io
prij!nika$ - prak"i "! 2ak javljaju i "lu2aj!vi korupcij! pro*ra"k! !orij!
(o0niji ikrokontrol!ra) zbo* nji;ov! o*u0no"ti pro*rairanja ni"ki )HF>
u!"to H1@>) napono$
<vi probl!i o*u "! !9!ktno r!iti upotr!bo okloplj!ni; (koak"ijalni;) kablova i
*alvan"ki o&vajanj! ikrokontrol!ra o& izvora "!tnji optokapl!ria$
Mno*o t!! *r!k! na"taju u"l!& lo! napi"ano* "o9tv!ra$ '!ojt! "! zavaravati$
-koliko n!to o! po0i po zlu# bu&it! uv!r!ni &a 0! po0i$ - na"tavku t!k"ta 0! biti
opi"an! "ituacij! koj! (ukoliko "! na nji; n! obrati panja) o*u &ov!"ti &o
n!pravilno* ra&a pro*raa$
Pinovi koji "! n! kori"t! tr!baju biti kon9i*uri"ani kao izlazi &a n! bi pr!li u
vi"okoip!&an"no "tanj!$ -koliko "! pin C84 n! kori"ti potr!bno j! por!& to*a
po"taviti *a na lo*i2ku + j!r u "tanju lo*i2k! 1 pr!lazi u vi"okoip!&an"no "tanj!$ -
vi"okoip!&an"no "tanju napon na pinovia o! zao"cilovati$
Pinovi P<CT8 i P<CT5 r!*i"tra "u nakon uklju2!nja pr!ko TCIS8 i TCIS5 r!*i"tra
&!9ini"ani kao ulazni$ -koliko na "poljni ;ar&v!r !lit! o&a; po uklju2!nju
ikrokontrol!ra &ov!"ti lo*i2ku 1# orat! pr! po&!avanja TCIS8 i TCIS5 r!*i"tra
po&!"iti P<CT8 i P<CT5$ -koliko to n! ura&it!# po&!"i0!t! TCIS8 i TCIS5# i na
pinovia P<CT8 i P<CT5 r!*i"tra javi0! "! n!poznato "tanj!$ >r!&no"ti u P<CT8 i
P<CT5 r!*i"tria po uklju2!nju ikrokontrol!ra ni"u inicijalizovan!# to zna2i &a
"tanj! bitova u njia o! biti bilo kakvo$
3!9ini"anj! pinova kao izlaza pr! n!*o to "! pro!ni n!poznata vr!&no"t u P<CT8 i
P<CT5 r!*i"tru o! &ov!"ti &o kratko* n!!lj!no* pojavljivanja lo*i2k! + ili 1 na
pinovia ikrokontrol!ra$ 3a bi"t! "! o"i*urali o& ovo*a# po!ljno j! &a u $a"
1YK
za*lavlju koj! kori"tit! za razvoj novi; pro*raa unapr!& inicijalizuj!t! "tanj! na
P<CT8 i P<CT5 r!*i"tria pr! pro!n! TCIS8 r!*i"tra$ - "tvari po!ljno j! ubaciti
inicijalizaciju u za*lavlj! za "v! najkori0!nij! r!*i"tr! (npr$ I'TC<' i
<PTI<'LC=?) zaj!&no "a nji;ovi kratki objanj!njia# &a "! nji;ova
inicijalizacija n! bi pr!vi&!la$
-koliko "u &ir!ktno na ikrokontrol!r pov!zani pr!ki&a2i# orat! na ulazni
pinovia po"taviti pull up ili pull &oRn otpornik!$ 'ajprakti2nij! j! kori"titi
int!*ri"an! pull up otpornik! na P<CT5$ - protivno# zra2!nj! va!* obilno*
t!l!9ona# poja2ana aktivno"t "un2!vi; p!*a pa 2ak i koni2in upravo uklju2!n
u"i"iva2 o*u &ov!"ti &o pr!la"ka ulazno* pina u n!&!9ini"ano "tanj! i lanu &!t!kciju
priti"nuto* ta"t!ra$
Pro*ra b!z &!bouncin* rutin! ra&i0! b!z probl!a &ok "u kontakti pr!ki&a2a novi$
.i "! oni i"krzaju# pro*ra 0! &!t!ktovati vi! uza"topni; priti"aka pr!ki&a2a$
Gori"nici uv!k o*u priti"nuti @# K ili vi! ta"t!ra i"tovr!!no$ 5u&it! "i*urni &a 0!
bar n!ko o& nji; to i u2initi$ Pro*ra ora biti napi"an tako &a pr!&vi&i i tu
o*u0no"t$
Po"!ban "lu2aj pr!&"tavljaju *r!k! izazvan! int!rni ciklu"o 2itanja i upi"a "tanja
"a porta (!n*$ CMU O R!a&# +o&i9W .rit!)$ Priliko iz!n! "tanja porta
in"trukcijo bc9 P<CT8#@ ikrokontrol!r 0! o2itati tr!nutno "tanj! "vi; pinova
P<CT8 r!*i"tra# r!"!tovati bit @ i po"taviti &obij!no "tanj! u P<CT8$ M!%uti#
ukoliko j! na pri!r pin C8+ &!9ini"an kao izlazni "a lo*i2ko 1# ali "! iz bilo ko*
razlo*a (pr!vi! ala ip!&an"a na liniji) pin C8+ tr!nutno nalazi u "tanju u ko!
nij! po"tavlj!n# o*u0! j! &a ikrokontrol!r pri CMU ciklu"u "a nj!*a o2ita lo*i2ku
+ u!"to lo*i2ku 1# i &a u na taj na2in *r!ko priliko upi"a pro!ni "tanj!$ 3a bi
"! ovo izb!*lo# po!ljno j! n! izvravati op!racij! &ir!ktno na& portovia# v!0 "v!
op!racij! obavljati na& ";a&&oR r!*i"tro# a t!k ka"nij!# ka&a j! to n!op;o&no
kopirati r!zultat u o&*ovaraju0i port$
-!"to 2!kanja na "!tovanj! 9la*a kraja upi"a u ==PC<M o!t! (ukoliko va
brzina nij! ip!rativ) j!&no"tavno "a2!kati &ovoljno &u*o &a "! upi" "i*urno zavri$
Tako%! &obra j! prak"a t!"tiranj! ak"ialno* vr!!na "nianja i na"tavak
pro*raa ukoliko j! ono no*o &u! o& noralno* i*noriu0i pri to! "tanj! 9la*a$
'a taj na2in "i*urni "t! &a 0! pro*ra i"pravno ra&iti 2ak i &a ikrokontrol!r (iz bilo
ko* razlo*a) n! "!tuj! pravovr!!no 9la*$
==PC<M !orija ikrokontrol!ra ia "voj ra&ni v!k$ '! bi "!li &ozvoliti
pro*rau "nianj! pr!ko vr!&no"ti "p!ci9iciran! u t!;ni2ko uput"tvu$ 5olj! po
inicijalizaciji ikrokontrol!ra obavit! "v! potr!bn! op!racij! u obi2noj (C8M)
!oriji# a "niajt! u ==PC<M# "ao ka&a j! to n!op;o&no$ Ipak# "a PIC j!
prili2no iz&rljiv$ =vo &obro* pri!ra "a j!&n! ailin* li"t!$
Fro/ ^n!p!LWu^ To/ ikro!l!ktronikamWa;oo*roup"$co
Subj!ct/ \ikro!l!ktronika] C!/ Pouz&ano"t PICBova (U3T)
8 !vo i o* "krono* i"ku"tva /) 'ai! *r!ko "a u j!&no proj!ktu upi"# u
int!rni ==PC<M PIC18F4F@ ikrokontrol!ra# vrio na 1++S n!pr!ki&no# i nakon
1Y4
vi! !"!ci ra&a ta lokacija ==PC<Ma j! "tra&ala$ ^<b&ukcijo^ j! utvr%!no &a j!
vi! o& 1@++++++ (1@ iliona) puta izvr!n upi" pr! n!*o to "! javio probl! /) =to#
ia i pozitivni; i"ku"tava /)))
3obru prak"u pr!&"tavlja kratko uklju2!nj! "vi; :=3 za vr!! inicijalizacij!
ikrokontrol!ra$ 'a taj na2in o&a; po uklju2!nju ikrokontrol!ra o!t! pri!titi
&a li "u "vi "!*!nti :=3 &i"pl!ja kao i poj!&ina2n! :=3 i"pravn!$
-koliko j! o*u0!# u toku inicijalizacij! t!"tirajt! i !k"t!rn! kopon!nt!$ 'a pri!r
&i*italni "!nzor t!p!ratur! j! o2i*l!&no n!i"pravan ukoliko prijavljuj! t!p!raturu
ap"olutn! nul! (B@PK
o
C)$ 3!t!kciju bilo kakvo* kvara ikrokontrol!r o!
"i*nalizirati tr!p!r!nj! &i"pl!ja ili poj!&ina2ni; :=3 uz !v!ntualni opi" *r!k! (npr
tr!p!r!0a oznaka =1 na :=3 &i"pl!ju "i*nalizira pr!ki& v!za &o "!nzora o"v!tlj!no"ti
utvr%!nu nj!*ovo pr!v!liko otporno0u# a tr!p!r!0a oznaka =@ n!i"pravno"t
&i*italno* "!nzora t!p!ratur! utvr%!nu izla"ko !r!n! t!p!ratur! iz nj!no*
uobi2aj!no* B ra&no* op"!*a)$ 'a taj na2in bli! o&r!%uj!t! !"to kvara# to va
o! poo0i priliko opravk!$
Microc;ip j! tako%! iao Mar9ija na uu ka&a j! proj!ktovao ikrokontrol!r! pa
a"!bl!r u "v! n!i"kori0!n! a&r!"! pro*ra"k! !orij! "nia ko& '<P
in"trukcij!$ 'akon ak"ialn! pro*ra"k! a&r!"! KNFF pro*ra "! na"tavlja o&
po2!tka (+N++)$ Ipak# probl! o! izazvati a&r!"iranj! !orij! koja nij!
ipl!!ntovana u PIC16F84 ikrokontrol!ru (4N++ O 1FNFF)# j!r 0! "! ona ponaati
kao &a j! u njoj apirana obi2na (ra&na) pro*ra"ka !orija$ Potpuno j! i"to
a&r!"iranj! lokacija +N@+# 4N@+# 8N@+# CN@+# 1+N@+# 14N@+# 18N@+ i 1CN@+$ <vo "u
ipak !k"tr!ni "lu2aj!vi i n! bi >a" tr!bali brinuti$
1YF
1::. Dobr H3!er /re'd$IJ d#1('
Po*l!&ajt! >a &aljin"ki za T>1 Tr!baju li va "vi ti &u*i0i? 3a li "t! ika&a u"p!li
&a pro*rairat! "voj klia ur!%aj tako &a "! autoat"ki uklju2uj! "vako*a &ana u
6/++? 7!"t! li "! izn!rvirali to va in"taliran <99ic! pak!t zauzia cak 1?b ;ar&
&i"ka# iako j! poznato &a pro"!2an kori"nik i"kori"ti j!&va @i o*u0no"ti pro*raa
za obra&u t!k"ta? Po*l!&ajt! ta"taturu >a!* kopjut!ra$ Mo!t! li (kao ko& pi"a0!
ain!) o&*ovaraju0i pr"to priti"nuti bilo koj! &u*! na njoj# n! po!raju0i c!lu
aku?
- o"novi "vako* &obro* &izajna l!i j!&no"tavno"t i ak"ialno prila*o%!nj!
otorici i int!l!ktualni "po"obno"tia krajnj!* kori"nika$ Moj otac i &alj! kori"ti
!;ani2ku I-niNJ pi"a0u ainu# j!r n! u"p!va napraviti &upli klik# a ajci "a
orao kupiti pravu Ici*luJ o& obilno*# &a bi u"p!la priti"kati j!&an po j!&an ta"t!r# a
n! vi! nji; i"tovr!!no$ Po*l!&ajt! broj F na va! obilno t!l!9onu i
nu!ri2ko &!lu ta"tatur! kopjut!ra$ Pri!0uj!t! li &a "! razlikuj! o& o"tali;?
'aa to nij! potr!bno$ 8li j!"t! o"obaa "a ot!0!ni vi&o$
Po*l!&ajt! "l!&!0i pri!r$ Potr!bno j! na :=3 &i"pl!ju prikazati broj o& ++ &o YY$
E!lj!ni broj tr!bat! po&!"iti pr!ko ulazno* int!r9!j"a$ Po"toji ali ilion na2ina na
koj! o!t! r!alizovati ovakav za&atak$ <v&! j! prikazano par pri!ra# a >i "ai
proc!nit! koji bi "pa&ali u &obar &izajn$
1$ 3va pr!ki&a2a (H za pov!0anj! broja i O za "anj!nj!) v!zani "u kao ulazi "a
"voji pullBup otpornicia$ 3!t!kcija priti"nuto"ti "! obavlja "o9tv!r"ki# b!z
&!bouncin* rutin!# j!&ino "a pauzo o& tr!0in! "!kun&! po priti"nuto
ta"t!ru# nakon 2!*a "! izvrava nova &!t!kcija$ Za pr!bacivanj! "a ++ na YY na
ovakav na2in potr!bno j! 2!kati 2ak K+ "!kun&i$
@$ So9tv!r j! pr!pravlj!n tako &a "! i za vr!! pauz! t!"tira pr!ki&a2$ -koliko "!
priti"n! a &a jo nij! i"t!kla tr!0ina "!kun&!# ponaa "! kao &a j! prot!kla$
Tako "! o! bri uza"topni priti"kanj! pr!ki&a2a "anjiti vr!!
po&!avanja$ Zbo* n!po"tojanja &!bouncin* rutin!# i &alj! j! o*u0! j! &a "!
j!&ni priti"ko pr!"ko2i koji broj$
K$ 3o&ata j! &!bouncin* rutina$
4$ Cutina za pauzu pr!pravlj!na j! tako &a pauza nakon prvo* priti"ka izno"i
+#PFS# a &a "! zati (ukoliko j! pr!ki&a2 i &alj! priti"nut) u "l!&!0i; par
pozivanja "anjuj! &o npr$ +#1FS# i na&alj! o"taj! na toj vr!&no"ti$ Po
otputanju i ponovno priti"kanju pr!ki&a2a# pauza bi op!t po2!la o&
ak"ialn! vr!&no"ti$ <vi j! po&!avanj! olakano (zbo* "anj!nja brzin!
inicijalno* ponavljanja)# a vr!! za po&!avanj! "anj!no j! (zbo* v!0!
brzin! ponavljanja) na oko 1YS$
F$ -!"to &va pr!ki&a2a po"tavlj!n j! rotacioni !nko&!r$ 'a taj na2in "! j!&ni
j!&ini pokr!to ruk! o! 9ino po&!"iti !lj!no vr!!$ >r!! potr!bno za
po&!avanj! "anj!no j! na oko FS$ <vo j! za kori"nika najlo*i2niji na2in
po&!avanja vr!!na$ Zato "! i kori"ti ko& npr$ ikrotala"ni; p!0nica$
1Y6
6$ -!"to rotaciono* !nko&!ra po"tavlj!na j! ta"tatura "a ci9raa I+J &o IYJ i
ta"t!ro I38:7=J b!z &!bouncin* rutin!# ali "a pauzo o& tr!0in! "!kun&!
po priti"nuto ta"t!ru$ >r!! potr!bno za po&!avanj! izno"i oko KS$
P$ 3o&ata j! &!bouncin* rutina$ >r!! za po&!avanj! izno"i "ao @S$
Si*urno "t! i >i &oli &o zaklju2ka &a bi j!&ino na2ini po& ta2ko 4# F i P bili
najprila*o%!niji kori"niku$ Goji na2in 0! "! kori"titi zavi"i j!&ino o& broja "lobo&ni;
pinova i c!n! o&*ovaraju0!* int!r9!j"a$
<"i ulazni;# nij! t!ko o"tvariti poboljanja ni na izlazno ;ar&v!ru$ 6ta i"lit! o
:=3 &i"pl!ju koji !nja ja2inu "vo* "v!tla u zavi"no"ti o& "poljno* o"v!tlj!nja?
'o0u bi "v!tl!o "labo# a &anju jako$ <"i to l!p! iz*l!&a (n! blj!ti)# &i"pl!j 0! >a
&u! trajati$
-koliko iat! 2!"t! n!"taic! "truj!# pa "t! zbo* to*a za "at pr!&vi&!li &o&atno
napajanj! bat!rijo# n!a potr!b! &a :=3 &i"pl!j bu&! "vo vr!! uklju2!n$ 8ko *a
v!0 orat! uklju2ivati ka&a n!a napajanja iz r!!# n!ka to bu&! po priti"ku ta"t!r
pr!ki&a2a i na kratko$
1YP
1:1. Serv#!'# &od
Po*l!&ajt! "voj obilni t!l!9on$ 3a li "t! znali &a kobinacijo o&r!%!ni; ta"t!ra
o!t! prov!riti ta2no "tanj! broja2a inuta i pr!n!!ni; ?PCS po&ataka? Priliko
bloka&! auto ra&ia# &ovoljno j! na nj!*ovoj ta"taturi otkucati "i*urno"ni ko& &a bi "!
o&blokirao$ <v! "tvari r!alizovan! "u upravo upotr!bo tzv$ "!rvi"no* o&a$
S!rvi"ni o& nij! (bar ko& PIC16F84) poput S:==P o&a int!*ri"an u "a
ikrokontrol!r$ Potr!bno j! &a *a "ai o"i"lit!$ Zov! "! "!rvi"ni j!r u pri"tup
iaju j!&ino pro*ra!ri i "!rvi"!ri (ta2nij! "vi oni koji znaju tajni po"tupak ula"ka)$
-koliko va pro*ra kori"ti ultita"kin* op!rativni "i"t!# najprakti2nij! j!
pr!&vi&!ti ulaz u pro*ra pr!ko nj!*a$
S!rvi"ni o& na!nj!n j! pr! "v!*a >aa# kako bi va olakao t!"tiranj!
ikrokontrol!ra u prak"i$ - nj!*a "! ulazi po"tupcia koji ni"u uobi2aj!ni za obi2no*
kori"nika$ To o! biti &ranj! o&r!%!no* ta"t!ra priti"nuto* 1+S# brza kobinacija
o&r!%!ni; ta"t!ra (kao upi" i9r!) ili priti"kanj! (za kori"nika n!&o"tupno*)
pr!ki&a2a koji bi "! izazvao int!rapt na C5+MI'T pinu$
6ta ra&iti u "!rvi"no o&u? To zavi"i j!&ino o& >a"$ -koliko >a j! to bitno#
o!t! "tanj! o&r!%!ni; r!*i"tra ili 9la*ova prikazati na v!0 po"toj!0i :=3$ 8
o!t! i po"lati "tanj! "vi; r!*i"tara u kopjut!r pr!ko CS@K@ v!z! (!n*$ inBcircuit
&!bu**in*)$ .ak to o!t! ra&iti po pojavi int!rapta ili iz "ao* pro*raa
po"tavljaju0i na !lj!ni !"tia ta2k! pr!ki&a (!n*$ br!ak point") "a pozivo
potpro*raa za "!rvi"ni o&$ '! zaboravit! j!&ino &a pr! povratka na *lavni pro*ra
vratit! ranija "tanja r!*i"tra (obi2no ST8T-S i U) kao u int!raptia$
Sa "tran! pro*rairanja# "!rvi"ni o& >a o! o&li2no po"luiti za t!"tiranj! kra0i;
potpro*raa ili rutina pr! nji;ov! ipl!!ntacij! u *lavni pro*ra# ili za I"poljnoJ
po&!avanj! "tanja o&r!%!ni; r!*i"tra "a "nianj! u ==PC<M$ 'a taj na2in o!t!
po&!"iti ikrokontrol!r &ir!ktno na zavr!no proj!ktu# 2i! izb!*avat! 2!0!
pr!!tanj! i pro*rairanj! ikrokontrol!ra$ <no to (zbo* "poljni; int!r9!j"a) nij!
o*u0! t!"tirati u "iulatoru# upotr!bo "!rvi"no* o&a po"taj! o*u0!$
-koliko v!0 iat! *otov i prov!r!n pro*ra# o&a bi >a bila int!r!"antna
o*u0no"t nj!*ov! ka"nij! na&o*ra&nj!$ -z par j!9tini; !l!!nata na tapanoj
plo2ici i o&*ovaraju0!* kon!ktora o!t! proj!ktovati "voj proizvo& tako &a u
oo*u0it! laku za!nu pro*raa (!n*$ In Circuit S!rial Pro*rain*) ka"nij!# ili u
toku "ao* i"pitivanja pro*raa$ 'aravno# !k"t!rni ;ar&v!r pro*raatora j! i &alj!
n!op;o&an$
1Y8
1:2. To (e "o. G" !dE
Sa&a iat! o&li2n! polazn! o"nov! za &alji ra& "a ikrokontrol!ria$ -koliko va i
&anj! n!to nij! ja"no# pitajt!$ Int!rn!t j! pun !ntuzija"ta voljni; &a va poo*nu#
"ao ako "! l!po zaol!$ 'aravno# n! o!t! o2!kivati &a 0! va b!"platno napraviti
pro*ra koji va j! potr!ban# ali ukoliko zapn!t! n!*&!# tu "u$ Mo!t! i; na0i na
9oruia RRR $!lit!"!curitW$or* # RRR$!l!ktronika$ba# RRR$icroc;ip$co#
RRR$kazu"$ru i razni &ru*i "ajtovia$ 3a bi"t! uopt! o*li o2!kivati o&*ovor#
bu&it! "trpljivi (niko n! &!ura por!& kopjut!ra &a bi !to ba vaa o!ntalno
o&*ovorio) i i"crpni u opi"u "vo* probl!a$ ` puta i "! &o*o&ilo (N t!i
b!"kona2no"ti) &a j!&no"tavno n!a ni najanju pr!&"tavu o to! ta j! n!ko ;t!o
&a ! pita$ 'ajbolj! j! opi"ati ta !lit! &a va pro*ra ra&i# &okl! "t! &o "a&a "ti*li i
na koji na2in "! o*u r!pro&ukovati *r!k! koj! &obijat! u ra&u pro*raa$ Po!ljno
j! &a ukoliko j! to potr!bno po"tavit! "voj pro*ra (ili nj!*ov! &!lov! za koj! trait!
"av!t) na "ajt$ Ca&i bolj! 2itljivo"ti pro*raa pr! objavljivanja po&!"it! lab!l! i
op!ran&! razacia u!"to tabulatoro i po"tavit! li"tin* iz!%u \co&!] i \Mco&!]
ta*ova$ 'ij! na o&!t ni po"taviti "liku ili opi" !l!ktri2n! !!$
'aalo"t# tr!nutna "ituacija u naoj z!lji j! takva &a alo ko !li &a po&!li "voj!
znanj! (akar i 9ra*!nt! znanja) "a &ru*ia$ -koliko i >i "pa&at! u takv! o"ob!# pa
"atrat! &a 0! >a va pro*ra &on!ti ilion!# ali !to zap!li "t! ko& n!k! *r!k! i
nikako &a j! otklonit!# bolj! "! n!ojt! ni javljati po 9oruia$ -koliko n! po&!lit!
"a o"talia &!taljan opi" probl!a koji >a" u2i ("a pri!ro ko&a i !l!ktri2no
!o) "vakako &a "! n! o!t! na&ati pravo# o&a no*o kon"truktivnij!
o&*ovoru$
Mikrokontrol!ri "! n!pr!"tano razvijaju$ PIC16F84 j! v!0 za"tar!o$ 3obro j! to va
uz nau2!no *ra&ivo pr!lazak na ja2! (ili "labij!) 9ailij! n!0! t!ko pa"ti$
PIC1+ i PIC1@ "!rija ia &o"ta o*rani2!nja u pri!ni$ Iaju "ao &va nivoa "t!ka#
alu !oriju i koplikovano "trani2!nj! !orij!$ Ipak# zbo* inijaturni; ku0ita
i al! c!n! o*u pr!&"tavljati &obar izbor za anj! za;t!vn! aplikacij!$
- c!loj PIC16 "!riji ikrokontrol!ra iat! i"t! in"trukcij! objanj!n! u ovo
uput"tvu$ 'aravno# ;ar&v!r"k! razlik! "u "vakako pri"utn! i "ai ti r!*i"tri iaju
razli2it! a&r!"! i na!n!# ali >a uz po"toj!0! $inc 9ajlov! to nij! pr!t!rano bitno$
PIC1P "!rija uvo&i 16 nivoa "t!ka# olakano 2itanj! tab!la i &o&atni "!t in"trukcija$
<na nij! "t!kla popularno"t !%u pro*ra!ria# tako &a o!t! iati probl!a
priliko nj!n! nabavk!$
PIC18 "!rij! "u jo napr!&nij! (uz 4@ nov! in"trukcij! u o&no"u na PIC16 "!riju)#
iaju K1 nivo "t!ka# n!aju "trani2!nj! pro*ra"k! (n! i C8M) !orij!# i nu&!
nov! ;ar&v!r"k! &o&atk! (npr$ int!*ri"ani -S5@ kontrol!r)$
- PIC@4 i &"PIC "!riji "t!k j! u!"to ;ar&v!r"ki# ipl!!ntovan "o9tv!r"ki# a u!"to
j!&no* ra&no* (U) r!*i"tra uv!&!no j! 2ak 16$ In"trukcij"ki "!t j! &o"ta iz!nj!n$
Zbo* na!n"ko* ;ar&v!ra PIC@4 "!rija prila*o%!na j! upravljanju otoria a &"PIC
&i*italno proc!"iranju "i*nala (!n*$ 3SP B Di*ital Si*nal Proc!""in*)$
1YY
'ajnovija Microc;ip 9ailija ikrokontrol!ra PICK@N oo*u0uj! ra& "a
tri&!"!t&vobitni in"trukcijaa# ali naalo"t in"trukcij! "u joj potpuno razli2it! o&
raniji; "!rija$ Iz*l!&a &a j! Microc;ip r!io &a prila*o&i "voj! proizvo&! i za
pro*ra"ki j!zik C koji u raniji "!rijaa nij! bio !9!ktno za"tuplj!n$
-!"to PIC16F84 ikrokontrol!ra o!t! uz o&*ovaraju0! iz!n! "o9tv!ra kori"titi
PIC16F6@8 koji ia &uplo vi! !orij!# int!*ri"ani PUM i CS@K@ i jo &va taj!ra
uz &uplo anju c!nu$ -koliko "u >a bitni 8M3 konv!rtori i&!alno r!!nj!
pr!&"tavljaju 18Bpin"ki PIC16F88 i 4+Bpin"ki PIC16F8PP$
-z ovakv! o"nov! o!t! i"probati i &ru*! 9ailij! ikrokontrol!ra$ Tr!nutno "u
aktu!ln! "!rij! 8>C i Motorola$ 'aalo"t otorolini ikrokontrol!ri (iako o&li2ni i
j!9tini) iaju prili2no "kup "o9tv!r# a i &o"tava i o! biti probl!ati2na za nau
z!lju$
<no to 2ini ikrokontrol!r! toliko o0ni nij! nji;ova brzina# !orija ni
int!*ri"ani ;ar&v!r# v!0 i&!ja o nji;ovoj o*u0oj upotr!bi u "vako&n!vno ivotu# i
poboljanja koja bi "! nji;ovo upotr!bo o*la o"tvariti$ -koliko v!0 n!at!
u"lova &a ikrokontrol!ria poboljat! in&u"trij"k! ain!# po2nit! o& "vo*
&oa0in"tva$ St!p!ni2ni autoat za "v!tlo# !l!ktron"ka brava# zvono# taj!r za
o"v!tlj!nj! akvarijua# taj!r za pr!;ranu p2!la zii# autoat"ka ;ranilica za ku0n!
ljubic!# &i*italni po&"!tnik# brzino!r za biciklu# "v! "u to ali proj!kti koji >a
o*u poo0i u "vako&n!vno ivotu$
3!luj! j!&no"tavno? S!tit! "! "vo* prvo* pro*raa$ Mo*u0no"t za na&o*ra&nju uv!k
po"toji$
@++
1:). Pr#$o1#
Prilo*! na nar!&ni "tranaa po!ljno j! tapati po"!bno# kako bi >a uv!k bili na
&o;vatu ruk!$ Mo!t! i; kori"titi kako bi "! brzo po&"!tili ta2no* naziva in"trukcija ili
bank! r!*i"tara$
XOR
+ + +
+ 1 1
1 + 1
1 1 +
00101110
A"R 10010110
6 10111000
C!zultat `<C op!racij! 0! biti lo*i2ka 1 "ao ukoliko "u u
oba op!ran&a razli2ita$ -koliko "u i"ta (ob! + ili ob! 1)# r!zultat
0! biti lo*i2ka +$
A&D
+ + +
+ 1 +
1 + +
1 1 1
01101011
A;( 10100101
6 00100001
C!zultat 8'3 op!racij! bi0! lo*i2ka 1 "ao ukoliko "u oba
op!ran&a na lo*i2koj 1$ -koliko bar j!&an nij!# r!zultat 0! biti
lo*i2ka +$
'OR
+ + +
+ 1 1
1 + 1
1 1 1
01101011
I"R 10100101
6 11101111
C!zultat I<C op!racij! bi0! lo*i2ka 1 ukoliko j! bar na j!&no
op!ran&u pri"utna lo*i2ka 1$ -koliko "u oba na lo*i2koj +# i
r!zultat 0! biti j!&nak lo*i2koj +$
CO(
+ 1
1 +
#"4 01101011
6 10010100
Gopl!!nt ili inv!rtovanj! pr!&"tavlja lo*i2ku op!raciju u
kojoj "vaki bit u bajtu !nja "voju vr!&no"t$

@+1
De0 Aex B"/ BCD O5/
$+ +N++ bQ++++ ++++Q ++ +
$1 +N+1 bQ++++ +++1Q +1 H$1
$@ +N+@ bQ++++ ++1+Q +@ H$@
$K +N+K bQ++++ ++11Q +K H$K
$4 +N+4 bQ++++ +1++Q +4 H$4
$F +N+F bQ++++ +1+1Q +F H$F
$6 +N+6 bQ++++ +11+Q +6 H$6
$P +N+P bQ++++ +111Q +P H$P
$8 +N+8 bQ++++ 1+++Q +8 H$8
$Y +N+Y bQ++++ 1++1Q +Y H$Y
$1+ +N+8 bQ++++ 1+1+Q +N H$1+
$11 +N+5 bQ++++ 1+11Q +N H$11
$1@ +N+C bQ++++ 11++Q +N H$1@
$1K +N+3 bQ++++ 11+1Q +N H$1K
$14 +N+= bQ++++ 111+Q +N H$14
$1F +N+F bQ++++ 1111Q +N H$1F
De0 Aex B"/ BCD O5/
$16 +N1+ bQ+++1 ++++Q 1+ H$16
$1P +N11 bQ+++1 +++1Q 11 H$1P
$18 +N1@ bQ+++1 ++1+Q 1@ H$18
$1Y +N1K bQ+++1 ++11Q 1K H$1Y
$@+ +N14 bQ+++1 +1++Q 14 H$@+
$@1 +N1F bQ+++1 +1+1Q 1F H$@1
$@@ +N16 bQ+++1 +11+Q 16 H$@@
$@K +N1P bQ+++1 +111Q 1P H$@K
$@4 +N18 bQ+++1 1+++Q 18 H$@4
$@F +N1Y bQ+++1 1++1Q 1Y H$@F
$@6 +N18 bQ+++1 1+1+Q 1N H$@6
$@P +N15 bQ+++1 1+11Q 1N H$@P
$@8 +N1C bQ+++1 11++Q 1N H$@8
$@Y +N13 bQ+++1 11+1Q 1N H$@Y
$K+ +N1= bQ+++1 111+Q 1N H$K+
$K1 +N1F bQ+++1 1111Q 1N H$K1
De0 Aex B"/ BCD O5/
$K@ +N@+ bQ++1+ ++++Q @+ H$K@
$KK +N@1 bQ++1+ +++1Q @1 H$KK
$K4 +N@@ bQ++1+ ++1+Q @@ H$K4
$KF +N@K bQ++1+ ++11Q @K H$KF
$K6 +N@4 bQ++1+ +1++Q @4 H$K6
$KP +N@F bQ++1+ +1+1Q @F H$KP
$K8 +N@6 bQ++1+ +11+Q @6 H$K8
$KY +N@P bQ++1+ +111Q @P H$KY
$4+ +N@8 bQ++1+ 1+++Q @8 H$4+
$41 +N@Y bQ++1+ 1++1Q @Y H$41
$4@ +N@8 bQ++1+ 1+1+Q @N H$4@
$4K +N@5 bQ++1+ 1+11Q @N H$4K
$44 +N@C bQ++1+ 11++Q @N H$44
$4F +N@3 bQ++1+ 11+1Q @N H$4F
$46 +N@= bQ++1+ 111+Q @N H$46
$4P +N@F bQ++1+ 1111Q @N H$4P
De0 Aex B"/ BCD O5/
$48 +NK+ bQ++11 ++++Q K+ H$48
$4Y +NK1 bQ++11 +++1Q K1 H$4Y
$F+ +NK@ bQ++11 ++1+Q K@ H$F+
$F1 +NKK bQ++11 ++11Q KK H$F1
$F@ +NK4 bQ++11 +1++Q K4 H$F@
$FK +NKF bQ++11 +1+1Q KF H$FK
$F4 +NK6 bQ++11 +11+Q K6 H$F4
$FF +NKP bQ++11 +111Q KP H$FF
$F6 +NK8 bQ++11 1+++Q K8 H$F6
$FP +NKY bQ++11 1++1Q KY H$FP
$F8 +NK8 bQ++11 1+1+Q KN H$F8
$FY +NK5 bQ++11 1+11Q KN H$FY
$6+ +NKC bQ++11 11++Q KN H$6+
$61 +NK3 bQ++11 11+1Q KN H$61
$6@ +NK= bQ++11 111+Q KN H$6@
$6K +NKF bQ++11 1111Q KN H$6K
@+@
De0 Aex B"/ BCD O5/
$64 +N4+ bQ+1++ ++++Q 4+ H$64
$6F +N41 bQ+1++ +++1Q 41 H$6F
$66 +N4@ bQ+1++ ++1+Q 4@ H$66
$6P +N4K bQ+1++ ++11Q 4K H$6P
$68 +N44 bQ+1++ +1++Q 44 H$68
$6Y +N4F bQ+1++ +1+1Q 4F H$6Y
$P+ +N46 bQ+1++ +11+Q 46 H$P+
$P1 +N4P bQ+1++ +111Q 4P H$P1
$P@ +N48 bQ+1++ 1+++Q 48 H$P@
$PK +N4Y bQ+1++ 1++1Q 4Y H$PK
$P4 +N48 bQ+1++ 1+1+Q 4N H$P4
$PF +N45 bQ+1++ 1+11Q 4N H$PF
$P6 +N4C bQ+1++ 11++Q 4N H$P6
$PP +N43 bQ+1++ 11+1Q 4N H$PP
$P8 +N4= bQ+1++ 111+Q 4N H$P8
$PY +N4F bQ+1++ 1111Q 4N H$PY
De0 Aex B"/ BCD O5/
$8+ +NF+ bQ+1+1 ++++Q F+ H$8+
$81 +NF1 bQ+1+1 +++1Q F1 H$81
$8@ +NF@ bQ+1+1 ++1+Q F@ H$8@
$8K +NFK bQ+1+1 ++11Q FK H$8K
$84 +NF4 bQ+1+1 +1++Q F4 H$84
$8F +NFF bQ+1+1 +1+1Q FF H$8F
$86 +NF6 bQ+1+1 +11+Q F6 H$86
$8P +NFP bQ+1+1 +111Q FP H$8P
$88 +NF8 bQ+1+1 1+++Q F8 H$88
$8Y +NFY bQ+1+1 1++1Q FY H$8Y
$Y+ +NF8 bQ+1+1 1+1+Q FN H$Y+
$Y1 +NF5 bQ+1+1 1+11Q FN H$Y1
$Y@ +NFC bQ+1+1 11++Q FN H$Y@
$YK +NF3 bQ+1+1 11+1Q FN H$YK
$Y4 +NF= bQ+1+1 111+Q FN H$Y4
$YF +NFF bQ+1+1 1111Q FN H$YF
De0 Aex B"/ BCD O5/
$Y6 +N6+ bQ+11+ ++++Q 6+ H$Y6
$YP +N61 bQ+11+ +++1Q 61 H$YP
$Y8 +N6@ bQ+11+ ++1+Q 6@ H$Y8
$YY +N6K bQ+11+ ++11Q 6K H$YY
$1++ +N64 bQ+11+ +1++Q 64 H$1++
$1+1 +N6F bQ+11+ +1+1Q 6F H$1+1
$1+@ +N66 bQ+11+ +11+Q 66 H$1+@
$1+K +N6P bQ+11+ +111Q 6P H$1+K
$1+4 +N68 bQ+11+ 1+++Q 68 H$1+4
$1+F +N6Y bQ+11+ 1++1Q 6Y H$1+F
$1+6 +N68 bQ+11+ 1+1+Q 6N H$1+6
$1+P +N65 bQ+11+ 1+11Q 6N H$1+P
$1+8 +N6C bQ+11+ 11++Q 6N H$1+8
$1+Y +N63 bQ+11+ 11+1Q 6N H$1+Y
$11+ +N6= bQ+11+ 111+Q 6N H$11+
$111 +N6F bQ+11+ 1111Q 6N H$111
De0 Aex B"/ BCD O5/
$11@ +NP+ bQ+111 ++++Q P+ H$11@
$11K +NP1 bQ+111 +++1Q P1 H$11K
$114 +NP@ bQ+111 ++1+Q P@ H$114
$11F +NPK bQ+111 ++11Q PK H$11F
$116 +NP4 bQ+111 +1++Q P4 H$116
$11P +NPF bQ+111 +1+1Q PF H$11P
$118 +NP6 bQ+111 +11+Q P6 H$118
$11Y +NPP bQ+111 +111Q PP H$11Y
$1@+ +NP8 bQ+111 1+++Q P8 H$1@+
$1@1 +NPY bQ+111 1++1Q PY H$1@1
$1@@ +NP8 bQ+111 1+1+Q PN H$1@@
$1@K +NP5 bQ+111 1+11Q PN H$1@K
$1@4 +NPC bQ+111 11++Q PN H$1@4
$1@F +NP3 bQ+111 11+1Q PN H$1@F
$1@6 +NP= bQ+111 111+Q PN H$1@6
$1@P +NPF bQ+111 1111Q PN H$1@P
@+K
De0 Aex B"/ BCD O5/
$1@8 +N8+ bQ1+++ ++++Q 8+ B$1
$1@Y +N81 bQ1+++ +++1Q 81 B$@
$1K+ +N8@ bQ1+++ ++1+Q 8@ B$K
$1K1 +N8K bQ1+++ ++11Q 8K B$4
$1K@ +N84 bQ1+++ +1++Q 84 B$F
$1KK +N8F bQ1+++ +1+1Q 8F B$6
$1K4 +N86 bQ1+++ +11+Q 86 B$P
$1KF +N8P bQ1+++ +111Q 8P B$8
$1K6 +N88 bQ1+++ 1+++Q 88 B$Y
$1KP +N8Y bQ1+++ 1++1Q 8Y B$1+
$1K8 +N88 bQ1+++ 1+1+Q 8N B$11
$1KY +N85 bQ1+++ 1+11Q 8N B$1@
$14+ +N8C bQ1+++ 11++Q 8N B$1K
$141 +N83 bQ1+++ 11+1Q 8N B$14
$14@ +N8= bQ1+++ 111+Q 8N B$1F
$14K +N8F bQ1+++ 1111Q 8N B$16
De0 Aex B"/ BCD O5/
$144 +NY+ bQ1++1 ++++Q Y+ B$1P
$14F +NY1 bQ1++1 +++1Q Y1 B$18
$146 +NY@ bQ1++1 ++1+Q Y@ B$1Y
$14P +NYK bQ1++1 ++11Q YK B$@+
$148 +NY4 bQ1++1 +1++Q Y4 B$@1
$14Y +NYF bQ1++1 +1+1Q YF B$@@
$1F+ +NY6 bQ1++1 +11+Q Y6 B$@K
$1F1 +NYP bQ1++1 +111Q YP B$@4
$1F@ +NY8 bQ1++1 1+++Q Y8 B$@F
$1FK +NYY bQ1++1 1++1Q YY B$@6
$1F4 +NY8 bQ1++1 1+1+Q YN B$@P
$1FF +NY5 bQ1++1 1+11Q YN B$@8
$1F6 +NYC bQ1++1 11++Q YN B$@Y
$1FP +NY3 bQ1++1 11+1Q YN B$K+
$1F8 +NY= bQ1++1 111+Q YN B$K1
$1FY +NYF bQ1++1 1111Q YN B$K@
De0 Aex B"/ BCD O5/
$16+ +N8+ bQ1+1+ ++++Q N+ B$KK
$161 +N81 bQ1+1+ +++1Q N1 B$K4
$16@ +N8@ bQ1+1+ ++1+Q N@ B$KF
$16K +N8K bQ1+1+ ++11Q NK B$K6
$164 +N84 bQ1+1+ +1++Q N4 B$KP
$16F +N8F bQ1+1+ +1+1Q NF B$K8
$166 +N86 bQ1+1+ +11+Q N6 B$KY
$16P +N8P bQ1+1+ +111Q NP B$4+
$168 +N88 bQ1+1+ 1+++Q N8 B$41
$16Y +N8Y bQ1+1+ 1++1Q NY B$4@
$1P+ +N88 bQ1+1+ 1+1+Q NN B$4K
$1P1 +N85 bQ1+1+ 1+11Q NN B$44
$1P@ +N8C bQ1+1+ 11++Q NN B$4F
$1PK +N83 bQ1+1+ 11+1Q NN B$46
$1P4 +N8= bQ1+1+ 111+Q NN B$4P
$1PF +N@F bQ1+1+ 1111Q NN B$48
De0 Aex B"/ BCD O5/
$1P6 +N5+ bQ1+11 ++++Q N+ B$4Y
$1PP +N51 bQ1+11 +++1Q N1 B$F+
$1P8 +N5@ bQ1+11 ++1+Q N@ B$F1
$1PY +N5K bQ1+11 ++11Q NK B$F@
$18+ +N54 bQ1+11 +1++Q N4 B$FK
$181 +N5F bQ1+11 +1+1Q NF B$F4
$18@ +N56 bQ1+11 +11+Q N6 B$FF
$18K +N5P bQ1+11 +111Q NP B$F6
$184 +N58 bQ1+11 1+++Q N8 B$FP
$18F +N5Y bQ1+11 1++1Q NY B$F8
$186 +N58 bQ1+11 1+1+Q NN B$FY
$18P +N55 bQ1+11 1+11Q NN B$6+
$188 +N5C bQ1+11 11++Q NN B$61
$18Y +N53 bQ1+11 11+1Q NN B$6@
$1Y+ +N5= bQ1+11 111+Q NN B$6K
$1Y1 +N5F bQ1+11 1111Q NN B$64
@+4
De0 Aex B"/ BCD O5/
$1Y@ +NC+ bQ11++ ++++Q N+ B$6F
$1YK +NC1 bQ11++ +++1Q N1 B$66
$1Y4 +NC@ bQ11++ ++1+Q N@ B$6P
$1YF +NCK bQ11++ ++11Q NK B$68
$1Y6 +NC4 bQ11++ +1++Q N4 B$6Y
$1YP +NCF bQ11++ +1+1Q NF B$P+
$1Y8 +NC6 bQ11++ +11+Q N6 B$P1
$1YY +NCP bQ11++ +111Q NP B$P@
$@++ +NC8 bQ11++ 1+1+Q N8 B$PK
$@+1 +NCY bQ11++ 1++1Q NY B$P4
$@+@ +NC8 bQ11++ 1+1+Q NN B$PF
$@+K +NC5 bQ11++ 1+11Q NN B$P6
$@+4 +NCC bQ11++ 11++Q NN B$PP
$@+F +NC3 bQ11++ 11+1Q NN B$P8
$@+6 +NC= bQ11++ 111+Q NN B$PY
$@+P +NCF bQ11++ 1111Q NN B$8+
De0 Aex B"/ BCD O5/
$@+8 +N3+ bQ11+1 ++++Q N+ B$81
$@+Y +N31 bQ11+1 +++1Q N1 B$8@
$@1+ +N3@ bQ11+1 ++1+Q N@ B$8K
$@11 +N3K bQ11+1 ++11Q NK B$84
$@1@ +N34 bQ11+1 +1++Q N4 B$8F
$@1K +N3F bQ11+1 +1+1Q NF B$86
$@14 +N36 bQ11+1 +11+Q N6 B$8P
$@1F +N3P bQ11+1 +111Q NP B$88
$@16 +N38 bQ11+1 1+++Q N8 B$8Y
$@1P +N3Y bQ11+1 1++1Q NY B$Y+
$@18 +N38 bQ11+1 1+1+Q NN B$Y1
$@1Y +N35 bQ11+1 1+11Q NN B$Y@
$@@+ +N3C bQ11+1 11++Q NN B$YK
$@@1 +N33 bQ11+1 11+1Q NN B$Y4
$@@@ +N3= bQ11+1 111+Q NN B$YF
$@@K +N3F bQ11+1 1111Q NN B$Y6
De0 Aex B"/ BCD O5/
$@@4 +N=+ bQ111+ ++++Q N+ B$YP
$@@F +N=1 bQ111+ +++1Q N1 B$Y8
$@@6 +N=@ bQ111+ ++1+Q N@ B$YY
$@@P +N=K bQ111+ ++11Q NK B$1++
$@@8 +N=4 bQ111+ +1++Q N4 B$1+1
$@@Y +N=F bQ111+ +1+1Q NF B$1+@
$@K+ +N=6 bQ111+ +11+Q N6 B$1+K
$@K1 +N=P bQ111+ +111Q NP B$1+4
$@K@ +N=8 bQ111+ 1+++Q N8 B$1+F
$@KK +N=Y bQ111+ 1++1Q NY B$1+6
$@K4 +N=8 bQ111+ 1+1+Q NN B$1+P
$@KF +N=5 bQ111+ 1+11Q NN B$1+8
$@K6 +N=C bQ111+ 11++Q NN B$1+Y
$@KP +N=3 bQ111+ 11+1Q NN B$11+
$@K8 +N== bQ111+ 111+Q NN B$111
$@KY +N=F bQ111+ 1111Q NN B$11@
De0 Aex B"/ BCD O5/
$@4+ +NF+ bQ1111 ++++Q N+ B$11K
$@41 +NF1 bQ1111 +++1Q N1 B$114
$@4@ +NF@ bQ1111 ++1+Q N@ B$11F
$@4K +NFK bQ1111 ++11Q NK B$116
$@44 +NF4 bQ1111 +1++Q N4 B$11P
$@4F +NFF bQ1111 +1+1Q NF B$118
$@46 +NF6 bQ1111 +11+Q N6 B$11Y
$@4P +NFP bQ1111 +111Q NP B$1@+
$@48 +NF8 bQ1111 1+++Q N8 B$1@1
$@4Y +NFY bQ1111 1++1Q NY B$1@@
$@F+ +NF8 bQ1111 1+1+Q NN B$1@K
$@F1 +NF5 bQ1111 1+11Q NN B$1@4
$@F@ +NFC bQ1111 11++Q NN B$1@F
$@FK +NF3 bQ1111 1111Q NN B$1@6
$@F4 +NF= bQ1111 111+Q NN B$1@P
$@FF +NFF bQ1111 1111Q NN B$1@8
@+F
'/tru!0"1a Op" C"!. <*# F,a-*6" &ap.
Pr!pi" po&ataka
M<>F 9#& Pr!pii 9 u & 1
001000 d,,,,,,,
Z 1 @
M<>UF 9 Pr!pii U u 9 1
000000 1,,,,,,,
M<>:U k -pii kon"tantu u U 1
1100xx @@@@@@@@
C:CF 9 -pii + u 9 1
000001 1,,,,,,,
Z @
C:CU -pii + u U 1
000001 0xxxxxxx
Z
SU8PF 9#& Pr!pii unakr"no niblov! iz 9 u & 1
001110 d,,,,,,,
1 @
8rit!ti2ko lo*i2k! op!racij!
833UF 9#& Sab!ri U i 9 1
000111 d,,,,,,,
C 3C Z 1 @
833:U k Sab!ri U "a kon"tanto 1
11111x @@@@@@@@
C 3C Z
S-5UF 9#& <&uzi U o& 9 1
000010 d,,,,,,,
C 3C Z 1 @
S-5:U k <&uzi U o& kon"tant! 1
11110x @@@@@@@@
C 3C Z
I'CF 9#& -v!0aj 9 1
001010 d,,,,,,,
Z 1 @
3=CF 9#& Sanji 9 1
001011 d,,,,,,,
Z 1 @
I<CUF 9#& :o*i2ko I:I U "a 9 1
000100 d,,,,,,,
Z 1 @
I<C:U k :o*i2ko I:I U "a kon"tanto 1
111000 @@@@@@@@
Z
8'3UF 9#& :o*i2ko I U "a 9 1
000101 d,,,,,,,
Z 1 @
8'3:U k :o*i2ko I U "a kon"tanto 1
11111x @@@@@@@@
Z
`<CUF 9#& :o*i2ko ISG:7-.->< I:I U "a 9 1
000110 d,,,,,,,
Z 1 @
`<C:U k :o*i2ko ISG:7-.->< I:I U "a kon$ 1
111010 @@@@@@@@
Z
C<MF 9#& Inv!rtuj 9 1
001001 d,,,,,,,
Z 1 @
<p!racij! "a bitovia
5CF 9#b C!"!tuj bit b u 9 1
0100bb b,,,,,,,
1 @
5SF 9#b S!tuj bit b u 9 1
0101bb b,,,,,,,
1 @
C:F 9#& Cotiraj nal!vo kroz C8CCg 1
001101 d,,,,,,,
C 1 @
CCF 9#& Cotiraj na&!"no kroz C8CCg 1
001100 d,,,,,,,
C 1 @
-pravljanj! toko pro*raa
5TFSC 9#b T!"t bita b u 9# pr!"ko2i ako j! bit V + 1 (@)
0110bb b,,,,,,,
K
5TFSS 9#b T!"t bita b u 9# pr!"ko2i ako j! bit V 1 1 (@)
0111bb b,,,,,,,
K
I'CFSZ 9#& -v!0aj 9# pr!"ko2i ako j! V + 1 (@)
001111 d,,,,,,,
1 @ K
3=CFSZ 9#& Sanji 9# pr!"ko2i ako j! V + 1 (@)
001011 d,,,,,,,
1 @ K
?<T< k I&i na a&r!"u @
101@@@ @@@@@@@@
C8:: k Pozovi potpro*ra @
100@@@ @@@@@@@@
C=T-C' >rati "! iz potpro*raa @
000000 00001000
C=T:U k >rati "! "a kon"tanto u U @
1101xx @@@@@@@@
C=TFI= >rati "! iz int!rapta @
000000 00001001
<"talo
'<P 5!z op!racij! 1
000000 0xx00000
C:CU3T Inicijalizuj Ratc;&o* taj!r 1
000000 01100100
T< P3
S:==P Pr!lazak u "l!!p o& 1
000000 01100011
T< P3
@+6
:!*!n&a/
, T a&r!"a r!*i"tra
% T U r!*i"tar
b T a&r!"a bita unutar o"obitno* r!*i"tra
@ T kon"tantna (n!pro!nljiva) vr!&no"t ili lab!la
x T n!bitan bit (nj!*ova vr!&no"t "! i*nori!$ 8"!bl!r *a autoat"ki r!"!tuj!)
d T o&r!&it!/ &V+ r!zultat u U# &V1 r!zultat u 9
# T CarrW 9la* ST8T-S r!*i"tra
(# T 3i*it CarrW 9la* ST8T-S r!*i"tra
? T Z!ro 9la* ST8T-S r!*i"tra
T" T Ti! out bit ST8T-S r!*i"tra
P( T PoR!r &oRn bit ST8T-S r!*i"tra
'apo!n!/
1 O -koliko j! izlazni pin o2itan pa o&i9ikovan o& "tran! j!&n! in"trukcij! (npr$
ov9 P<CT5#9)# vr!&no"t koja j! uz!ta za po2!tnu bi0! vr!&no"t koja j! o2itana "a
"ai; pinova$ <vo o! izazvati probl!! zbo* CMU ciklu"a$
@ O -koliko "! ova in"trukcija izvrava na& TMC+ r!*i"tro (i ukoliko j! o&r!&it! &
V 1 ako "! kori"ti)# "tanj! pr!"kal!ra 0! biti obri"ano ukoliko j! pri&ru!no taj!ru$
K O -koliko j! t!"t i"pravan# in"trukcija 0! "! izvriti za @ in"trukcij"ka ciklu"a$
Za &!taljnija objanj!nja po*l!&ajt! 3SKK+@K8 "a RRR$icroc;ip$co$
@+P
A#rea &a5"6 Op" B"t 7 B"t 6 B"t 5 B"t 4 B"t 3 B"t 2 B"t 1 B"t 0 Reet Ba/!
+N++ I'3F Sa&raj !lj!no* C8M r!*i"tra u in&ir!ktno a&r!"iranju DDDD DDDD ob!
+N+1 TMC+ Taj!r +$ Pov!0ava "! o& $+ &o $@FF xxxx xxxx +
+N+@ PC: 'ii; 8 bitova pro*ra"ko* broja2a PC:8T, H PC: V PC PC PC PC PC PC PC PC PC 0000 0000 ob!
+N+K ST8T-S C!*i"tar "tanja ikrokontrol!ra B B CP+ T< P3 Z 3C C 0001 1xxx ob!
+N+4 FSC Point!r in&ir!ktno* a&r!"iranja xxxx xxxx ob!
+N+F P<CT8 -lazno izlazni port 8 B B B C84MT+CGI C8K C8@ C81 C8+ DDDx xxxx +
+N+6 P<CT5 -lazno izlazni port 5 C5P C56 C5F C54 C5K C5@ C51 C5+ xxxx xxxx +
+N+P M B B B B B B B B 0000 0000 M
+N+8 ==38T8 Sa&raj !lj!n! ==PC<M !orij! xxxx xxxx +
+N+Y ==83C 8&r!"a unutar ==PC<M !orij! xxxx xxxx +
+N+8 PC:8T, >ii; F bitova pro*ra"ko* broja2a PC:8T, H PC: V PC B B B PC PC PC PC PC DDD0 0000 ob!
+N+5 I'TC<' Int!rapt kontrol!r ?I= ==I= T+I= I'T= C5I= T+IF I'TF C5IF 0000 000x ob!
+N8+ I'3F Sa&raj !lj!no* C8M r!*i"tra u in&ir!ktno a&r!"iranju DDDD DDDD ob!
+N81 <PTI<' Gon9i*uri"anj! ;ar&v!r"ko* "tanja ikrokontrol!ra C5P- I'T=3? T+CS T+S= PS8 PS@ PS1 PS+ 1111 1111 1
+N8@ PC: 'ii; 8 bitova pro*ra"ko* broja2a PC:8T, H PC: V PC PC PC PC PC PC PC PC PC 0000 0000 ob!
+N8K ST8T-S C!*i"tar "tanja ikrokontrol!ra B B CP+ T< P3 Z 3C C 0001 1xxx ob!
+N84 FSC Point!r in&ir!ktno* a&r!"iranja xxxx xxxx ob!
+N8F TCIS8 C!*i"tar "!ra po&ataka za P<CT8 B B B DDD1 1111 1
+N86 TCIS5 C!*i"tar "!ra po&ataka za P<CT5 1111 1111 1
+N8P M B B B B B B B B 0000 0000 M
+N88 ==C<'1 ==PC<M kontrol!r B B B ==IF UC=CC UC=' UC C3 DDD0 x000 1
+N8Y ==C<'@ <tklju2avanj! upi"a u ==PC<M DDDD DDDD 1
+N88 PC:8T, >ii; F bitova pro*ra"ko* broja2a PC:8T, H PC: V PC B B B PC PC PC PC PC DDD0 0000 ob!
+N85 I'TC<' Int!rapt kontrol!r ?I= ==I= T+I= I'T= C5I= T+IF I'TF C5IF 0000 000x ob!
166
Molio bi; pro&avc! PIC ikrokontrol!ra &a i "! jav! ra&i objavljivanja nji;ovi;
kontakt po&ataka (a&r!"a# t!l# ob# ail# "ajt# ban!r$$$) u ovo uput"tvu po nj!*ovo
zavr!tku$ Zbo* zatit! o& "paa# !Bail 0! biti prikazan u obliku "lik!$
- uput"tvu ia izv!"ni; n!&or!2!no"ti u po*l!&u 9unkcija poj!&ini; r!*i"tara# pinova#
tajin*a i "li2ni; "tvari$ Gako j! ovo prv!n"tv!no po2!tni2ko uput"tvo# n! "atra &a
j! bitno opt!r!0ivati 2itaoca znanj! koj! u v!rovatno nika&a n!0! ni kori"titi$ Za
pro9!"ionalan ra& "a PIC ikrokontrol!ria# nau2it! !n*l!"ki i 2itajt! Microc;ipova
t!;ni2ka uput"tva (3ata";!!t)$ '! krivit! ! zbo* upotr!b! "trani; r!2i$ 6ta i"lit!#
kako bi kar&iova"kularni ;irur* o*ao obja"niti "voju pro9!"iju laiku b!z upotr!b!
latin"ki; izraza?
Pri!tili "t! *r!ku? '!po"toj!0i link? Prvo prov!rit! &a li j! to i"pravlj!no u
najnovij! uput"tvu (na "ajtu kao i u uput"tvu uv!k objavljuj! i &atu izla"ka nov!
v!rzij!)# i ukoliko nij! kontaktirajt! ! pr!ko knji*! uti"aka ili ailo objavlj!ni na
"ajtu$
E!lit! li &a >a" obav!tava o objavljivanju nov! v!rzij! uput"tva na "ajtu? Mo!$
Poaljit! i "voj !Bail ! '1'0o& d De$#"e d b3de"e obve;"v'#$ Tako%! *a
poaljit! i za !v!ntualnu ka"niju o&javu$ Mo!t! "! prijaviti i pr!ko knji*! uti"aka na
"ajtu$ 5!z bri*!$ =Bail a&r!"a n!0! >a biti objavlj!na$
-put"tvo "! o! "lobo&no kopirati i &i"tribuirati po& u"lovo &a "! u nj!*a n! uno"!
iz!n!$ 3!lii2no kopiranj! uput"tva j! &ozvolj!no uz navo%!nj! linka &o o* "ajta#
ali nij! pr!poru2ljivo zbo* novi; v!rzija uput"tva i !v!ntualni; *r!aka$ M!%uti#
%rod( ovog 3%3"!"v (e 1br'(e'$ -koliko "t! ovo uput"tvo kupili bilo *&! i u
bilo ko obliku (na C3Bu na buvljaku# na 9lopiju o& kol!*! "a po"la O pirata# o&
lokalno* T> "!rvi"!ra u tapano iz&anju)# oli >a" &a ! o to! obav!"tit!$
8utor n! "no"i ni najanju o&*ovorno"t za kori0!nj! in9oracija "a ovo* uput"tva#
&ati; linkova ili pro*raa$ 8ko "prit! PIC# *oilu !l!ktron"ki; kopon!nti ili
najnoviji Macinto"; laptop# kupit! novi# ali o "vo troku$
- izra&i ovo* uput"tva kori0!na j! "l!&!0a lit!ratura/
'ajv!0i &!o "a ;ttp/MMRRR$"trac!W$btint!rn!t$co$ukMin&!N$;t
3ata";!!tovi "a ;ttp/MMRRR$icroc;ip$coM
T!k"tovi >oj! 8ntoni0a ;ttp/MMRRR$paralaNa$co$r"M objavlj!ni u 2a"opi"u PC Pr!""
;ttp/MMRRR$pcpr!""$co$r"M nov!bra 1YYP za IM< ;ar&v!r
S!rij"ka i rutina za kanj!nj! "a ;ttp/MMRRR$noa&$!!MPICMpicpro*$;tl
Slik! 3M8 konv!rzij! "a ;ttp/MMRRR$avrBa"Btutorial$n!tMavrL!nM8>CL38C$;tl
@ :=3 na 1 pinu "a &oRnloa& "!kcij! "ajta ;ttp/MMRRR$!l!ktronika$baM
.a"opi" =l!ktor PB8 @++1 ;ttp/MMRRR$!l!ktorB!l!ctronic"$co$uk za ultipl!k"
'!ka objanj!nja "a ;ttp/MMRRR$*!ociti!"$coM"in!lWuMpicMpicLkontrol!ri$;t
Pri!r iz&rljivo"ti PICBa "a ailin* li"t! ikro!l!ktronikamWa;oo*roup"$co
-put"tvo po"tavlj!no @1$8$@++8$ na "ajtu
;ttp/MMRRR$ptt$r"Mkori"niciMtMrMtri9unovM
@+Y

You might also like