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 ko pjut!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 i a i j!&nu pr!&no"t/ i a *a na "vako 0oku1 'j!*ova v!li2ina za po2!tnik! o! pr!&"tavljati "a o po*o&no"t$ Po2!tniku j! &al!ko lak! l! lj!nj! o"a na!"topin"ko* 3IP n!*o !z&!"!t2!tvoropin"ko* T4FP ku0ita# naravno na j!&no"lojnoj ta panoj plo2ici$ 5rzina ikrokontrol!ra pri u2!nju n! i*ra nikakvu ulo*u$ 6tavi!# na vi! pro*ra i a &ati u uput"tvu na !rno "! oralo izazivati kanj!nj!$ !"ta u

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*ra atora (po*otovu o*u0no"t "a o*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! po o0i u to putu$ 8 po"l!? :ako 0! "! "a "t!2!ni znanj! nau2iti i no*o ko plikovaniji 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 koli a# napon"ki nivoi lo*i2k! + i 1# vi"okoi p!&an"no "tanj!# 6 itov oki&a2) <"novno poznavanj! binarni; "i"t! a (bit# bajt# binarno# &!ci alno# ;!k"a&!ci alno# 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!kcija a$ Za &o"ta "p!ci9i2no"ti &ati "u pri !ri pro*ra a u koji a "! upotr!bljavaju$ Tru&io "a "! &a *ra&ivo to int!r!"antnij! izloi $ 'a&a "! &a "a u"p!o$ @

2. Dob r !"#$ %rogr &#r '(


Pr! n!*o to u%!t! u 9in!"! pro*ra iranja# pro*ra iranja$

i"li

&a bi tr!balo obja"niti "tilov!

-koliko "tavit! A (ta2kuBzar!z) bilo *&! u >a! pro*ra u# ko pajl!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*ra a 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# "a o 0!t! "! 2!kati po *lavi$ Zbo* to*a# ko !ntariit! to vi!$ '! a o*rani2!nja$ Mo!t! pri&ruiti i !na kon"tanta a i r!*i"tri a (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 "lovi a$ <no "! tako i"ti2!$ 'apravit! za*lavlj! pro*ra a 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 pinovi a$ :=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 raz aka 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 po o0i u pi"anju pro*ra a# korak po korak# kao i u nj!*ovoj ka"nijoj analizi$

8 "a&a pr!lazi o 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; za i"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 koji a j! " !t! a C8M ! orija (u obliku o" obitni; r!*i"tara) unutar ikrokontrol!ra# to 0! >a po o0i pri razu !vanju nji;ovo* a&r!"iranja$ 8&r!"a 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C . . . . . 0x4F 0x50 . . . 0x7F M B '!i pl! !ntovana B 'ij! 9izi2ki r!*i"tar M M 68 C!*i"tra opt! na !n! ("tati2ka C8M ! orija) Mapirani u 58'G+ 58'G+ I'3F(1) TMC+ PC: ST8T-S FSC P<CT8 P<CT5 M ==38T8 ==83C PC:8T, I'TC<' 58'G1 I'3F(1) <PTI<'LC=? PC: ST8T-S FSC TCIS8 TCIS5 M ==C<'1 ==C<'@
(1)

8&r!"a 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C . . . . . 0xCF 0xD0 . . . 0xFF

PC:8T, I'TC<'

! orij"ka lokacija (2ita "! kao +)

(1)

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 "a o 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 banka a (+N++ O +N+5)$ 'ji a "! &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"tri a 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 ra p! za prolaznik! po "up!r ark!ti a ili autobu"ki "tanica a$ <n! proputaju prolaznik! "a o u j!&no " !ru$ -nutar ikrokontrol!ra TCIS (TCIS8 i TCIS5) r!*i"tri izvravaju ovu 9unkciju$ <ni "! nalaz! na a&r!"a a +N8F i +N86# r!"p!ktivno$ 3a bi"t! pro*ra irali !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# &!ci alni ili ;!k"a&!ci alni) 9or at broj!va# !%uti binarni "! "likovitij! pr!&"tavlja "tanj! !lj!no* pina$ -koliko ni"t! vi2ni pr!tvaranju binarni; u &!ci aln! ili ;!k"a&!ci aln! broj!v! i obratno# kori"tit! bilo koji napr!&niji kalkulator$ Svi C8 (C8+ &o C84) i C5 (C5+ &o C5P) pinovi ikrokontrol!ra i aju &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 naj anj! 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 6 0 I RB5 5 1 U RB4 4 0 I RB3 3 1 U RB2 2 1 U RB1 1 1 U RB0 0(LSB) 1 U

bit broj (MSB)7 "tanj! -laz M Izlaz 0 I

Gako "! TCIS5 nalazi u banci 1 (58'G1) potr!bno j! pr!baciti "! ta o$ 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&!ci alno 9or atu$ 5inarni 9or at "! pi! kao b'00000011'# a &!ci alni 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 nji a 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$ For at 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! auto at"ki obri"ali pr!t;o&nu) ili zapa 0!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 "a o* ikrokontrol!ra$ opi"i a 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 ko pajlirati kT& B to 0!t! ura&iti ka&a &o%!t! &o prvo* c!lovito* pro*ra a$ 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 "ni a 2i"t $tNt 9ajl b!z ikakvi; 9or atiranja$ '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 "t! &a ura&it! "a ;!k"a&!ci alni broj! i ta&a bi in"trukcija iz*l!&ala ovako/ movlw 0x2F

o*li

<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*nali a na -MI pinovi a$ 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"tri a 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 $ Cazu ljivij! j! 2itati pro*ra "a nor alni a&r!"a a$ 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 bsf movlw movwf bcf bloku iz*l!&a ovako/ A I&i u 58'G1 A Stavi bQ++1+1111Q u U A Pr!baci bQ++1+1111Q u TCIS5 A >rati "! u 58'G+ u

0x03,5 b'00101111' 0x86 0x03,5

'akon to "ni it! 9ajl# pro !nit! u tNt !k"t!nziju u a" $ Za ovo 0! va Uin&oR"u tr!bati Total Co an&!r# a u :inuNu npr$ ?no ! Co an&!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 "a o 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 o o*u0it! tr!ptanj! j!&n! :=3 (!n*$ -i*;t E ittin* Dio&!)# i u nj! u 0!t! vi&!ti j!&an potpuni pro*ra $ '! ojt! jo uv!k i"probavati# ko pajlirati ni pro*ra irati >a PIC li"tinzi a koji "l!&!# j!r "u oni &ati "a o kao ilu"tracija$ 'ajpr! tr!ba po&!"iti &ru*i bit P<CT8 r!*i"tra tako &a bu&! izlazni/ bsf movlw movwf bcf 0x03,5 A I&i u banku 1 b'00000000' A Stavi +++++ u U 0x85 A Pr!baci +++++ u TCIS8 O "vi pinovi "u izlazni 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 movwf b'00000100' A -pii $4 u U r!*i"tar$

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 "a o na pinu C8@$

A Poto j! :=3 uklju2!na# tr!ba j! i"klju2iti$ movlw movwf b'00000000' A -pii $+ u U r!*i"tar$

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! i pl! !ntirati vra0aju0i izvr!nj! pro*ra a na po2!tak$ Po"tavit! Jlab!luS (oznaku) na po2!tak pro*ra a# i zati r!cit! pro*ra u &a na"tavi "voj! izvravanj! "a tako ozna2!n! pozicij!$ :ab!la "! po"tavlja v!o a j!&no"tavno/ upiit! i !# r!ci o Poc# i zati "l!&!0i kT&/ Poc movlw movwf b'00000100' A -pii $4 u U r!*i"tar$ pr!piit!

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 "a o na pinu C8@$

A Poto j! :=3 uklju2!na# tr!ba j! i"klju2iti$ movlw movwf goto b'00000000' A -pii $+ u U r!*i"tar$

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) Poc A 'a"tavi &alj! izvravanj! pro*ra a 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 "a o kraju pro*ra a j! J*oto PocS in"trukcijo na"tavlj!no &alj! izvravanj! pro*ra a 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 bsf movlw movwf bcf movlw movwf movlw movwf goto i"ti pro*ra / 0x03,5 b'00000000' 0x85 0x03,5 b'00000100' 0x05 b'00000000' 0x05 Poc

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*ra u# ali v!0 i toko prvobitno* pi"anja pro*ra a# ka&a tr!ba zapa titi "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!vi a &ati i !na$ <vo o! &a "! ura&i nar!&bo J!XuS# koja j!&no"tavno zna2i Jj!&nako n!2! u &ru*o S (!n*$ E23al O j!&nak)$ >ano j! &a pri !tit! &a ovo nij! in"trukcija za PIC v!0 tzv$ &ir!ktiva koja i a 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*ra u b!z J!XuS &ir!ktiv!$ <vo &ir!ktivo "a o za !njuj!t! !lj!ni broj i !no $ Po"tupit! ovako/ izbacit! "v! ko !ntar! ali i !nujt! r!*i"tr! u >a! zati oc!nit! 2itljivo"t takvo* pro*ra a$ STATUS TRISA e ! e ! pro*ra u# a

0x03 A <vo pri&ruuj! naziv ST8T-S broju +N+K# koji A pr!&"tavlja a&r!"u ST8T-S r!*i"tra 0x85 A <vo pri&ruuj! naziv TCIS8 broju +N8F# koji A pr!&"tavlja a&r!"u TCIS8 r!*i"tra

P"RTA RP0

e ! e !

0x05 A <vo pri&ruuj! naziv P<CT8 broju +N+F# koji A pr!&"tavlja a&r!"u P<CT8 r!*i"tra 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*ra a$ 'akon i !novanja r!*i"tara# un!"it! nji;ova i !na i u aktivni &!o pro*ra a$ -koliko "a&a pr!pi!t! pro*ra b!z ko !ntara# ali "a i !novani r!*i"tri a# o0i 0!t! &a upor!&it! pr!*l!&no"t i 2itljivo"t takvo* li"tin*a "a pr!t;o&ni / STATUS TRISA P"RTA RP0 e e e e ! ! ! ! 0x03 0x85 0x05 0x05 STATUS,RP0 b'00000000' TRISA STATUS,RP0 b'00000100' P"RTA b'00000000' P"RTA Poc

Poc

bsf movlw movwf bcf movlw movwf movlw movwf goto

Si*urno "t! pri !tili &a i !novani r!*i"tri 2in! pra0!nj! pro*ra a 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! raz iljat! &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 i aju 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. Pr 1'e %e"$(e
- pr!t;o&no pro*ra u 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 "a o F in"trukcija# :=3 0! "! uklju2iti i i"klju2iti u "a o 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 ! "! i pl! !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*ra a$ '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!vi a# 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 ko pajliranju pro*ra a$ <vo "! &!ava j!r ! orij"ka a&r!"a +NFF nij! i pl! !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 i ati 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 movwf 0x85 0x0# A 'ajpr! "tavit! broj +N8F u U r!*i"tar# 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*ra a$ >!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 !ri a 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*ra i a obav!zno to na*la"it! o&*ovaraju0i ko !ntari a$ 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 po o0 in"trukcij! *oto i lab!l!$ Ta in"trukcija i a "l!&!0i oblik/ decfsz BR"$A#,1

In"trukcija 3=CFSZ 9#& (!n*$ De5r! !nt /# Skip i9 1!ro) zna2i JS anji 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! pa titi i !na u !"to broj!va# o*u0! j! i bitu o&r!&ita &ati i !# na "l!&!0i na2in/ % F e ! .0 e ! .1

Mno*o r!2i# za j!&nu in"trukciju$ Po*l!&ajt! nj!nu pri !nu u prak"i$ BR"$A# Pe& e ! 0x0# 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 i a o in"trukciju *oto# koja vra0a izvr!nj! pro*ra a 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 urka a)# pr! n!*o to na"tavi &alj!$ To "! naziva Jprazna p!tljaS$ Gako bi "! j!&no p!tljo po"ti*lo ak"i alno 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*ra u potr!bno j! &!9ini"ati po2!tak (a&r!"u unutar PIC16F84 "a koj! po2inj! "ni anj! kT&a) i kraj (po"l! ko*a n! a vi! in"trukcija)$ Po2!tak pro*ra a "! &!9ini! "l!&!0o &ir!ktivo "R' 0x00 Sa&a ubacit! ov! p!tlj! u pro*ra # i &ovrit! *a prav!0i pravi pro*ra ko !ntari a/ "a

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 movlw b'00000000' movwf TRISA movwf TRISB bcf STATUS,RP0 A DDDDDD -klju2i :=3 DDDDDD Poc movlw movwf b'00000100' A -klju2uj! :=3 "tavljaju0i vr!&no"t P"RTA A bQ+++++1++Q u U# a zati i u P<CT8

A Pr!bacuj! pro*ra u banku 1 A Po"tavlja "v! pinov! A kao izlazn! A A >ra0a pro*ra u banku +

A DDDDDD Prva p!tlja aktivna pri uklju2!noj :=3 oko +#@S DDDDDD Pe&1 decfsz goto decfsz goto BR"$A#1,F Pe&1 BR"$A#2,F Pe&1 A S anji 5C<78C1 za 1 A -koliko j! 5C<78C1 j!&nak +# na"tavi &alj! A S anji 5C<78C@ za 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 movwf b'00000000' A I"klju2i :=3 "tavljaju0i + u U r!*i"tar# 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 goto decfsz goto BR"$A#1,F Pe&2 BR"$A#2,F Pe&2 A 3ru*a p!tlja &ri :=3 i"klju2!no A &ovoljno &u*o &a bi "! to o*lo pri !titi A A

A DDDDDD Sa&a "! pro*ra vra0a na po2!tak DDDDDD goto Poc A >ra0anj! na po2!tak pro*ra a A DDDDDD Graj pro*ra a DDDDDD e+d A 3ir!ktiva za ozna2avanj! kraja pro*ra a$ 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*ra a$ 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 i a int!rno o*rani2!nj! izlazn! "truj! na aN$ @F 8$ 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 @F 8# a i po!ljno zbo* anj!* *r!janja i potronj! ikrokontrol!ra$ .!"tita o$ -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& ko pajlirat! i "ni it! u PIC$

14

6. +P-A, A!e&b$er
- ovo po*lavlju upozna0!t! "! "a MP:85 razvojni 9unkcija a nj!*ovo* !&itora$ okru!nj! # i "p!cijalni

Sa "ajta ;ttp/MMRRR$ icroc;ip$co M tr!bat! "kinuti pro*ra "ki pak!t MP:85$ <n i a int!*ri"an !&itor (u !"to Uin&oR" 'ot!pa&a)# a"! bl!r# "i ulator i &rajv!r! za "voj! pro*ra ator!$ '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 i a o*u0no"t u2itavanja 9ajla koji "a&ri "va ova i !na$ 7o bolj!# u "!bi i a i pr!&!9ini"an! obra"c! (!n*$ "tan&ar& co&! t! plat!) za upi" a"! bl!r"ko* pro*ra a "a za*lavlj! # uobi2aj!ni &ir!ktiva a# po"!bni &!lo za int!rapt! (vi! o nji a ka"nij!)$$$ MP:85 i a 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*ra iJ$ - 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& 7-+c2!de 5616F84 8516F84.-+c9 A 3!9ini! upotr!blj!ni ikrokontrol!r

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 nji a ka"nij!$ A 3!9ini! "tart pro*ra a

"R'

0x00

A Pro"tor za va! pro*ra !$ e+d A Graj pro*ra a I?0*2.031S$

i "ni it! *a u 9ol&!r I#./4o>- 5)o*)01-J "a nazivo

-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!# o!t! pro !niti# tako &a o&*ovara >ai "p!ci9i2ni potr!ba a$ !%uti uv!k *a

-koliko zavirit! u "trukturu 516F84.-+c 9ajla (FK iz Total Co an&!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!ba a$ - to "lu2aju uv!k *a 2uvajt! zaj!&no "a $a" pro*ra o $ 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""!b l!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 ko plikovano# 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&!avanji a ko pl!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*ra o o o*u0!no j! tr!ptanj! :=3 A A Potr!bni 9ajlovi / p16F84$inc ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD A DDDDDD Inicijalizacija a"! bl!ra DDDDDD 2-3& 7-+c2!de ::#";FI' 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra :#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 BR"$A#2 e ! e ! 0x0# A Prvi broja2 za praznu p!tlju$ Inicijalno +NFF 0x0( A 3ru*i broja2 za praznu p!tlju$ Inicijalno +NFF

A DDDDDD Po&!avanj! porta DDDDDD o)* bsf movlw movwf movwf bcf 0x00 STATUS,RP0 b'00000000' TRISA TRISB STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1 A Po"tavlja "v! pinov! A kao izlazn! A >ra0a pro*ra u 58'G+

A DDDDDD -klju2i :=3 DDDDDD Poc movlw movwf b'00000100' P"RTA A -klju2i :=3 "tavljaju0i bQ++1++Q 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 goto decfsz goto BR"$A#1,F Pe&1 BR"$A#2,F Pe&1 A S anji 5C<78C1 A -koliko j! 5C<78C1 j!&nak +# na"tavi &alj! A S anji 5C<78C@ 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 movwf b'00000000' P"RTA A I"klju2i :=3 "tavljaju0i + u U r!*i"tar# A a zati u P<CT8

A DDDDDD 3ru*a p!tlja aktivna pri i"klju2!noj :=3 oko +#@S DDDDDD Pe&2 decfsz goto decfsz goto BR"$A#1,F Pe&2 BR"$A#2,F Pe&2 A 3ru*a p!tlja &ri :=3 i"klju2!no A &ovoljno &u*o &a bi "! to o*lo pri !titi A A

A DDDDDD >ra0anj! pro*ra a na po2!tak DDDDDD goto Poc A >ra0anj! na po2!tak pro*ra a

A DDDDDD Graj pro*ra a DDDDDD e+d A Graj pro*ra a$

Gao to "t! i "a i pr!tpo"tavili &ir!ktiva 7-+c2!de 8516F84.-+c9 ubacuj! 9ajl 516F84.-+c i"pr!& va!* a"! bl!r"ko* pro*ra a$ Sa a"! bl!r 0! pri konv!rziji in"trukcija u ain"ki kT& uz!ti iz 9ajla naziv! "a o oni; i !novani; r!*i"tra koji "! kori"t! u pro*ra u$ 'a taj na2in pro*ra j! pr!*l!&niji# >a a j! "kra0!no vr! ! pi"anja pro*ra a (za i !novanj! r!*i"tra)# a pro*ra nij! nita &ui n!*o ina2!$ Sa&a o!t! ko pajlirati pro*ra $ Za ko pajliranj! 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 S-CC==3=3J$ - 9ol&!ru IProbaJ "a&a "! nalazi par 9ajlova$ 5itni "u va $!rr# $l"t i $;!N$ - 9ajlu "a $!rr !k"t!nzijo # a"! bliranju pro*ra a$ Fajl "a $l"t !k"t!nzijo ko !ntara$$$ Iz nj!*a a"! bliranju$ ora biti I5-I:3

j!&ino oni "a !k"t!nzijo

o!t! vi&!ti "pi"ak *r!aka i upozor!nja na"tali; pri

pr!&"tavlja &!taljan pr!*l!& "vi; upotr!blj!ni; in"trukcija# o!t! vi&!ti u ko tr!nutku j! ta2no na"tupila *r!ka u

Fajl "a $;!N !k"t!nzijo pr!&"tavlja 9ajl "pr! an za "ni anj! u PIC$ Po"tupak "ni anja# nau2i0!t! u nar!&ni po*lavlji a$

18

6. Progr & "or#


Za "ni anj! $;!N 9ajla u PIC n!op;o&an va j! pro*ra ator kao ;ar&v!r"ki &!o i o&r!%!ni "o9tv!r u ko pjut!ru pr!ko ko*a "! vri pro*ra iranj!$ '! ojt! "! zal!t!ti pa o& a; kupiti naj"kuplji Microc;ipov pro*ra ator$ Funkcija pro*ra atora j! pro*ra iranj! 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 "ni ati anj! o& 1G5 pro*ra a$ 7!&ino bi; pr!poru2io izb!*avanj! pro*ra atora "a "!rij"ki porto # zbo* n!j!&nako"ti nj!*ovi; karakt!ri"tika na razni ati2ni plo2a a (u*lavno na laptopovi a)$ -koliko i at! i"ku"tva u pravlj!nju !l!ktron"ki; kola# o!t! napraviti j!&an o& pro*ra atora "a "ajta ;ttp/MMRRR$icB pro*$co M$ 'a i"to "ajtu nalazi "! i pripa&aju0i "o9tv!r za pro*ra iranj!$ Pro*u*lajt! alo$ Mo&a nai%!t! i na n!to lak!$ -koliko !lit! kupiti pro*ra ator#

o!t! po*l!&ati "l!&!0! "ajtov!/

8llPic pro*ra ator

<ko 1F _ u j!&no <ko 1++ _

Pro*ra ator i razvojni "i"t!

I op!t pr! kupovin! pr!trait! int!rn!t$ >a novac j! u pitanju$ -nutar ikrokontrol!ra nalaz! "! takozvani kon9i*uracioni bitovi$ 'ji a "! 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*ra atori j! i*noriu i po"tupaju po "op"tv!ni "!tovanji a$ Za PIC16F84 kon9i*uracioni bitovi "u/ .atc;do* Ti !r O &ozvoljava o&no"no zabranjuj! upotr!bu U3T u pro*ra u 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*ra a O!5illator O o o*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 on tr!ba biti i"klju2!n O U3T <FF$ uput"tvu#

PoR!r -p Ti !r =nabl! bit j! (o"i ka&a i at! 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*ra iranja$ M!%uti # ukoliko tr!bat! pro&ati PIC "a >ai pro*ra o 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*ra a koji 0! >a po o0i &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*ra i "! kori"t! u "lu2aj!vi a 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*ra a "u u lako0i !njanja vr!&no"ti broja2a j!&no unutar potpro*ra a# n!*o npr$ &!"!t puta kroz *lavni pro*ra # i u " anj!nju koli2in! ! orij! koju pro*ra zauzi a unutar PIC$ Po*l!&ajt! "trukturu j!&no"tavno* potpro*ra a/ BR"$A# Pe& e ! 0x0# decfsz goto return A -zi a inicijalnu vr!&no"t +NFF BR"$A#,F Pe& A S anjuj! i prov!rava A "v! &o + A Povratak iz potpro*ra a

Prvo tr!bat! lab!lo &ati potpro*ra u i !# i u ovo "lu2aju izabrano j! &a to bu&! JP!tS$ <n&a "! upi"uj! kT& koji "! izvrava u okviru potpro*ra a$ - 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*ra a# j!&no"tavno upiit! C8:: in"trukciju i lab!lu po2!tka potpro*ra a$ Ga&a *lavni pro*ra &o%! &o &!la "a in"trukcijo C8:: k (!n*$ C $$ Subroutin!) Jpozovi potpro*ra S# *&! j! k a&r!"a ili lab!la potpro*ra a# on "ka2! na !"to na koj! "! nalazi potpro*ra $ Ta o na"tavlja "a izvravanj! ko an&i unutar potpro*ra a "v! &o naila"ka na in"trukciju C=T-C' (!n*$ Re"3r' 9ro Subroutin!) Jpovratak iz potpro*ra aS$ 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*ra a " anjuj! ukupna &uina pro*ra a$ Ipak po"toj! &v! "tvari na koj! orat! obratiti panju$ Prvo# u *lavno pro*ra u# "vi r!*i"ti oraju biti i !novani i inicijalizovani pr! n!*o to "! upotr!b!$ <ni "! o*u i !novati u "a o potpro*ra u# ili na po2!tku *lavno* pro*ra a$ 'ajprakti2nij! j! i !novati i; na po2!tku pro*ra a$ '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*ra a zaobi0i potpro*ra $ -koliko "tavit! potpro*ra na kraj >a!* pro*ra a i zaboravit! &a "tavit! in"trukciju *oto koja bi na"tavila izvravanj! &alj! o& potpro*ra a# 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*ra a i *lavno* pro*ra a$ <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!ktiva a$ -koliko u pro*ra u i at! &v! pro !nljiv!# tr!bat! i; pa titi 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!uzi a obav!zu o&r!%ivanja a&r!"a poj!&ina2ni; r!*i"tara (o&r!%uj!t! u "a o prvu)# i poboljavat! portabilno"t pro*ra a za o0nij! "!rij! ikrokontrol!ra$ <2i*l!&no &a ovo nij! v!lika ut!&a pri kori0!nju "a o &va r!*i"tra$ M!%uti # pri vi! r!*i"tara ovo o! biti o& po o0i$ @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 movlw b'00000000' movwf TRISA movwf TRISB bcf STATUS,RP0 A DDDDDD -klju2i :=3 DDDDDD Poc movlw b'00000100' movwf P"RTA 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*ra a DDDDDD goto Poc A DDDDDD Potpro*ra Pe& decfsz goto decfsz goto return za kanj!nj! o& oko +#@S DDDDDD BR"$A#1,F A <v! &v! p!tlj! "lu! za brojanj! na&ol! o& Pe& A @FF &o +# @FF puta# o o*u0avaju0i &a BR"$A#2,F A "! o! pri !titi kako :=3 tr!p!ri Pe& A Povratak iz potpro*ra a A Graj pro*ra a$

A Pr!bacuj! pro*ra u 58'G1 A Po"tavlja "v! pinov! A kao izlazn! A >ra0a pro*ra u 58'G+

A -klju2i :=3 "tavljaju0i bQ++1++Q A u U r!*i"tar# a zati i u P<CT8

A DDDDDD Graj pro*ra a DDDDDD e+d

Mo!t! vi&!ti &a j! kori0!nj! potpro*ra a " anj!na v!li2ina pro*ra a$ Svaki put ka&a j! potr!bno napraviti pauzu# b!z obzira "v!tli li :=3 ili n!# pozov! "! potpro*ra $ 'a kraju potpro*ra a pro*ra "! vra0a na r!& iza C8:: in"trukcij!$ @@

- pri !ru "! najpr! uklju2uj! :=3$ <n&a "! poziva potpro*ra $ 'akon povratka iz potpro*ra a 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*ra a unutar prvo*$ 'a pri !r ovo j! potpuno o*u0!/ Poce&0@ P)o*1 P)o*2 call P)o*1 goto Poce&0@ call P)o*2 return return A Pozivanj! prvo* potpro*ra a A '!pr!ki&no vra0anj! na po2!tak u A Pozivanj! &ru*o* potpro*ra a A Povratak iz prvo* potpro*ra a A Povratak iz &ru*o* potpro*ra a rtvoj p!tlji

<vako "! o! i0i "a o &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*ra a# " anj!n j! na 1+4 bajta$ <vo o&a i n! iz*l!&a no*o# ali i ajt! u vi&u &a ! orija PIC16F84 ikrokontrol!ra izno"i "a o 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! "a o 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*ra irati 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 bank! + u banku 1$ 'ajpr! to ura&it!/ bsf STATUS,RP0 A 5anka 1 iz

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 movwf bcf b'00000001' A Stavi bQ++++1Q u U# a zati u TRISA A TCIS8 r!*i"tar$ Tako j! pin C8+ ulazni$ 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*ra a Te3& btfss P"RTA,0 goto Te3& 'a"tavi o&av&!

Pro*ra 0! na"taviti izvravanj! o& J'a"tavi o&av&!S "a o 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 "a i 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 movlw b'00000001' movwf TRISA movlw b'00000000' movwf TRISB bcf STATUS,RP0 A DDDDDD -klju2!nj! :=3 DDDDDD Poc movlw b'00000100' movwf P"RTA A 5anka 1 A Stavi bQ++++1Q u TCIS8$ Tako j! pin A C8+ ulazni# a C8@ izlazni$ A Stavi bQ++++++++Q u TCIS5$ Tako "u A "vi pinovi izlazni$ A 5anka + A -klju2i :=3 "tavljaju0i bQ++1++Q u 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 Pe& decfsz goto decfsz goto return za kanj!nj! o& oko +#@S DDDDDD BR"$A#1,F A <v! &v! p!tlj! "lu! za brojanj! na&ol! o& Pe& A @FF &o +# @FF puta# o o*u0avaju0i &a BR"$A#2,F A "! o! pri !titi &a :=3 tr!p!ri Pe& A Povratak iz potpro*ra a A Graj pro*ra a$

A DDDDDD Graj pro*ra a DDDDDD e+d

<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! i p!&an"! po"tao pr!vi! o"!tljiv na "poljnj! " !tnj! (npr$ *r ljavinu)# 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) otpornici a nau2i0!t! u nar!&ni po*lavlji a$ 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*ra a$ I"to "! &!ava i nakon to "! i"klju2i :=3$ Mo!t! ko pajlirati i i"probati ovaj pro*ra $ Ipak &a >a" o& a; upozori $ Golo i pro*ra n!0! i pr!"ionirati n!ko* ko*a n! int!r!"uj! pro*ra iranj! ikrokontrol!ra$ Zato "! n! ojt! uzn! iravati ka&a "vojoj poro&ici i prijat!lji a poka!t! kako o!t! !njati brzinu tr!ptanja :=3 pr!ki&a2! # a oni za to pokau v!o a 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


Si ulacija j! proc!" virtu!lno* "i uliranja izvravanja in"trukcija iako jo nita konkr!tno nij! ;ar&v!r"ki napravlj!no$ 7!&an o& najpopularniji; (i najj!&no"tavniji;) "i ulatora j! "vakako PIC Si ulator 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 "a o K+ &ana pr! i"t!ka probno* p!rio&a$ 7o j!&an o&li2an "i ulator 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= i a u "!bi o&li2an a b!"platan "i ulator$ - ovo nj!*ov! "p!ci9i2no"ti$ po*lavlju bi0! opi"an!

3a bi"t! uklju2ili "i ulator i&it! na 3!bu**!r# S!l!ct Tool# MP:85 SIM$ - toolbaru 0! "! pojaviti n!koliko novi; ikonica$ Gliknit! na tr!0u (8ni at! B &v! "tr!lic! na&!"no) i pratit! izvravanj! pro*ra a 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"i alno brzino # ali b!z ani irano"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"i alno brzino izvrava potpro*ra ili nar!&na in"trukcija$ 6!"to ikono (St!p <ut) na"ilno "! izlazi iz potpro*ra a$ Za&njo ikono "! vri r!"!t pro*ra a# 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 koraci a " 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 ISW bolicJ tab$ 3onji &!o MP:85 prozora prua >a kori"n! in9or acij! 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* 9or ata broj!va$ Za 5C<78C1 i 5C<78C@ najpr!*l!&niji bi bio &!ci alni 9or at$ 3upli kliko na vr!&no"ti por!& r!*i"tara# o!t! i; na"ilno pro !niti$ Mo&a va j! ani acija brzin! izvravanja pro*ra a pr!vi! "pora? Pov!0ajt! j! na 3!bu**!r# S!ttin*"# 8ni ation M C!alti ! -p&at!" po& 8ni at! "t!p ti !$ - !"to F++ S "tavit! npr$ F+$ 5rzina "i uliranja o*rani2!na j! brzino va!* ko pjut!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 "i ulator >a o o*u0ava &a u pro*ra u 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 "i ulator nai%! na taj &!o# zau"tavi0! &alju "i ulaciju to 0! >a o o*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 ani iranja) &o prv! ta2k! pr!ki&a# i tu "! r!"!tuj! top!rica i klikn! na St!p <v!r$ Potpro*ra "! izvrava ak"i alno brzino (b!z ani iranja) i nakon to "! zavri i2ita "! prot!klo vr! ! iz top!ric!$ Iako j! prikaz "vi; izlazni; pinova portova v!o a lako i pl! !ntirati# ukoliko j! potr!bno "i ulirati 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 "ti ulan" (!n*$ Sti ulu") po ko ! 0! "! o&vijati pro !n!$ E!lj!ni "c!nario pro !na &!9ini!t! "a 3!bu**!r# Sti ulu" 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 i pul"a &atu u vr! !nu ili broju in"trukcij"ki; ciklu"a$ Po2!tak i pul"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! "ni ati "tanj! o&r!%!ni; bitova po unapr!& za&ati krit!riju i a$ Clock Sti ulu" tabo &!9iniu "! lo*i2ka "tanja pinova koja 0! "! javljati u ta2no o&r!%!ni tr!nutci a$ 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 tabovi a &!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*ra irali 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&i o kako "t! &o "a&a uklju2ivali i i"klju2ivali :=3$ movlw movwf movlw movwf b'00000100' P"RTA b'00000000' 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 "a o 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 bajtovi a# pri 2! u "! vo&i ra2una o nji;ovo poloaju$ :S5 bit r!zultata "a&ra0! r!zultat `<C op!racij! na& :S5 bitovi a 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 00000000 A"R 00000001 6 00000001 Ta "p!ci9i2no"t `<C op!racij! i"klju2ivanj! :=3$ II 00000001 A"R 00000001 6 00000000 o! biti i"kori0!na za naiz !ni2no uklju2ivanj! i

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 00101110 A"R 10010110 6 10111000 `<C op!racija II 10111000 A"R 10010110 6 00101110

o! "! na0i u in"trukcija a 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! "a o &v! linij! kT&a/ movlw xorwf b'00000100' P"RTA,F A bQ+++++1++Q u U 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& portovi a "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+

Za i"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&ovi a (&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 "a i ti i n!pravilno* ra&a pro*ra a$ 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"tri a o!t! nau2iti na ;ttp/MMRRR$picli"t$co Mt!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*ra a kao ";a&&oR r!*i"tar upotr!blj!n j! U r!*i"tar# j!r "! nj!*ovo "tanj! n! !nja u o"tali &!lovi a pro*ra a$ 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*ra a DDDDDD goto Poc A >rati "! na po2!tak

K1

A DDDDDD Potpro*ra Pe& decfsz goto decfsz goto return

za kanj!nj! o& oko +#@S DDDDDD BR"$A#1,F A <v! &v! p!tlj! "lu! za brojanj! na&ol! o& Pe& A @FF &o +# @FF puta# o o*u0avaju0i &a "! BR"$A#2,F A o! pri !titi kako :=3 tr!p!ri Pe& A Povratak iz potpro*ra a A Graj pro*ra a

A DDDDDD Graj pro*ra a DDDDDD e+d

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 movlw b'00000001' movwf TRISA clrf TRISB bcf STATUS,RP0 clrw A 5anka 1 A Stavi bQ++++1Q u TCIS8$ Tako j! bit + A porta 8 ulazni# a bit @ izlazni$ A Svi pinovi na portu 5 "u izlazni$ A 5anka + 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 -z i 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*ra a DDDDDD goto Poc A >rati "! na po2!tak

K@

A DDDDDD Potpro*ra Pe& decfsz goto decfsz goto return

za kanj!nj! o& oko +#@S DDDDDD BR"$A#1,F A <v! &v! p!tlj! "lu! za brojanj! na&ol! o& Pe& A @FF &o +# @FF puta# o o*u0avaju0i &a "! BR"$A#2,F A o! pri !titi kako :=3 tr!p!ri Pe& A Povratak iz potpro*ra a A Graj pro*ra a

A DDDDDD Graj pro*ra a DDDDDD e+d

'a&a "! &a "t! uo2ili &a j! upotr!bo novi; in"trukcija prili2no " anj!na v!li2ina pro*ra a$ 3a bi"t! lak! uo2ili ovu razliku# i"po& "u prikazni nazivi pro*ra a# iz !n! koj! "u izvr!n!# i nji;ov! v!li2in!$ Pro*ra Tr!ptu0a :=3 Tr!ptu0a :=3 Tr!ptu0a :=3 :=3 "a pr!ki&a2! :=3 "a pr!ki&a2! Iz !na >!li2ina (in"trukcija) 18 1P 14 @@ 1P

<ri*inal 3o&at potpro*ra 3o&ata !k"kluzivno ili 9unkcija <ri*inal 3o&ata !k"kluzivno ili 9unkcija

>i&it! &a "t! n! "a o nau2ili nov! in"trukcij!# v!0 "t! i " anjili v!li2inu pro*ra a$

KK

12. -og#>0e o%er 5#(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 "a o 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 "a o ukoliko "u oba op!ran&a na lo*i2koj 1$ -koliko bar j!&an nij!# r!zultat 0! biti lo*i2ka +$ o! na0i u &va oblika$ U i kon"tantno

Gao i `<C i 8'3 op!racija "!

1$ 8'3:U k koja izvrava 8'3 op!raciju na& r!*i"tro 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 vr!&no0u k$ C!zultat op!racij! 0! biti u U r!*i"tru$ U i kon"tantno

@$ 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! ko pl! !nt$ CO( + 1 1 + #"4 01101011 6 10010100 Go pl! !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 ko pl! !n "! izvrava na& "a o j!&ni bajto $ Zbo* to*a ova op!racija i a "a o 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*ra u u !"to `<C$ 7!&ina razlika j! u to ! to bi "! on&a inv!rtovali "vi bitovi P<CT8 r!*i"tra# a n! "a o onaj koji j! potr!ban$ Sli2no kao `<C op!racija# &uplo ko pl! !ntovana vr!&no"t vra0a ori*inalnu/ I #"4 01101011 6 10010100 II #"4 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 i a "voju po"!bnu oznaku Inulti bitJ (!n*$ Z!ro 9la*)$ T!r in 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/ A"R 6 00011010 00011010 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* ko pl! !ntovanja$ #"4 6 o!t! "!tovati 2ak i op!racijo

11111111 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 i at! 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 9la* 0 0 1 0 0 5itovi +N+C r!*i"tra 76543210 01000000 10000000 00000000 00000001 00000010 .

rlf rlf rlf rlf rlf .

0x0#,F 0x0#,F 0x0#,F 0x0#,F 0x0#,F .

>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"trukcija a 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! "a o C:F in"trukcija na CarrW 9la*$ Int!r!n"antno j! &a "! rotacijo unutar r!*i"tra noi "a @$ # 0 0 1 76543210 01011001 10110010 01100100 ul!vo ("a pr!t;o&no r!"!tovani CarrW 9la*o ) broj

6 6 6

8B 178 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 9la* 0 0 1 0 5itovi +N+C; r!*i"tra 76543210 00000010 00000001 00000000 10000000 "lu2aju

rrf rrf rrf rrf

0x0#,F 0x0#,F 0x0#,F 0x0#,F

In"trukcij! C:F i CCF o*u "! upotr!biti za "i ulaciju tr2!0!* "v!tla$ - to o*u0i al*orita bi bio/ SP"RTB e ! rlf movf movwf 0x0# SP"RTB,F SP"RTB,% P"RTB A Cotacija u S,833<U r!*i"tru A Gopiranj! iz S,833<U u U 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 movlw b'00000011' movwf TRISA clrf TRISB bcf STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1 A Stavi bQ+++11Q u TCIS8$ Tako "u bit + i A bit 1 ulazni# a bit @ izlazni$ A Svi pinovi na P<CT5 "u izlazni$ 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*ra a$

Go pajlirajt! pro*ra # pro*ra irajt! 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*ra u u "lu2aju &a "u oba pr!ki&a2a zatvor!na/ PIC uzi a 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 P<CT8 U po"l! rotacij! P<CT8 U po"l! `<C P<CT8 po"l! rotacij! 43210 00011 00110 00011 00101 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 I a"kiraoJ$ Pr!pravit! "a&a pro*ra - !"to napiit! xorwf andwf po "l!&!0! / P"RTA,% P"RTA,% A Izvri `<C na& P<CT8 i U 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*ra u 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$ .!"tita o$ 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 76543210 11111110 11111111 00000000 00000001 ST8T-S Z!ro 9la* 0 0 1 0

incf 0x0#,F incf 0x0#,F incf 0x0#,F

-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 76543210 00000001 00000000 11111111 11111110 ST8T-S Z!ro 9la* 0 1 0 0

decf 0x0#,F decf 0x0#,F decf 0x0#,F

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 goto Poc 'a"tavi o&av&! <v! in"trukcij! za razliku o& obi2ni; I'CF i 3=CF n! uti2u na Z!ro 9la*$ A Pov!0aj vr!&no"t u r!*i"tru +N+C za 1# A i vrati "! na po2!tak$ -koliko "! nakon pov!0anja A &obij! +# pr!"ko2i *oto in"trukciju i na"tavi &alj!$

4+

833 (!n*$ "ab!ri) op!racija "abira &va broja$ Po*l!&ajt! kako "! izvrava op!racija "abiranja u binarno ADD + + 1 1 + 1 + 1 + 1 1 1+ A(( 6 # 1 11001101 10111000 10000101 brojno .205 .184 .38B "i"t! u/

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"trukcija a za PIC op!racija "abiranja i a &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&uzi anja) 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*$ # (# A(( 6 1 1 1111 1111 0000 0001 0000 0000 A(( 6 # (# 0000 1111 0000 0001 0 1 0001 0000

3!lj!nj! bajta na niblov! i a " 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! "a o *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 ko pl! !nt)$ M!%uti # ovaj princip i a 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 C0 6 00000000 D1 6 11111110C1 6 11111111 D0 6 11111111C1 6 00000000

Gao to vi&it!# ovako po"toji "a o j!&no"truko pr!&"tavljanj! broja +$ Takav po"tupak naziva "! &ru*i ko pl! !nt ili ko pl! !nt &vojk!$ Ca2unanj! &ru*o* ko pl! !nta broja comf BR"$,F incf BR"$,F o! "! izvriti "l!&!0i al*orit o /

A Prvi ko pl! !nt A 3o&aj broj 1

Cu2no pr!tvaranj! pozitivni; u n!*ativn! broj!v! najlak! o!t! izvriti ra2unaju0i &ru*i ko pl! !nt broja$ Ca2unanj! 0! va biti utoliko lak! ukoliko "! pri"!tit! obi2no* ko pl! !ntovanja (ili inv!rtovanja ako va j! tako lak!)$ 3ru*i ko pl! !nt pr!&"tavlja obi2an ko pl! !nt ko ! j! &o&at broj 1$ #"4 01011011 10010000 C 1 6 10100101 C.B1 D.B1

Gao to vi&it!# MS5 i a 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!vi a$ ?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&uz iJ$ <&uzi anj! "! unutar ikrokontrol!ra izvrava upravo "abiranj! prvo* broja "a ko pl! !nto &vojk! &ru*o* broja$ Za razliku o& "abiranja# ko& ko*a "! CarrW 9la* "!tuj! pri pr!kora2!nju# ko& o&uzi anja j! pri !nj!na n!*ativna lo*ika# tako &a j! CarrW 9la* "!tovan ukoliko n! a pr!kora2!nja (ta2nij! pozaj ic!)$ Zna2i ko& o&uzi anja 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 C(D.55) 6 C.45

# 1

01100100 11001001 00101101

C.55 D.55

00110111 11001001

Go& o&uzi anja v!0!* o& anj!* broja# priliko "abiranja "a ko pl! !nto &vojk! n! a pr!kora2!nja# pa "! CarrW 9la* n! "!tuj!$ Po*l!&ajt! to na pri !ru/ F6B8P$ C.56 C(D.87) 6 D.31 # 0 00111000 10101001 11100001 C.87 D.87 01010111 10101001

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&uzi anj! o! "! javiti u &va oblika$ S-5:U k o&uzi a "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&uzi a "a&raj U r!*i"tra o& r!*i"tra 9$ Sa & "! o&r!%uj! *&! 0! "! na0i r!zultat$ -koliko >a j! o&uzi anj! i t!"tiranj! CarrW 9la*a naporno# ura&it! i"to to i ikrokontrol!r$ Sab!rit! j!&an broj "a &ru*i ko pl! !nto &vojk! &ru*o* broja$ -koliko "! rotacijo izvrava no!nj! ili &!lj!nj! "a @ na& ozna2!ni broj!vi a# obav!zno "! ora obratiti panja na MS5# j!r on ozna2ava pripa&no"t pozitivni # o&no"no n!*ativni broj!vi a$ - 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!vi a$ <zna2!ni broj!vi o*li bi i ati pri !nu u 9unkciji ikrokontrol!ra kao t!r o !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#...


I at! 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!ci9ikacija a$ Funkcija "vi; ovi; *or! nabrojani; t!r ina j! &a "! "pr!2! upravo takvi !9!kti$ 3!kaplin* pr!&"tavlja zatitu ikrokontrol!ra o& " !tnji na vo&ovi a 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!ra i2ki kon&!nzator o& 1++nF paral!lno napojni pinovi a ikrokontrol!ra (pinovi >"" i >&&)# a to bli! nji a$ -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)$ - ! a a 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! u a 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!vi a &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! ko pjut!r"k! ta"tatur!$ Za vi! &!talja po*l!&ajt! ;ttp/MMRRR$*an""l!$co M&!bouncin*$p&9$ 8lt!rnativno# o*u0! j! r!alizovati i ;ar&v!r"ki &!bouncin*# ali za nj!*a "vaki pin ora i ati "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 "! "a o ka&a j! ovaj &!9ini"an kao izvor int!rapta (vi! o nji a 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 ! i at! 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!) otpornici a$ 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 ! a a$ >i! o pullBup otpornici a o!t! "aznati na ;ttp/MM!n$Rikip!&ia$or*MRikiMPullBupLr!"i"tor$ Po"tavljanj! !k"t!rni; pull up otpornika ko plikuj! izra&u ta pan! plo2ic!$ Sto*a "u na pinovi a P<CT5 r!*i"tra oni ;ar&v!r"ki i pl! !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 i a 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!krto a*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 koji a ra&i PIC16F84 "u 2!trna!"tobitn!$ M!%uti # unutar "a i; 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&i o (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! o o*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*ra a na"tavi0! "! o&atl!$ Sp!cijalan "lu2aj pr!&"tavlja kori2!nj! C8:: in"trukcij!$ PIC ora na n!ki na2in upa titi !"to "a ko*a j! "ko2io na potpro*ra $ Ta in9or acija 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*ra a ili int!rapt rutin! (vi! o njoj ka"nij!)$ 'j!*a o!t! za i"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 ta o na"tavlja izvr!nj! pro*ra a "v! &o in"trukcij! povratka$ Po naila"ku na in"trukciju povratka# ikrokontrol!r pr!uzi a a&r!"u povratka "a "t!ka# i " !ta j! u PC$ 3alj! izvr!nj! pro*ra a na"tavlja "! o&atl!$ M!%uti # "t!k nij! b!"kona2an$ - nj!*a "! o! upi"ati ak"i alno 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*ra a$ <vo o*rani2!nj! n! bi tr!balo pr!t!rano &a >a" brin!$ - prak"i u*lavno n! a potr!b! za potpro*ra i a koji i&u vi! o& &ru*! ili tr!0! &ubin!$ -koliko u pro*ra u i at! vi! pozivanja potpro*ra a# priliko "i ulacij! pro*ra a prov!rit! "a&raj "t!ka opcijo >i!R# ,ar&Rar! "tack$ Iako PIC n! a "!t in"trukcija koji a bi "! o*l! kori"titi tab!l! u pro*ra u# o*u0! j! i pl! !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 o o*u0ava povratak iz potpro*ra a (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"$ call (-35 A Po"tavljanj! na + 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* i uno"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* i uno"ti na goto #e@2 A !v!ntualna varni2!nja kontakta$ A DDDDDD 5rojanj! DDDDDD movlw 0xF6 addwf BR"$,% btfsc STATUS,# goto I+incf BR"$,F call (-35 goto #e@1 A DDDDDD Potpro*ra (-35 call movwf return A $@46 u U ($@46H$YH$1 V "!tovan CarrW 9la*) A Sab!ri "a 5C<7# r!zultat u U A 3a li j! &olo &o pr!kora2!nja (CarrW 9la*)? A 7!"t!# r!"!tuj broja2 A 'ij!# uv!0aj broja2# A prikai r!zultat i$ A na"tavi "a t!"tiranj! i brojanj!

za prikaz na :=3 &i"pl!ju DDDDDD T0b2 A <brazac za prikaz u U P"RTB A Prikai na &i"pl!ju A Povratak iz potpro*ra a

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 goto P0! return A DDDDDD Graj pro*ra a DDDDDD e+d A Pauza zbo* &!bouncin* A rutin! A Povratak iz potpro*ra a A Graj pro*ra a$

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 o o*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 "lovi a a# b# c# &# !# 9 i *$ S!* !nt &p (!n*$ d!ci al %oint) I&!ci alna 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*ra a j!r j! pin C5+ pov!zan na ta"t!r) inv!rtuju/ retlw retlw retlw b'01111110' b'00001100' b'10110110' A + pro !niti u b'10000001' A 1 pro !niti u b'11110011' 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*ra u za prikaz potpro*ra a iz prvo*$ o!t! vi&!ti kla"i2an pri !r pozivanja &ru*o* "! o*u br! uno"iti

MP:85 a"! bl!r i a &ir!ktivu 3T (!n*$ D!9in! Tabl!) kojo !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"trukcija a koj! "a&r! vr!&no"ti nav!&!n! iza &ir!ktiv!$ Pri to ! "! o*u pri !njivati "vi na2ini ozna2avanja broj!va (&!ci alni# ;!k"a&!ci alni$$$)$ <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!la a orat! obratiti panju na &v! "tvari$

1$ Morat! biti "i*urni &a j! broj koji "abirat! "a PC: u ta2no o&r!%!ni *ranica a$ - "lu2aju pr!kora2!nja izvravanj! pro*ra a 0! "! na"taviti "a "lu2ajn! ! orij"k! a&r!"! to 0! prouzrokovati n!pravilan ra& ili bloka&u pro*ra a$

4Y

@$ Gako j! PC trina!"tobitni r!*i"tar 2iji &onji &!o (+B@FF) j! u PC:# a *ornji (a@FF) u bitovi a +BF PC:8T,# potr!bno j! o"i*urati &a tab!la n! iza%! iz bloka o& @F6 bajtova$ Go& pro*ra a nav!&!no* kao pri !r# to nij! probl! # j!r j! on ionako &u* "a o 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$co M$

F+

18. . "5@dog " (&er


Pr!tpo"tavi o &a "t! napi"ali pro*ra koji "! n!pr!ki&no izvrava na ikrokontrol!ru$ 'or alno# !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$ -z it! u obzir "l!&!0i "lu2aj$ Pr!tpo"tavi o &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"tavi o &a "t! napi"ali pro*ra # ko pajlirali *a# 2ak i "i ulirali nj!*ov ra& u "i ulatoru$ M!%uti po"l! &u*o vr! !na pro*ra "! za*lavi u n!koj p!tlji (koliko "t! "a o puta >i priti"nuli Ctrl 8lt 3!l!t! ko binaciju 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 i aju *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"i alnu 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 "a i 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*ra atora za nj!*ovo uklju2!nj!$ 2re%e 3DT U3T i a vr! ! pr!la"ka "a +N++ na +NFF o& oko 18 S$ <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 18 S$ Ipak# ono "! o! i pro&uiti$ +"t 24140 +# +# + +# +# 1 +# 1# + +# 1# 1 1# +# + 1# +# 1 1# 1# + 1# 1# 1 O#/* 1/1 1/@ 1/4 1/8 1/16 1/K@ 1/64 1/1@8 2re%e 18 S K6 S P@ S 144 S @88 S FP6 S 1#1S @#KS -nutar ikrokontrol!ra nalazi "! tzv$ pr!"kal!r (!n*$ pr! po&!liti)$ <n "! o! pro*ra irati 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

-pa tit! &a "u ova vr! !na n!zavi"na o& takta o"cilatora ikrokontrol!ra$ Mi"lit! o ovi vr! !ni a 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"tavi o &a !lit! &a U3T r!"!tuj! PIC nakon pola "!kun&!$ 'ajblia "tan&ar&na vr!&no"t j! FP6 S# o&no"no +#FP6S# pa j! &ovoljno po"lati vr!&no"t b1+1 u <PTI<'LC=? r!*i"tar$ movlw movwf b'101' 0x81 A <vo j! +N+F 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 D movlw b'xx0x0111' D movwf "PTI";:R=' D bcf STATUS,RP0 clrf T4R0 bsf movlw movwf clrwdt movlw movwf bcf STATUS,RP0 b'xxxx1111' "PTI";:R=' b'xxxx1xxx' "PTI";:R=' STATUS,RP0 A <brii U3T A Izab!ri U3T# i po"tavi z!lj!ni o&no" A pr!"kal!ra NNN$ A Za +#FP6S to j! bQNNNN11+1Q A 58'G+ o*u "! izbaciti A 58'G1 A Izab!ri taj !r i pr!"kal!r razli2it o& +++ A 58'G+ A 5ri"anj! vr!&no"ti int!rno* taj !ra i A pr!"kal!ra O pri upi"u u taj !r# A 58'G1 A Izab!ri U3T# b!z !njanja o&no"a A pr!"kal!ra

- "lu2aju !lj!no* o&no"a razli2ito* o& 1/1 (vr!&no"t pr!"kal!ra +++) 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 i aju "p!cijaln! 9unkcij! (poput uklju2!nja PullB-p otpornika) koj! 0!t! nau2iti u &!lu "a taj !ro i int!rapti a$ 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 zapa tit! 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*ra a "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 "a o 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*ra u$ 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 movwf decfsz goto e+d 0x02 BR"$A# BR"$A#,F Pe&

Pe&

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 >i&it! koliko zbunjuju0i 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*ra atori 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*ra atora# &o pro*ra atora ("o9tv!ra)$ -*lavno "! trai nji;ov upi" n!po"r!&no pr! pro*ra iranja ikrokontrol!ra$ FK ciklu"u# to za P ciklu"a izno"i P D 1ZS V PZS$

o! biti in"trukcij"ki ciklu" in"trukcija u"lovno* "koka$

Sl!&!0i pro*ra o 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 pinovi a (@+ 8) i a 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 pri a i kojo o! napajati !k"t!rn! potroa2! (1F+ 8)$ PIC pri ovakvo pov!zivanju po&no"i &o @F 8 po pinu# &o 8+ 8 za P<CT8 i &o 1F+ 8 za P<CT5$ Za pin C84 ovo j! i j!&ino lo*i2ku 1$ o*u0! r!!nj!# j!r on na "vo izlazu n! o! &ati

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" goto Eed A DDDDDD Po&!avanj! porta DDDDDD bsf STATUS,RP0 clrf TRISA clrf TRISA clrf T4R0 A DDDDDD Po&!avanj! U3T DDDDDD bcf STATUS,RP0 clrf T4R0 bsf movlw movwf STATUS,RP0 b'10001111' "PTI";:R=' F4 A T!"tiraj "tanj! T< bita A C!"!tovan j!# zna2i U3T r!"!t A Pr!bacuj! pro*ra u 58'G1 A Svi pinovi A "u izlazni$ A 5ri"anj! vr!&no"ti int!rno* taj !ra i A pr!"kal!ra O pri upi"u u taj !r# A >ra0a pro*ra u 58'G+ A 5ri"anj! vr!&no"ti int!rno* taj !ra i A pr!"kal!ra O pri upi"u u taj !r# A Pr!bacuj! pro*ra u 58'G1 A I"klju2i PullBup otpornik! i A izab!ri U3T# "a ak"i alni A vr! !no pr!"kal!ra

clrwdt movlw movwf bcf

b'10001110' "PTI";:R=' STATUS,RP0

A <brii U3T A Izab!ri U3T# i po"tavi o&no" A pr!"kal!ra o& 1#1S 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*ra a DDDDDD e+d A Graj pro*ra a$ '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*ra a 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 ("a i 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 i ati 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 i a u "!bi int!*ri"an taj !r$ I pul"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 i pul"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"i aln! 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*ra a$ 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! kori"titi pr!"kal!r$ o*u0! &obiti v!0! p!rio&!# taj !r i"to kao i U3T o!

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 RBPU

I;T=('

T0#S

T0S=

PSA

PS2

PS1

b-&0 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 o o*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 i a " 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$ 5itovi a PS+ &o PS@ bira "! o&no" &!lj!nja pr!"kal!ra po "l!&!0oj tablici$

F6

B"t 24 14 0 +# +# + +# +# 1 +# 1# + +# 1# 1 1# +# + 1# +# 1 1# +# 1 1# 1# 1

T(R0 *#/* 1/@ 1/4 1/8 1/16 1/K@ 1/64 1/1@8 1/@F6

3DT *#/* 1/1 1/@ 1/4 1/8 1/16 1/K@ 1/64 1/1@8

Pri !0uj!t! &a "! i ov&! po inj! 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"trukcija a ozna2!ni zv!z&ica a$ 5u&u0i &a "! pri "a o pro*ra iranju 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!rapti a$ 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&!ci aln! 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*ra u 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*ra a 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 movwf (ISP movlw b'00100000' movwf (=E

A Inicijalizacija A &i"pl!ja A Inicijalizacija 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 btfss STATUS,# goto T0> A Cotiraj 3=: r!*i"tar na&!"no$ Ga&a "! CarrW A 9la* "!tuj!# na"tavi &alj!$ -koliko i &alj! nij! A "!tovan# 2!kaj na jo j!&an ciklu" taj !ra$

A DDDDDD Prikaz ci9r! na &i"pl!ju DDDDDD call T0b2 A -z i 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*ra a DDDDDD !n& A Graj pro*ra a 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&uzi anja !njaju "tanj! 3C 9la*a# i j!&ino pri pr!kora2!nji a &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"trukcija a 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*ra i a$ Int!rapt j! proc!" ili "i*nal koji pr!ki&a izvravanj! *lavno* ikrokontrol!r"ko* pro*ra a i pr!bacuj! nj!*ovo izvravanj! na potpro*ra koji j! za&u!n za obra&u int!rapta$ Po povratku iz potpro*ra a *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"tavi o &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! za i"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 i a 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*ra u$ -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 auto obila$ 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! "a o* pro*ra a$ 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!2i a &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# ta o "!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 pinovi a$ 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*$ Po rt , 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,aS!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 pinovi a 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"tavi o &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*ra a 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 i aju jo j!&nu 9unkciju# a to j! o o*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 auto at"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*ra a$ <vo "! v!o a lako i pl! !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*ra a$ '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*ra a 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 uzi a "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 goto 40-+ o)* 0x04 / / / / / / retfie 40-+ A PIC po2inj! o&av&! pri uklju2!nju i r!"!tu A I&i na *lavni pro*ra 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*$ A Zavr!tak rutin! za obra&u int!rapta A Po2!tak *lavno* pro*ra a kori0!nja int!rapta$

Po"toji par "tvari na koj! tr!bat! obratiti panju priliko

1$ -koliko kori"tit! i"ti r!*i"tar u *lavno pro*ra u i u rutini za obra&u int!rapta i ajt! 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!ci o &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! i ao 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 i ao 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 ini alno 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@

K$

4$

F$

6$

P$

8$

nav!&!no j! &a "! tr!ba o"taviti naj anj! 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*ra a za obra&u int!rapta$ I ajt! ovo na u u ukoliko kori"tit! !k"t!rn! izvor! int!rapta$ 'a kraju int!rapt rutin! bit ?I= I'TC<' r!*i"tra "! auto at"ki "!tuj!$ 8uto at"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*ra u 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 auto at"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$ 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! alar a# 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 pinovi a# v!0 j!&ino na "vi $ - "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 bitovi a 4BP P<CT5 r!*i"tra$ Sto*a j! potr!bno u "a oj 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 ta o r!"!tovati "a o taj int!rapt 9la*$ <& a; nakon povratka iz potpro*ra a za obra&u int!rapta# izvri0! "! int!rapt izazvan &ru*i izvoro $ Int!rapt 9la*ovi "!tuju "! b!z obzira na "tanj! ?I= bita# kao i poj!&ina2ni; &ozvola za int!rapt! (kao u pro*ra u "a taj !ro )$ To o! biti i"kori0!no za &!t!kciju nji;ovi; "tanja iz "a o* pro*ra a 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!$ 5u&it! opr!zni priliko kori0!nja potpro*ra a unutar int!rapt rutin!$ -koliko j! u *lavno pro*ra u "t!k "koro pun (a bi0! pri pozivanju potpro*ra a iz potpro*ra a)# jo par takvi; pozivanja unutar int!rapt rutin! "i*urno 0! izazvati nj!*ovo pr!kora2!nj!$ -v!k uz it! u obzir naj*oru o*u0u varijantu# tj$ &a "! int!rapt rutina javlja ba priliko izvravanja potpro*ra a najv!0! &ubin!$ '! pozivajt! iz rutin! za obra&u int!rapta potpro*ra ! koj! v!0 pozivat! iz *lavno* pro*ra a$ -koliko j! to n!op;o&no# priliko ula"ka u int!rapt rutinu "ni it! "a&raj "vi; r!*i"tara o&i9ikovani; u potpro*ra u# i vratit! i; natra* priliko izla"ka iz int!rapt rutin!$ po*lavlju vi&!0!t! pro*ra koji kori"ti int!rapt!$

- "l!&!0!

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*ra o 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! "a o 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*ra a pr!"ko2i &!o na koji PC "ka2! pri pojavi int!rapta$ o)* goto o)* A A A retfie 40-+ 0x00 40-+ 0x04 A <v&! PC &olazi pri uklju2!nju i r!"!tu A <&lazak na *lavni pro*ra A <v&! 0! po2!ti rutina za obra&u int!rapta A Cutina za obra&u int!rapta$ -pi"a0! "! ka"nij! A <va in"trukcija ozna2ava kraj rutin! za obra&u A int!rapta# i vra0a PC na *lavni pro*ra $ A Po2!tak *lavno* pro*ra a

<n&a j! potr!bno po&!"iti PIC za kori0!nj! int!rapta na pinu 6/ bsf bsf I;T#";,'I= I;T#";,I;T= A ?lobal int!rrupt !nabl! (1 O uklju2i) A C5+ Int!rrupt !nabl! (1 O uklju2i)

64

Za "vaki "lu2aj potr!bno j! r!"!tovati int!rapt 9la* (nika& n! v!ruj bcf I;T#";,I;TF A <brii int!rapt 9la*

ikrokontrol!ru)/

Gako "u ov&! i"kori0!n! 2ak K in"trukcij! za !njanj! vr!&no"ti "a o j!&no* r!*i"tra prakti2nij! j! u po*l!&u t!&nj! ! orij! i brzin! izvravanja pro*ra a za !niti i; "a &v!$ movlw movwf b'10010000' I;T#"; 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 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 movlw movwf clrf bcf bcf bcf STATUS,RP0 A Pr!bacuj! na" u 58'G1 0x01 A bQ+++++++1Q u TCIS5 TRISB A C5+MI'T kao ulaz# a o"tali kao izlaz TRISA A Svi pinovi na P<CT8 "u izlazni "PTI";:R=',I;T=(' A Int!rapt "! izaziva pri A opa&aju0oj ivici "i*nala "PTI";:R=',;"T:RBPU A -klju2!ni int!rni Ipull upJ A otpornici na P<CT5 STATUS,RP0 A Povratak u 58'G+

Gako int!rapt !li o 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! '<TLC5Pbita 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 pa 0!nj! broja priti"nuti; pr!ki&a2a$ 5C<78C 0! u pro*ra u i ati "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 ! BR"$A# e ! clrf 0x0# 0x0( BR"$A# A T=MPU na a&r!"i +N+C A 5C<78C na a&r!"i +N+3 A Stavi +N++ u 5C<78C 6F

3alj! j! potr!bno u *lavno pro*ra u napraviti p!tlju koja 0! vr!&no"t pro !nljiv! 5C<78C n!pr!"tano prikazivati na P<CT8 r!*i"tru$ P)comf movwf goto BR"$A#,% P"RTA P)A Inv!rtovani 5C<78C u U r!*i"tar (zbo* :=3) A a o&atl! u P<CT8 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 "a a 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"i alnu 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 clrf A T!"tiraj tr!0i bit ++++1+++ 5C<78C r!*i"tra$ A -koliko nij! "!tovan# pr!"ko2i "l!&!0u A in"trukciju BR"$A# A -pi"i +N++ u 5C<78C A -koliko j! 5C<78C nakon inkr! !ntacij! A pr!kora2io ak"i alnu vr!&no"t (bQ+++++111Q) A "a&a j! j!&nak $+ A -koliko nij!# "a&a j! inkr! !ntovan$ T=4P%,% A >rati pr!t;o&ni "a&raj U r!*i"tra I;T#";,I;TF A <brii I'TF O &ozvoli nov! int!rapt! A Graj int!rapt rutin!$ BR"$A#,3

movf bcf retfie

Po*l!&ajt! "a&a c!lokupan pro*ra / A DDDDDD Inicijalizacija i i !novanj! DDDDDD 2-3& 7-+c2!de ::#";FI' "R' T=4P% BR"$A# 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra :#P:"FF < :%(T:"FF < :P%RT=:"; < :R#:"S# A Po&!ava kon9i*uracion! bitov! A 3!9ini! "tart pro*ra a A .uvanj! "a&raja U r!*i"tra na a&r!"i +N+C A 5C<78C na a&r!"i +N+3

0x00 e ! 0x0# e ! 0x0(

66

A DDDDDD Int!rapt rutina DDDDDD o)* goto o)* movwf incf btfsc clrf 0x00 40-+ 0x04 T=4P% BR"$A#,F BR"$A#,3 A <v&! PC &olazi pri uklju2!nju i r!"!tu A <&lazak na *lavni pro*ra

movf bcf retfie

A <v&! 0! po2!ti rutina za obra&u int!rapta A Privr! !no 2uvanj! "a&raja U r!*i"tra A Inkr! !ntuj 5C<78C$ 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 BR"$A# A -pi"i $+ u 5C<78C A -koliko j! 5C<78C nakon inkr! !ntacij! A pr!kora2io ak"i alnu vr!&no"t ($P) A "a&a j! $+ A -koliko nij!# "a&a j! inkr! !ntovan$ T=4P%,% A >rati pr!t;o&ni "a&raj U r!*i"tra I;T#";,I;TF A <brii I'TF O &ozvoli nov! int!rapt! A Graj int!rapt rutin!$ O inicijalizacija DDDDDD

A DDDDDD ?lavni pro*ra 40-+ movlw movwf bsf movlw movwf clrf bcf bcf bcf clrf

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) I;T#"; A Inicijalizuj I'TC<' r!*i"tar STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1 0x01 A bQ+++++++1Q u TCIS5 TRISB A C5+MI'T kao ulaz# a o"tali kao izlaz TRISA A Svi pinovi na P<CT8 "u izlazni "PTI";:R=',I;T=(' A Int!rapt "! izaziva pri A opa&aju0oj ivici "i*nala "PTI";:R=',;"T:RBPU A -klju2!ni int!rni Ipull upJ A otpornici na P<CT5 STATUS,RP0 A Povratak u 58'G+ BR"$A# A Stavi $+ u 5C<78C O p!tlja DDDDDD A Inv!rtovani 5C<78C u U r!*i"tar (zbo* :=3) A a o&atl! u P<CT8 A >rati "! na po2!tak p!tlj!

A DDDDDD ?lavni pro*ra P)comf movwf goto

BR"$A#,% P"RTA P)-

A DDDDDD Graj pro*ra a DDDDDD e+d A Graj pro*ra a$

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! i p!&an"! (kao &a nij! ni pov!zan)$ Pin C84 razlikuj! "! o& o"tali; i po "vo ulazu$ -laz u j! "a 6 itovi oki&a2! $ To o o*u0ava bolji prij! "i*nala "a pri"u"tvo u a (npr$ "a u&alj!no* "!nzora)$ Gako j! ovaj pro*ra &at "a o 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 "a i 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 &!li i2no (ST8T-S i I'TC<') nau2!na r!*i"tra$ Sl!&i jo j!&an &!o "a int!rapti a# a on&a n!to novo$

68

22. T (&ero& #1 1v '# #'"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 I'TC<' r!*i"tra$ b-&7 'I=

o! o"tvariti# upozna0!t! "! "a int!rno

"trukturo b-&0 RBIF

==I=

T0I=

I;T=

RBI=

T0IF

I;TF

?I= (!n*$ *lobal Int!rrupt Enabl!) o o*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!) o o*u0!n j! zavr!tak "ni anja 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! C5+ pina ikrokontrol!ra kao izvora int!rapta$ &ozvoljava kori0!nj!

S!tovanj! C5I= (!n*$ Port , C;an*! Int!rrupt Enabl!) bita# o o*u0!na j! upotr!ba P<CT5 r!*i"tra kao izvora int!rapta pri pro !ni lo*i2ko* "tanja na C54 &o C5P pinovi a$ 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 pinovi a C54 &o C5P$

Int!rapt 9la*ovi "! n! r!"!tuju auto at"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*ra i a 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 r!*i"tru$ b-&7 b-&6 b-&5 b-&4 !nja b-&3 !"ta *ornj! b-&2 i &onj! b-&1 niblu u 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 a "a & j! o&r!%!no o&r!&it! r!zultata op!racij!$

"! izvrava op!racija#

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 "a o 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*ra a (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*ra a$ 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*ra a 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)* goto o)* movwf 0x00 40-+ 0x04 T=4P% A <v&! PC &olazi pri uklju2!nju i r!"!tu A <&lazak na *lavni pro*ra A <v&! 0! po2!ti rutina za obra&u int!rapta A .uvanj! "a&raja U r!*i"tra u T=MPU P+

swapf movwf movf

STATUS,% T=4PSTATUS SP"RTA,%

A ST8T-S "a okr!nuti niblovi a u U A i zati u T=MPST8T-S r!*i"tar 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 niblovi a 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 "a o A T=MPU r!*i"tru# swapf T=4P%,% A a &ru*i put "a U kao o&r!&it! $ return A Graj potpro*ra a$ A DDDDDD Cutina za obra&u int!rapta izazvano* taj !ro DDDDDD T0> decfsz BR"$A#3,, A S anji 5C<78CK$ xorlw b'00000100' A Pro !ni "tanj! bita za :=3K u U A ?ornja in"trukcija izvrava "! u "vi "lu2aj!vi a 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 "! "a o 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 40-+ bsf movlw movwf clrf movlw

O inicijalizacija DDDDDD

movwf bcf clrf clrf movlw

movwf

STATUS,RP0 A Pr!bacuj! pro*ra u 58'G1 0x01 A bQ+++++++1Q u TCIS5 TRISB A C5+MI'T kao ulaz# a o"tali kao izlaz TRISA A bQ+++++Q u TCIS8# "vi pinovi P<CT8 "u izlazni 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 "PTI";:R=' A STATUS,RP0 A Povratak u 58'G+ T4R0 A Inicijalizacija taj !ra SP"RTA A Inicijalizacija S;a&&oR r!*i"tra 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) 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 Pe& decfsz goto decfsz goto return za kanj!nj! o& oko +#@S DDDDDD BR"$A#1,F A <v! &v! p!tlj! "lu! za brojanj! na&ol! o& Pe& A @FF &o +# @FF puta# o o*u0avaju0i na &a BR"$A#2,F A o! o vi&!ti kako :=31 tr!p!ri Pe& A Povratak iz potpro*ra a A Graj pro*ra a

A DDDDDD Graj pro*ra a DDDDDD e+d

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*ovi a$ 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 !li o po"lati u nj!*a$ - &!lu "a t!"tiranj! int!rapta o!t! pri !titi &a j! t!"tiran "a o int!rapt 9la* pr!ki&a2a$ To j! "a"vi nor alno# 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*ra a 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*ra a ko2i izvr!nj! *lavno* pro*ra a$ - *lavno pro*ra u 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*ra a$ 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!$ ilu"truj! upi"ivanj! vr!&no"ti +N++ u r!*i"tr! o& +N@+ &o +N@F$ b'00100000' A Inicijalizacija point!ra FSR A na r!*i"tar +N@+ I;(F A In&ir!ktno bri"anj! !lj!no* r!*i"tra FSR,F A Pozicioniranj! point!ra na "l!&!0i r!*i"tar FSR,4 A Pr!kora2!nj!? +NK+ V bQ++11++++Q Pe& A 'ij!# na"tavi "a bri"anj!

Sl!&!0i pro*ra movlw movwf clrf incf btfss goto

Pe&

A 7!"t!# na"tavak pro*ra a$ 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*ra i a 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 &!li i2nu upotr!bu &va r!*i"tra o& ukupno 1F$ Pr!li "t! najv!0i (i najt!i O int!rapti) &!o *ra&iva# !%uti i a "! jo no*o to*a nau2iti$

P4

24. EEPRO+ &e&or#(


Za i"lit! &a i at! 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 kli a 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 ko pjut!ra i zabrinuto I7ao &o%it! ka"nij!# n! ra&! na t!r inaliJ)# i PIC (koji "! tako%! r!"!tovao) kr!0! "a ra&o inicijalizuju0i u "vo broja2u 1 o"obu (u nor alno 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&! kli a ur!%aji i o"v!tlj!nj!# a "!nzori pokr!ta uklju2uju alar i &ojavljuju plja2ku bank! policiji$ Zna zna $ 7!&an anji aku ulator 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 zapa ti 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"tri a$ 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 "ni anja 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 "ni anj! u ==PC<M# upoznajt! int!rnu "trukturu ==C<'1 r!*i"tra$ b-&7 H

==IF

%R=RR

%R=;

%R

b-&0 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 "ni anja 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& "ni anja 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!" "ni anja ("a&raj ==83C i ==38T8 r!*i"tra n! !nja "! nakon r!"!ta)$ UC=' (!n*$ .rit! E'abl!) bit ==PC<M$ ora biti "!tovan# &a bi bio o*u0 upi" u ! oriju$ ! orij!$ ! orij!$

UC (!n*$ .rit!) bit kori"ti "! za iniciranj! upi"a u ==PC<M C3 (!n*$ R!ad) bit kori"ti "! za iniciranj! 2itanja iz ==PC<M ! orij"k! a&r!"! +N1+ iz ==PC<M

Po*l!&ajt! najpr! pri !r 2itanja bcf movlw movwf bsf bsf bcf movf

STATUS,RP0 0x10 ==A(R STATUS,PR0 ==#";1,R( STATUS,RP0 ==(ATA,%

A Pr!bacuj! na" u 58'G+ zbo* ==83C A E!li o pro2itati "a&raj ==PC<M A ! orij! "a a&r!"! +N1+ A Pr!bacuj! na" u 58'G1 A Inicira proc!" 2itanja A ==PC<M ! orij! A Pr!bacuj! na" u 58'G+ 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 auto at"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 "ni anj! bajta +N@4 u ==PC<M a&r!"u +N1+$ bcf movlw movwf movlw movwf bsf bcf bsf movlw movwf movlw movwf bsf bsf bcf STATUS,RP0 0x24 ==(ATA 0x10 ==A(R STATUS,RP0 I;T#";,'I= ==#";1,%R=; 0x55 ==#";2 0xAA ==#";2 ==#";1,%R I;T#";,'I= ==#";1,%R=; A Pr!bacuj! na" u 58'G+ A 5ajt za "ni anj! A u ==38T8 A na a&r!"u A +N1+ A Pr!laz u 58'G1 zbo* ==C<'1 A Zabrana "vi; int!rapta (ukoliko i; i a) A 3ozvola pi"anja u ==PC<M A A A Inicijalizacija upi"a u ==PC<M A A A 3ozvola int!rapta (ukoliko "! kori"t!) A Zabrana &alj!* pi"anja u ==PC<M P6

Sni anj! 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*ra u$ Iz i"to* razlo*a UC=' bit j! potr!bno &rati "!tovani j!&ino za vr! ! upi"a u ==PC<M$ UC bit "! auto at"ki r!"!tuj! po zavr!tku upi"a$ - "lu2aju "!rij"ko* "ni anja po&ataka u ==PC<M# potr!bno j! pr! "l!&!0!* "ni anja prov!riti "tanj! ovo* bita# kako "! n! bi &!"ilo iniciranj! novo* upi"a u ==PC<M a &a pr!t;o&no "ni anj! jo nij! zavr!no$ To j! obav!zno# j!r "ni anj! 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 nor alni ra&o $ Morao bi "! o&l! iti "a ta pan! plo2ic! i ponovo pro*ra irati (u ikrokontrol!r "! "a pro*ra o "ni a i "a&raj ==PC<M ! orij!)$ - "l!&!0! po*lavlju upozna0!t! "! "a pro*ra o koji kori"ti ==PC<M ! oriju i nau2i0!t! upotr!bu ==IF bita i proc!" upi"a po&ataka u ==PC<M iz "a o* a"! bl!ra$ 'a taj na2in "! "a&raj ==PC<M ! orij! o! 2uvati zaj!&no "a pro*ra o 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&aci a 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 pinovi a C54BC5P) i &va "o9tv!r"ka (pr!kora2!nj! taj !ra i zavr!tak "lanja po&atka u ==PC<M)$ I a 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*ra i a ko& koji; j! potr!bno za vr! ! "ni anja u ==PC<M izvravati &ru*! op!racij!# kako ikrokontrol!r n! bi *ubio vr! ! 2!kaju0i (2ak 1+ S) na zavr!tak "ni anja$ 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*ra o koji po priti"ku na ta"t!r !nja "tanj! na :=3 &i"pl!ju o& Y &o +# i "ni a *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 zapa 0!na vr!&no"t (to j! i bio cilj u pri !ru "a banko )$ ?lavni pro*ra i a0! j!&ino 9unkciju u2itavanja i "ni anja 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*ra a o2i*l!&no j! &a int!rapt rutina traj! &al!ko &u! o& "a o* *lavno* pro*ra a$ To "! ov&! o! tol!ri"ati$ =l!ktri2na ! a j! i"ta kao u &!lu "a tab!la a$ 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 "ni a (+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)* goto o)* movwf swapf movwf 0x00 40-+ 0x04 T=4P% STATUS,% T=4PSTATUS A <v&! PC &olazi pri uklju2!nju i r!"!tu A <&lazak na *lavni pro*ra A <v&! 0! po2!ti int!rapt rutina A .uvanj! "a&raja U r!*i"tra u T=MPU A ST8T-S "a okr!nuti niblovi a u U A i zati u T=MPST8T-S r!*i"tar P8

A DDDDDD T!"t pr!ki&a2a DDDDDD bcf STATUS,RP0 #e@1 btfss goto goto btfss goto #e@2 btfsc goto goto btfsc goto P"RTB,0 #e@1 P0! P"RTB,0 #e@1 P"RTB,0 #e@2 P0! P"RTB,0 #e@2

A Povratak u 58'G+ O u *lavno A pro*ra u pr! "koka na int!rapt rutinu A pro*ra "! izvravao u 58'G1 A T!"tiranj! otput!no"ti pr!ki&a2a A 'ij! otput!n A 7!"t! otput!n$ I&i na pauzu$ A 7o j!&no t!"tiranj! zbo* i uno"ti na A !v!ntualna varni2!nja kontakta$ A T!"tiranj! priti"nuto"ti pr!ki&a2a A 'ij! priti"nut A 7!"t! priti"nut$ I&i na pauzu$ A 7o j!&no t!"tiranj! zbo* i uno"ti na A !v!ntualna varni2!nja kontakta$

A DDDDDD Prikaz ci9r! na &i"pl!ju DDDDDD movf (ISP,% A 3ISP u U call T0b2 A -z i 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 S anji 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 movwf swapf swapf bcf retfie T=4PSTATUS,% STATUS T=4P%,F T=4P%,% ==#";1,==IF A T=MPST8T-S "a okr!nuti niblovi a A u U$ 3va puta okr!nuti niblovi &aju A prvobitno "tanj! koj! i&! u ST8T-S A 7!&no okr!ni niblov! u "a o A T=MPU r!*i"tru# A a &ru*i put "a U kao o&r!&it! $ A 3ozvola novi; int!rapta 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!li o 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 -z i obrazac iz tab!l! i movwf P"RTB A Prikai ci9ru na &i"pl!ju A DDDDDD Sni anj! u ==PC<M DDDDDD '20 movf (ISP,% movwf ==(ATA movlw 0x00 movwf ==A(R bsf STATUS,RP0 bsf ==#";1,%R=; movlw 0x55 movwf ==#";2 movlw 0xAA movwf ==#";2 bsf ==#";1,%R J)0> btfss goto ==#";1,%R J)0> A 3ISP u U A pa u ==38T8 A na a&r!"u A +N++ A Pr!bacuj! na" u 58'G1 zbo* ==C<'1 A 3ozvola pi"anja u ==PC<M A A A <tklju2avanj! upi"a u ==PC<M A A A T!"t zavr!tka "ni anja

A - ovo tr!nutku "ni anj! 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 bcf goto ==#";1,%R=; STATUS,RP0 '20 A Zabrana pi"anja u ==PC<M A Povratak u 58'G+ A Povratak na po2!tak pro*ra a

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 retlw retlw

b'00001110' b'11111110' b'11011110'

A <brazac za crtanj! ci9r! P B A <brazac za crtanj! ci9r! 8 B A <brazac za crtanj! ci9r! Y B

7 8 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*ra a A DDDDDD Graj pro*ra a DDDDDD e+d A Graj pro*ra a

Priliko "ni anja 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*ra a 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*ra u 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!"a a o& @1N++ &o @1NK;)# najprakti2nij! j! "taviti j! i"pr!& ili iza pro*ra a# kako "! n! bi &!"ilo &a "! i pro*ra *r!ko upi! u ==PC<M$ Pri " !tanju vi! bajtova u ==PC<M# zar!zo # ovako/ &! +N+F# +N88# +NPY$$$ o!t! bajt po bajt iza 3= &ir!ktiv! o&vojiti

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*ra a 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 "ni anj! 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 "ni aju0i 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 "! zabraniti$ orali privr! !no

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 "ituacija a ka&a j! potr!bno r!alizovati ta2no o&r!%!no# ili kratko kanj!nj! (npr$ u p!tlja a kanj!nja ili &!bouncin* rutini)$

81

26. S$ee% &od A %o( &


Pr!tpo"tavi o &a !lit! napraviti ;i&ro!l!ktranu$ 3a bi"t! prov!rili &a li r!ka i a &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 aku ulatora$ '!*ativni pol aku ulatora ( a"a) "poj!n j! "a r!ko # a o2itavanj! nivoa vo&! "! vri int!rapto pri pro !ni "tanja na pinovi a C54 &o C5P# koji "u pov!zani "a o&*ovaraju0i "on&a a na po Fc &ubin!$ Ga&a j! nivo vo&! i"po& najni! "on&!# na "vi pinovi a 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 pinovi a lo*i2ka +$ Mikrokontrol!r j! pov!zan "a &i*italni 2a"ovniko i &o&atno ==PC<M ! orijo # koji u o o*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 "a o povr! !no (u tr!nutku pov!0anja ili " anj!nja nivoa vo&!)# i v!o a 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 "a o 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 aku ulatora$ S:==P I"pavaju0iJ o& pr!&"tavlja "tanj! u koj! "! ikrokontrol!r nalazi u r!i u " 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! i p!&an"!)$ Za naj anju 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 FZ8$ -koliko >a j! potronja "truj! izuz!tno bitna# ikrokontrol!ra "p!cijalno napravlj!nu za ra& "a to anjo o!t! kupiti v!rzuju potronjo "truj!$ ikrokontrol!r o!

- S:==P o& ulazi "! S:==P in"trukcijo # a iz nj!*a "! Iprobu&itiJ na tri na2ina$ 1$ 3ovo%!nj! lo*i2k! nul! na MC:C pin r!"!t ikrokontrol!ra$ >i! o r!"!tu# u i&u0i @$ C!"!to pr!ko i"t!ka vr! !na U3T$

ikrokontrol!ra# to prouzrokuj! po*lavlji a$

K$ Int!rapto na C5+MI'T pinu# int!rapto r!*i"tru# bitovi a 4 &o P# ili int!rapto ==PC<M$

pri pro !ni "tanja na P<CT5 izazvani zavr!tko upi"a u

8@

Int!rapt izazvan taj !ro n! o! "! kori"titi za bu%!nj! iz S:==P S:==P o&u i taj !r u"pavan$

o&a# j!r j! u

-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 H

RP0

T"

P(

(#

b-&0 #

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 Jnulto S 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!njaMpozaj ic! ci9r!J in&ikuj! pr!kora2!nj! ili pozaj icu &onj! niblu na"talu zbo* izvravanja in"trukcija "abiranja ili o&uzi anja$ :o*i2ka j!&inica na C (!n*$ CarrWMborroR) bitu Ibitu pr!kora2!njaMpozaj ic!J ukazuj! &a j! &olo &o pr!kora2!nja ili pozaj ic! u bajtu na& koji "u "! izvril! op!racij! "abiranja# o&uzi anja ili rotacij!$

Gao to vi&it! iz "a o* 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!rapti a$ - "l!&!0! "! "a "p!ci9i2no"ti a upotr!b! int!rapta u S:==P o&u$ po*lavlju upozna0!t!

8K

26. ,3Be'(e #1 S$ee% &od


5u%!nj! iz S:==P o&a int!rapti a razlikuj! "! o& obi2ni; int!rapta po to ! to j! o*u0! &a "! u !"to "koka na int!rapt rutinu# izvravanj! pro*ra a 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*ra u$ 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*ra a# 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*ra o 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 ko binaciju 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 ko binacija "! prikazuj! na :=3 &i"pl!ju u ;!k"a&!ci alno 9or atu$ 'akon po"tavlj!no* !lj!no* broja priti"n! "! TF izazivaju0i novi int!rapt (C5+)$ Stanj! po"tavlj!no na &i"pl!ju "ni a "! u ! oriju ikrokontrol!ra pri !no in&ir!ktno* a&r!"iranja$ Po"tupak "! ponavlja "v! &ok "! n! "ni i F ko binacija$ - &ru*o &!lu# ikrokontrol!r "! ponovo u"pavljuj! ali tako &a int!rapt prouzrokuj! nj!*ovo bu%!nj! i na"tavak pro*ra a b!z "koka na int!rapt rutinu$ Po izazivanju int!rapta (TF) "ni lj!n! ko binacij! "! 2itaju i prikazuju na &i"pl!ju "a uklju2!no &!ci alno ta2ko ("!* !nt &p na &i"pl!ju)$ 'akon F prikazani; ko binacija# 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 ko binacijo pinova P<CT8 i P<CT5 r!*i"tra (ta2nij! pinovi a 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 "ni anj! "tanja pr!ki&a2a o)* goto 0x00 40-+ A <v&! PC &olazi pri uklju2!nju i r!"!tu A <&lazak na *lavni pro*ra 84

A DDDDDD Int!rapt rutina za prvi &!o pro*ra o)* 0x04 movwf T=4P% swapf STATUS,% movwf T=4PSTATUS swapf andlw

a O nor aln! int!rapt! DDDDDD A <v&! 0! po2!ti int!rapt rutina A .uvanj! "a&raja U r!*i"tra u T=MPU A ST8T-S "a okr!nuti niblovi a u U A i zati u T=MPST8T-S r!*i"tar

P"RTB,% A -z i "tanj! "a porta i za !ni "tanj! niblova$ 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 "ni anj! 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*ra a A DDDDDD Int!rapti izazvani pr!ki&a2i a T1 &o T4 DDDDDD call T0b2 A -z i "liku za &i"pl!j iz tab!l!$ 8F

call call bcf retfie G)0& swapf movwf swapf swapf return

;0c) A 'acrtaj "liku$ G)0& A >rati "a&raj U i ST8T-S r!*i"tra I;T#";,RBIF A <brii int!rapt 9la* pr!ki&a2a T1 &o T4 A >rati "! iz int!rapt potpro*ra a T=4PSTATUS,% STATUS T=4P%,F T=4P%,% A T=MPST8T-S "a okr!nuti niblovi a A u U$ 3va puta okr!nuti niblovi &aju A prvobitno "tanj! koj! i&! u ST8T-S A 7!&no okr!ni niblov! u "a o A T=MPU r!*i"tru# A a &ru*i put "a U kao o&r!&it! $ A Povratak iz potpro*ra a$

A DDDDDD Tab!la DDDDDD T0b2 addwf P#E,F retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A DDDDDD Potpro*ra ;0c) movwf movwf swapf movwf return

A >r!&no"t u U o& bQ++++++++Q &o bQ++++1111Q A (+N++ &o +N+F) "! &o&aj! na PC: A b!z &!ci aln! ta2k! b'00011000' A <brazac za crtanj! ci9r! + B 0 b'00111111' A <brazac za crtanj! ci9r! 1 B 1 b'10010100' A <brazac za crtanj! ci9r! @ B 2 b'00010110' A <brazac za crtanj! ci9r! K B 3 b'00110011' A <brazac za crtanj! ci9r! 4 B 4 b'01010010' A <brazac za crtanj! ci9r! F B 5 b'01010000' A <brazac za crtanj! ci9r! 6 B 6 b'00011111' A <brazac za crtanj! ci9r! P B 7 b'00010000' A <brazac za crtanj! ci9r! 8 B 8 b'00010010' A <brazac za crtanj! ci9r! Y B 9 b'00010001' A <brazac za crtanj! ci9r! 8B A b'01110000' A <brazac za crtanj! ci9r! 5 B B b'11010000' A <brazac za crtanj! ci9r! C B C b'00110100' A <brazac za crtanj! ci9r! 3 B D b'11010000' A <brazac za crtanj! ci9r! = B E b'11010001' A <brazac za crtanj! ci9r! F B F

za crtanj! "lik! na &i"pl!ju DDDDDD P"RTA A Poalji u P<CT8 bitov! C8+ &o C84 T=4P A Poalji u T=MP r!*i"tar zbo* za !n! niblova T=4P,% A Za !ni !"ta niblovi a tako &a C51 bit &o&j! A na !"to bita 1 (i"to "! o*lo r!alizovati A i "a 4 CCF in"trukcij!) P"RTB A Poalji u P<CT5 bitov! C51 &o C5K A Povratak iz potpro*ra a$

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

movwf bcf "5e& movlw movwf

"PTI";:R=' STATUS,RP0 .32 FSR

A opa&aju0oj ivici "i*nala ("a 1 na +) A '<TLC5P-V+ B -klju2!ni int!rni A pull up otpornici na P<CT5 K PoI)0&0@ ! BA;J0 ! orij!

A Inicijalizacija point!ra C8M 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 -z i "tanj! "a porta i za !ni "tanj! niblova$ andlw b'00001111' A Ma"kiraj n!!lj!n! bitov! call T0b2 A -z i "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*ra a O "!tovan ?I=# nor alni 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! "ni lj!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 addlw btfss goto FSR,% .21B STATUS,# Poc A FSC u U A T!"t pr!kora2!nja$ FSC tr!ba biti o& $K@ &o $K6 A $KP i vi! H $@1Y V "!tovan CarrW A 7o n! a pr!kora2!nja$ Spavaj i &alj!$

A - ovo tr!nutku "ni lj!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 btfsc goto I;T#";,'I= I;T#";,'I= ?0b) A 7!"t!$ Zabrani nov! int!rapr! A Prov!ri j!"u li int!rapti zai"ta zabranj!ni A 'i"u# zabrani i; op!t$

A DD 3ru*i &!o pro*ra a O r!"!tovan ?I=# int!rapti a "! 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 movlw movwf

P"RTA,4 .32 FSR

A -klju2i "!* !nt &!ci aln! ta2k!$ A Inicijalizacija point!ra C8M ! orij! A na r!*i"tar $K@

A DDDDDD Zabrani bu%!nj! iz "l!!p o&a pr!ki&a2i a 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 S50 sleep ikrokontrol!r DDDDDD 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 A -troi j!&an in"trukcij"ki ciklu" A Pr!poru2ljivo nakon bu%!nja

nop A - ovo

tr!nutku priti"nut j! pr!ki&a2 TF$ I;(F,% T0b2 ;0c) P"RTA,4 FSR,F A In&ir!ktno 2itanj! !lj!no* r!*i"tra A -z i "liku za &i"pl!j iz tab!l!$ A 'acrtaj "liku$ A -klju2i "!* !nt &!ci aln! ta2k!$ A Pozicioniranj! point!ra na "l!&!0i r!*i"tar o*ao biti "a `<C

movf call call bcf incf

A T!"t pr!kora2!nja j! i"ti kao i ranij!# iako bi "a&a "lobo&no A op!racijo movf addlw btfss goto goto FSR,% .21B STATUS,# S50 "5e&

A FSC u U A T!"t pr!kora2!nja$ FSC tr!ba biti o& $K@ &o $K6 A $KP i vi! H $@1Y V "!tovan CarrW A 7o n! a pr!kora2!nja$ Spavaj i &alj!$ A I a pr!kora2!nja$ Po2ni pro*ra iz po2!tka$ A Graj pro*ra a

A DDDDDD Graj pro*ra a DDDDDD e+d

- 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*ra u# 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"cilacija a# 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 ko pl!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*ra a (!n*$ poolin*)$ <2i*l!&no j! &a bi ovakaj princip brojanja zauz!o najvi! r!"ur"a ikrokontrol!ra$ 3ru*i na2in j! int!rapti a$ 'ji a j! ikrokontrol!ru o"tavlj!no &ovoljno vr! !na za *lavni pro*ra # a ipak o! pravovr! !no o&*ovoriti na "poljn! i pul"!$ - prak"i "! 2!"to javlja potr!ba za brojanj! v!0i; vr!&no"ti# pri 2! u "! r!zolucija broja2a zaokruuj! na &ovoljan broj &!ci ala$ 3a li >a j! toliko bitna razlika u brzini o& +#++@Fk M; ukoliko v!0 vozit! biciklu pr!ko K+k M;? 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 i pul"! "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+ i a 9unkciju broja2a (!n*$ Count!r)$ 6ta "! &obija upotr!bo ovakvo* broja2a? - !"to &a "! int!rapt izaziva priliko "vako* i pul"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* i pul"a$ Tako za *lavni pro*ra o"taj! no*o vi! r!"ur"a$ <*rani2!nj! ini alno* trajanja lo*i2k! + i lo*i2k! 1 o*rani2!n j! i ak"i alni 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; i pul"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*ra a po2n! iz po2!tka$ PIC16F84 i a 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 no inalno* 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 no inalnu 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[$ - ! a a 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! 6 itov oki&a2 koji i a ulo*u 9iltriranja "labi; i pul"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*ra a$ Iako r!"!t prv!n"tv!no "lui za ponovni "tart pro*ra a# 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*ra a$ TO 1 1 + + 1 1 1 :D 1 + + 1 + 1 1 8ta/1e Stanj! nakon izvr!nja C:CU3T in"trukcij! Stanj! nakon izvr!nja S:==P in"trukcij! U3T r!"!t za vr! ! S:==P MC:C r!"!t za vr! ! S:==P o&a o&a ili bu%!nj! int!rapto U3T r!"!t za vr! ! nor alno* izvravanja pro*ra a MC:C r!"!t za vr! ! nor alno* izvravanja pro*ra a P<C r!"!t pri &ola"ku napona napajanja o!t! vi&!ti inicijalno "tanj! "vi; r!*i"tara nakon r!"!ta$

- prilo*u ovo* uput"tva

Y+

):. Sr5e &#0ro0o'"ro$er


I"to kao to >a! "rc! pu pa krv o&r!%!ni rit o # ikrokontrol!r za "voj pravilan ra& ora i ati ta2no po&!!n! taktn! i pul"!$ <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$ Fre!6. ;<.5= @6 8K @4K K11 4@8 PF6 'ajj!9tiniji j! "vakako CC o"cilator# kori0!n u &o"a&anji ! a a$ Sa"toji "! "a o o& kon&!nzatora i otpornika$ - tablici "u &at! vr!&no"ti otporno"ti i kapacitivno"ti za &obijanj! !lj!ni; 9r!kv!ncija$ 1K4+ KF++ @66+ 461+ <apa0. ;pF= K++ 1++ K++ @+ K++ 1++ 1++ KK @+ @+ Otp*r/* t ;!>= 1++ 1++ 1+ 1++ F 1+ F F 1+ 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"i aln! 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!ri a (naalo"t n! u PIC16F84) nalazi "! int!*ri"ani ;ar&v!r"ki CC o"cilator$ Zbo* pr!ciznij!* takta# Microc;ip kalibracioni niz "ni a 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&i a 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"!zi a$ Zbo* to*a "! o! u !"to "a o otpornika uklju2ivati &o&atni CC 2lan$ >i! o ovo principu i at! na "ajtu ;ttp/MMRRR$ro anblack$co M u &!lu PIC Rit; @ clock "p!!&"1 -koliko j! potr!bno ra& ikrokontrol!ra "in;ronizovati "a !k"t!rni ur!%aji a# 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 i p!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/ Fre!6. ;<.5= K@ @++ 1++ 4FF @+++ <tpornik j! potr!ban "a o 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!ncija a$ 4+++ 8+++ 16+++ @++++ <apa0. ;pF= 68B1++ 1FBK+ 68B1F+ @@B1++ 1FB68 1FB68 1+B68 1+B@@ FB1+ <*/9"-. +"t*6" :P :P `T `T `T `T ,S ,S ,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"tika a proizvo%a2a kri"tala$ Y@

-koliko !lit! i ati 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 i aju kri"tal# *r!ja2 i t!r o"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!r o"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 ini alan$ Gako "u takvi kri"tali (i takva ku0ita) &o"ta "kuplji o& obi2ni;# o!t! i; "a i napraviti "l!&!0i uput"tva "a "ajta ;ttp/MMRRR$ro anblack$co M u &!lu Si pl! Ntal ov!n 9or accurat! clock"$ G!ra i2ki o"cilator obi2no j! zaj!&no "a kon&!nzatori a "pakovan u zaj!&ni2ko tropin"ko ku0it!$ Takvi !l! !nti nazivaju "! k!ra i2ki 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 o o*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 naj anji o*u0i poja2anj! # uz u"lov &a "! nji ! o! po"ti0i !lj!na brzina o"cilatora$ Za &!talj! o tipovi a o"cilatora# po*l!&ajt! 8'F88 "a ;ttp/MMRRR$ icroc;ip$co M$ .!"tita 1 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*ra a izvrava F puta# potr!bno brojanj! o!t! i pl! !ntovati "abiranj! # o&uzi anj! # inkr! !ntacijo # &!kr! !ntacijo pa 2ak i rotacijo $ "l!&!0i po*lavlji a upozna0!t! "! "a naj2!0! kori0!ni "o9tv!r"ko ;ar&v!r"ki t!;nika a 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*ra a$ - 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! za oran pr!lazak iz bank! u banku? Go bi pa tio 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"tavi o &a "t! i !nu P8-Z8 pri&ruili &!ci alnu vr!&no"t 1++$ -nutar potpro*ra a tu vr!&no"t kori"tit! kao broj ili"!kun&i$ Pr!tpo"tavi o &a va u pro*ra u zatr!ba pauza &uplo &u!* trajanja$ - !"to i !novanja jo j!&no* broja# o!t! napi"ati "l!&!0!/ movlw call PAU?A L 2 A P8-Z8 D @ V $@++ #e@0> A I&i na potpro*ra o!t! napi"ati/

'a i"ti na2in za &uplo kra0u pauzu movlw call

PAU?A H 2 A P8-Z8 M @ V $F+ #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 !"ti a$ <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 L H M C D

n!*acija (po &ru*o ko pl! !ntu) no!nj! &!lj!nj! o&uo (o"tatak pri &!lj!nju) "abiranj! o&uzi anj!

E!lj!ni priorit!t op!racija o! "! &!9ini"ati za*ra&a a$ '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 ko pl! !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&a a$ '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*ra u i at! ovakav &!o/ TAST=R e ! btfsc goto goto 3 P"RTA,TAST=R P)-& "&5! A Ta"t!r j! pov!zan na C8K pin A 3a li j! ta"t!r priti"nut? A 7!"t! A 'ij! &!la t!k"ta za

i &alj! j! potr!bno pa titi na ko ti n! a potr!b!$ 7de,-+e btfsc goto goto TAST=R TAST=R P)-& "&5!

j! portu pov!zan ta"t!r$ Za !no P"RTA,3

A Za !ni izraz A P<CT8#K r!2ju T8ST=C A 3a li j! ta"t!r priti"nut? A 7!"t! 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 Te3& 10c)o ex&e)+ btfsc goto goto e+d1 TAST=R P"RTA,3 A I !nuj! naziv! 5o)&,5-+ A <&r!%uj! ulazn! para !tr! P)-&,"&5! A <zna2ava &a "u lab!l! ili r!*i"tri A &!9ini"ani izvan akroa 5o)&,5-+ A 3a li j! ta"t!r priti"nut? P)-& A 7!"t! "&5! A 'ij! A 3ir!ktiva za oznaku kraja akroa

Ga& *o& j! unutar pro*ra a 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 "a o 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*ra u$ M!%uti # kako "! akro poziva iz "poljno* pro*ra a# po!ljno j! &a lab!l! i r!*i"tri unutar akroa n! &o%u u kon9likt "a &!lovi a pro*ra a 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*ra a i unutar akroa i ati 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 ko pl!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$co M$

YF

)2. Ko&e'" r#
'a po2!tku ovo* uput"tva# alo "! pri2alo o ko !ntari a$ - ovo po*lavlju upozna0!t! "! "a o&i9ikacija a za*lavlja tako &a >a bu&! prila*o%!nij!# i "a na2ini a ko !ntari"anja r!*i"tara koji i aju 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& 7-+c2!de ::#";FI' 5616F84 A 3!9ini! upotr!blj!ni ikrokontrol!r 8516F84.-+c9 A -bacuj! naziv! r!*i"tra u pro*ra :#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*ra a DDDDDD "R' 0x00 goto 40-+ A Start pro*ra a A

Y6

A DDDDDD Int!rapt potpro*ra DDDDDD "R' 0x04 movwf T=4P% swapf STATUS,% movwf T=4PSTATUS A Pro"tor za int!rapt potpro*ra $ B0c@ bcf bcf bcf bcf I;T#";,T0IF I;T#";,I;TF I;T#";,RBIF I;T#";,==IF

A .uvanj! "a&raja U r!*i"tra A ST8T-S "a okr!nuti niblovi a u U A i zati u T=MPST8T-S r!*i"tar

A 3ozvoli nov! int!rapt! taj !ra A 3ozvoli nov! int!rapt! pr!ki&a2a A 3ozvoli nov! int!rapt! po pro !ni "tanja A 3ozvoli nov! int!rapt! ==PC<MBa A T=MPST8T-S "a okr!nuti niblovi a A u U$ 3va puta okr!nuti niblovi &aju A prvobitno "tanj! koj! i&! u ST8T-S A 7!&no okr!ni niblov! u "a o A T=MPU r!*i"tru# A a &ru*i put "a U kao o&r!&it! $ A Povratak iz int!rapt rutin!$

swapf movwf swapf swapf retfie

T=4PSTATUS,% STATUS T=4P%,F T=4P%,%

A DDDDDD Po2!tak pro*ra a DDDDDD 40-+ b0+@3e2 TRISA movlw movwf movlw movwf movlw b'00000000' TRISA b'00000000' TRISB

A 58'G 1 A A Gon9i*uri"anj! pinova A A Gon9i*uri"anj! pinova

movwf b0+@3e2 movlw movwf movwf movlw movwf movwf

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 "PTI";:R=' A P"RTA b'00000000' P"RTA SP"RTA b'00000000' P"RTB SP"RTB A 58'G+ A A Inicijalizacija "tanja portova i A S;a&&oR r!*i"tara A A A YP

movlw

movwf S&0)&

b'00000000' A K RRRRRRRCDDDDD C5IF K RRRRRRCDDDDDD I'TF K RRRRRCDDDDDDD T+IF K RRRRCDDDDDDDD C5I= K RRRCDDDDDDDDD I'T= K RRCDDDDDDDDDD T+I= K RCDDDDDDDDDDD ==I= K CDDDDDDDDDDDD ?I= I;T#"; A

O +Vobrii O +Vobrii O +Vobrii O 1Vuklju2i O 1Vuklju2i O 1Vuklju2i O 1Vuklju2i O 1Vuklju2i

A Pro"tor za pro*ra !$ e+d A Graj pro*ra a

'a ovaj na2in pro*ra j! pr!*l!&niji n!*o ranij!# razu ljivij! 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*ra a (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*ra a# 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' A1 retlw b'10110110' A@ retlw b'10011110' AK retlw b'11001100' A4 retlw b'11011010' AF retlw b'11111010' A6 retlw b'00001110' AP retlw b'11111110' A8 retlw b'11011110' AY Mo!t! i; tako%! ubaciti i u 9or i akroa# to li"tin* pro*ra a 2ini pr!*l!&niji $

Priliko pi"anja pro*ra a n!ki put 0!t! kori"titi T85 a n!ki put par raz aka$ MP:85 za razliku o& o"tali; t!k"t !&itora za T85 po"tavlja 4 (u !"to 8) raz aka$ Zato j! &obro pr! ta panja li"tin*a pro*ra a &o&atno I"r!&itiJ $a" 9ajl$ Za to o!t! kori"titi 8SPICLFI` pro*ra "a ;ttp/MMRRR$! b!&inc$co M $ 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"tavi o &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 movwf movlw andwf bcf iorwf movwf movwf P"RTA,% A P<CT8 u U# SP"RTA A a o&atl! u S;a&&oR r!*i"tar b'00001000' A Ma"kiranj! "vi; o"i tr!0!* bita 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 SP"RTA,3 A C!"!tovanj! ranij!* "tanja tr!0!* bita SP"RTA,% A Po"tavljanj! "a o tr!0!* bita na novu vr!&no"t A C!zultat u U# P"RTA A a o&atl! u P<CT8 r!*i"tar i SP"RTA A u S,833<U r!*i"tar$

C!zultat 8'3 op!racij! na& bitovi a# bi0! 1 "a o 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!#(
Go pr!"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&atci a nalaz! prazni (n!i"kori0!ni) bitovi$ 'a pri !r# ukoliko j! potr!bno u ==PC<M "ni ati *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 "ni anja i po zavr!tku "ni anja "ni iti u npr$ za&njoj ==PC<M a&r!"i (+NKF)$ -koliko "! "ni aju "a o @ bita# on&a j! ra"poloiva ! orija u ko pr!"ovano "tanju 4 puta (8 bita M @ bita) v!0a o& ak"i aln!$ 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$ Go pr!"ija# nij! o*rani2!na "a o na ==PC<M ! oriju$ Mo! "! b!z probl! a kori"titi u obi2noj kao i u pro*ra "koj ! oriji u tab!la a$ 'or alno# u "lu2aju pro*ra "k! ! orij! po&atk! u tab!li nij! o*u0! !njati# v!0 "a o 2itati$ Pr!tpo"tavi o &a j! potr!bno prva &va bita iz r!*i"tara ST8'7=1# ST8'7=@# ST8'7=K i ST8'7=4 ko pr!"ovati u r!*i"tar ST8'7=$ movlw andwf movwf rlf rlf movlw andwf iorwf rlf rlf rlf rlf movlw andwf iorwf rrf rrf rrf movlw andwf iorwf b-&7 ST4.1 ST4.0 00000011b STA;$=1,% STA;$= STA;$=2,F STA;$=2,F 00001100b STA;$=2,% STA;$=,F STA;$=3,F STA;$=3,F STA;$=3,F STA;$=3,F 00110000b STA;$=3,% STA;$=,F STA;$=4 STA;$=4 STA;$=4 11000000b STA;$=4,% STA;$=,F ST3.1 A Ma"kiranj! n!potr!bni; bitova A Prva &va bita iz ST8'7=1 r!*i"tra u U A a o&atl! u ST8'7= r!*i"tar A Cotacija bitova tako &a A &o%u na pravo !"to A Ma"kiranj! n!potr!bni; bitova A Sl!&!0a &va bita iz ST8'7=@ r!*i"tra u U A a o&atl! u ST8'7= r!*i"tar A Cotacija bitova tako &a A &o%u na A pravo A !"to A Ma"kiranj! n!potr!bni; bitova A Sl!&!0a &va bita iz ST8'7=K r!*i"tra u U A a o&atl! u ST8'7= r!*i"tar A Cotacija bitova A tako &a &o%u A na pravo !"to A Ma"kiranj! n!potr!bni; bitova A Za&nja &va bita iz ST8'7=4 r!*i"tra u U A a o&atl! u ST8'7= r!*i"tar b-&0 ST1.0

STA;$= ST3.0 ST2.1

ST2.0

ST1.1

1++

Proc!" vra0anja u prvobitno "tanj! (iz ST8'7= u ST8'7=1# ST8'7=@# ST8'7=K i ST8'7=4) naziva "! &!ko pr!"ija$ movf movwf rlf rlf movf movwf rlf rlf movf movwf rlf rlf movwf STA;$=,% STA;$=1 STA;$=,F STA;$=,F STA;$=,% STA;$=2 STA;$=,F STA;$=,F STA;$=,% STA;$=3 STA;$=,F STA;$=,% STA;$=4 A ST8'7= u U A Prva &va bita u ST8'7=1 A Cotacija bajtova tako &a A &o%u na pravo !"to A ST8'7= u U A Sl!&!0a &va bita u ST8'7=@ A Cotacija bajtova tako &a A &o%u na pravo !"to A ST8'7= u U A Sl!&!0a &va bita u ST8'7=K A Cotacija bajtova tako &a A &o%u na pravo !"to A Za&nja &va bita u ST8'7=4

- ovoj &!ko pr!"iji na ta2nu vr!&no"t po"tavlj!ni "u "a o nulti i prvi bit u "vako r!*i"tru# a "tanj! o"tali; bitova zavi"i o& "tanja bitova u o"tali r!*i"tri a$ -koliko j! to n!po!ljno# o"tali bitovi o*u "! "!tovati ili r!"!tovati a"kiranj! $ B"t*6a 5a :*tre+a/ !*%pre "1u +r*1 #e,*6a 1 @ K 4 F 6 P 8 8 4 8 @ 8 4 8 1 B"t*6a 5a pu/e +a1t*6e 8 (1) 8 (1) @4 (K) 8 (1) 4+ (F) @4 (K) F6 (P) 8 (1) 'a i"ti na2in o*u0! j! izvriti ko pr!"iju i &!ko pr!"iju po&ataka koji "a&r! vi! o& 8 bitova# "a ti to "! on&a po&atci uv!k "ni aju u vi! o& j!&no* bajta$ <"i ovo*# po"toj! i no*o ko plikovaniji na2ini ko pr!"ij! (npr$ ZIP al*orita )$ 5u&u0i &a oni pr!vazilaz! okvir! ovo* uput"tva# ov&! n!0! biti raz atrani$ Sa ko pr!"ijo broja bitova "a koji a o" obitni bajt nij! &!ljiv# po"tupak j! alo t!i$ Potr!bno j! o&r!&iti ini alan broj puni; bajtova# ko pr!"ovati bitov! u nji;# a zati i; r!&o "ni ati u ! oriju$

I ajt! na u u &a "! ==PC<M ! orija ItroiJ za vr! ! "ni anja$ Zbo* to*a nij! po!ljno "ni ati "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 "ni iti 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*orit o / movlw xorwf btfsc goto goto .5 BR"$,% A 5roj F? A -por!&i 3a

ZV+? STATUS,? A I9 Z V + I3&A !l"! *oto I"ti R0S2-c-&- A t;!n *oto Cazliciti '! I"ti

Cazli2iti

Gao to pri !0uj!t!# u pro*ra u "! 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! o o*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*ra a) 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 xorwf btfss goto I3&- ... .12 BR"$,% A 5roj 1@? A -por!&i 3a STATUS,? A I9 Z V 1 R0S2-c-&- A !l"! *oto Cazliciti A t;!n I"ti ZV1? '! Cazli2iti

R0S2-c-&- ...

A Cazliciti

I"ti

Iako j! j!&no"tavnij! al*orit ! t!"tiranja o*u0! napraviti b!z &v! *oto in"trukcij!# &ok n! u"avrit! pro*ra iranj! 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*orit u koji broji o& @F &o +/ movlw movwf S10+ decfsz goto B)o>0 .25 BR"$ BR"$,F S10+ A $@F A u 5C<7 A 5C<7V+? A 'ij!# vrati "! A 7!"t!$ 3a

S anji 5C<7 5C<7V+? '! >rati "!

1+@

)6. U!$ov'o !e&b$#r '(e


Pr!tpo"tavi o &a i at! 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&avnica a# 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*ra a? Mora &a po"toji bolji na2in1 MP:85 a"! bl!r "a&ri par u"lovni; &ir!ktiva$ 'ji a "! u zavi"no"ti o& &ati; u"lova o! izabrati koji &!o pro*ra a 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*ra i a "! 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 xorwf btfsc goto movlw xorwf btfsc goto movlw xorwf btfsc goto goto Po"tupak j! ''' SE"G",% STATUS,? E0be21 'R' SE"G",% STATUS,? E0be22 '?' SE"G",% STATUS,? E0be23 E0be24 A Slovo J?S? A -por!&i A 3a li "u i"ti? A 7!"u# i&i na :ab!l1 A 'i"u$ Slovo JCS? A -por!&i A 3a li "u i"ti? A 7!"u# i&i na :ab!l@ A 'ij!$ 3a li j! to "lovo JZS A -por!&i A 3a li "u i"ti? A 7!"u# i&i na :ab!l@ A 'ij! na%!na o&*ovaraju0a vr!&no"t$ A I&i na :ab!l4 vi!"truko `<CBovani; vr!&no"ti/

o*u0! "kratiti por!%!nj! SE"G",% ''' STATUS,? E0be21

movf xorlw btfsc goto xorlw btfsc goto xorlw btfsc goto goto

A 5roj u U A 3a li j! to "lovo J?S? A 3a li "u i"ti? A 7!"u# i&i na :ab!l1

''' O 'R' A 3a li j! to "lovo JCS (? `<C (? `<C C) V C) STATUS,? A 3a li "u i"ti? E0be22 A 7!"u# i&i na :ab!l@ 'R' O '?' A 3a li j! to "lovo JZS (C `<C (C `<C Z) V Z) STATUS,? A 3a li "u i"ti? E0be23 A 7!"u# i&i na :ab!lK 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*ra a 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 t!"tiranj! Z!ro 9la*a$ movlw subwf btfss goto goto ''' SE"G",% STATUS,? R0S2-c-&I3&-

o! "! izvriti i o&uzi anj!

&va broja i

A Slovo J?S? A U V S:<>< B K+ A 3a li j! U V + (bi0! ka&a "u vr!&no"ti i"t!)? A >r!&no"ti "! razlikuju A >r!&no"ti "u i"t!

T!"tiranj! o&uzi anj! razu !vanj!$

vi! "! "r!0! u pro*ra i a$ >!rovatno j!r j! j!&no"tavnij! za

-koliko i at! 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&uzi anj! 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 subwf btfss goto goto .2 BR"$,% STATUS,# 40+>GecA@ A U V 5C<7 B @ A T!"tiraj pr!kora2!nj! A Ue+A 5C<7 e @ A UaV+A 5C<7 aV @

Priliko o&uzi anja broj @ "! !nja u "voj &ru*i ko pl! !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! 9or ula U V 5C<7 B @ u U V @ B 5C<7 &ru*a2ija "tanja$ 'a pri !r/ movf sublw btfss goto goto BR"$, % .2 STATUS,# Gec40+>A 5C<7 u U A U V @ B 5C<7 A T!"tiraj pr!kora2!nj! A Ue+A 5C<7 a @ A UaV+A 5C<7 eV @ o*u0! j! t!"tirati alo

I u ovo "lu2aju CarrW 9la* 0! biti "!tovan ka&a "u broj!vi j!&naki$ 3a bi !li ini"ali j!&nako"t o*u0! j! ko binovati j!&an o& ovi; al*orita a "a prov!ro j!&nako"ti/ movlw xorwf btfsc goto xorwf subwf btfss goto goto .2 BR"$,% STATUS,? I3&BR"$,% BR"$,% STATUS,# 40+>GecA@uU A -por!&i A 3a li "u i"ti? A 5C<7 V @ A >rati inicijalnu vr!&no"t (@) u U &upli `<C A - !"to ovo*a o*lo "! pi"ati i ovlR $@ A U V 5C<7 B @ A T!"tiraj pr!kora2!nj! A 5C<7 e @ 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 "a o j!&noj in"trukciji# to o o*u0ava laku iz !nu t!"tiran! vr!&no"ti$

1+6

T!"tiranj! j!&nako"ti o&uzi anj! in"trukcij!$ movlw subwf btfsc goto btfss goto goto .2 BR"$,% STATUS,? I3&STATUS,# Gec40+>-

u !"to `<CBovanj! # po"ti*nuta j! ut!&a &v! A A U V 5C<7 B @ A 3a li j! r!zultat +? A 5C<7 V @ A 'ij!$ T!"tiraj CarrW 9la*$ A 5C<7 e @ 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 movwf movf movwf movf movwf 'a "l!&!0i na2in r!*i"tra$ movf xorwf xorwf xorwf BR"$1,% T=4P BR"$2,% BR"$1 T=4P,% BR"$2 A 5C<71 u U A U u T=MP A 5C<7@ u U A 5C<71 &obija po2!tnu vr!&no"t r!*i"tra 5C<7@ A T=MP u U A 5C<7@ &obija po2!tnu vr!&no"t r!*i"tra 5C<71

o!t! &ir!ktno izvriti nji;ovu za !nu b!z upotr!b! &o&atno* BR"$1,% BR"$2,% BR"$1,F BR"$2,F A 5C<71 u U A 5C<71 d 5C<7@ u U A U d 5C<71 u 5C<71# U "! n! A U d 5C<7@ u 5C<7@

!nja n!

<vaj al*orita o*u0 j! j!r "! &uplo `<CBovana vr!&no"t bilo koji broj! !nja$ Potpuno i"ti na2ino o*u0! j! pro !niti "a&9raj 5C<7 i U r!*i"tra$ xorwf xorwf xorwf BR"$,F BR"$,% BR"$,F A A A

1+8

4:. O' . go"o ...


Sli2no kao ko& tab!l!# "abiranj! proizvoljn! ! orij"k! lokacij!$ PC: "a o&r!%!ni broji o! o oti0i na

Pr!tpo"tavi o &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*ra i 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!la a i ov&! j! potr!bno prov!riti &a li pro*ra pr!lazi *ranicu o& @F6 in"trukcija$ Poc incf movlw xorwf btfsc clrf movf S@o@ addwf goto goto goto goto goto goto goto goto "FS=T,F .8 "FS=T,% STATUS,? "FS=T "FS=T,% P#E,F P)o*)011 P)o*)012 P)o*)013 P)o*)014 P)o*)015 P)o*)016 P)o*)017 P)o*)018 A -v!0aj <FS=T A 5roj pr!kora2!nja A A 3a li j! na"tupilo pr!kora2!nj!? A 7!"t!# inicijalizuj <FS=T A <FS=T u U A - U "! nalazi broj o& + &o P A UV+ A UV1 A UV@ A UVK A UV4 A UVF A UV6 A UVP no*o o& tab!l!$

Svakako o!t! zapaziti &a "! ovaj po"tupak n! razlikuj! <*rani2!nja v!zana za nji; va! i u ovo "lu2aju$

- *ornj! pro*ra u u !"to za&nj! intrukcij! (*oto Pro*ra 8) o*lo "! o& a; na"taviti "a izvravanj! o" o* pro*ra a$ 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*ra a j! prili2no j!&no"tavnija$ Morat! i ati u vi&u &a 0! "! u pro*ra u v!rovatno javljati *r!k!$ Cazu ljiv i &obro ko !ntari"an pro*ra olakava nj!*ovu nakna&nu i"pravku$ - protivno # na0i 0!t! "! u *o ili naiz*l!& b!" i"l!ni; in"trukcija$ .!"ta j! pojava &a "! priliko ka"nij!* razvoja pro*ra a vi! vr! !na utroi na nj!*ovu analizu# n!*o na pi"anj! novo* pro*ra a iz po2!tka$ 'ij! ni 2u&o to "! ko& n!razu ljivi; pro*ra a 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! "a o 1ZS# potr!bno j! "o9tv!r"ki r!alizovati &ua kanj!nja$ Ganj!nj! j! najprakti2nij! i pl! !ntirati unutar potpro*ra a$ 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 P0! movlw nop P0!4 addlw btfss goto return koji 0xFB 0xFF STATUS,? P0!4 0! "! (pri 4M,z) r!alizovati kanj!nj! o& ta2no 1 S$ A Inicijalna vr!&no"t u U$ Tu ni"u ura2unata @ A in"trukcij"ka ciklu"a za "kok na potpro*ra A <&uz i 1 o& U "abiraju0i U "a +NFF A 3a li j! r!zultat +? A 'ij!# na"tavi "a p!tljo A 7!"t!# vrati "! iz potpro*ra a$

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$ I ajt! na u u &a j! i Call in"trukciji potr!bno @ZS$ Za &u! pauz!# ora "! kori"titi r!*i"tar (u ovo potpro*ra a j! u U potr!bno za&ati !lj!ni broj o*u0! r!alizovati pauz! o& 1 &o @FF S (f S)$ J03 movwf Pe&1 movlw call nop nop decfsz goto return PAU?A 0xF8 P0!4 PAU?A,F Pe&1 "lu2aju P8-Z8)$ Pr! poziva ili"!kun&i kanj!nja$ 'ji j!

A U u P8-Z8 r!*i"tar A Inicijalizacija vr!&no"ti A @48 D 4 H @ V YY4 ov&! A <"tatak# A za jo 6ZS A S anji vr!&no"t u r!*i"tru A 7o p!tlji$ A Povratak iz potpro*ra a

-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*ra a pr!"tao j! &a pro*ra ira 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 i at! na linku ;ttp/MMRRR$picli"t$co Mc*iBbinM&!laW$!N!$ Iako iz*l!&a kao pro*ra # ra&i "! o linku$ 11+

42. Se&%$ov '(e


Pr!tpo"tavi o &a j! potr!bno o&r!%!no vr! ! pratiti pro !n! na ulazni pinovi a# i &obij!n! po&atk! "ni ati 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"i alan 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"tavi o &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 uzi ati "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"i alna ra"poloiva koli2ina kako "! ona o! o&r!&iti$ ! orij!$ Po*l!&ajt!

Gako "u "! plovi j!&nobitni# oni "! o*u ko pr!"ovati i tako zauz!ti "a o 144M8 V 18 ==PC<M a&r!"a$ Gako ==PC<M PIC16F84 ikrokontrol!ra i a 64 a&r!"a# to zna2i &a bi u nj!*a bilo o*u0! "ni ati "! plov! ak"i alno (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 "ni iti ak"i alno (64D8)M1F V K4 "! pla &n!vno$ S! plovi bi "! uzi ali (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 "! plovi a uz!ti; na 9r!kv!nciji koja j! bar &uplo v!0a o& ak"i aln! 9r!kv!ncij! ori*inalno* "i*nala$ 6ta to zna2i? -koliko j! za p!rio& o& @4 2a"a o*u0a pojava ak"i alno &v! pli ! i &v! o"!k!# to pr!&"tavlja ak"i alno 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! ini alni &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 o o*u0avala j! "a o &va lo*i2ka "tanja (i aMn! 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 ko pro i" 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 "a o 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!vi a t!"tiranja &obij!no novo "tanj!$ Za t!"tiranj! "! b!z probl! a o! i"kori"titi "! plovanj!# "a to ta&a ranij! opi"ani; probl! a n! a$ po*o&no0u to

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 i a 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 "ituacija a 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 ! "a o 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*ra u &a j! pr!ki&a2 priti"nut (otput!n)$ Go unikacija iz !%u *lavno* pro*ra a i int!rapta nij! ba j!&no"tavna$ -*lavno "! pri !njuj! ko unikacija 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!&uzi ati o&r!%!n! akcij!$ - "l!&!0i po*lavlji a upozna0!t! "! "a par ko unikacioni; protokola$ 7!&an &!o j! ;ar&v!r"ki int!*ri"an u "avr! !niji PIC ikrokontrol!ri a$ Si*urno 0!t! pri !titi ko pro i" iz !%u broja pinova koji "! kori"t! za ko unikaciju i brzin! ko unikacij!$

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$ Za i"lit! r!u z*ra&a u kojoj r!&ovi i aju 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! in9or acij!$ 'aziv (broj) ulic! i broj z*ra&!$ Za o2itavanj! ko pl!tn! a&r!"! ! orija bi orala i ati 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 i a 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! "a o 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 *rupa a o& 8 bitova# ili kao ko& Co o&or! 64 ko pjut!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* zauzi a 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! i aju u "!bi 64Gbita D 4 (6FFK6 D 4 bitova)# o&no"no uz i"tu a&r!"nu a*i"tralu i aju 4 pina na a*i"trali po&ataka ("poj!ni 3I' i 3<-T 9or iraju 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 ko pjut!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 i a 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!lija a "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 9or i 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 i a ali "takl!ni IprozorJ pr!ko ko*a "! o! bri"ati$ 'ai !# po&aci "! u =PC<M o*u "ni ati pr!ko o&*ovaraju0i; pro*ra atora "p!cijalno proc!&uro (kao "ni anj! 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 "! "ni iti 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*ra iran! =PC<M ! orij!# i na taj na2in "! =PC<M obri!$ T!k on&a j! o*u0! ponovno pro*ra iranj!$ >!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! i p!&an"!$ To o o*u0ava ultipl!k" a*i"tral! po&ataka# i nj!no &!lj!nj! iz !%u =PC<M i C8M ! orij! (Co o&or! 64 kori"ti i"ti princip "a "vojo C<M ! orijo )$ Pri ra&u "a bilo koji !k"t!rni ! orija a orat! obratiti panju na brzinu pri"tupa po&aci a (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"i alna$ Zbo* to*a "! najvi! kori"ti u ko pjut!ri a$ 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 ko unikacioni protokoli a o! upravljati anji broj! pinova# uz anju brzinu pri"tupa$ Za vi! &!talja po*l!&ajt! T5+11 "a ;ttp/MMRRR$ icroc;ip$co M$

116

44. RS2)2 # RS42)


Gako po"lati po&atak iz PIC ikrokontrol!ra u >a ko pjut!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 ko pjut!ra)# i po"taviti pinov! porta 5 u o&r!%!no "tanj!# ili pov!zati "a o @ pina (j!&an za "lanj!# a &ru*i za prij! po&ataka) na ko pjut!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 ko pjut!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 i a prili2no n!"tan&ar&an int!r9!j"# a ni ko !rcijalno ni"u &o"tupni pro*ra i za nj!*ovu upotr!bu$ Sl!&!0i pro*ra o pr!no"i "! poruka u ko pjut!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 Pe& movf call addlw btfsc return call incf goto A Po"tavi vr!&no"t iz U u point!r poruk! A Stavi point!r u U A >ra0a 8SCII karakt!r u U A S!tuj! Z!ro 9la* ako j! U V + A Pr!"ka2! ako Z!ro 9la* nij! "!tovan A Zavrava potpro*ra ako j! U V + S20+ A 6alj! karakt!r na "!rij"ki port P"I;T=R,F A Pozicioniraj point!r na "l!&!0i karakt!r Pe& A 7o karakt!ra P"I;T=R P"I;T=R,% Tex& 0x00 STATUS,?

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!nutci a$ '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 naj anj! t!in! (:S5)$ Po&atci "! u ko pjut!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 ko pjut!r bi "! po"lala ovakva "!kv!nca/ ST8CT + +1@K 4F6P 1+++ ++1+ ST<P 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 ko pjut!r j! na P<CT8 r!*i"tru# bit @ (pin 1)$ IS2 movwf movlw movwf bsf movlw call rrf btfsc goto bsf goto "b) bcf nop TAR=' 0x08 BIT"GI P"RTA,2 .4B P0!4 TAR=',F STATUS,# "b) P"RTA,2 J)0> P"RTA,2 BIT"GI,F Pe& .52 P0!4 P"RTA,2 .104 P0!4 A Stavi U u r!*i"tar pr!&aj! A 8 bitova po&ataka A 5rojac za bitov! A Startni bit (inv!rtovan# "!0at! "!) HF> na C8@ A 4Y &!ci alno# vr! ! za ka"nj!nj! A - potpro*ra u za pauzu c!kaj 4YD4V1Y6ZS A Pr!baci za&nji &!"ni bit u CarrW 9la*$ A 8ko j! CarrW 9la* V +# !li "! "!tovanj! bita A (nizak napon"ki nivo) A u protivno j! bit V + (vi"ok nivo) A HF> na pinu 1 (C8@) A 7! li *otovo? A +> na pinu 1 (C8@) A &a bi ob! opcij! trajal! ta2no 1@ZS A 1 bit anj!$ Pr!"ko2i ka&a &o%! &o + A i a jo bitova$ Ganj!nj! za "lanj! ovo*$ A F@ &!ci alo# vr! ! za kanj!nj! @+8ZS A Ganj!nj! za za&nji bit po&ataka A +> (vi"oko "tanj!) za "top bitov! A 1+4 &!ci alno A za &va puta &ui "top bit A Povratak

Pe&

J)0> decfsz goto movlw call bcf movlw call return

- ovi potpro*ra i a prikazan! "u "koro "v! potr!bn! rutin! potr!bn! &a bi PIC po"lao poruku IZ&ravo1J u ko pjut!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 movlw movwf bcf clrf movlw call movlw call B2o@ goto

STATUS,RP0 0x00 TRISA STATUS,RP0 P"RTA .50 J03 0x00 IS2 B2o@

A Pr!bacuj! u 58'G1 A Po"tavlja "v! pinov! kao izlazn! A na P<CT8 A >ra0a u 58'G+ A C8@ V + (CS@K@ vi"oko "tanj!) A Ga"nj!nj! o& F+ S A pr!ko potpro*ra a za &u! pauz! A <9"!t za prvi karakt!r poruk! A Slanj! poruk! u ko pjut!r A Graj u b!"kona2noj p!tlji

Malo ko !ntara o pro*ra u/ 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*ra a# naravno# nij! bitan$ 5itno j! j!&ino &a *lavni pro*ra (Slan) bu&! prvi$ Za i"pravan ra& pro*ra a# 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 ko pjut!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@ ko unikaciju$ 'a "trani ko pjut!ra uklju2it! >a t!r inal"ki pro*ra $ - "a o Uin&oR"u i at! ,Wp!r t!r inal$ Izab!rit! o&*ovaraju0i C<M port i u po&!avanji a 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 ko pjut!ro i uklju2it! ikrokontrol!r$ Svaki put ka&a *a uklju2it! (ili r!"!tuj!t!)# poruka IZ&ravo1J 0! "! prikazati na !kranu$ - pro*ra u 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 i pl! !ntirati$ Iako j! za "!rij"ku ko unikaciju n!op;o&an ta2no o&r!%!n takt o"cilatora# po"toj! "o9tv!r"k! t!;nik! koj! o o*u0avaju CS@K@ ko unikaciju !r!nj! "i*nala "a ko pjut!ra# i kalibri"anj! "op"tv!no* vr! !na "i*nala i pauz! po ovo "i*nalu$ Ti ! j! o o*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$co M$ Savr! !niji PIC ikrokontrol!ri i aju ;ar&v!r"ki r!!nu CSB@K@ ko unikaciju$

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 o o*u0ava &a j! (uz kori0!nj! i"to* ko unikaciono* protokola) CS4@K ko patibilan "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 pri ati 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!vi a jav! " !tnj!$ 'a pri !r# ukoliko "! obilni t!l!9on uklju2i u blizini kablova pov!zani PIC i ko pjut!r$ Priliko "lanja po&ataka in9racrv!no v!zo &a "v!tlo"t "unca ili "ijalic! o !ta i"pravan prij! $ Pri ra&io v!zi " !tnj! izazvati *r ljavina ili aktivno"t lokalno* ra&io pr!&ajnika$ o&r!%!n! koji "u o*u0! j! bi o*la

Gako bi ikrokontrol!r o*ao i"pravno pri ati "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 ko pjut!ra pa j! uticaj " !tnji zan! arljiv)# po*otovu to al*orit i i zauzi aju &!o brzin! i ! orij! ikrokontrol!ra i to "u nji a pr!n!ti po&aci v!0i o& ori*inalni;# pa j! "lanj! "porij!$ - va! t!r inal"ko pro*ra u pri !tili "t! po&!avanj! prov!r! parno"ti$ Go& nj! bit nakon MS5 "a&ri in9or aciju o i"pravno pri lj!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 + 1+++ ++1+ + ST<P 1

T!r inal"ki pro*ra u ko pjut!ru nakon prij! a "abira r!&o bitov! +BP i upor!&juj! nji;ovu parno"t "a pri lj!ni bito parno"ti$ - "lu2aju n!"la*anja prijavi0! *r!ku ili 0! j!&no"tavno i*nori"ati pri lj!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 pri lj!ni; bajtova "abrati i upor!&iti nji;ov zbir$ 'a pri !r ukoliko "! u ko pjut!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$ Go pjut!r bi nakon prij! a "abrao "v! po&atk! i upor!&io &obij!ni r!zultat "a pri lj!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 pri lj!na @ (ili vi!) bita (ukoliko na pri !r nij! pri lj!n nij!&an bit po&ataka niti kontroln! vr!&no"ti# "vi Jpri lj!niJ bajtovi kao i nji;ov zbir bi0! j!&naki +# to po*r!no in&ikuj! i"pravno pri lj!n! po&atk!)$ <vo j! ipak no*o pouz&anij! o& prov!r! parno"ti$ >i! o c;!ck"u u i at! 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*orit a# koji prua najbolji ko pro i" iz !%u brzin! al*orit a# pouz&ano"ti &!t!kcij! *r!k! i v!li2in! &o&atno pr!n!ti; po&ataka$ >i! o nj!*ovo principu i at! u 8'PK+$ 1@+

- "lu2aju &vo" !rn! ko unikacij! ( ikrokontrol!r ka ko pjut!ru i ko pjut!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! ko unikacij!$ 3a ti probl! i pr!vazili pri !njuju "! al*orit i za kor!kciju *r!aka$ <ni 0! biti &!taljnij! objanj!ni u nar!&no po*lavlju$ -*lavno j! potr!bno prona0i ko pro i" 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! po o0i o&*ovaraju0i izbor o&ulacij! "i*nala$ Priliko CS@K@ ko unikacij! "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 !li ini"ati j!&no" !rnu ko pon!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 ko unikacija n!"u njivo int!r!"antna# pr!vazilazi okvir! ovo* uput"tva# tako &a 0! na&alj! biti objanj!na j!&ino v!za i2ani provo&nici a$ -z n!o&*ovaraju0i izbor o&ulacij! n!0! >a po o0i ni najbolji kor!ktivni al*orita $ Po*l!&ajt! "a o 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 pri lj!n! po&atk! uz!li "a o 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 "l!&!0! principu$ o*ao bi "! r!alizovati po

Pr!tpo"tavi o &a j! potr!bno CS@K@ v!zo pr!n!ti &va bajta (nazovi o 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& bajtovi a 8 i 5$ I"pravna "ituacija iz*l!&ala bi ovako/ A P 1011 1001 1 M!%uti B P 0110 1011 1 # P 1101 0010 0

ukoliko bi u pr!no"u po&ataka &olo &o *r!k! u bajtu 8# &o*a%a "! "l!&!0!/ A P 1010 1001 1 B P 0110 1011 1 # P 1101 0010 0

Prij! nik bi najpr! na o"novu bita parno"ti &!t!ktovao &a j! po*r!no pri lj!n bajt 8$ 3a bi *a r!*!n!ri"ao pri !njuj! `<C na& i"pravno pri lj!ni bajtovi a 5 i C$ <vo j! "li2no zakoni a 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 pri lj!n bajt 5 izvrila bi "! `<C op!racija na& bajtovi a C i 8# a &a j! po*r!no pri lj!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 pri lj!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 pri lj!n upravo bit parno"ti$ Gako j! prov!ro bita parno"ti o*u0! i"pravno &!t!ktovati korupciju "a o 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. I2C
CS@K@ ko unikacija 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 ko unikaciju o*u0! o"tvariti &ir!ktni pov!zivanj! pinova ikrokontrol!ra# ali to troi nji;ov! &ra*oc!n! pinov!# i ko plikuj! "o9tv!r zbo* razli2iti; ko unikacioni; al*orita a$ I@C (!n*$ Int!r Int!*rat!& Circuit bu") v!za o o*u0ava pov!zivanj! ikrokontrol!ra "a j!&ni ili vi! &o&atni; ur!%aja kori"t!0i za to "a o &va pina# i I@C ko unikacioni protokol$ 'aravno# i ti ur!%aji oraju i ati o*u0no"t ("o9tv!r"ku ili ;ar&v!r"ku) I@C ko unikacij!$ Za&nji; *o&ina pojavljuj! "! "v! vi! ;ar&v!r"ki; &o&ataka koji proiruju upotr!bu ikrokontrol!ra# a za ko unikaciju 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! i ati 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*$ Multi a"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! i p!&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 pri a$ 'a taj na2in o o*u0!na j! ko unikacija 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"i aln! brzin!# ali n! i ini aln!# 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! i a "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!&uzi a tra!nu akciju (obi2no "lanj! ili prij! par bajtova)$ Svaki Slav! ;ar&v!r i a "voj! "p!ci9i2no"ti tako &a "! oraju prou2iti nj!*ovi t!;ni2ki po&atci$ 'a pri !r priliko "ni anja 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@ ko unikaciji pr!ko ST8CT# ST<P i jo par kontrolni; bitova$ I"to kao CS@K@ i I@C protokol j! ;ar&v!r"ki i pl! !ntovan u o0niji PIC ikrokontrol!ri a$ 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* pri opr!&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 naponi a o& BP> &o H1@>$ Gako "! in&ukovan! " !tnj! javljaju na "vi provo&nici a# on! "! potiru# o o*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 naj anju (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*orit i$ Po2!tni i krajnji &rajv!r tr!baju na "voji ulazni M izlazni pinovi a i ati It!r inator"k!J otpornik! koji a "! !li ini! 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 pri iti "i*nal! "a CS48F v!z! (<vo nij! "a"vi ta2no$ Za &!t!kciju bi "! o*li kori"titi int!*ri"ani ko paratori napona ili 8M3 konv!rtori pri"utni u o0niji ikrokontrol!ri a# ali "a loiji r!zultati a)# 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!r inator"ki; otpornika$ Iako j! pri !no CS48F ko unikaciono* 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! i p!&an"a priblino j!&naka ulaznoj i p!&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 ko unikaciju ("i pl!k") pr!ko "a o &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 o o*u0ava &uplo &u! linij!$ Po"toj! i *alvan"ki izolovani &rajv!ri (po*o&ni za po&ru2ja "a jaki " !tnja a O *r ljavino )# npr$ M8`@FK i M8`148+$ Ipak# najbolj! j! u ti "lu2aj!vi a 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"okoi p!&an"no "tanj! O "li2no ulazi a 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 ko unikacioni "o9tv!r# v!0 j!&ino ;ar&v!r$ To zna2i &a o!t! napi"ati "op"tv!ni ko unikacioni protokol (ili kori"titi *otovi CS@K@ O po*otovu ukoliko j! ;ar&v!r"ki i pl! !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 ko unikacioni ;ar&v!r "o9tv!ro ko unicira 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!# "a i 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! i p!&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 pri ati &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 raz atrani$

1@F

4:. D+C412
Pon!ka& j! &ovoljno "lati in9or acij! "a o u j!&no " !ru$ 3M`F1@ (!n*$ Di*ital +ultipl!C) pr!&"tavlja ko unikacioni 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!ri a$ Gako "! 3M`F1@ protokolo pov!zuj! j!&an pr!&ajnik "a vi! prij! nika "a o u j!&no " !ru# prij! nici n! aju na2in "i*nalizacij! n!i"pravno pri lj!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! nici a$ Poto j! CS@K@ ko unikacioni protokol int!*ri"an u noviji ikrokontrol!ri a# 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 bitovi a iz !%u nji;$ 5roj po"lati; bajtova o*ao bi "! " anjiti za "lu2aj anj!* broja prij! nika$ Prij! nici bi orali r!&o brojati pri lj!n! bajtov! kako bi vi&!li koji j! bajt za nji;$ >i! &!talja i at! u 8'1+P6 i na RRR$!"ta$or*$

1@6

41. -IN
:I' ko unikacioni protokol po&rava &vo" !rnu ko unikaciju 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 &o inantno "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!ri a o o*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 i pul" pr! "vak! poruk! a"t!r alj! bajt bQ+1+1+1+1Q$ Tako j! "vako "lav! no&u o o*u0!na "in;ronizacija kor!kcijo "op"tv!ni; vr! !n"ki; rutina u "kla&u "a pri lj!ni bit"ki vr! !ni a 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 in9or acija (@# 4 ili 8 bajtova)# i za&nja @ bita (6 i P) "lu! za prov!ru parno"ti za*lavlja$ :I' protokolo nij! "p!ci9iran 9or at nar!&ni; in9or acija# o"i c;!ck"u a in9or acija$ S:==P ko an&! i

Gako nakon pojav! *r!k! :I' protokolo nij! o o*u0!na nj!na prijava# a"t!r o! u &!lu "a in9or acija a zatraiti prij! ni "tatu" o& poj!&ina2ni; no&ova$ Svi no&ovi o*u pri ati 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&ovi a$ 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! ko an&! 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 no&ovi "! bu&! i 2!kaju &alj! in9or acij! o& a"t!ra$ prij! u "vi

: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 " !tnja a 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@ ko unikacija 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!vi a$ Zbo* 2!*a ba nji a? 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$ I a i; u "vi pro"torija a o"i kupatila (zbo* vla*!)$ Iako "! r!*ulacija "v!tlo"ti "ijalica "a uar!ni vlakno lako i pl! !ntira 9azno r!*ulacijo # ko& 9luo c!vi "a pri*unica a 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 &i in* balla"t)$ 3i !ro j! o o*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 *rupa a i "li2no$ 38:I protokol n! a po"!bn! int!*ri"an! &rajv!r!$ - !"to nji;# i pl! !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 o o*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! in9or acij! o 38:I protokolu o*u "! j!&ino naru2iti na C3Bu "a "ajta ;ttp/MM RRR$ir9$co Mpro&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 ko unikacioni protokol na !nj!n brzo pr!no"u "i*nala# na kratki o&"tojanji a$ Iako SPI protokol n! a o*rani2!nj! naj anj! 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 ko pjut!ro $ <bi2no "! kori"ti priliko ko unikacij! "a "!rij"ki ==PC<M ! orija a# kao i ! orij"ki kartica a (MMC# S3# N3# CF$$$)$ Iako ! orij"k! kartic! u o"novi pr!&"tavljaju v!liku ==PC<M ! oriju# i ajt! u vi&u &a j! proc!" 9or iranja "i"t! a za po&rku 9ajlova (!n*$ Fil!"W"t! npr$ F8T16# F8TK@ ili 'TFS) u ! orij"ki kartica a kao i "i"t! "ni anja i 2itanja 9ajlova iz takvo* 9ajl "i"t! a prili2no ko plikovan# 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 i ati &o&atn! pinov! za 9or iranj! "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 i ati "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! i p!&an"!# o o*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!ri a 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& i pl! !ntovan$ o0niji; ikrokontrol!ra j! SPI ;ar&v!r"ki

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 ko unikacija$ 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$ Go unikaciju inicira c!ntralni ikrokontrol!r ( a"t!r)# alju0i za;t!v za in9or acija a poj!&ina2ni 0!lija a (no&ovi a B !n*$ no&!)$ <blik poruk! j! takav &a "! u njoj pr! in9or acij! alj! &!"!tobajtno za*lavlj!# a nakon nj!*a in9or acij! "v! &o ak"i aln! 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 pri aoca in9or acij! bajt K O ko an&a pri aocu bajt 4 O a&r!"a no&a poaljioca in9or acij! 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"u a bajt Y O MS5 bajt c;!ck"u a bajtovi 1+ &o @FF O in9or acij! -o2avat! &a j! ovi na2ino o*u0! po"lati ak"i alno @4F bajtova in9or acija$ >i! in9or acija oralo bi "! po"lati unutar vi! poruka (kao SMS poruk!)$ Iako "vi no&ovi o*u i"tovr! !no pri iti in9or acij!# a"t!r j! taj koji 0! na o"novu za*lavlja (i in9or acija) r!*uli"ati ra& i ko unikaciju iz !%u no&ova$ Sli2no kao a&r!"a no&a pri aoca i poaljioca# r!z!rvi"ani no& 0! na&alj! o&*ovarati na poruk! poaljioca koji *a j! r!z!rvi"ao$ Go an&a pri aocu ukazuj! ta no& pri aoc poruk! tr!ba ura&iti "a in9or acijo $ <v&! "u prikazan! "tan&ar&n! ko an&!# 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 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$

ikrokontrol!ra)

<vakav princip o o*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 i pl! !ntirana j! c;!ck"u o # a kor!kcija ponovni "lanj! in9or acij! 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@$ nji a o!t! prona0i i objanj!nja int!r!"antni; principa ko unikacija 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; ko unikacioni; protokola# 9or iranu po "loj!vi a (!n*$ :aW!r") u C=5u" protokolu$ Za j!&no"tavniji ko unikacioni 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!ri a por!& o2i*l!&ni; pr!&no"ti i a 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! o o*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&ovi a 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 i a a"t!r koji za ko unicira "a poj!&ini "lav! no&ovi a$ 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 i a obj!&inj!n ko unikacioni 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 ko uniciraju 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 pinovi a 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 pinovi a# 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; i a u CS@1@ koli a$ '!op;o&na konv!rzija lo*i2ki; nivoa "! za a"t!r ob!zb!%uj! o&*ovaraju0i konv!rtori a "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 i at! 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 " !tnja a$ '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 ko unikacionu 9unciju (u kojoj j! i pl! !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 ko unikacioni 2ip# a ko unikacioni 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 ko unikacioni protokol$ - nj! u j! ikrokontrol!r ra"t!r!0!n o& ko unikacioni; al*orita a# 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 pinovi a 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&o inantnaJ# 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 ko unikaciju "! (zbo* i"t! linij! za "lanj! i prij! po&ataka) kori"t! "a o &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 ko an&no orj!nti"an "i"t! $ Zbo* to*a no&ovi obi2no ko uniciraju 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 o o*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# ko unikaciono* 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& co patibil!)$ Za vi! &!talja po*l!&ajt! 8'Y16$ 1KK

7!&an &!o &o "a&a opi"ani; ko unikacioni; protokola j! ;ar&v!r"ki int!*ri"an u ja2i "!rija a ikrokontrol!ra$ To ipak n! zna2i &a "! "labiji ikrokontrol!ri (2itaj PIC16F84) n! o*u kori"titi za o&r!%!n! vr"t! ko unikacija$ -v!k j! o*u0! (u "lu2aju &a j! ikrokontrol!r &ovoljno brz) pravovr! !no &ir!ktno anipuli"ati ulazno izlazni pinovi a# i na taj na2in o"tvariti "o9tv!r"ku i pl! !ntaciju ;ar&v!r"ki; ko unikacioni; 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 )$ Go unikacioni protokoli n! pr!"taju &a "! razvijaju$ I "a i 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 od br "#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 i at! u 2a"opi"u Circuit C!llar broj @6$ - "l!&!0oj tab!li &at j! upor!&ni pr!*l!& ov&! opi"ani; vr"ta ko unikacij! "a "voji "p!ci9i2no"ti a/
:ara,e,/a n! R8232 M8`@K@ R8485 M8`48F D(X512 M8`48F 8:' n! n! '2C &a L'& DAL' PCKFP'T 8?ART/et &a CA& MCP@FF1

&rajv!r

"o9tv!r nij! potr!ban i pl! !nt$ n! n! i pl! !nt$ i pl! !nt$ i pl! !nt$ n! ;ar&v!r"ki MCP@F1+ aN$ broj zavi"i o& a&r$ 1 pr!&$# 1 K@ pr!&$# K@ 1 pr!&$# F1@ 1 pr!&$# alo zavi"i o& 1 a"t!r H 1 a"t!r H 64 1 a"t!r H K+ 11@ pr!&$# 2lanova a*i"tral! prij$ prij$ prij$ prij$ kapacit!ta linij! 16 "lav! "lav! "lav! 11@ prij$ aN$ brzina o*rani2!na @+kbitaMS 1++kbitaMS 1++kbitaMS FMbitaMS 1++# 4++kbitaMS @+kbitaMS ? ? 1MbitMS ;ar&v!ro &o KMbitaMS ili K#@MbitaMS aN &aljina ala#oko 1F 1#@k 1#@k ala#oko ala#oko @+c 4+ ? ? 4+ pri +$F +$F 1MbitMS &!t!k$ *r!"aka n! bit parno"ti zav$ o& "o9t$ n! n! n! parno"t H? &va bita ;ar&v!r"ka kor!k$*r!"aka n! zav$ o& "o9t$ aN$ napon +># HF> B@F># H@F> &rajv!ra o"!tljivo"t zavi"i o& HBK># prij! nika ;ar&v!ra pr! a a"i n!aktivno +> pr!ko HK> "tanj! na2in pr!n$ zav$o& ;ar&$ a"in;roni "i pl$br$prov &upl$br$prov$ r!p!titor ul$ i p!&an"a zav$ o& a*$ zav$ o& a*$ M zav$o& ;ar&v$ 1 H a"a @ H a"a M Kk &o Pk zav$ o& "o9t$ n! BP># H1@> BP># H1@>

n!
+># HF>

n!
+># HF>

c;!ck"u zav$ o& "o9t$ ?


+># H18> ?

parno"ti n!
+># P$F># 1F>

;ar&v!r"ka
B4+># H4+> HB+#F> &i9!r!ncijalni n! a "i*nala a"in;roni @H M 1++k a"a

HB+$@> HB+$@> zavi"i o& zavi"i o& zav$ o& &rajv$ HB?> tro"t!p!na &i9!r!ncijalni &i9!r!ncijalni ;ar&v!ra ;ar&v!ra &i9!r!ncijalni zavi"i o& pr!ko +#4> n! a takta vi"oka i p$ b!z Pr!ko Y> pr!ko ?> 1F> "o9tv!ra razlik! u H takta razlik! u H razlik! zav$ o& "o9t$ a"in;roni "in;roni "in;roni a"in;roni a"in;roni a"in;roni @ H a"a 4 H a"a &a aV1@k @ H a"a M &a aV1@k 4 H a"a M M zav$o& ;ar&v$ @ H a"a M M zav$o& ;ar&v$ 1 H a"a @ M M M M zav$ o& &rajv$ zav$ o& optok$ 1H a"a M M zav$ o& ;ar&v$

16+

48. P r $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! zauzi a 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)$ De0"%a,/" B"t*6" +r*1 RB3 RB0 + 1 @ K 4 <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 ko binaciju# 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 "a o +#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$ F 6 P 8 Y 1+ 11 1@ 1K 14 1F ++++ +++1 ++1+ ++11 +1++ +1+1 +11+ +111 1+++ 1++1 1+1+ 1+11 11++ 11+1 111+ 1111 '5,a5/" &ap*/ +> +#48> +#8P> 1#@1> 1#FF> 1#PY> 1#YY> @#1P> @#F1> @#6K> @#PF> @#8F> @#Y6> K#+F> K#1@> K#@+>

Gako j! i p!&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 &ina i2ko* op"!*a *ovora u "i"t! i a za &i*italizaciju zvuka# j!r po :aplacianovoj &i"tribuciji obla"t oko napona bli"ko* + no"i vi! in9or acija o& obla"ti "a v!0i a plitu&a a$ Za vi! &!talja ovakv! t!in"k! r!! po*l!&ajt! ;ttp/MMRRR$k!4nWv$co Min&!N@$;t $ - "ituacija a 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 i ati 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 + @P FK PY 1+F 1FP @+Y @KF @FF RB7 RB0 '5,a5/" /ap*/ +> +#F> 1> 1#F> @> K> 4> 4#F> F

++++++++ +++11+11 ++11+1+1 +1++1111 +11+1++1 1++111+1 11+1+++1 111+1+11 11111111

:in!arno"t ovo* kola j! "koro i&!alna# a zavi"i j!&ino o& tol!rancij! upotr!blj!ni; otpornika$ Za ko pl!tnu tablicu izlazni; napona i &!talj! po*l!&ajt! 8'6FF "a ;ttp/MM RRR$ icroc;ip$co M$

Za *!n!ri"anj! "lo!niji; tala"ni; oblika izlazni; napona# najprakti2nij! j! uzi ati 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 *ranica a$ Po"tupak koji "! puni i prazni kon&!nzator naziva "! o&ulacijo irin! i pul"a (!n*$ PUM O Pul"! .i&t; +o&ulation)$ Iako j! ;ar&v!r"ki r!alizovana u n!ki "avr! !niji PIC ikrokontrol!ri a# u PIC16F84 o! "! i pl! !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>$ Mini u napona po"toja0! ka&a j! na pinu n!pr!ki&no pri"utna lo*i2ka +# ak"i u 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 koji a j! potr!bna v!0a "tabilno"t izlazno* "i*nala zbo* *!n!ri"anja " !tnji i ;ar onika$

'a"tavak "l!&i

Por!& ovi;# po"toji jo no*o# no*o principa po koji a "! o! i pl! !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* ;ar onika 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*lavlji a 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* ko paratora$ 'apon"ki ko parator nalazi "! int!*ri"an u "avr! !niji v!rzija a PIC ikrokontrol!ra$ M!%uti # iako *a PIC16F84 n! a# o! u "! &o&ati "polja$ 4 napon"ka ko paratora u "!bi "a&ri popularno analo*no int!*ri"ano kolo :MKKY$ Sa j!&ni kolo o*u0! j! &!t!ktovati F &!ci alni; "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 ko parator? <n por!&i (!n*$ Co par!) 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 ko paratora bi0! u "tanju lo*i2k! + "v! &ok napon na &ru*o ulazu n! pr!%! za&ati; K>$ 'ajt!! 0! "! napon"ki ko parator "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 po o0u vi! napon"ki; ko paratora$ 'a j!&an ulaz "vi; ko paratora &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 naj anj!*$ 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# ko pl!tnu 8M3 konv!rziju o! obaviti tr!nutno$ M!%uti # i a on "voj! an!$ 5roj upotr!blj!ni; napon"ki; ko paratora &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 "! nji a 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 9or at# ovoliki broj napon"ki; ko paratora 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& nazivi a Countin* ili 3i*ital ra p$ Za olit! "vo* prijat!lja &a za i"li broj iz !%u + i 1+++$ Za i"lio j!$ Gr!nit! r!&o "a pitanji a/ 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! za ilj!no 'j! u 0! &o"a&iti$ Mikrokontrol!ru n!0!$ broju$

<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* ko paratora# 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 ko parator pro !ni "tanj!# o2ita "! tr!nutno "tanj! na izlazni pinovi a 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 "a i uvi%at! anu ovo* principa$ -koliko j! !r!ni napon blizu "voj! ak"i aln! 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*ra Pe& incf movf movwf btfsc goto ... a "a ovakvi SP"RTB,F SP"RTB,% P"RTB P"RTA,RA0 Pe& principo iz*l!&ala bi ovako/ A Pov!0aj S;a&&oR r!*i"tar$ A Pr!baci u U# A pa u P<CT5 O tako pov!0aj izlazni napon$ A 7!"u li "! ovi naponi "a&a izj!&na2ili? 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 al*orit a binarn! pr!tra*! unutar "ortirano* niza po&ataka$ princip

<p!t za olit! "vo* prijat!lja &a za i"li broj iz !%u + i 1+++$ Za i"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! za i"liti kao "!2!nj! pic!$ I"!2! "! na pola# zati na o" in!# i tako "v! &o naj anj!* par2!ta$ na 2!tvrtin!# pa

>i&it! &a "t! za razliku o& pr!t;o&no* "lu2aja "a "a o 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* ko paratora# 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*ra i a 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 zauzi aju pr!vi! &ra*oc!ni; pinova ikrokontrol!ra$ <"i to*a# on! za;t!vaju upotr!bu napon"ko* ko paratora 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 ! a a$ <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"i alnu vr!&no"t t!"tirano* otpornika o& 1+k[ oko F S$ .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*ra a int!rapti a 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* pina (ulazMizlaz) o!t! kori"titi n!ku o& "l!&!0i; ! a/ !njanja "tanja

<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 pinovi a 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!ni a 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; ko p!nzovati u "a oj 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 i aju j!&an v!liki n!&o"tatak$ Sa nji a 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 ko p!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$co M$ 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&ovi a (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 napona$ 6ta najlak! ra&i? M!ri vr! ! i broji$ !r!nj!

- 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 i pul"!# 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*ra a 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 i pul"!$ Gako j! za !li inaciju " !tnji po!ljno kori"titi ulaz "a itovi oki&a2! # i pul"! 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! "! ko binovati '=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 i at! na ;ttp/MMRRR$*lobu$n!tMppM!n*li";MPPMn!FFF$;t $ Tu "! nalaz! po&aci o 9r!kv!ncija a 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"tavi o &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 "ni anja i ko pr!"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 &ina i2ki 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 !nti a# pa "! nj!*ov op"!* !r!nja o! !njati u iroki *ranica a# o o*u0avaju0i na taj na2in !r!nj! napona u op"!zi a o& + &o KYY#Y > r!zolucijo o& +#1 ># pa "v! &o + &o KYY#Y> r!zolucijo o& +#1>$

146

66. Ko&%e'1 5#( 'e$#'e r'#@ 0 r 0"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+oC i ati otporno"t o& 1k[# pri @+oC @k[# pri K+oC 4k[ i pri 4+oC 8k[$ <2i*l!&no j! &a on u !"to lin!arn! i a lo*arita "ku karakt!ri"tiku$ Iako "! at! ati2ki 9or ula a (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 ko p!nzovati n!lin!arna izobli2!nja kako upotr!blj!no* "!nzora tako i "vi; o"tali; 2inilaca$ 7!&an o& na2ina ko p!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& 1oC ili + &o 1++ r!zolucijo o& koC za t! p!raturni op"!* o& +oC &o F+oC)# 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*ra a o!t! !&itovati pr! a "voji potr!ba a i i"kopirati *a u "op"tv!ni pro*ra $ Pri to ! ni"t! o*rani2!ni "a o 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 "ni a "! 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 !ri a vi&!li "t! kako "! o! !riti nivo r!k!$ - !%uvr! !nu "t! nau2ili i upotr!bu 8M3 konv!rtora# I@C i CS@K@ ko unikaciono* protokola$ Sa&a i nij! t!ko za i"liti !t!oroloku "tanicu "a an! o !tro ( !ra2! brzin! v!tra)# ;i&ro !tro ( !ra0! vlano"ti vaz&u;a)# t!r o !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 "! "ni aju 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 ko pjut!r$ Go pjut!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 ikrokli a 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& @FoC i"klju2i0! "! r!l!j$ Ilu"tracija ovo*a o*la bi ovako iz*l!&ati/ movlw subwf btfss goto goto .175 A(,% STATUS,# U@2>!cI3@2>!cA Za&ata vr!&no"t t! p!ratur! A U V 83 B $1PF A T!"tiraj pr!kora2!nj! A 83 e $1PF A 83 aV $1PF

3a li j! ovo &obar na2in kontrol!? 'ij!1 Svi "!nzori po&loni "u " !tnja a$ 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 naj anj! onaj "a broj! 1 (uklju2!na "a o &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 ko inica "a "voji ( a&! in C;ina) u"i"iva2! $ Iako 0! &!kaplin* kon&!nzator u &obroj !ri !li ini"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! ko pro i" 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!o a 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 "ituacija a kori"ti "! kontinualna r!*ulacija "na*!# 9azni ("li2no kao PUM za j!&no" !rni napon)$

po ako

triaka

-z i o 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! a o &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!"i a i at! u 2a"opi"i a 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 i aju 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"i aln! otporno"ti$ Sl!&!0a ana analo*no* pot!ncio !tra o&no"i "! na poloaj nj!*ov! o"ovin! pri *rani2ni vr!&no"ti a$ Goliko puta "t! orali !njati *u icu 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!%aji a$ 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 i aju 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 9or at 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!2i a# 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! i ati "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 o o*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 i ati i pr!ko @FF poloaja za "a o 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 i uno"t na " !tnj! varni2!nja# ali 0! ak"i alna 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"i alnoj r!zoluciji i ak"i alnoj 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 "ni anj! tr!nutn! (ap"olutn!) vr!&no"ti poloaja o"ovin! rotaciono* !nko&!ra u ==PC<M# prakti2nij! j! "ni iti 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 i at! ;ttp/MMRRR$ c ani"$co Mc;uckMrobotic"Mproj!ct"MlabBNKMXua&ratrak$;t l$ na "ajtu

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 "a o &i*italni &ava2i poloaja o"ovin!$ M!%uti # to n! zna2i &a "! (u ko binaciji "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 i at! 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 otori a po&razu j!vaju "! otori j!&no" !rn! "truj! "a 2!tkica a$ >!liko broju kol!ktor"ki; otora j!&no" !rn! "truj! o*u0! j! !njati " !r i brzinu$ 'a pri !r ali otori a iz vok !na ili ka"!to9ona# otori a v!ntilatora za ;la&njak auto obila# pa "v! &o otora za viljukar!$ Princip nji;ovo* ra&a j! i"ti# a razlikuju "! j!&ino po "vojoj potronji i &i !nzija a$ Gako otori najbolj! i"kori0!nj! i aju pri "vo no inalno 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 ! i aju " 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$ ,B o"ta (!n*$ ,Bbri&*!)# koji ob!zb!%uj! n!op;o&nu pro !nu polarit!ta$ >i! o ovo ! i at! na "ajtu/ RRR$ c ani"$co Mc;uckMCobotic"MtutorialM;Bbri&*!Min&!N$;t l Gako kol!ktor"ki otor o! u tr!nutku uklju2!nja povu0i no*o v!0u "truju o& no inaln!# 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 izlazi a 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$ c ani"$co Mc;uckMCobotic"MtutorialM;Bbri&*!MbjtBcircuit$;t l 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"i alnoj brzini u j!&no " !ru &ov!&!t! "i*nal za ak"i alnu brzinu u "uprotno " !ru) !9!kat 0! biti i"ti kao ko& auto obila koji iz 2!tvrt! brzin! ubacit! u rikv!rc$ Pr! t!"tiranja na ;ar&v!ru "i ulirajt! pro*ra i prov!rit! &a li "t! otoru o"tavili &ovoljno vr! !na za zau"tavljanj!$ -"poravanj!# ko2!nj! i ubrzavanj! n!0! i ati "voju 9unkciju ukoliko "! zavr! za "a o +#1S$

1FK

62. Po"ro; > 0 o !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! na a u2!nici a 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$ >ol9ra ova "ijalica i a 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 o a$ - 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! vol9ra ovo vlakno "! za*r!j! i pov!0a "voju otporno"t na vi! &!"!tina o a# to o*rani2ava &alj! pov!0anj! "truj!$ -koliko u proizvo&no proc!"u vol9ra ovo 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"i aln! "truj! (!n*$ curr!nt li it!r) ili po"t!p!ni pov!0anj! "truj! (!n*$ "o9t "tart)$ Pr!tpo"tavi o &a !lit! iz !riti !l!ktri2nu otporno"t "ijalic! &ok j! vol9ra ovo vlakno jo u"ijano$ 7a"no j! &a to o!t! ura&iti pri !no o ovo* 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"tavi o &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 "ni iti *ra9ik opa&anja otporno"ti u"l!& ;la&j!nja "ijalic!$ .ak "! o! !r!nj! prot!klo* vr! !na &o ini aln! otporno"ti "ijalic! *rubo iz !riti "poljna t! p!ratura ("ijalica 0! "! br! ;la&iti ukoliko j! "poljna t! p!ratura nia)1 Zaz i"lit! bojl!r# ko ! j! "!nzor t! p!ratur! nj!*ov "op"tv!ni *r!ja2$ Sa o ka& n! bi i ao toliko ka !nca1 <vaj princip nij! o*rani2!n "a o 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!i u$ 'a nji;ovi kontakti a 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 aku ulatoru o o*u0iti naiz !ni2no punj!nj! i t!"tiranj! napunj!no"ti$ Iako n! a &ir!ktn! v!z! "a potroa2i a# v!rovatno 0! >a" zani ati kako obi2nu :=3 upotr!biti za "!nzor o"v!tlj!no"ti$ 3!talj! i at! na "ajtu ;ttp/MM9r!!Bvz$tBco $;rMIvicaB'ovakovicMin&!N$;t l$ o!t!

1F4

6). Servo &o"or#


S!rvo otori pr!&"tavljaju obi2n! kol!ktor"k! 3C otor! koji a 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 po i2ni pr!*ra&a a# kon"trukcij! C'C ain!# ili pr!cizn! r!*ulacij! brzin! otora$ S!rvo otori obi2no i aju 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! uzi ati "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!vi a 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 objanj!n u 8'P18$ !nko&!ro $ <n j!

Motori koji "! i por!& r!&uktora n! o*u &ovoljno brzo zau"taviti (i aju v!liki za ajac) 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"i aln! brzin! otora$ 'a "r!0u# o&*ovaraju0! &ava2! poloaja o"ovin! otora nij! t!ko napraviti uz par o&*ovaraju0i; "!nzora$ >i! o to ! i at! 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 brzina a 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#8o$ Za "voj! upravljanj! kori"t! o&*ovaraju0! "!kv!nc! "li2n! oni a iz rotacioni; !nko&!ra$ Po "a o principu nji;ovo* ra&a o2i*l!&no j! &a i za razliku o& "!rvo otora nij! potr!ban ikakav oblik povratn! in9or acij! 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!r o !tra# ta;o !tra# a!ro !rta# ;i&ro !tra# baro !tra ili t!r opara 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; in9or acija pr!&uz ! o&r!%!na akcija (npr$ navo&njavanj! povr0a u pla"t!niku ili aktiviranj! alar a)# &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 koli a "u na ;ar&v!r"ko nivou i pl! !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! i pl! !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 ;ttp/MMRRR$ibiblio$or*MobpM!l!ctricCircuit"M3i*italMin&!N$;t l "ajtu$ o!t! na0i na

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*ra a koji >a

o*u po o0i u "i uliranju o"novni; lo*i2ki; kola "u/

:o*i"i 3i*ital Si ulator 3i*ital Uork"

Gako ob! "!rij! za pov!zivanj! "a ikrokontrol!ro kori"t! a&r!"nu a*i"tralu# brzina ko unikacij! 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 i a 1K ulazno izlazni; pinova$ Sa i 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 "a i &a j! t!l!vizij"ki prikaz tro o"ti lju&"ko* oka$ <v&! j! pri !nj!n "li2an pri"tup$ o*u0 j!&ino zbo*

Po*l!&ajt! "l!&!0u ! u$ 8no&! :=3 "poj!n! "u na P<CT5# a kato&! na tranzi"tor!$

Sa ovo

! o

o o*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* tro o"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 pinovi a P<CT5 r!*i"tra)# ili po&!avanj! &uin! uklju2!no* "tanja# tako &a "! po"ti*n! ko pro i" 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*ra a$ 'a i"ti na2in &i"pl!ja$ o*u0! j! prikazati o&*ovaraju0! ci9r! na vi! "!& o"!* !ntni;

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# "a i 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 "a i 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 &!ci aln! ta2k! (&p)# orao j! biti &ov!&!n &ir!ktno na ikrokontrol!r# j!r 4F11 (i P44P) i a o*u0no"t prikaza "a o j!&n! ci9r!$ -koliko "! &!ci alna 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! i p!&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"i alni napon pri ko ! :=31 n! ! ituj! "v!tlo >o99@ O ak"i alni napon pri ko ! :=3@ n! ! ituj! "v!tlo >on1 O ini inalni napon pri ko ! :=31 ! ituj! "v!tlo >on@ O ini inalni 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& 8 8 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"okoi p!&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 @#F 8 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 "a o kao pri !r ono*a to tr!bat! izb!*avati u "voji aplikacija a$ 'a "li2an na2in o!t! pov!zivati i T5+@Y "a ;ttp/MMRRR$ icroc;ip$co M$ - lit!raturi "! ovaj princip no*o v!0i broj :=3$ Za &!talj! po*l!&ajt! C;arli!pl!Nin*$ 161

o! na0i i po& nazivo

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*rica a$ Ci9r! na :C3Bu "a"toj! "! (kao i ko& :=3 &i"pl!ja) o& "!* !nata$ M!%uti # nji a "! 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"i alno &va "!& o"!* !ntna :C3 &i"pl!ja (zaj!&no "a &!ci alno 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 i at! u 8'F6K "a ;ttp/MMRRR$ icroc;ip$co M$ 3a bi "! ovo o*rani2!nj! pr!vazilo iz ilj!ni "u tzv$ int!li*!ntni :C3$ <ni por!& &i"pl!ja i aju 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 *ovornica a)# a na *ra9i2ki ta *o& !lit! (i at! i; na obilni t!l!9oni a)$ - 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; ko patibilni; klonova$ 6ta pr!&"tavlja 8SCII "!t karakt!ra? - rano &oba in9or atik! "vaki ko pjut!r (Co o&or!# Sp!ctru # 8tari# 8 "tra&# <ric 'ova# Paco # ?alak"ija) i ao j! "op"tv!ni 9or at 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 i ala n!"u*la"ica$ - n!ki ko pjut!ri a 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 ra2unari a# 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!) i a "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)$ Zata njivanj! 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!ba o 2uvati "liku (kao u tab!li za :=3 &i"pl!j!) "vako* poj!&ina2no* karakt!ra$ Tu obav!zu na "!b! pr!uzi a int!*ri"ani kontrol!r int!li*!ntno* &i"pl!ja$ <n i a 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$ 'a a 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 9ontovi a 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 pinovi a# 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!vi a 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/ :"/ 1 @ K 4 F 6 PB14 1F 16 8"%+*, >SS >33 >< CS CMU = 35+B35P 8 G Ma"a 'apajanj! za kontrol!r 'apajanj! za :C3 &i"pl!j (!n*$ C!*i"t!r "!l!ction) (!n*$ C!a&MRrit! S!l!ction) =nabl! pin Si*nal 9or :CM :inij! za po&atk! (+BP) 'apajanj! za :=3 (H) 'apajanj! za :=3 (B) Op"

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! "a o 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"i alno 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 pri iti$ =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!$ I pul" 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 ikrokontrol!ra$ po*lavlju# o*u0! j! r!alizovati vi! o& 1K ulaza

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"tavi o &a "u pr!ki&a2i ob!l!!ni broj!vi a 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&a2i a K# 6# Y i 1@$ Pull up otpornici oraju biti uklju2!ni kako "! na ulazni pinovi a 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 pa titi 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 kori"titi "l!&!0u ! u$ ini alni broj upotr!blj!ni; pinova# o!t!

16F

Pr!tpo"tavi o &a "u upotr!blj!ni pinovi C5+ &o C5K# i &a "u pr!ki&a2i ob!l!!ni &!ci alno (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 i pl! !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 "a o 4 pina$ I u ovo "lu2aju ora "! pa titi 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 tro o"t oka ko& ultipl!k"a "a :=3) ov&! pri !nj!na tro o"t pr"ta koji "! priti"ka pr!ki&a2$ 'ai !# pro"!2no ini alno vr! ! za koj! kori"nik &ri ta"t!r pr!ki&a2 priti"nuti j! oko F+ &o 1++ S$ :i2no "a i ao 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 nar!&ni po*lavlji a$ o!$ >i! o to ! u

166

81. D3%$# &3$"#%$e0!


Sl!&!0o ! o r!alizovana j! ko binacija ultipl!k"a ulaza "a izlaza$ 'a taj na2in pinovi P<CT5 r!*i"tra i aju &uplu 9unkciju$ ultipl!k"o

S!tit! "! ultipl!k"a izlaza$ Pic p!rio&i2no po"tavlja "tanj! na :=3 "!* !nti a i pr!ko zaj!&ni2k! kato&! uklju2uj! ko pl!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!ji a 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 ulazi a ikrokontrol!ra ("a o 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 ulazi a potr!bno uklju2iti pull up otpornik!$ To "! o! ura&iti priliko inicijalizacij!# na po2!tku pro*ra a$ Gako "u :=3 &i"pl!ji aktivni "a o 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 pinovi a$ -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!ji a$ 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$co M$ 16P

82. K % 5#"#v'# %re0#d >#


- ovo po*lavlju nau2i0!t! kako "! unutar PIC ikrokontrol!ra o! i pl! !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! i pul"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 " !tnja a# ali !li inacija !;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&ta pati na ;artiji ili t!r ootpornoj 9oliji ( o! "! nabaviti u knjiara a)# i takva "lika o! "! po"taviti iz !%u "takla i oblo*!$ Gako "! u ovo "lu2aju tr!baju &!t!ktovati "a o &va "tanja ( ala kapacitivno"t O n! a pr"ta i v!lika kapacitivno"t O i a pr"ta) "o9tv!r tr!ba &!t!ktovati "a o ova &va "tanja$ -z &ovoljno tanak izolator ("taklo# pl!k"i*la"# t!r ootporna 9olija$$$) o*u0! j! &!t!ktovati pribliavanj! i o&aljavanj! pr"ta o& oblo*!# naravno u &o"ta o*rani2!no &o !tu$ I "a i o!t! zaklju2iti &a najv!0i !9!kat na &a i"pravnu &!t!kciju i a 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$co M i RRR$ icroc;ip$co M Touc;$ Gapacitivni pr!ki&a2i i aju i par ana$ <ni i aju alo v!0u potronju !n!r*ij!# o&ailju !l!ktro a*n!tn! tala"! (zbo* v!0! povrin! oblo*! "! ponaa kao ant!na) na aloj &aljini# jaki !l!ktro a*n!tni tala"i o*u izazvati po*r!nu &!t!kciju ( ;ttp/MMRRR$Woutub!$co MRatc;?vVL*:@>;8P=b8ha pARatc;Lr!"pon"! ) priti"nuto"ti ta"t!ra# za "vaki pr!ki&a2 za;t!vaju naj anj! 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! ko pon!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 ko pon!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 ko pon!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$ 'aj anja 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 i at! na ;ttp/MMRRR$ro anblack$co Mk!Wpa&$;t $ ;ttp/MMRRR$jo"!pino$co M i na

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 pinovi a# &ozvoliti int!rapt po pro !ni "tanja na C54 &o C5P pinovi a "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$co M$ 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 1 S) "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 18 S)$ .i "! r!"!t zavri# potr!bno j! uklju2iti Pull up otpornik!# na C5+ &o C5K pinovi a 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 pinovi a# 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$co M$

1P1

84. +oDe $# (o; & '(eE


Mo!# ali uz upotr!bu "p!cijalizovani; int!*ri"ani; kola koja u "!bi v!0 i aju 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+@ =3=P+P O :C3 &i"pl!j &rajv!r$ -pravljanj! pr!ko 1 pina$ O :=3 &i"pl!j &rajv!r za 8 "!& o"!* !ntni; &i"pl!ja (b!z &!ci aln! 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 pri lj!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 &!ci aln! 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 &!ci aln! 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 (4F S 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 nivoi a$ <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 ko binaciji "a P4@FY ili 4+YY kao ulazni koli a# i u ko binaciji "a P4@F1 ili 4F1@ kao izlazni koli a$

'a taj na2in o!t! kori"t!0i "a o 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 i aju jo po j!&an "!rij"ki izlaz (P4FYF) i ulaz (P4FYP)# tako &a "! nji;ovi r!&ni v!zivanj! i pov!zivanj! pr!ko "a o 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 ko plikovaniji 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 ultipl!k" t!! o"tvariti# ali j! o*u0 S:==P o&$ j!

- prak"i "! ovi na2ini v!o a r!tko kori"t!$ 7!&no"tavnij! (i j!9tinij!) j! uz!ti ikrokontrol!r "a v!0i broj! ulazno izlazni; pinova$

1PK

86. Od b#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 ko plikovan! 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 va a o&*ovara# a zati na kraju prora2una konv!rtovati r!zultat u oblik po*o&an za prikazivanj! pr!ko konv!rzioni; al*orita a$ 'a "ajtu ;ttp/MMRRR$ icroc;ip$co M &at j! o&r!%!ni broj konv!rzioni; rutina$ To "u/ 8'F@6 B 5C3 (5inarW Co&!& 3!ci al) 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 principi a/ 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! &!ci alnu 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%! ko plikovano$ <&uz it! o& &!ci alno* broja ak"i alni u noak 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 u noak 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+ P+ B 64 V 6 6B 4V @ @B 2V +

412 @F6 1@8 64 K@ 16 8 4 2 1 1 + + 1 + + + 1 1 + V bQ1+ +1++ +11+Q

De0"%a,/" u .e! a#e0"%a,/" *+,"! 'ajpr! konv!rtujt! &!ci alni oblik u binarni# a zati binarni u ;!k"a&!ci alni$ 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! 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$ u noci a ak"i aln! vr!&no"ti

Ae! a#e0"%a,/" u #e0"%a,/" *+,"! Gonv!rtujt! iz ;!k"a&!ci alno* u binarni oblik# a zati iz binarno* u &!ci alni$ 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! u noaka ak"i aln! 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 po no!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&uzi anja$ 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!vi a# nij! i; pr!vi! t!ko i pl! !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*ra o 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 addwf movwf movf btfsc addlw addwf movwf return ESB1,% ESB2,% ESBR=S 4SB1,% STATUS,# 0x01 4SB2,% 4SBR=S A -z i bajt anj! t!in! prvo* op!ran&a A "ab!ri "a bajto anj! t!in! &ru*o* op!ran&a$ A C!zultat u bajt anj! t!in! r!zultata$ A -z i bajt v!0! t!in! prvo* op!ran&a A 3a li j! &olo &o pr!kora2!nja? A 7!"t!# &o&aj CarrW 9la*$ A "ab!ri "a bajto v!0! t!in! &ru*o* op!ran&a$ A C!zultat u bajt v!0! t!in! r!zultata$

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&uzi anj! &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 ko plikovanij! 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$co M i ;ttp/MMRRR$picli"t$co Mc*iBbinMcon"t&iv ul$!N! link$

1P6

89. ,r1e & "e& "#>0e o%er 5#(e


Pr!tpo"tavi o &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 (K S 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"tavi o &a !lit! izra2unati kva&ratni kor!n na& o" obitni @FF)$ 'ita lak!$ Gori"ti0!t! tab!lu$ T0b1 addwf retlw retlw retlw retlw retlw retlw $ $ retlw retlw P#E,F .0 .1 .1 .1 .2 .2 $ .15 .15 broj! ($+ &o $

A - U "! nalazi broj o& $+ &o $@FF$ A+O: A1O1 A@O1 AKO1 A4O2 AFO2 A @F4 O 14 A @FF O 14

Tab!lo koja >a vra0a c!lobrojnu vr!&no"t o!t! &obiti ta2an c!lobrojni r!zultat u "a o FB6 in"trukcij"ki; ciklu"a$ I "a i uo2avat! &a j! pr!cizno"t r!zultata pr!vi! ala za ikakav ozbiljniji ra&$ '! a probl! a$ >r!&no"t prv! &!ci al! r!zultata na0i 0! "! u "l!&!0oj tab!li$ T0b2 addwf retlw retlw retlw retlw retlw retlw $ $ retlw retlw P#E,F .0 .0 .4 .7 .0 .2 $ .B .B A - U "! nalazi broj o& $+ &o $@FF$ A + O +#: A 1 O 1#: A @ O 1#4 A K O 1#6 A 4 O @#: A F O @#2 A @F4 O 1F#9 A @FF O 1F#9

Za &ru*u &!ci alu kori"tila bi "! nar!&na tab!la# i tako &alj!$ Iako "u ovi na2ini izuz!tno brzi# ni"u !kono i2ni u po*l!&u utroka pro*ra "k! ! orij!$ 3obar ko pro i" iz !%u brzin! i v!li2in! pro*ra a pr!&"tavljao bi 2uvanj! &!ci ala u binarno ili 5C3 obliku$ 'a taj na2in *ornj! &v! tab!l! o*l! bi "! ko pr!"ovati u j!&nu# tako to bi *ornji nibl "a&rao c!lobrojnu vr!&no"t (+ &o 1F)# a &onji vr!&no"t prv! &!ci al!$ 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 (&!ci alna vr!&no"t) bi "! ionako nalazila u 5C3 9or atu$ Tab!la bi o*la iz*l!&ati ovako/

1PP

T0b2 addwf retlw retlw retlw retlw retlw retlw $ $ retlw retlw

P#E,F 0x00 0x10 0x14 0x17 0x20 0x22 $ 0xFB 0xFB

A - U "! nalazi broj o& $+ &o $@FF$ A + O :?: A 1 O 1?: A @ O 1?4 A K O 1?6 A 4 O 2?: A F O 2?2 A @F4 O 14?9 A @FF O 14?9

Za v!0i broj &!ci ala po*o&nij! bi bilo kori"titi binarni oblik zapi"a ( akar "a o za &!ci al!) 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 po o0i priliko ko pr!"ij! nj!n! tab!l!$ Go pr!"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 &!ci ala$ Slika 7o v!0u ko pr!"iju &obili bi"t! ukoliko "! o*rani2it! "a o na 2!tvrtinu p!rio&!# j!r zbo* "i !rti2no"ti polup!rio&! &ru*i &!o o!t! r!*!n!ri"ati o&uzi anj! in&!k"a tab!l! o& ak"i aln! 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 &!ci ala &obiti obra"ci a/ 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! i ao &u*! tab!l!$ Mak"i alnu 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# raz i"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! ko unikacij!$ - 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 po u2iti &ok &o%!t! &o vr! !na o& ta2no 1S$ '! v!ruj!t!? Zato to raz iljat! &!ci alno# 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# "a o ka&a bi PIC o*ao lako &!liti "a 1+$ Gako j! o"nova za &!lj!nj! @ a n! 1+# !vo ta bi "! &!"ilo u to "lu2aju/ ikrokontrol!ru

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"ovnici a) 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 i aju anj! o&"tupanj! 9r!kv!nij! o& o"tali;# upravo zbo* nji;ov! pri !n! u *!n!ratori a 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 i pul"! za brojanj! uzi a "a ovo* pina u !"to "a takta o"cilatora$ Tako PIC o! ra&iti "vojo ak"i alno brzino # uz i"to tako ak"i alnu pr!cizno"t vr! !na$ 'aravno# ovo alo ko plikuj! ;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&!nzatori a)# 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 i pl! !ntirati kor!kciju @Y$ 9!bruara za "lu2aj pr!"tupn! *o&in! (:!ap W!ar) i auto at"ko auriranj! priliko pro !n! vr! !na (!n*$ 3aWli*;t "avin*")$ Zbo* to*a >a" va ko pjut!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 ko pjut!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 ko plikuj! pro*ra i "a i 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 i at! a"! bl!r"ku rutinu u Microc;ip Ma!"tro pro*ra u$ >!rovatno "t! *a v!0 in"talirali uz MP:85 pak!t$ 7o n!k! "u na a&r!"a a ;ttp/MMRRR$iki$9iMjap i ;ttp/MMourRorl&$co pu"!rv!$co M;o !pa*!"M5illL5oR&!nM;o !pa*!$;t b !nu$ Pravlj!nj! najobi2nij!* &i*italno* 2a"ovnika ikrokontrol!ro nij! ba prakti2no$ 3i*italni 2a"ovnici i aju "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! alar a# pov!zivanj! "a ko pjut!ro )# kao na pri !r "a "ajta ;ttp/MMRRR$bobblick$co Mt!c;r!9Mproj!ct"MpropclockMpropclock$;t l$ 8 ukoliko j! ala potronja i p!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! ini aln! potronj! &ir!ktno na ta panu 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 ko pjut!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 prora2uni a 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 koli a$

181

91. Dr (ver#
Iako >a o! tako iz*l!&ati# ovo nij! ala$ <v&! "! &o&u! n! ra&i o &rajv!ri a za "k!n!r# ta pa2 ili *ra9i2ku karticu# v!0 o &rajv!ri a 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 razu ljivij! &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 comf P"RTB,% andlw b'00000011' return A Stanj! pr!ki&a2a u bitovi a + i 1 u U A Inv!rtovani P<CT5 u U A Ma"kiranj! bitova @ &o P (izlazni) A Povratak iz potpro*ra a

3rajv!r bi "! o*ao &o&atno ko binovati "a *lavni pro*ra o 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*ra a za i"pi"$ To bi o*lo iz*l!&ati ovako/ ()0>Ie):S0:2ed call T0b2 movf SP"RTB call U5d0&e return T0b2 addwf retlw retlw retlw retlw retlw retlw U5d0&e movf movwf movf movwf return Potpro*ra -p&at! po"!bna c!lina$ P#E,, b'00001100' b'10110110' b'10011110' b'11001100' b'11011010' b'11111010' SP"RTA,% P"RTA SP"RTB,% P"RTB A 3rajv!r za i"pi" U broja na :=3 &i"pl!j A Poziv za "liku :=3 &i"pl!ja A Slika ci9r! u ";a&&oR r!*i"tar za port 5$ A Poziv potpro*ra a za i"pi" A Povratak iz potpro*ra a A - U "! nalazi "! vr!&no"t o& A $1 &o $6$ Ta vr!&no"t "! &o&aj! na PC:$ A <brazac za crtanj! ci9r! 1 B 1 A <brazac za crtanj! ci9r! @ B 2 A <brazac za crtanj! ci9r! K B 3 A <brazac za crtanj! ci9r! 4 B 4 A <brazac za crtanj! ci9r! F B 5 A <brazac za crtanj! ci9r! 6 B 6 A S;a&&oR r!*i"tar porta 8 A u P<CT8 A S;a&&oR r!*i"tar porta 5 A u P<CT5 A Povratak iz potpro*ra a o! "luiti kao

o! "! ovako pozivati i za port 8# o&no"no

18@

Ga& *o& j! o*u0! "tan&ar&izujt! "o9tv!r za uobi2aj!ni ;ar&v!r &rajv!ri a$ Potru&it! "! &a o&r!%!n! "tan&ar&n! vr!&no"ti (ulazi u prvo &rajv!ru) i !nuj!t! i po&!"it! "a o j!&no u pro*ra u$ Tako 0! pri ka"nijoj iz !ni "o9tv!ra (npr$ pri &o&avanju jo j!&no* ulazno* pina) biti &ovoljno iz !niti "a o j!&an j!&ini r!& pro*ra a$ 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!nutci a iz int!rapta$ Ipak# ra& "a vi! ovakvi; vr! !n"ki kriti2ni; &!lova unutar j!&no* pro*ra a &o&atno ko plikuj! o"novni al*orita pro*ra a$ 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!riju i a 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 # i a 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 ko unicirati 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!ji a i r!*i"tar T8ST=CI "a 9la*ovi a 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 !tri a (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 o o*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 i a &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!!kono i2no ra"ipanj! r!"ur"a$ Ta"kovi u*lavno za;t!vaju pozivanj! u razli2iti int!rvali a (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!rapti a 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 "ni ati (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 "! "ni iti u par kontrolni; r!*i"tara$ Ta"kovi "! o*u razlikovati po za;t!vi a za op"luivanj! $ 'a pri !r o"v!avanj! &i"pl!ja ora i ati priorit!t na& o"tali ta"kovi a# i ora biti pozivano u ta2ni vr! !n"ki int!rvali a$ 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$ - ko pjut!r"ki op!rativni "i"t! i a# 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*ra iranj! ikrokontrol!ra "! (za razliku o& pro*ra iranja ko pjut!ra) n! o! po" atrati kao u"a lj!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!# ko pl! !nta &vojk!# "ortiranja po&ataka# CCC al*orit a# op!racija "a n!*ativni ili broj!vi a "a pokr!tni zar!zo $$$)$ M!%uti # iako "! to u*lavno n! "po inj! u lit!raturi poznavanj! 9izi2ki; zakona o! >a it!kako po o0i u pravilno &izajniranju ur!%aja$ 'a pri !r pri !no &opl!rovo* !9!kta o o*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 at o"9!r! za razli2it! tala"n! &uin! "v!tlo"ti o o*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 o o*u0ava uzak au&io 9r!kv!ntni op"!*# a "a i 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 o o*u0ava ultipl!k" izlaza a lju&"ko* uva ko pr!"iju uzik! ili *ovora (npr$ 83PCM ili Sp!!N al*orit o ) b!z zna2ajnij!* *ubitka kvalit!ta$ Poznavanj! in9or atik!# o! >a it!kako po o0i priliko pov!zivanja ko pjut!ra i ikrokontrol!ra$ Mikrokontrol!r bi o*ao "kupljati po&atk! na t!r!nu# a ko pjut!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!la a upoznali "t! "! "a probl! o "trani2!nja pro*ra "k! ! orij! u blokovi a 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!la a 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 i aju vi! o& @Gb pro*ra "k! ! orij! (PIC16F84 i a 1Gb) in"trukcij! C8:: i ?<T< o*u a&r!"irati ak"i alno @Gb ! orij!$ <vo o*rani2!nj! proi"ti2! iz "intak"! "a i; 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"i alno 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"i alno 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"i alno @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"i alno 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 i a 68 opti; i 1@ "p!cijalni; r!*i"tara u 58'G+) kori"t! "! r!*i"tri na &ru*i "tranica a 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! "a o 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 ko plikacija 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 nji a o*u0! j! a&r!"irati &o @F6 r!*i"tara$ Zato "! unutar ST8T-S r!*i"tra nalazi ICP bit koji "! o o*u0ava in&ir!ktno a&r!"iranj! o"tatka C8M ! orij!$

186

Iz "vi; ovi; razlo*a PIC16 9a ilija ikrokontrol!ra j! prili2no n!za;valna za pravlj!nj! pro*ra a 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 banka a 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! >a a 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!zici a$ '! 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= 3IS8SM84 >!0 ranij! po injani PIC Si ulator I3=$ <v&! j! potr!bno napo !nuti &a MP:85 a"! bl!r o o*u0uj! kori0!nj! &o&atno* "!ta in"trukcija$ T! in"trukcij! ikrokontrol!r n! razu !# pa "u "to*a i pl! !ntovan! upotr!bo &v! ili vi! obi2ni; in"trukcija$ <vaj "!t in"trukcija o*u0! j! na0i u n!ki (r!tki ) $a" 9ajlovi a$ -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*ra a 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# i a0! i !na iz bank! + (iako "! o&a r!alno nalaz! u banci 1)$ :ab!la a &i"a"! bl!r &o&!ljuj! onak! r!&o # a r!*i"tri a a&r!"o (tipa :ab!l4 i C!*@8)$ 5inarni broj!vi ili 8SCII karakt!ri uv!k "u prikazani u ;!k"a&!ci alno 9or atu$ '!uobi2aj!no r!!n! op!racij! (npr$ "kok upotr!bo PC: r!*i"tra) o*u biti izuz!tno ko plikovan! 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 !"ti a u koji a "! pojavljuju u pro*ra u (pr!ko =&it# C!plac! opcij!)$ 8naliza tu%i; pro*ra a po o0i 0! >a u razvijanju "op"tv!no* "tila pro*ra iranja# i u u2!nju novi; "o9tv!r"ki; t!;nika$ <"i to*a# n! a "vr;! ponovo iz iljati 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*ra iran! i zati0!n! ikrokontrol!r! (uklju2!n CP kon9i*uracioni bit)$ 5u&u0i &a j! ovaj na2in zatit! pro*ra a 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*ra i a "! 2!"to javlja potr!ba za "tan&ar&ni pro*ra "ki "truktura a 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!zici a)$ Svakako &a "! ov! "truktur! o*u r!alizovati ru2no u a"! bl!ru# ali u v!0i pro*ra i a 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*ra a# za&ravaju0i pri to ! "vu "na*u a"! bl!ra$ Gako j! to o*u0!? Pr!tpo"tavi o &a i at! 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 sublw btfsc goto btfsc goto UIec0> Te3& incf goto movf sublw btfss goto decf ... QI:'"(I;A,% 0x07 STATUS,? Te3& STATUS,# S10+>BR"$,F J)0> E":'"(I;A,% 0x(8 STATUS,# UIec0> BR"$,F

S10+>J)0>

Prvi "lu2aj j! razu ljiviji (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 iz iljanj! 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 "! ko pajlirao MP:85 a"! bl!ro $ 18Y

Mo&a " atrat! &a j! lak! kori"titi C ili PIC 5a"ic$ 3!li i2no "t! u pravu$ Probl! j! to vii pro*ra "ki j!zici n! o"tavljaju pro*ra !ru o*u0no"t "i uliranja pro*ra a 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! "a o 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$co MpicM&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 ko an&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$co M&oRnloa&"$;t l$ <n j! "kro niji; o*u0no"ti# i n! o"tavlja pro*ra !ru o*u0no"t nakna&n! iz !n! &obij!no* ko&a (&obija "! "a o $;!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*ra a "koro i"to toliko brz kao ko& vii; pro*ra "ki; j!zika# a op!t j! kori"niku o o*u0!na ak"i alna o*u0a kontrola pro*ra a$

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)# koji a 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 o o*u0avaju v!o a brzu izra&u j!&no"tavniji; pro*ra a$ 7!&an o& najbolji; *ra9i2ki orj!nti"ani; pro*ra "ki; j!zika j! :3 icro "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 najopti alnij! "o9tv!r"ko M ;ar&v!r"ko r!!nj! za >a proj!kat$ <bi2no "! r!!nj! nalazi u razni ko pro i"i a$ 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!%aji a# 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! 9il ova# 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*ra a$ 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 ko pjut!ra$ >i&!o i*ric!1 3>3 o!t! *l!&ati i na ko pjut!ru "a anj! o& 8++M,z$ 3i*italna kola "a int!*ri"ani "ato i kal!n&aro 8li po*l!&ajt! nji;ovu c!nu1 -por!&it! j! "a c!no "i*urno >a &!luju pri a ljivo$ 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*lovi a 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 i ao koji !*abajt ! orij!$ <vako# j!&ina pr!&no"t joj j! ko patibilno"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 1 0o'


- razni proj!kti a "a ikrokontrol!ri a no*o ta o! po0i naopako$ 'a >a a j! &a pr!&upr!&it! to vi! v!rovatni; *r!aka$ I ajt! u vi&u &a iako ikrokontrol!r o! b!z probl! a obavljati jako ko plikovan! op!racij!# ni on nij! "v! o*u0$ >i u tr!bat! ob!zb!&iti opti aln! 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"lovi a vla*!# t! p!ratur!# !;ani2ki; vibracija ili !l!ktro a*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 i at! 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! ko pon!nt! nj!*ovi; na otaja$ < "tabilno"ti o"cilatora u ovakvi "lu2aj!vi a# &a ni n! *ovori $ 3ru*a tipi2na *r!ka j! napon in&ukovan na ta panoj plo2ici i priklju2ni kablovi a$ '! 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*ra iranja 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!ri a$ 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*ra a$ Pinovi koji "! n! kori"t! tr!baju biti kon9i*uri"ani kao izlazi &a n! bi pr!li u vi"okoi p!&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"okoi p!&an"no "tanj!$ vi"okoi p!&an"no "tanju napon na pinovi a 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 pinovi a P<CT8 i P<CT5 r!*i"tra javi0! "! n!poznato "tanj!$ >r!&no"ti u P<CT8 i P<CT5 r!*i"tri a po uklju2!nju ikrokontrol!ra ni"u inicijalizovan!# to zna2i &a "tanj! bitova u nji a 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 pinovi a 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*ra a unapr!& inicijalizuj!t! "tanj! na P<CT8 i P<CT5 r!*i"tri a 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!nji a# &a "! nji;ova inicijalizacija n! bi pr!vi&!la$ -koliko "u &ir!ktno na ikrokontrol!r pov!zani pr!ki&a2i# orat! na ulazni pinovi a 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 ko ni2in 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 i p!&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& portovi a# 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! i p!rativ) j!&no"tavno "a2!kati &ovoljno &u*o &a "! upi" "i*urno zavri$ Tako%! &obra j! prak"a t!"tiranj! ak"i alno* vr! !na "ni anja i na"tavak pro*ra a ukoliko j! ono no*o &u! o& nor alno* 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 i a "voj ra&ni v!k$ '! bi " !li &ozvoliti pro*ra u "ni anj! 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 "ni ajt! u ==PC<M# "a o 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* "kro no* 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# i a 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! ko pon!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@PKoC)$ 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! po o0i priliko opravk!$ Microc;ip j! tako%! i ao Mar9ija na u u ka&a j! proj!ktovao ikrokontrol!r! pa a"! bl!r u "v! n!i"kori0!n! a&r!"! pro*ra "k! ! orij! "ni a ko& '<P in"trukcij!$ 'akon ak"i aln! pro*ra "k! a&r!"! KNFF pro*ra "! na"tavlja o& po2!tka (+N++)$ Ipak# probl! o! izazvati a&r!"iranj! ! orij! koja nij! i pl! !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::. Dob r 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*ra irat! "voj kli a ur!%aj tako &a "! auto at"ki uklju2uj! "vako*a &ana u 6/++? 7!"t! li "! izn!rvirali to va in"taliran <99ic! pak!t zauzi a cak 1?b ;ar& &i"ka# iako j! poznato &a pro"!2an kori"nik i"kori"ti j!&va @i o*u0no"ti pro*ra a za obra&u t!k"ta? Po*l!&ajt! ta"taturu >a!* ko pjut!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"i alno prila*o%!nj! otorici i int!l!ktualni "po"obno"ti a 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! ko pjut!ra$ Pri !0uj!t! li &a "! razlikuj! o& o"tali;? 'a a to nij! potr!bno$ 8li j!"t! o"oba a "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 "a i 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 otpornici a$ 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"i aln! 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 ci9ra a 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 "a o @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 i at! 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 ko binacijo 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 "a i o" i"lit!$ Zov! "! "!rvi"ni j!r u pri"tup i aju 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 >a a# kako bi va olakao t!"tiranj! ikrokontrol!ra u prak"i$ - nj!*a "! ulazi po"tupci a koji ni"u uobi2aj!ni za obi2no* kori"nika$ To o! biti &ranj! o&r!%!no* ta"t!ra priti"nuto* 1+S# brza ko binacija 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 ko pjut!r pr!ko CS@K@ v!z! (!n*$ inBcircuit &!bu**in*)$ .ak to o!t! ra&iti po pojavi int!rapta ili iz "a o* pro*ra a po"tavljaju0i na !lj!ni !"ti a ta2k! pr!ki&a (!n*$ br!ak point") "a pozivo potpro*ra a 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!rapti a$ Sa "tran! pro*ra iranja# "!rvi"ni o& >a o! o&li2no po"luiti za t!"tiranj! kra0i; potpro*ra a ili rutina pr! nji;ov! i pl! !ntacij! u *lavni pro*ra # ili za I"poljnoJ po&!avanj! "tanja o&r!%!ni; r!*i"tra "a "ni anj! 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*ra iranj! ikrokontrol!ra$ <no to (zbo* "poljni; int!r9!j"a) nij! o*u0! t!"tirati u "i ulatoru# upotr!bo "!rvi"no* o&a po"taj! o*u0!$ -koliko v!0 i at! *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 ta panoj plo2ici i o&*ovaraju0!* kon!ktora o!t! proj!ktovati "voj proizvo& tako &a u o o*u0it! laku za !nu pro*ra a (!n*$ In Circuit S!rial Pro*ra in*) ka"nij!# ili u toku "a o* i"pitivanja pro*ra a$ 'aravno# !k"t!rni ;ar&v!r pro*ra atora j! i &alj! n!op;o&an$

1Y8

1:2. To (e "o. G" ! d E


Sa&a i at! o&li2n! polazn! o"nov! za &alji ra& "a ikrokontrol!ri a$ -koliko va i &anj! n!to nij! ja"no# pitajt!$ Int!rn!t j! pun !ntuzija"ta voljni; &a va po o*nu# "a o ako "! l!po za ol!$ '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 9oru i a RRR$!lit!"!curitW$or*# RRR$!l!ktronika$ba# RRR$ icroc;ip$co # RRR$kazu"$ru i razni &ru*i "ajtovi a$ 3a bi"t! uopt! o*li o2!kivati o&*ovor# bu&it! "trpljivi (niko n! &!ura por!& ko pjut!ra &a bi !to ba va a 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 naj anju 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*ra a$ 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*ra a pr! objavljivanja po&!"it! lab!l! i op!ran&! raz aci a 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*i a$ -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 9oru i a$ -koliko n! po&!lit! "a o"tali a &!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!) 9a ilij! n!0! t!ko pa"ti$ PIC1+ i PIC1@ "!rija i a &o"ta o*rani2!nja u pri !ni$ I aju "a o &va nivoa "t!ka# alu ! oriju i ko plikovano "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 i at! i"t! in"trukcij! objanj!n! u ovo uput"tvu$ 'aravno# ;ar&v!r"k! razlik! "u "vakako pri"utn! i "a i ti r!*i"tri i aju 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 !ri a# tako &a o!t! i ati probl! a priliko nj!n! nabavk!$ PIC18 "!rij! "u jo napr!&nij! (uz 4@ nov! in"trukcij! u o&no"u na PIC16 "!riju)# i aju 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# i pl! !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 otori a a &"PIC &i*italno proc!"iranju "i*nala (!n*$ 3SP B Di*ital Si*nal Proc!""in*)$ 1YY

'ajnovija Microc;ip 9a ilija ikrokontrol!ra PICK@ N o o*u0uj! ra& "a tri&!"!t&vobitni in"trukcija a# 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 "!rija a 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 i a &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*! 9a ilij! ikrokontrol!ra$ Tr!nutno "u aktu!ln! "!rij! 8>C i Motorola$ 'aalo"t otorolini ikrokontrol!ri (iako o&li2ni i j!9tini) i aju 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!ri a poboljat! in&u"trij"k! ain!# po2nit! o& "vo* &o a0in"tva$ St!p!ni2ni auto at za "v!tlo# !l!ktron"ka brava# zvono# taj !r za o"v!tlj!nj! akvariju a# taj !r za pr!;ranu p2!la zi i# auto at"ka ;ranilica za ku0n! ljubi c!# &i*italni po&"!tnik# brzino !r za biciklu# "v! "u to ali proj!kti koji >a o*u po o0i u "vako&n!vno ivotu$ 3!luj! j!&no"tavno? S!tit! "! "vo* prvo* pro*ra a$ Mo*u0no"t za na&o*ra&nju uv!k po"toji$

@++

1:). Pr#$o1#
Prilo*! na nar!&ni "trana a po!ljno j! ta pati 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 A&D + 1 + 1 'OR + 1 + 1 CO( + 1 1 + 00101110 A"R 10010110 6 10111000 C!zultat `<C op!racij! 0! biti lo*i2ka 1 "a o ukoliko "u u oba op!ran&a razli2ita$ -koliko "u i"ta (ob! + ili ob! 1)# r!zultat 0! biti lo*i2ka +$ 01101011 A;( 10100101 6 00100001 C!zultat 8'3 op!racij! bi0! lo*i2ka 1 "a o ukoliko "u oba op!ran&a na lo*i2koj 1$ -koliko bar j!&an nij!# r!zultat 0! biti lo*i2ka +$ 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 +$ #"4 01101011 6 10010100 Go pl! !nt ili inv!rtovanj! pr!&"tavlja lo*i2ku op!raciju u kojoj "vaki bit u bajtu !nja "voju vr!&no"t$

+ + 1 1

+ 1 1 +

+ + 1 1

+ + + 1

+ + 1 1

+ 1 1 1

@+1

De0 Aex $+ $1 $@ $K $4 $F $6 $P $8 $Y

B"/

BCD ++ +1 +@ +K +4 +F +6 +P +8 +Y +N +N +N +N +N +N BCD @+ @1 @@ @K @4 @F @6 @P @8 @Y @N @N @N @N @N @N

O5/ + H$1 H$@ H$K H$4 H$F H$6 H$P H$8 H$Y H$1+ H$11 H$1@ H$1K H$14 H$1F O5/ H$K@ H$KK H$K4 H$KF H$K6 H$KP H$K8 H$KY H$4+ H$41 H$4@ H$4K H$44 H$4F H$46 H$4P

De0 Aex

B"/

BCD 1+ 11 1@ 1K 14 1F 16 1P 18 1Y 1N 1N 1N 1N 1N 1N BCD K+ K1 K@ KK K4 KF K6 KP K8 KY KN KN KN KN KN KN

O5/ H$16 H$1P H$18 H$1Y H$@+ H$@1 H$@@ H$@K H$@4 H$@F H$@6 H$@P H$@8 H$@Y H$K+ H$K1 O5/ H$48 H$4Y H$F+ H$F1 H$F@ H$FK H$F4 H$FF H$F6 H$FP H$F8 H$FY H$6+ H$61 H$6@ H$6K

+N++ bQ++++ ++++Q +N+1 bQ++++ +++1Q +N+@ bQ++++ ++1+Q +N+K bQ++++ ++11Q +N+4 bQ++++ +1++Q +N+F bQ++++ +1+1Q +N+6 bQ++++ +11+Q +N+P bQ++++ +111Q +N+8 bQ++++ 1+++Q +N+Y bQ++++ 1++1Q

$16 +N1+ bQ+++1 ++++Q $1P +N11 bQ+++1 +++1Q $18 +N1@ bQ+++1 ++1+Q $1Y +N1K bQ+++1 ++11Q $@+ +N14 bQ+++1 +1++Q $@1 +N1F bQ+++1 +1+1Q $@@ +N16 bQ+++1 +11+Q $@K +N1P bQ+++1 +111Q $@4 +N18 bQ+++1 1+++Q $@F +N1Y bQ+++1 1++1Q $@6 +N18 bQ+++1 1+1+Q $@P +N15 bQ+++1 1+11Q $@8 +N1C bQ+++1 11++Q $@Y +N13 bQ+++1 11+1Q $K+ +N1= bQ+++1 111+Q $K1 +N1F bQ+++1 1111Q De0 Aex B"/

$1+ +N+8 bQ++++ 1+1+Q $11 +N+5 bQ++++ 1+11Q $1@ +N+C bQ++++ 11++Q $1K +N+3 bQ++++ 11+1Q $14 +N+= bQ++++ 111+Q $1F +N+F bQ++++ 1111Q De0 Aex B"/

$K@ +N@+ bQ++1+ ++++Q $KK +N@1 bQ++1+ +++1Q $K4 +N@@ bQ++1+ ++1+Q $KF +N@K bQ++1+ ++11Q $K6 +N@4 bQ++1+ +1++Q $KP +N@F bQ++1+ +1+1Q $K8 +N@6 bQ++1+ +11+Q $KY +N@P bQ++1+ +111Q $4+ +N@8 bQ++1+ 1+++Q $41 +N@Y bQ++1+ 1++1Q $4@ +N@8 bQ++1+ 1+1+Q $4K +N@5 bQ++1+ 1+11Q $44 +N@C bQ++1+ 11++Q $4F +N@3 bQ++1+ 11+1Q $46 +N@= bQ++1+ 111+Q $4P +N@F bQ++1+ 1111Q

$48 +NK+ bQ++11 ++++Q $4Y +NK1 bQ++11 +++1Q $F+ +NK@ bQ++11 ++1+Q $F1 +NKK bQ++11 ++11Q $F@ +NK4 bQ++11 +1++Q $FK +NKF bQ++11 +1+1Q $F4 +NK6 bQ++11 +11+Q $FF +NKP bQ++11 +111Q $F6 +NK8 bQ++11 1+++Q $FP +NKY bQ++11 1++1Q $F8 +NK8 bQ++11 1+1+Q $FY +NK5 bQ++11 1+11Q $6+ +NKC bQ++11 11++Q $61 +NK3 bQ++11 11+1Q $6@ +NK= bQ++11 111+Q $6K +NKF bQ++11 1111Q

@+@

De0 Aex

B"/

BCD 4+ 41 4@ 4K 44 4F 46 4P 48 4Y 4N 4N 4N 4N 4N 4N BCD 6+ 61 6@ 6K 64 6F 66 6P 68 6Y 6N 6N 6N 6N 6N 6N

O5/ H$64 H$6F H$66 H$6P H$68 H$6Y H$P+ H$P1 H$P@ H$PK H$P4 H$PF H$P6 H$PP H$P8 H$PY O5/ H$Y6 H$YP H$Y8 H$YY

De0 Aex

B"/

BCD F+ F1 F@ FK F4 FF F6 FP F8 FY FN FN FN FN FN FN BCD P+ P1 P@ PK P4 PF P6 PP P8 PY PN PN PN PN PN PN

O5/ H$8+ H$81 H$8@ H$8K H$84 H$8F H$86 H$8P H$88 H$8Y H$Y+ H$Y1 H$Y@ H$YK H$Y4 H$YF O5/ H$11@ H$11K H$114 H$11F H$116 H$11P H$118 H$11Y H$1@+ H$1@1 H$1@@ H$1@K H$1@4 H$1@F H$1@6 H$1@P

$64 +N4+ bQ+1++ ++++Q $6F +N41 bQ+1++ +++1Q $66 +N4@ bQ+1++ ++1+Q $6P +N4K bQ+1++ ++11Q $68 +N44 bQ+1++ +1++Q $6Y +N4F bQ+1++ +1+1Q $P+ +N46 bQ+1++ +11+Q $P1 +N4P bQ+1++ +111Q $P@ +N48 bQ+1++ 1+++Q $PK +N4Y bQ+1++ 1++1Q $P4 +N48 bQ+1++ 1+1+Q $PF +N45 bQ+1++ 1+11Q $P6 +N4C bQ+1++ 11++Q $PP +N43 bQ+1++ 11+1Q $P8 +N4= bQ+1++ 111+Q $PY +N4F bQ+1++ 1111Q De0 Aex B"/

$8+ +NF+ bQ+1+1 ++++Q $81 +NF1 bQ+1+1 +++1Q $8@ +NF@ bQ+1+1 ++1+Q $8K +NFK bQ+1+1 ++11Q $84 +NF4 bQ+1+1 +1++Q $8F +NFF bQ+1+1 +1+1Q $86 +NF6 bQ+1+1 +11+Q $8P +NFP bQ+1+1 +111Q $88 +NF8 bQ+1+1 1+++Q $8Y +NFY bQ+1+1 1++1Q $Y+ +NF8 bQ+1+1 1+1+Q $Y1 +NF5 bQ+1+1 1+11Q $Y@ +NFC bQ+1+1 11++Q $YK +NF3 bQ+1+1 11+1Q $Y4 +NF= bQ+1+1 111+Q $YF +NFF bQ+1+1 1111Q De0 Aex B"/

$Y6 +N6+ bQ+11+ ++++Q $YP +N61 bQ+11+ +++1Q $Y8 +N6@ bQ+11+ ++1+Q $YY +N6K bQ+11+ ++11Q $1++ +N64 bQ+11+ +1++Q $1+1 +N6F bQ+11+ +1+1Q $1+@ +N66 bQ+11+ +11+Q $1+K +N6P bQ+11+ +111Q $1+4 +N68 bQ+11+ 1+++Q $1+F +N6Y bQ+11+ 1++1Q $1+6 +N68 bQ+11+ 1+1+Q $1+P +N65 bQ+11+ 1+11Q $1+8 +N6C bQ+11+ 11++Q $1+Y +N63 bQ+11+ 11+1Q $11+ +N6= bQ+11+ 111+Q $111 +N6F bQ+11+ 1111Q

$11@ +NP+ bQ+111 ++++Q $11K +NP1 bQ+111 +++1Q $114 +NP@ bQ+111 ++1+Q $11F +NPK bQ+111 ++11Q

H$1++ $116 +NP4 bQ+111 +1++Q H$1+1 $11P +NPF bQ+111 +1+1Q H$1+@ $118 +NP6 bQ+111 +11+Q H$1+K $11Y +NPP bQ+111 +111Q H$1+4 $1@+ +NP8 bQ+111 1+++Q H$1+F $1@1 +NPY bQ+111 1++1Q H$1+6 $1@@ +NP8 bQ+111 1+1+Q H$1+P $1@K +NP5 bQ+111 1+11Q H$1+8 $1@4 +NPC bQ+111 11++Q H$1+Y $1@F +NP3 bQ+111 11+1Q H$11+ $1@6 +NP= bQ+111 111+Q H$111 $1@P +NPF bQ+111 1111Q

@+K

De0 Aex

B"/

BCD 8+ 81 8@ 8K 84 8F 86 8P 88 8Y 8N 8N 8N 8N 8N 8N BCD N+ N1 N@ NK N4 NF N6 NP N8 NY NN NN NN NN NN NN

O5/ B$1 B$@ B$K B$4 B$F B$6 B$P B$8 B$Y B$1+ B$11 B$1@ B$1K B$14 B$1F B$16 O5/ B$KK B$K4 B$KF B$K6 B$KP B$K8 B$KY B$4+ B$41 B$4@ B$4K B$44 B$4F B$46 B$4P B$48

De0 Aex

B"/

BCD Y+ Y1 Y@ YK Y4 YF Y6 YP Y8 YY YN YN YN YN YN YN BCD N+ N1 N@ NK N4 NF N6 NP N8 NY NN NN NN NN NN NN

O5/ B$1P B$18 B$1Y B$@+ B$@1 B$@@ B$@K B$@4 B$@F B$@6 B$@P B$@8 B$@Y B$K+ B$K1 B$K@ O5/ B$4Y B$F+ B$F1 B$F@ B$FK B$F4 B$FF B$F6 B$FP B$F8 B$FY B$6+ B$61 B$6@ B$6K B$64

$1@8 +N8+ bQ1+++ ++++Q $1@Y +N81 bQ1+++ +++1Q $1K+ +N8@ bQ1+++ ++1+Q $1K1 +N8K bQ1+++ ++11Q $1K@ +N84 bQ1+++ +1++Q $1KK +N8F bQ1+++ +1+1Q $1K4 +N86 bQ1+++ +11+Q $1KF +N8P bQ1+++ +111Q $1K6 +N88 bQ1+++ 1+++Q $1KP +N8Y bQ1+++ 1++1Q $1K8 +N88 bQ1+++ 1+1+Q $1KY +N85 bQ1+++ 1+11Q $14+ +N8C bQ1+++ 11++Q $141 +N83 bQ1+++ 11+1Q $14@ +N8= bQ1+++ 111+Q $14K +N8F bQ1+++ 1111Q De0 Aex B"/

$144 +NY+ bQ1++1 ++++Q $14F +NY1 bQ1++1 +++1Q $146 +NY@ bQ1++1 ++1+Q $14P +NYK bQ1++1 ++11Q $148 +NY4 bQ1++1 +1++Q $14Y +NYF bQ1++1 +1+1Q $1F+ +NY6 bQ1++1 +11+Q $1F1 +NYP bQ1++1 +111Q $1F@ +NY8 bQ1++1 1+++Q $1FK +NYY bQ1++1 1++1Q $1F4 +NY8 bQ1++1 1+1+Q $1FF +NY5 bQ1++1 1+11Q $1F6 +NYC bQ1++1 11++Q $1FP +NY3 bQ1++1 11+1Q $1F8 +NY= bQ1++1 111+Q $1FY +NYF bQ1++1 1111Q De0 Aex B"/

$16+ +N8+ bQ1+1+ ++++Q $161 +N81 bQ1+1+ +++1Q $16@ +N8@ bQ1+1+ ++1+Q $16K +N8K bQ1+1+ ++11Q $164 +N84 bQ1+1+ +1++Q $16F +N8F bQ1+1+ +1+1Q $166 +N86 bQ1+1+ +11+Q $16P +N8P bQ1+1+ +111Q $168 +N88 bQ1+1+ 1+++Q $16Y +N8Y bQ1+1+ 1++1Q $1P+ +N88 bQ1+1+ 1+1+Q $1P1 +N85 bQ1+1+ 1+11Q $1P@ +N8C bQ1+1+ 11++Q $1PK +N83 bQ1+1+ 11+1Q $1P4 +N8= bQ1+1+ 111+Q $1PF +N@F bQ1+1+ 1111Q

$1P6 +N5+ bQ1+11 ++++Q $1PP +N51 bQ1+11 +++1Q $1P8 +N5@ bQ1+11 ++1+Q $1PY +N5K bQ1+11 ++11Q $18+ +N54 bQ1+11 +1++Q $181 +N5F bQ1+11 +1+1Q $18@ +N56 bQ1+11 +11+Q $18K +N5P bQ1+11 +111Q $184 +N58 bQ1+11 1+++Q $18F +N5Y bQ1+11 1++1Q $186 +N58 bQ1+11 1+1+Q $18P +N55 bQ1+11 1+11Q $188 +N5C bQ1+11 11++Q $18Y +N53 bQ1+11 11+1Q $1Y+ +N5= bQ1+11 111+Q $1Y1 +N5F bQ1+11 1111Q

@+4

De0 Aex

B"/

BCD N+ N1 N@ NK N4 NF N6 NP N8 NY NN NN NN NN NN NN BCD N+ N1 N@ NK N4 NF N6 NP N8 NY NN NN NN NN NN NN

O5/ B$6F B$66 B$6P B$68 B$6Y B$P+ B$P1 B$P@ B$PK B$P4 B$PF B$P6 B$PP B$P8 B$PY B$8+ O5/ B$YP B$Y8 B$YY

De0 Aex

B"/

BCD N+ N1 N@ NK N4 NF N6 NP N8 NY NN NN NN NN NN NN BCD N+ N1 N@ NK N4 NF N6 NP N8 NY NN NN NN NN NN NN

O5/ B$81 B$8@ B$8K B$84 B$8F B$86 B$8P B$88 B$8Y B$Y+ B$Y1 B$Y@ B$YK B$Y4 B$YF B$Y6 O5/ B$11K B$114 B$11F B$116 B$11P B$118 B$11Y B$1@+ B$1@1 B$1@@ B$1@K B$1@4 B$1@F B$1@6 B$1@P B$1@8

$1Y@ +NC+ bQ11++ ++++Q $1YK +NC1 bQ11++ +++1Q $1Y4 +NC@ bQ11++ ++1+Q $1YF +NCK bQ11++ ++11Q $1Y6 +NC4 bQ11++ +1++Q $1YP +NCF bQ11++ +1+1Q $1Y8 +NC6 bQ11++ +11+Q $1YY +NCP bQ11++ +111Q $@++ +NC8 bQ11++ 1+1+Q $@+1 +NCY bQ11++ 1++1Q $@+@ +NC8 bQ11++ 1+1+Q $@+K +NC5 bQ11++ 1+11Q $@+4 +NCC bQ11++ 11++Q $@+F +NC3 bQ11++ 11+1Q $@+6 +NC= bQ11++ 111+Q $@+P +NCF bQ11++ 1111Q De0 Aex B"/

$@+8 +N3+ bQ11+1 ++++Q $@+Y +N31 bQ11+1 +++1Q $@1+ +N3@ bQ11+1 ++1+Q $@11 +N3K bQ11+1 ++11Q $@1@ +N34 bQ11+1 +1++Q $@1K +N3F bQ11+1 +1+1Q $@14 +N36 bQ11+1 +11+Q $@1F +N3P bQ11+1 +111Q $@16 +N38 bQ11+1 1+++Q $@1P +N3Y bQ11+1 1++1Q $@18 +N38 bQ11+1 1+1+Q $@1Y +N35 bQ11+1 1+11Q $@@+ +N3C bQ11+1 11++Q $@@1 +N33 bQ11+1 11+1Q $@@@ +N3= bQ11+1 111+Q $@@K +N3F bQ11+1 1111Q De0 Aex B"/

$@@4 +N=+ bQ111+ ++++Q $@@F +N=1 bQ111+ +++1Q $@@6 +N=@ bQ111+ ++1+Q $@@P +N=K bQ111+ ++11Q $@@8 +N=4 bQ111+ +1++Q $@@Y +N=F bQ111+ +1+1Q $@K+ +N=6 bQ111+ +11+Q $@K1 +N=P bQ111+ +111Q $@K@ +N=8 bQ111+ 1+++Q $@KK +N=Y bQ111+ 1++1Q $@K4 +N=8 bQ111+ 1+1+Q $@KF +N=5 bQ111+ 1+11Q $@K6 +N=C bQ111+ 11++Q $@KP +N=3 bQ111+ 11+1Q $@K8 +N== bQ111+ 111+Q $@KY +N=F bQ111+ 1111Q

$@4+ +NF+ bQ1111 ++++Q $@41 +NF1 bQ1111 +++1Q $@4@ +NF@ bQ1111 ++1+Q

B$1++ $@4K +NFK bQ1111 ++11Q B$1+1 $@44 +NF4 bQ1111 +1++Q B$1+@ $@4F +NFF bQ1111 +1+1Q B$1+K $@46 +NF6 bQ1111 +11+Q B$1+4 $@4P +NFP bQ1111 +111Q B$1+F $@48 +NF8 bQ1111 1+++Q B$1+6 $@4Y +NFY bQ1111 1++1Q B$1+P $@F+ +NF8 bQ1111 1+1+Q B$1+8 $@F1 +NF5 bQ1111 1+11Q B$1+Y $@F@ +NFC bQ1111 11++Q B$11+ $@FK +NF3 bQ1111 1111Q B$111 $@F4 +NF= bQ1111 111+Q B$11@ $@FF +NFF bQ1111 1111Q

@+F

'/ tru!0"1a Pr!pi" po&ataka M<>F 9#& M<>UF 9 M<>:U k C:CF 9 C:CU SU8PF 9#& 833UF 9#& 833:U k S-5UF 9#& S-5:U k I'CF 9#& 3=CF 9#& I<CUF 9#& I<C:U k 8'3UF 9#& 8'3:U k `<CUF 9#& `<C:U k C<MF 9#& 5CF 9#b 5SF 9#b C:F 9#& CCF 9#& 5TFSC 9#b 5TFSS 9#b I'CFSZ 9#& ?<T< k C8:: k C=T-C' C=T:U k C=TFI= <"talo '<P C:CU3T S:==P 5!z op!racij! Pr!pii 9 u & Pr!pii U u 9

Op"

C"!. 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

<*#

F,a-*6" &ap. 1@

001000 d,,,,,,, Z 000000 1,,,,,,, 1100xx @@@@@@@@ 000001 1,,,,,,, Z 000001 0xxxxxxx Z 001110 d,,,,,,,

-pii kon"tantu u U -pii + u 9 -pii + u U Pr!pii unakr"no niblov! iz 9 u & Sab!ri U i 9 Sab!ri U "a kon"tanto <&uz i U o& 9 <&uz i U o& kon"tant! -v!0aj 9 S anji 9 :o*i2ko I:I U "a 9 :o*i2ko I:I U "a kon"tanto :o*i2ko I U "a 9 :o*i2ko I U "a kon"tanto :o*i2ko ISG:7-.->< I:I U "a 9 Inv!rtuj 9 C!"!tuj bit b u 9 S!tuj bit b u 9 Cotiraj nal!vo kroz C8CCg Cotiraj na&!"no kroz C8CCg pro*ra a T!"t bita b u 9# pr!"ko2i ako j! bit V + T!"t bita b u 9# pr!"ko2i ako j! bit V 1 -v!0aj 9# pr!"ko2i ako j! V + I&i na a&r!"u Pozovi potpro*ra >rati "! iz potpro*ra a >rati "! "a kon"tanto >rati "! iz int!rapta uU

@ 1@

8rit !ti2ko lo*i2k! op!racij! 000111 d,,,,,,, C 3C Z 1 @ 11111x @@@@@@@@ C 3C Z 000010 d,,,,,,, C 3C Z 1 @ 11110x @@@@@@@@ C 3C Z 001010 d,,,,,,, Z 001011 d,,,,,,, Z 000100 d,,,,,,, Z 111000 @@@@@@@@ Z 000101 d,,,,,,, Z 11111x @@@@@@@@ Z 000110 d,,,,,,, Z 111010 @@@@@@@@ Z 001001 d,,,,,,, Z 0100bb b,,,,,,, 0101bb b,,,,,,, 001101 d,,,,,,, C 001100 d,,,,,,, C 1@ 1@ 1@ 1@ 1@ K K 1@K 1@K 1@ 1@ 1@ 1@ 1@

:o*i2ko ISG:7-.->< I:I U "a kon$ 1

<p!racij! "a bitovi a

-pravljanj! toko

1 (@) 0110bb b,,,,,,, 1 (@) 0111bb b,,,,,,, 1 (@) 001111 d,,,,,,, 1 (@) 001011 d,,,,,,, @ @ @ @ @ 1 1 1 101@@@ @@@@@@@@ 100@@@ @@@@@@@@ 000000 00001000 1101xx @@@@@@@@ 000000 00001001 000000 0xx00000 000000 01100100 T< P3 000000 01100011 T< P3

3=CFSZ 9#& S anji 9# pr!"ko2i ako j! V +

Inicijalizuj Ratc;&o* taj !r Pr!lazak u "l!!p o&

@+6

:!*!n&a/ , % b @ x d # (# ? T" P( T T T T T T T T T T T a&r!"a r!*i"tra U r!*i"tar a&r!"a bita unutar o" obitno* r!*i"tra kon"tantna (n!pro !nljiva) vr!&no"t ili lab!la n!bitan bit (nj!*ova vr!&no"t "! i*nori!$ 8"! bl!r *a auto at"ki r!"!tuj!) o&r!&it!/ &V+ r!zultat u U# &V1 r!zultat u 9 CarrW 9la* ST8T-S r!*i"tra 3i*it CarrW 9la* ST8T-S r!*i"tra Z!ro 9la* ST8T-S r!*i"tra Ti ! out bit ST8T-S r!*i"tra 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 "a i; 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#re a +N++ +N+1 +N+@ +N+K +N+4 +N+F +N+6 +N+P +N+8 +N+Y +N+8 +N+5 +N8+ +N81 +N8@ +N8K +N84 +N8F +N86 +N8P +N88 +N8Y +N88 +N85

&a5"6 I'3F TMC+ PC: FSC P<CT8 P<CT5 M ==38T8 Sa&raj !lj!n! ==PC<M ==83C 8&r!"a unutar ==PC<M

Op" Sa&raj !lj!no* C8M r!*i"tra u in&ir!ktno a&r!"iranju Taj !r +$ Pov!0ava "! o& $+ &o $@FF 'ii; 8 bitova pro*ra "ko* broja2a PC:8T, H PC: V PC ikrokontrol!ra Point!r in&ir!ktno* a&r!"iranja -lazno izlazni port 8 -lazno izlazni port 5 ! orij! ! orij! B B

B"t 7

B"t 6

B"t 5

B"t 4

B"t 3

B"t 2

B"t 1 B"t 0

Re et DDDD DDDD xxxx xxxx

Ba/! ob! + ob! ob! ob! + + M + + ob! ob! ob! 1 ob! ob! ob! 1 1 M 1 1 ob! ob!

PC B

PC B B C56 B

PC CP+ B C5F B

PC T<

PC P3

PC Z C8@ C5@ B

PC 3C C81 C51 B

PC C C8+ C5+ B

0000 0000 0001 1xxx xxxx xxxx DDDx xxxx xxxx xxxx 0000 0000 xxxx xxxx xxxx xxxx

ST8T-S C!*i"tar "tanja

C84MT+CGI C8K C54 B C5K B

C5P B

PC:8T, >ii; F bitova pro*ra "ko* broja2a PC:8T, H PC: V PC I'TC<' Int!rapt kontrol!r I'3F PC: FSC TCIS8 TCIS5 M ==C<'1 ==PC<M kontrol!r ==C<'@ <tklju2avanj! upi"a u ==PC<M PC:8T, >ii; F bitova pro*ra "ko* broja2a PC:8T, H PC: V PC I'TC<' Int!rapt kontrol!r Sa&raj !lj!no* C8M r!*i"tra u in&ir!ktno a&r!"iranju ikrokontrol!ra <PTI<' Gon9i*uri"anj! ;ar&v!r"ko* "tanja ST8T-S C!*i"tar "tanja ikrokontrol!ra

B ==I=

B T+I=

PC I'T=

PC C5I= PS8 PC P3

PC T+IF PS@ PC Z

PC

PC

DDD0 0000 DDDD DDDD

?I=

I'TF C5IF 0000 000x PS1 PC 3C PS+ PC C 1111 1111 0000 0000 0001 1xxx xxxx xxxx DDD1 1111 1111 1111

C5P- I'T=3? T+CS T+S= PC B B B B B ?I= PC B B B B B ==I= PC CP+ B B B B T+I= B ==IF PC I'T= PC T<

'ii; 8 bitova pro*ra "ko* broja2a PC:8T, H PC: V PC Point!r in&ir!ktno* a&r!"iranja C!*i"tar " !ra po&ataka za P<CT8 C!*i"tar " !ra po&ataka za P<CT5

B C3 PC

0000 0000 DDD0 x000 DDDD DDDD DDD0 0000

UC=CC UC=' UC PC C5I= PC T+IF PC

I'TF C5IF 0000 000x

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& "pa a# !B ail 0! biti prikazan u obliku "lik!$ - uput"tvu i a izv!"ni; n!&or!2!no"ti u po*l!&u 9unkcija poj!&ini; r!*i"tara# pinova# taj in*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!ri a# 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 !B ail ! ' 1' 0o& d De$#"e d b3de"e ob ve;" 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*!$ =B ail 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!li i2no 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 1 br '(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 ta pano iz&anju)# oli >a" &a ! o to ! obav!"tit!$ 8utor n! "no"i ni naj anju o&*ovorno"t za kori0!nj! in9or acija "a ovo* uput"tva# &ati; linkova ili pro*ra a$ 8ko "prit! PIC# *o ilu !l!ktron"ki; ko pon!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$co M 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$no a&$!!MPICMpicpro*$;t l Slik! 3M8 konv!rzij! "a ;ttp/MMRRR$avrBa" Btutorial$n!tMavrL!nM8>CL38C$;t l @ :=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!"$co M"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