Top Banner
TEHNIČKO VELEUČILIŠTE U ZAGREBU ELEKTROTEHNIČKI ODJEL Mikrokontrolerski sustavi Goran Malčić, dipl.ing. mr. sc. Velimir Rajković, dipl.ing.
137

TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Sep 07, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

TEHNIČKO VELEUČILIŠTE U ZAGREBU

ELEKTROTEHNIČKI ODJEL

Mikrokontrolerski sustavi

Goran Malčić, dipl.ing.

mr. sc. Velimir Rajković, dipl.ing.

Page 2: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

SADRŽAJ

1 Uvod................................................................................................................ 5

2 Podjela računala ............................................................................................ 6

2.1 ''Off line'' računala ............................................................................................... 6 2.2 ''On line'' računala................................................................................................ 6

3 Osnovni sklopovski elementi za ''on line'' način rada.............................. 10

3.1 Senzori i izvršni organi.......................................................................................10 3.2 Analogna obrada signala ...................................................................................11 3.3 Multipleksori........................................................................................................11 3.4 Sample & Hold sklop (S&H)................................................................................12 3.5 Analogno digitalni pretvarač ..............................................................................13 3.6 Digitalno analogni pretvarač ..............................................................................20 3.7 Međusklop (Interface) .........................................................................................21 3.8 Paritetni sklop .....................................................................................................24 3.9 Povezivanje računala sa procesima ..................................................................24 3.10 Računalo..............................................................................................................25

3.10.1 Mikroprocesor ...............................................................................................25 3.10.2 Mikrokontroler ...............................................................................................25 3.10.3 Arhitektura računala ......................................................................................27 3.10.4 Razlika između mikroprocesora i mikrokontrolera .........................................29 3.10.5 Memorijska jedinica.......................................................................................30 3.10.6 Adresno polje mikroračunala .........................................................................30 3.10.7 CPU (Central Processing Unit) ......................................................................31 3.10.8 Sabirnica .......................................................................................................32 3.10.9 U/I jedinica ....................................................................................................33 3.10.10 Serijska komunikacija....................................................................................33 3.10.11 Slobodni brojač .............................................................................................34 3.10.12 Sigurnosni brojač (Watchdog timer) ..............................................................34

4 Mikrokontroler PIC 16F84............................................................................ 35

4.1 Osnovne karakteristike mikrokontrolera PIC 16F84.........................................35 4.1.1 Karakteristike mikrokontrolera .......................................................................35 4.1.2 Karakteristike ulazno/izlaznih sklopova .........................................................35 4.1.3 Specijalne karakteristike mikrokontrolera ......................................................35 4.1.4 Karakteristike CMOS Flash/EEPROM tehnologije.........................................36

4.2 Kratak opis mikrokontrolera ..............................................................................36 4.3 Raspored nožica .................................................................................................37

1

Page 3: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

4.4 Generatori takta ..................................................................................................37 4.5 Takt / instrukcijski ciklus....................................................................................39 4.6 Obrada instrukcija ..............................................................................................39 4.7 Reset....................................................................................................................40

4.7.1 Reset kod pada napona napajanja (Reset on Brown-Out).............................40

4.8 Ulazno / izlazni sklopovi .....................................................................................41 4.8.1 PORTA i TRISA ............................................................................................41 4.8.2 PORTB i TRISB ............................................................................................41

4.9 Organizacija memorije........................................................................................42 4.9.1 Programski brojač (Program Counter) ...........................................................43 4.9.2 Stog (Stack) ..................................................................................................44 4.9.3 Status registar ...............................................................................................44 4.9.4 Direktno adresiranje ......................................................................................45 4.9.5 Indirektno adresiranje....................................................................................45 4.9.6 Relativno adresiranje.....................................................................................45

4.10 Prekidi (Interrupts)..............................................................................................46 4.10.1 INTCON registar ...........................................................................................47

4.11 Podatkovna EEPROM memorija ........................................................................48 4.11.1 EECON1 registar ..........................................................................................49

4.12 Slobodni brojač TMR0 ........................................................................................49 4.12.1 OPTION registar ...........................................................................................50

5 Set instrukcija .............................................................................................. 52

5.1 Prijenos podataka ...............................................................................................52 5.2 Aritmetika i logika ...............................................................................................52 5.3 Bit operacije ........................................................................................................52 5.4 Upravljanje tokom programa..............................................................................52 5.5 Opis pojedinih instrukcija ..................................................................................54

6 Razvojni alati za PIC 16F84 ......................................................................... 69

6.1 Asembler .............................................................................................................69 6.1.1 Elementi programskog jezika asembler .........................................................69

7 MPLAB IDE v6.60 ......................................................................................... 71

7.1 MPLAB IDE ..........................................................................................................71 7.2 Zahtjevi sustava ..................................................................................................71 7.3 Izrada jednostavnog projekta.............................................................................71

7.3.1 Uvod .............................................................................................................71 7.3.2 Pisanje izvornog koda ...................................................................................71 7.3.3 Izrada projekta ..............................................................................................73

2

Page 4: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

7.3.4 Izgradnja projekta..........................................................................................77 7.3.5 Pokretanje simulatora....................................................................................78 7.3.6 Provjera rada aplikacije .................................................................................79

8 Programiranje mikrokontrolera PIC 16F877 .............................................. 90

8.1 Uvod.....................................................................................................................90 8.2 Instalacija sustava pri programiranju programskim paketom IC-PROG .........90 8.3 Programiranje mikrokontrolera programskim paketom IC-PROG...................91

9 Opis razvojnog sustava............................................................................... 96

9.1 Napajanje.............................................................................................................96 9.2 Led diode.............................................................................................................96 9.3 Tipkala .................................................................................................................97 9.4 LCD zaslon (display)...........................................................................................98 9.5 Sedamsegmentni zaslon ....................................................................................99 9.6 Analogno-digitalni pretvarač (A/D converter) .................................................100 9.7 RS-232 komunikacija ........................................................................................101 9.8 Digitalni termometar - DS1820 .........................................................................102 9.9 Pull-up/pull-down otpornici na portovima.......................................................103 9.10 Direktan pristup portovima ..............................................................................105

10 Primjeri ....................................................................................................... 106

10.1 Uvod...................................................................................................................106 10.2 Makro naredbe ..................................................................................................106 10.3 Potprogrami ......................................................................................................107 10.4 Primjeri ..............................................................................................................108

10.4.1 Program za aktiviranje porta B ....................................................................108 10.4.2 Način upisivanja konstanti ...........................................................................109 10.4.3 Naredbe uvjeta............................................................................................109 10.4.4 Zbrajanje i oduzimanje, indirektno adresiranje.............................................109 10.4.5 Usporedba (komparacija) ............................................................................110 10.4.6 Inkrementiranje i dektrementiranje ..............................................................111 10.4.7 Inicijalizacija Porta A i Porta E.....................................................................112 10.4.8 EEPROM - čitanje podataka sa memorije ...................................................113 10.4.9 EEPROM - upis podatka u memoriju...........................................................113 10.4.10 FLASH programska memorija - čitanje podataka ........................................113 10.4.11 FLASH programska memorija - upisivanje podataka...................................114 10.4.12 Zbrajanje dva 16 bitna broja ........................................................................115 10.4.13 Oduzimanje dva 16 bitna broja....................................................................115 10.4.14 Sortiranje sa indirektnim pristupom .............................................................115 10.4.15 Interupt........................................................................................................116 10.4.16 Preskaler - rad sa TMR0 .............................................................................117

3

Page 5: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

10.4.17 Dvosmjerna vrtnja motora ...........................................................................119 10.4.18 Dioda ..........................................................................................................119 10.4.19 LED diode na portu B ..................................................................................122 10.4.20 Usporedba - indirektnim adresiranjem.........................................................123 10.4.21 Protok..........................................................................................................124 10.4.22 Regulacija temperature ...............................................................................125 10.4.23 Pretvorbe ....................................................................................................126 10.4.24 Servo motor.................................................................................................130

11 Popis pojmova i kratica:............................................................................ 133

12 Popis korištene literature:......................................................................... 136

4

Page 6: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

1 Uvod

Primjenom mikroprocesorskih i mikrokontrolerskih struktura u elektroničkim uređajima postiže se sve više i više hardverska sličnost, dok specifičnost funkcija uređaja određuje programska podrška.

Pomoću sveprisutnih mikrokontrolera i mikroprocesora povećana je pouzdanost i preciznost upravljanja pojedinim sustavom. Sustav oplemenjen mikrokontrolerom može u potpunosti zamijeniti čovjeka, smanjuje dimenzije uređaja i potrošnju energije. Zbog jednostavnosti i širokog spektra uporabe proširili su krug ljudi koji se bave elektronikom.

U ovom udžbeniku je obrađen veći dio predavanja i vježbi iz kolegija Elektronička računala i računalna oprema koji se održava na Elektrotehničkom odjelu Tehničkog veleučilišta u Zagrebu. Koristit će studentima s Informatičkog odjela TVZ-a, Studija računarstva na kolegijima sličnog sadržaja, kao i svima koji ulaze u svijet upravljanja pomoću mikrokontrolera. Uz opći prikaz mikrokontrolerskih i mikroprocesorskih struktura objašnjen je i princip rada sa mikrokontrolerom PIC 16F84 tvrtke Microchip koja je jedna od vodećih u proizvodnji mikrokontrolera.

U drugom dijelu je opisana izrada izvornog kôda i njegovo implementiranje u projekt, editiranje i ispravljanje pogrešaka, kao i simuliranje njegovog rada na računalu uz mnogo primjera sa vježbi. Za sve to korišten je programski paket MPLAB IDE tvrke Microchip koji je danas jedan od ponajboljih u tom području i što je još važnije svima dostupan (freeware).

5

Page 7: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

2 Podjela računala

Na slici 2.1. prikazano je djelovanje čovjeka s obzirom na okolinu, tj. djelovanje s obzirom na informacije koje dobija od svojih osjetila. Na sličnom principu koristimo računala u procesnoj tehnici.

Sl.2.1. Načelo djelovanja čovjeka

Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji od ovih načina će se primijeniti ovisi o načinu unosa podataka u računalo te njihove obrade i načinu upotrebe dobivenih rezultata za upravljanje procesom. Dakle, treba razlikovati nadzor nad procesom (očitavanje relevantnih parametara) i upravljanje s njim (podešavanje parametara) bilo izravno (automatski) ili neizravno. Prema načinu unosa podataka u računalo te njihove uporabe za upravljanje tijekom procesa razlikuju se:

Off - line sustavi On- line sustavi

Nadzor – pojam vezan uz one sustave u kojem prevladavaju otvorene petlje Upravljanje – pojam vezan uz one sustave u kojima prevladavaju zatvorene petlje (automatizirani sustavi)

2.1 ''Off line'' računala

Off-line prijenos podataka odvija se u dvije faze. U prvoj se podaci iz izvora zapisuju na neki prijenosni medij (disketa, priručna memorija, optički mediji i drugo), pa se tek potom sa tih medija prenosi ili upisuje u računalo. Vrijeme između skupljanja podataka i unosa je po potrebi, za sat ili dva, tjedan, mjesec, godinu dana ili nikad. Naravno ovakav sustav nepogodan je za brz i izravan nadzor nad procesima.

2.2 ''On line'' računala

Računala koja rade ″on line″ (slika 2.2) unose podatke automatski kada su generirani. Podatke generiraju razni senzori koji su električnim vodičima spojeni na računalo. Vrijeme potrebno da se ti podaci prebace u računalo mjeri se uglavnom u milisekundama. Za takve sustave kažemo da rade u realnom vremenu, zbog toga što je vrijeme potrebno za obradu podataka definirano

Sl. 2.2. On-line sustav

6

Page 8: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Osnovni razlog uporabe on-line sustava jest brzina rada i velike mogućnosti obrade podataka kojom raspolaže digitalno računalo. Dakle nadzor sustava gdje se procesi vrlo brzo mijenjaju gotovo je nemoguć bez primjene digitalnog računala. Osim toga u realnom vremenu mogu se pratiti i predvidjeti tendencije koje se u procesu mogu pojaviti. Na taj način lako je intervenirati i izbjeći alarmantne situacije. Za razliku od navedenog, kod off-line obrade koja bi trajala dugo dobiveni rezultati bili bi gotovo nekorisni.

Kvaliteta intervencije u sustavu ovisiti će o kvaliteti algoritma koji su razvijeni za upravljanje procesom i zatim uneseni u obliku programske potpore u računalo. Kod vrlo složenih sustava može se dogoditi da tim programom nisu obuhvaćene baš sve moguće situacije do kojih u životu i radu može doći. Ne može se baš sve predvidjeti. Iz navedenog razloga ponekad se on-line sustav izbjegava, a stanje procesa samo se prikazuje voditelju (osobi) koji odlučuje što treba učiniti. No može se dogoditi da voditelj donese neadekvatan zaključak unatoč kvalitetnim informacijama koje mu se predočuju. Da bi se to izbjeglo sve se više uvode ekspertni sustavi, odnosno digitalna računala s programskom potporom koja se služe bazom znanja koncipiranom od tima vrhunskih stručnjaka za proces koji se nadzire. Takav sustav koji može i ne mora biti on-line pomaže voditelju da u kritičnim situacijama donese najbolju odluku. Osnovno načelo rada ekspertnog sustava prikazano je na slici 2.3.

Sl. 2.3. Načelna shema ekspertnog sustava

Dakle, neki se procesi ne mogu nadzirati bez on-line sustava nadzora s digitalnim računalom, jer nikakvo drugo sredstvo nema takvu brzinu rada i moć kao računalo koje može na brze novonastale promjene u procesu smjesta reagirati.

Elementi inteligentnog ponašanja vrlo su značajno svojstvo ovih sustava. Pod tim se misli na prilagodljivost i snalaženje sustava (računala) u promijenjenoj situaciji u odnosu na programski prepoznatljivu i definiranu, a to znači da sustav mora prepoznati promjenu van definiranih okvira, prilagoditi se i donijeti više ili manje adekvatno rješenje da bi se sustav ponašao unutar definiranih granica. Znači u takvim situacijama ne traži se idealno rješenje već prvo prihvatljivo. Kao primjer navest ćemo nekoliko kontrolora procesa: 1.) SCADA (Supervisory Control And Data Acquisition) razvojni sustavi su tijekom prošlih nekoliko godina tehnološki brzo napredovali i pratili razvoj ostalih segmenata informatičke industrije. Napredak tehnologija SCADA sustava je vidljiv u nekoliko segmenata.

Najznačajniji napredak je napravljen na polju tehnologija veznih uz internet. Današnji SCADA razvojni sustavi omogućavaju povezivanje SCADA sustava s web serverom što omogućava nadzor i upravljanje sustava s udaljenih lokacija korištenjem interneta i web preglednika.

Veliki problem SCADA sustava je bio u povezivanju računala s mjernom i upravljačkom opremom zbog nestandardnih programskih sučelja takve opreme prema SCADA sustavima što je rezultiralo ograničavanjem mogućnosti odabira opreme, odnosno SCADA razvojog sustava. Uvođenjem standardnog programskog sučelja mjerne i upravljačke opreme – OPC (OLE for Process Control), baziranog na Microsoft OLE (Object Linking and Embedding) tehnologiji za komunikaciju između programskih modula u Windows okolini, omogućena je upotreba šireg spektra mjerne i upravljačke opreme i SCADA sustava uz pojednostavljen rad.

Daljnji napredak je vidljiv u proširenju postojećih mogućnosti i povećavanju pouzdanosti.

7

Page 9: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

2.) FPGA (field-programmable gate array) je poluvodička naprava koja sadrži programabilne logičke komponente i programabilne međuspojeve. Programabilne logičke komponente mogu biti programirane da poboljšaju funkcionalnost osnovnih logičkih operacija (kao što su AND, OR, XOR, NOT) ili složenijih kombinacijskih sklopova kao što su dekoderi i jednostavne matematičke operacije. Večina FPGA sadrži i memorijske elemente najčešće flip-flop (bistabilne multivibratore) ili više blokova memorije. Hijerarhija programabilnih međuveza dopušta logičkim blokovima u FPGA-u da budu međusobno povezani ako je to potrebno i sa sistemskim projektantom, nešto kao one-chip programabilni model. Ti logički blokovi kao i međuveze mogu biti programirani i poslije tehnološke proizvodnje preko projektanta tako da FPGA može obavljati logičke operacije koje se u tom trenutku od njega zahtjevaju.

3.) ASIC (application-specific integrated circuit) je integrirani sklop projektiran za za opću upotrebu (npr. čip dizajniran isključivo za mobilni telefon bio je ASIC). Kako je tehnologija iz godine u godinu napredovala maksimalna složenost ASIC-a je također rasla (od 5000 logičkih vrata do nekoliko milijuna). Moderni ASIC-i često uključuju 32-bitni procesor, memorijske blokove uključujući ROM, RAM, EEPROM, Flash itd. Dizajneri ASIC-a koriste se HDL-om (hardware description language) kao što su Verilog ili VHDL kako bi opisali funkcionalnost ASIC-a.

4.) PLC Prvi programibilni logički kontroleri (PLC) razvijali su inženjeri General Motors-a 1968., kada su pokušali pronaći alternativnu zamjenu za složene relejne kontrolne sustave.

Novi kontrolni sustav morao je zadovoljiti slijedeće zahtjeve:

• Jednostavno programiranje, • Programske izmjene bez sistemskih intervencija (bez mijenjanja ožičenja), • Manje, jeftinije i pouzdanije komponente od relejnih kontrolnih sustava, • Jednostavno i jeftino održavanje

Postupnim razvojem došlo se do sustava koji je omogućio jednostavnije povezivanje binarnih signala. Uvjeti pod kojim su ovi signali trebali biti povezani, bili su određeni u kontrolnom programu. S novim sustavima bilo je po prvi puta moguće iscrtati signale na ekranu, te ih pohraniti u vidu datoteke u elektronsku memoriju.

Po definiciji Programibilni logički kontroleri su:

Prema DIN EN61131-1 (1994.) programabilni logički upravljač (kontroler) jest digitalni elektronički sustav za uporabu u industrijskom okolišu s programabilnom memorijom za internu pohranu u primjeni orijentiranih upravljačkih naredbi kod implementiranja specifičnih funkcija kao što su npr. logičko upravljanje, slijedno upravljanje, funkcije odbrojavanja, funkcije brojenja i aritmetičke funkcije, Osnovna namjena PLCa je upravljanje, putem digitalnih ili analognih ulaznih i izlaznih signala, različitim vrstama strojeva ili procesa.

Glavni djelovi PLC-a su:

• mikroprocesor s dodatnim električkim sklopovima, • sklop za opskrbu električnom energijom procesora koji pretvori upravljački istosmjerni napon od

24V u takozvani logički napon (5V), • kvarc za davanje takta procesoru, • prekidač za uključivanje i isključivanje rada procesora, • memorija (sistemska, radna, programska).

Preko sabirnog priključka spaja se centralna jedinica (mikroprocesor) s ulazno - izlaznim elementima (modulima - karticama).

Ulazni modul treba osigurati:

• priključke na koje se priključuju senzori, • prilagodbu napona, • zaštitu centralne jedinice od napona, • zaštitu centralne jedinice od smetnji, • sigurno razlikovanje signala 1/0.

8

Page 10: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Izlazni modul također posreduje između centralne jedinice i automata. Njegove zadaće su:

• povezivanje s izvršnim elementima, • prilagodba napona, • zaštita centralne jedinice, • pojačanje snage, • zaštita od kratkog spoja.

Karakteristike programabilnog logičkog kontrolera:

• omogućava direktan priključak binarnih senzora i aktuatora, • odgovara zahtjevima industrijskog okoliša u odnosu na otpornost na povišenu temperaturu,

vibracije i elektro-magnetska zračenja, • operacijski sustav je razvijen za optimalnu obradu Boolove logike • operacijski sustav potpomognut programskim i dijagnostičkim alatima dopušta direktan pristup

na binarne ulaze i izlaze kao i na interne binarne i digitalne memorije (flag, registre, brojače, tajmere),

• operacijski sustav omogućava komunikaciju sa računalom.

p

Optoizolacija Optoizolacija

MEMORIJAProgram Podaci

Mrežni modul napajanja

Ula

zne

stez

aljk

e

Izla

zne

stez

aljk

e

Komunikacijsko sučelje premauređaju za programiranje ilioperatorskom panelu (HMI)

te mrežna komunikacija

Centralnaprocesorska

jedinica

Sl. 2.4. Blok shema PLC-a

9

Page 11: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

3 Osnovni sklopovski elementi za ''on line'' način rada

Shematski prikaz sustava koji radi u ″on line″ načinu rada prikazan je slikom 3.1. Proces je sredina koja se mjeri te upravlja računalom. Računalo služi za obradu podataka prikupljenih iz procesa. Središnji dio služi za povezivanje procesa i računala, koji ćemo sada razmotriti.

Sl. 3.1. Shematski p az on-line sustava

3.1 Senzori i izvršni organi

Senzori mjere razne fizikalne veličine (temperatura, pritisak, vlažnost, protok, kut zakreta, brzina, itd.)

• Statička greška - odstupanje između pokazane i stvarne vrijednosti fizikalne veličine kada se

• zor

• u

• e potrebno da se promjene fizikalne veličine počnu iskazivati i

• ća promjena fizikalne veličine do koje se na izlazu iz senzora još uvijek ne

Od senzora se u osnovi traži da ne djeluju na svojstva ili ponašanje sredine u kojoj se nalaze. U on-

u te on odlučuje kako će rea

rik

te ih pretvaraju u odgovarajuće električne veličine (napon, struja, frekvencija, faza itd.). Mjeriti se mogu različite pojave kao što je vodostaj rijeke, brzina toka iste, temperatura kotla termoelektrane, rastezanje željeza pri zagrijavanju, itd. Senzori se još i nazivaju mjerni pretvornici. Osobitosti o kojima treba voditi računa pri korištenju senzora je točnost, sposobnost približavanja pravoj vrijednosti fizikalne veličine, a koja se ogleda u sljedećim parametrima:

ova ne mijenja. Obično se daje u postocima prema najvećoj vrijednosti koja se može mjeriti. Dinamička greška - koliko senzor "kasni" za promjenama fizičke veličine. Svaki senposjeduje dinamičku grešku. Ova greška nestaje kad se fizikalna veličina prestane mijenjati. Greška ponovljivosti - je najveće odstupanje od srednje vrijednosti pri ponovljenom mjerenjnepromijenjene fizikalne veličine. Mrtvo vrijeme - predstavlja vrijemna izlazu iz senzora. Mrtva zona - je najveočitavaju promijene.

line sustavima se nalazi mnogo analognih veličina stoga signal treba filtrirati, ispraviti (linearizirati) i kondicionirati da bi se analogni signal mogao digitalizirati u A/D pretvorniku.

Postoje dva načina rada. Prvi je da se mjerene veličine prikazuju čovjekgirati i drugi način je kada računalo samo djeluje u procesu. To znači da računalo iz samog

procesa preko senzora uzima željene informacije te od dobivenih mjernih veličina pomoću određenih algoritama donosi zaključke, a nakon tih zaključaka djeluje na sustav preko izvršnih organa. Izvršni organi mogu biti prekidač, elektromotor koji upravlja ventilom, regulator izgaranja na ložištu itd. Senzori i izvršni organi za svaki sustav su specifični.Više o tome smo rekli kod on-line sustava na str. 7.

10

Page 12: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

3.2 Analogna obrada signala

Električni signali koji dolaze iz senzora imaju različite oblike. S druge strane za analogno-digitalni pretvarač signali su standardnh veličina (0 - 5 VDC, 0 - 10 VDC, –10 do +10 VDC, 0 - 20 mA, 4 - 20 mA), standardizirani. Da bi se to postiglo potrebna je elektronička obrada signala. Signal je potrebno propustiti kroz elektronički sklop koji će mu dati oblik i veličinu, no ne smije se oštetiti informacija koju taj signal nosi. Signal je potrebno linearizirati, pojačati i filtrirati. Da bi signal doveli u željeno analogno područje često koristimo pojačala s povećanjem većim od 1, ali i s povećanjem manjim od 1. Zadatak pojačala je da promjeni vrijednost analognih veličina i prenese ih u novo područje naponskih vrijednosti, a da ne pokvari njihovu analognu informaciju (normiranje). Često se koriste i razni filtri kojima je zadatak odstraniti šum. Karakteristika signala se može poboljšavati i na digitalan način, tako da se senzoru doda mikroračunalo koje posebnim algoritmima oblikuje signal pa tek tada prenosi u ″glavno″ računalo.

3.3 Multipleksori

Da bi se upravljalo procesom potrebno je puno različitih senzora, rijetko kada nam je dovoljan samo jedan. Mjerena veličina svakog senzora bit će prvo podvrgnuta analognoj obradi. Zatim svaka mjerna veličina bi mogla imati svoj A/D pretvarač i svoj interface. Takvo rješenje bi bilo preskupo u sustavima gdje se koristi nekoliko desetaka pa i nekoliko stotina senzora, pa se upotrebljava samo jedan A/D pretvarač i interface. Kod takvog rješenja mora postojati multipleksor (slika 3.2b). Multipleksor (engl. Multiplexer) ili selektor (engl. Data selector) je sklop kojim se podatak sa jednog od više ulaza usmjerava (prenosi) na izlaz. S kojeg ulaza će se odabrati podatak i prenjeti na izlaz ovisi o stanju posebnih ulaza za odabiranje (slika 3.2a). Broj ulaza za podatke N ovisi o broju ulaza za odabiranje M.

M2N =

0D

1ND −

0 1MS S −−

Sl. 3.2a. Opći prikaz djelovanja multipleksora

Na slici 3.2b. prikazana je logička shema multipleksora s četiri ulaza. Kada je potrebno odabrati jedan od četiri ulazna podatka tada multipleksor treba imati dva ulaza za odabiranje podataka. Podaci sa ulaza dovode se na sklopove ″I″. Koji sklop ″I″ će prenjeti podatak s ulaza na izlaz, preko sklopa ″ILI″ ovisi o kombinaciji na ulazima za odabiranje podataka i . To se može prikazati i tablicom stanja slika 3.2b.

0S 1S

11

Page 13: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

0D

1D

2D

3D

Y

0S1S

Sl. 3.2b. Logička shema i tablica stanja multipleksora

Naravno postaje upitno kojim redom će se signali obrađivati. Samo po sebi se nalaže rješenje redom kojim dolaze no to se rijetko primjenjuje. Brzina promjene pojedinih mjernih veličina je različita pa tako i njihova gustoća uzimanja uzoraka ne može biti ista. Tako se npr. temperatura prostorije ne može promijeniti u vremenu manjem od desetak sekundi, dok se promjena tlaka u parogeneratoru mora mjeriti u milisekudama pa čak i češće (frekvencija uzorkovanja). Stoga se uzorci signala uzimaju prema potrebi obrade mikroračunala. Znači mikroračunalo bira redoslijed obrade podataka prema programu koji izvodi, šaljući adresu ulaznog podatka multipleksoru.

3.4 Sample & Hold sklop (S&H)

Sample & Hold sklop ima zadaću da u trenutku uzorkovanja očita vrijednost analognog signala na ulazu te da ga zadrži sve do sljedećeg uzorkovanja. Na neki način djeluje kao memorija za pamćenje analogne vrijednosti između uzorkovanja kako se na ulazu u A/D sklop ne bi mijenjala vrijednost tijekom pretvorbe.

Stvarni Sample & Hold sklop uz sklopku i kondenzator, sadrži i serijski otpor sklopke i vodiča ali i unutarnji otpor izvora signala R1, te paralelni otppor R2 (slika 3.3.). Vremenska konstanta R1C mora biti puno manja od vremena T0N, kada je sklopka S zatvorena, a vremenska konstanta R2C mora biti puno veća od intervala uzorkovanja TS.

R1C << T0N, R2C >> TS

T0N - sklopka zatvorena TS - interval uzorkovanja

Sl. 3.3. Stvarna shema Sample&Hold sklopa

12

Page 14: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Sl. 3.4. Shema S&H sklopa

Sl. 3.5. Signal pri S&H obradi

Kašnjenje koje nastaje pri povratku iz stanja zadržavanja u stanje praćenja ograničava frekvenciju uzimanja uzoraka.

3.5 Analogno digitalni pretvarač

Digitalni sustavi koji služe za mjerenje, regulaciju ili automatizaciju na svome će ulazu i izlazu u pravilu imati analognu veličinu. Najveći je broj procesa u prirodi analogan, a to vrijedi i za mnoge veličine u tehničkim sustavima. Da bi računalo moglo obrađivati te signale potrebno ih je kodirati, diskretizirati po vremenu i amplitudi, tek tada kada su pretvoreni u binarne brojeve mogu se unositi u računalo. Zbog toga je potrebno imati uređaje za automatsko pretvaranje između tih dvaju načina prikaza veličina. Proces kvantizacije predstavljat će mjerni proces u kojemu se konstatira koliko standardnih mjernih jedinica sadrži mjerna veličina. Idealna karakteristika A/D pretvorbe prikazana je na slici 3.6. kao i blok shema A/D pretvarača. Pretvorba analogne veličine u digitalnu (i obratno) inherentno je diskontinuirani proces. Proces pretvorbe sastoji se u tome da se ulaznoj veličini koja se nalazi u nekom određenom naponskom intervalu pridruži određeni broj n. U idealnom slučaju naponski su intervali (ili koraci) jednake širine i ponekad se nazivaju kanalima. Jedna je od osnovnih karakteristika A/D i D/A pretvorbe broj koraka odnosno kanala koji određuju rezoluciju.

KU

13

Page 15: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Rezolucija ili razlučivanje je širina kanala kao postotak maksimalnog ulaznog napona ili jednostavno njihov omjer. Ako je nM maksimalni broj koji odgovara maksimalnom ulaznom naponu UM, onda je širina koraka jednaka UM/nM, pa se rezolucija svodi na 1/nM. Budući da je broj n izražen binarno sa k bita, maksimalni je broj 2k – 1, pa je uobičajeno da se rezolucija jednostavno izražava kao broj bita što ih ima ulazni ili izlazni podatak.

ua - ulazni napon n - broj bita nM - maksimalni broj bita UM - maksimalni ulazni napon UK - naponski interval (korak)

Sl. 3.6. Idealna karakteristika A/D pretvarača i blok shema

Analogno-digitalni pretvarač ne pretvara u digitalnu vrijednost cjelokupni analogni signal, već samo njegove uzorke u vremenu (slika 3.7.).

Sl. 3.7. Uzorkovanje analognog signala u vremenu

14

Page 16: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Da ne bi signal previše izobličili A/D pretvorbom potrebno je dobro provesti diskretizaciju. To znači da koraci kojima se uzima signal kod diskretizacije moraju biti gusti po vremenu da se ne izgubi ni jedan harmonik ulaznog signala, a po amplitudi treba imati dovoljnu veliku razlučivost da bi razlikovala male promjene amplitude. A/D pretvorba je povremeno mjerenje vrijednosti signala ako se promatra kao proces. Kako je signal promjenjiv moramo u određenom trenutku uzeti uzorak (sample) signala i tu vrijednost privremeno pohraniti (hold). S & H izvodimo jer mjerenje nije moguće izvesti trenutno već ima određeno trajanje. Shannonov teorem govori da se pri uzimanju uzoraka iz nekog kontinuiranog signala uzorci moraju uzimati barem dvostruko većom frekvencijom nego što je frekvencija najvišeg harmonika koji se uzima u obzir pri razmatranju.

Imamo dvije osnovne vrste A/D pretvarača:

a) A/D pretvarači s vremenskim ekvivalentom b) A/D pretvarači sa sukcesivnom aproksimacijom c) Sigma-delta A/D pretvarači

a) A/D pretvarači s vremenskim ekvivalentom

A/D pretvarač s vremenskim ekvivalentom naziva se još i Wilkinson-ov A/D pretvarač.

au

pu

Sl. 3.8. Wilkinson-ov A/D pretvarač A/D pretvarač koji ulazni analogni napon pretvara najprije u odgovarajući vremenski interval

prikazan je na slici 3.8. Ulazna analogna veličina ua nalazi se na jednom od ulaza naponskog komparatora K. Na drugom ulazu je napon 0, pa je izlaz komparatora na niskoj razini. Proces pretvorbe započinje impulsom START koji postavlja bistabil u 1. Time se otvara ulaz u brojilo i brojilo počinje brojati impulse iz generatora impulsa. Istovremeno je pobuđen i generator pilastog napona koji je spojen na drugi izlaz komparatora. Rad sklopa može se pratiti pomoću dijagrama na slici 3.9. Kada pilasti napon naraste do vrijednosti ulaznog napona, izlaz iz komparatora odlazi na visoku razinu i vraća bistabil u stanje 0. Time završava pretvorba napona u vrijeme. Za vrijeme T dok je ″I″ sklop otvoren impulsi iz generatora pokreću brojilo, a nakon završetka pretvorbe stanje brojila pokazuje traženu digitalnu veličinu u koju je pretvoren ulazni napon.Treba napomenuti da točnost pretvorbe ovisi o stabilnosti frekvencije generatora impulsa i o linearnosti i stabilnosti pilastog napona.

15

Page 17: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Sl.3.9. Princip rada Wilkinson-ovog A/D pretvarača

b) A/D pretvarači sa sukcesivnom aproksimacijom

Pretvarač radi tako da se produženi ulazni napon iz produživača uspoređuje s naponom u obliku stepenica (slika 3.12.). Pri tome prva stepenica ima veličinu Umax/2, druga Umax/4, treća Umax/8, itd. Gdje je Umax najveći ulazni napon koji se može pretvarati. Zbog takvog načina rada taj tip A/D pretvarača zove se i A/D pretvarač sa sukcesivnom aproksimacijom. Ako je stepeničasti napon, koji predstavlja sumu svih stepenica, manji od produženog ulaznog napona, onda do tada generirane stepenice ostaju. Kada stepenasti napon postane veći, briše se doprinos stepenice koja se pojavila posljednja i izazvala prekoračenje ulaznog napona. Tako na kraju usporedbe ostaju samo one stepenice čija je suma približno jednaka veličini ulaznog napona, odnosno neznatno niža od njega. Generiranjem svake naponske stepenice upravlja jedan bistabil, propuštajući kroz zajednički otpornik struju proporcionalnu težinskoj vrijednosti toga bistabila u binarnom brojevnom sustavu. Tako bistabil najmanje težinske vrijednosti B0 upravlja strujom I0 stvarajući najmanju stepenicu napona, sljedeći po redu bistabil B1, upravlja strujom 2I0 stvarajući tako dvostruko veću stepenicu, itd. Bistabili se postavljaju u stanje 1 nizom uzastopnih impulsa. Prvi od tih impulsa postavi u stanje prvi bistabil najveće težinske vrijednosti, koji ukljući odgovarajuću struju, i napravi najveću stepenicu Umax/2. Zatim se uključuje sljedeći bistabil po težinskoj vrijednosti, koji stvori stepenicu Umax/4, itd.Kada suma stepeničastog napona prekorači veličinu ulaznog napona, uspoređivač pošalje signal o prekoračenju.Taj signal postavi u nulu bistabil koji je generirao posljednju stepenicu, zbog toga prestane teći ona struja kojom upravlja taj bistabil pa nestane i njegova stepenica. Kada se tako izredaju svi bistabili i njihove stepenice, pretvorba je završena, a stanje bistabila u obliku binarnog podatka predočavaju na digitalni način veličinu ulaznog napona.

16

Page 18: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Sl. 3.12. A/D pretvarač sa sukcesivnom aproksimacijom

Sl. 3.13. Graf signala sukcesivnog A/D pretvarača

17

Page 19: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

c) Sigma-delta A/D pretvarači

Sl.3.13.a Blok shema Sigma-delta A/D pretvarača

Na gornjoj slici ulazni naponski signal VIN je doveden na integrator, čiji izlaz se preko komparatora uspoređuje s referentnom naponskom nulom pretvarača. D-bistabil kontrolira preklopnik s kojim uključujemo/isključujemo referentni napon na ulazu u integrator. Kako ulazni napon raste ili pada, komparator uključuje ili isključuje referentni napon, koji se oduzima od ulaznog signala, s težnjom da zadrži nulu na izlazu integratora.

Brojač C1 konstantno broji impulse dobivene iz generatora takta, dok brojač C2 samo broji

impulse kada je preklopnik zatvoren. Pretpostavimo da je kapacitet brojača C1 1000. Nakon svakog perioda od 1000 impulsa, broj u brojaču C2 je proporcionalan srednjoj vrijednosti ulaznog signala.

Sigma-delta modulacijska tehnika je vrlo uspješno u upotrebi u analogno-digitalnoj pretvorbi

(ADC) nešto više od 20 godina. Iako sigma-delta postoji od polovice prošlog stoljeća, tek skorašnje prednosti VLSI tehnologija je omogućila uporabu da proteče generiran bit sa 1 bitnim ADC-om.

Posljedica visoke rezolucije sigma-delte tehnologije je brzina – sklopovlje treba funkcionirati sa

većim brojem uzoraka, mnogo većim od pojasne širine maksimalnog signala, te zahtjeva veliku složenost digitalnih strujnih krugova. Zbog ovih ograničenja, ovi pretvarači tradicionalno prikazuju visoku rezoluciju, vrlo niskog frekvencijskog zahtjeva, i u zadnje vrijeme govor, zvuk i umjerene brzine (100 kHz i 1 MHz).

Digitalno filtriranje prikazuje rezultate u dugoj prikrivenosti između početka ciklusa uzorka i prvog

ispravnog digitalnog izlaza. Značajno zaostajanje između digitalnog izlaza i njegovog trenutnog pratećeg uzorkovanja. Ove karakteristike sprječavaju korištenje ovih pretvarača u složenim sistemima – nakon prebacivanja iz jednog kanala u drugi zahtjeva se mnogo vremenskih ciklusa za postavljanje digitalnog filtriranja.

18

Page 20: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Razlike u odnosu na alternativne tehnologije: • Većina strujnih krugova u sigma-delta pretvaračima je digitalna. To upućuje da se izvođenje neće

značajnije promjeniti s vremenom i temperaturom. Također, izvedivo je postavljanje pretvarača u jedan integrirani sklop sa dodanim strujnim krugom, kao što su D/A pretvarač, DSP (Procesor Digitalnog Signala), mikrokontroler. Konačno, njena izvedba nije skupa i cijena je stalno u padu.

• Oni su sami po sebi monotoni, odnosno promjena digitalnog izlaza je uvijek ista tj. padu ili rastu digitalnog ulaza. To je izrazito značajno u zatvorenim kružnim kontrolnim sustavima, gdje nedostaje interpretacija smjera promjena mjerene varijable, gdje može uzrokovati nestabilni sustav.

• Oni su sami po sebi linearni, te predočavaju manju diferencijalnu nelinearnost. • Ne zahtjevaju dodatni Sample & Hold strujni krug, tijekom velike ulazne brzine uzorkovanja i

male točnosti A/D pretvorbe. • Zahtjevi za analogne protupreklapajuće (anti-aliasing) filtere su minimalni, u većini slučajeva je

dovoljan jednostavni jednopolni RC filter. Za razliku od ostalih gdje su zahtjevi osrednji, za visoke rezolutne zahtjeve koriste se druge vrlo sofisticirane (ne preuzorkovane) tehnologije, drugačije dizajnirane, veće i skuplje.

• Razina smetnje, koji određuje SNR (Signal-To-Noise Ration – omjer snage signala i smetnje), je neovisana o razini ulaznog signala.

• Do tada je stanje digitalnog filtriranja dio nakon A/D pretvaranja, smetnje ubačene kroz pretvarački proces se mogu vrlo uspješno kontrolirati. Ustvari, filter može biti podešen do minimalne razine smetnje sa vrlo specifičnim karakteristikama (npr. 50 Hz).

• Prije svega, oni sami po sebi čine ove uređaje jeftine i pristupačne. U višekanalnoj primjeni, arhitekture jedan pretvarač po kanalu, često će biti efikasniji, ali i skuplji od jednog pretvarača za multipleksirane ulaze.

19

Page 21: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

3.6 Digitalno analogni pretvarač

Digitalni signal ima mnoge svoje prednosti, ali je ipak analogni signal u mnogo slučajeva pogodniji. Na primjer, u regulacijskoj tehnici zbog izvršnog sklopa analogne prirode potrebno je digitalne signale pretvoriti u analogne.

02

12n−

izU

Sl. 3.14. D/A pretvarač

D/A pretvarač nam je potreban da bi digitalni signal dobiven iz računala pretvorili u odgovarajući analogni signal najčešće napon ili struju. On nam je potreban za prikaz podataka na CRT monitoru. D/A pretvarač radi tako da svaki bit binarnog podatka upravlja određenim iznosom električne struje proporcionalnog težinskoj vrijednosti tog bit-a. Tako bit najmanje težinske vrijednosti B0 upravlja strujnim iznosom I0, B1 upravlja strujom 2I0, B2 strujom 3I0, itd. Sve struje teku u istu točku te je konačan iznos određen binarnim brojem zbroj svih struja. Propuštanjem te struje kroz otpornik dobije se napon. Šiljci prijelaznog napona vezani su uz kontinuiranost veličine (slika 3.15.).

stvarniočitani

Šiljak prijelaznog napona

0111

1000

n

t

Sl. 3.15. Graf signala

20

Page 22: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

3.7 Međusklop (Interface)

Međusklop (eng. interface) služi za povezivanje računala sa vanjskim uređajima. Vanjski sklopovi imaju drugačiji način rada koji je neovisan o načinu rada digitalnog računala. Zadatak međusklopova je da ta dva različita načina rada uskladi tako da čine cjelinu. Pošto su vanjski sklopovi jako različiti, međusklopovi trebaju biti sastavljeni od standardnih elektroničkih dijelova. Mikroračunala imaju posebne LSI-komponente za prijenos podataka između mikroprocesora i vanjskih jedinica, koje se programski prilagođavaju specifičnim vanjskim jedinicama. To omogućava fleksibilnost i jednostavnost međusklopova. Treba spomenuti da postoje standardni LSI-sklopovi za ulazno – izlazni prijenos. Ti LSI-sklopovi se rade za standardne vanjske jedinice kao što su disketna jedinica, tipkovnica, itd. Neposredni ulazno – izlazni prijenos se vrši paralelno, znači da se svi bit-ovi jedne riječi prenose od jednom (to su međusklopovi u užem smislu).

Uređaji za povezivanje udaljenih jedinica s računalom koriste serijsku vezu jer paralelna nije praktična zbog broja vodiča, znači prenosi se bit po bit. Najprije treba paralelne podatke pretvoriti u serijske te se na prijemnom mjestu opet pretvaraju u paralelne. Svi potrebni sklopovi za povezivanje na daljinu se također zovu interface, mada bi bilo prikladnije reći interface u širem smislu, jer oni sadrže interface u užem smislu, paralelno/serijsku i serijsko/paralelnu pretvorbu.

Uređaji koji koriste serijsku komunikaciju koriste dvije vrste kabela i to: DCE (Data Communications Equipment) i DTE (Data Terminal Equipment). DCE koriste modemi, printeri i sl. dok se DTE koristi za vezu između PC korisnika.

U/I kanali su priključci ili ulazno/izlazni sklopovi koji omogućuju povezivanje računala sa različitim vanjskim uređajima ili s uređajima unutar kučišta sustava.

Sl. 3.16. Sučelje DTE-DCE i komunikacijski kanal

Dva su osnovna tipa prijenosa podataka putem U/I kanala:

a) parelelni b) serijski

a) Paralelni prijenos podataka ukazuje na istovremeni prijenos bitova preko više komunikacijskih vodova. Sklopovi su standardni i direktno su povezani sa sve tri sabirnice. Sklop ima svoj registar (privremenu memoriju) koja ima svoju adresu pa mikroprocesor lako na njega prenese podatke. Nečelo paralelnog prijenosa prikazan je na slici 3.17.

21

Page 23: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Sl. 3.17. Načelna shema osam bitnog paralelnog prijenosa

Prikazani sustav paralelnog prijenosa podataka razvila je tvrtka CENTRONICS, pa se često tako i naziva. Kako bitovi prolaze istovremeno, prijenos je brži od serijskog prijenosa, ali je neprikladan za udaljene veze zbog velikog broja vodiča u spojnom kabelu. Efikasna duljina je 10 m.

Sl. 3.18. Shema jedinice za paralelni prijenos

b) Serijski prijenos podataka. Za razliku od paralenog prijenosa, kod serijskog se podaci šalju po jednoj žici. Da bi se podaci sa sabirnice mogli redosljedno poslati preko serijskog sučelja, u sklopu sučelja obavezno su ugrađeni registri posmaka koji omogućavaju pretvorbu paralelnog prihvata u serijsko odašiljanje i obratno.

Sl. 3.19. Načelo rada serijskog prijenosa podataka

22

Page 24: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Sl. 3.20. UART

Najčešći tip prijenosnog puta u procesima je RS-232C. Postoje i RS-422 (baziran na strujnoj petlji od 4 do 20mA). RS-232C baziran je na naponskom prijenosu, ali na izlazu i ulazu su različiti naponi. Na izlazu se napon kreće od -15 do +15V, na izlazu od -3 do +3V. Brzine prijenosa su do 20Kb/s. RS-422 podržava vodove do kilometra i veće brzine prijenosa (do 100Kb/s).

Postoje dva tipa prijenosa s obzirom na vremensku usklađenost prijenosa:

• Sinkroni • Asinkroni

Asinkroni način prijenosa podataka najčešće se upotrebljava pri malim brzinama prijenosa tj. kada se prenosi relativno malo bitova u sekundi, jer su tada prihvatljive veće međusobne razlike taktnih signala, odašiljača i prijemnika. Za veće brzine prijenosa upotrebljava se sinkroni prijenos koji mogu prenositi nekoliko puta više bitova u sekundi. Pri asinkronom načinu prijenosa odašiljač i prijemnik imaju odvojene izvore taktnih signala pa je potrebno relativno velika usklađenost, odnosno točnost tih signala. Pri sinkronom prijenosu to nije problem jer isti taktni signali određuju mjesto svakog bita koji se prenosi i u odašiljaču i u prijemniku. Inače je način rada pri sinkronom serijskom prijenosu sličan radu pri asinkronom prijenosu. Postoji odašiljač koji paralelne podatke pretvara u serijske, i prijemnik što dolazeće impulse prihvaća i formira podatak spreman za daljnji paralelni prijenos.

Kod asinkronog prijenosa podataka nema informacije o taktu uključenog u samoj poruci, već se koristi česta resinkronizacija koristeći se start i stop bitovima.

Prijenos podataka počinje start bitom, a završava stop bitom. Osim start i stop bita može se slati i paritetni bit, koji štiti od jednostruke pogreške. Također ne može detektirati koji je bit krivo poslan, a ne može detektirati ni višestruke pogreške.

Sl. 3.21. Primjer RS-232 signala

23

Page 25: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

3.8 Paritetni sklop

Paritetni sklop koristi se kao generator i ispitivač pariteta pri prijenosu digitalnih signala. Za siguran prijenos kodiranih podataka u digitalnim sustavima vrlo često se koristi metoda pariteta. Svakoj binarnoj kombinaciji, kojom se pokazuje podatak, dodaje se tzv. paritetni bit kako bi ukupan broj jedinica bio uvijek paran (metoda parnog broja jedinica) ili neparan (metoda neparnog broja jedinica).

Na mjestu odakle se odašilje digitalni signal paritetni sklop djeluje kao generator paritetnog bita. Sklop ispituje broj jedinica u podatku i generira paritetni bit. Ako 4-bitni podatak ima parni broj jedinica generator pariteta na izlazu daje stanje 0, ako podatak sadrži neparan broj jedinica, generator pariteta daje na izlazu stanje 1. Time se postiže da je ukupan broj jedinica podataka i paritetnog bita uvijek paran (slika 3.22.).

Sl. 3.22. Primjena paritetnog sklopa

3.9 Povezivanje računala sa procesima

Da bi se računala mogla primjeniti u vezi sa različitim procesima, karakteristične mjerne veličine (parametri procesa) moraju se unositi u računalo koje te podatke obrađuje, izvodeći karakteristične programe, specifične samo za taj proces. Izvođenje tih programa omogućuje da se pomoću računala nadzire odvijanje procesa, da se mjere izvorne ili izvedene veličine tog procesa ili da se procesom upravlja pomoću računala. Najprije treba razraditi odgovarajuće upravljačke, mjerne ili nadzorne algoritme kojima se na adekvatan (primjeren) način rješava postavljeni zadatak. Taj algoritam se zatim ubacuje u računalo pomoću programa napravljenih upotrebom nekog programskog jezika. Tokom rada na procesu ti se programi izvode u računalu, omogućavajući upravljanje procesom, mjerenje ili nadzor procesa. Da bi računalo moglo raditi sa procesom, potrebni su i u samom procesu odgovarajući sklopovi, karakteristični upravo za taj proces. To mogu biti različiti sklopovi. Oni povezuju proces sa elektroničkim i računalnim sustavom i mogu se podjeliti u dvije osnovne kategorije: Senzore (mjerne pretvarače, osjetila) i izvršne organe. Senzori izražavaju različite parametre procesa, najčešće u obliku električnih analognih signala (veličina napona ili struje). Izvršni organi služe za djelovanje na proces, ako se obradom ulaznih podataka ustanovi da to treba učiniti. Parametri procesa koji će se upotrijebiti za rad ovise o vrsti procesa i mogu biti različite fizikalne veličine kao što su tlak, protok, temperatura, radioaktivno zračenje itd. Budući da ima puno različitih parametara koji se mogu mjeriti, s većom ili manjom točnošću, postoji i veliki broj različitih senzora. Većina tih senzora izražava parametre (mjerne veličine) procesa u analognom obliku, odnosno u obliku veličine napona ili struje, zato ih prvo treba pretvoriti u digitalni oblik koji je pogodan za unos u računalo. Postoji dakako mogućnost, iako manja, da senzori izražavaju neke parametre procesa direktno u digitalnom obliku. Takve veličine nije potrebno pretvoriti u digitalni oblik, nego se mogu bez pretvorbe unositi u računalo.

24

Page 26: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

3.10 Računalo

Računalo je ''mozak'' jednog ″on line″ sustava. Ono omogućava brzu reakciju i korekciju u sustavu. Tako na primjer, na temelju prikupljenih meteoroloških podataka računalo danas izračunava vremensku prognozu za sutra, za to bi ljudima koristeći meteorološke algoritme trebalo možda mjesec dana i tada bi ti podaci bili nevažni. Koristeći računalo ti podaci mogu biti obrađeni u vrlo kratkom vremenu pa ta vremenska prognoza postaje upotrebljiva. Računala tako mogu biti korištena u različite svrhe, a to im omogućuje programibilnost. Program koji je unesen u računalo prilagođava računalo određenom sustavu. Gotovo za svaki sustav računalo je sklopovski isto, moguće su male modifikacije.

3.10.1 Mikroprocesor

Mikroprocesor (CPU) je najvažniji elektronički sklop računala, koji preuzima programske instrukcije i na osnovu njih obrađuje podatke. Naziv ''mikro'' koristi se zbog malih dimenzija. Današnji mikroprocesori sadrže preko stotinu milijuna tranzistora ukomponiranih na silicijskoj pločici upakiranoj u kućište.

Prvi mikroprocesor proizvela je tvrtka Intel 1971. godine. To je bio 4-bitni mikroprocesor s brzinom od 6000 operacija u sekundi, zvao se 4004. Nakon tog uviđa se velika prednost mikroprocesora, te se počinju naglo razvijati. Prvi jači mikroprocesor bio je Intelov 8008 i Motorolin 6800 koji su bili 8-bitni procesori. Razvoj mikroprocesora se do danas nije zaustavio, no osnova njihovog rada je u principu ista.

Uz mikroprocesor se može pridodati i matematički koprocesor koji procesoru potpomaže u računskim operacijama. Koprocesor radi paralelno s mikroprocesorom i može preko njemu usmjerenih instrukcija izvršiti vrlo moćne operacije s pokretnim zarezom. Svi noviji procesori imaju integriran koprocesor u kućište s mikroprocesorom.

Značajke mikroprocesora:

• velika prilagodljivost (univerzalnost) • niska cijena • male dimenzije • velika pouzdanost

3.10.2 Mikrokontroler

Mikrokontroler je elektronički uređaj koji, slično kao i računalo, ima zadaću da zamjeni čovjeka u kontroli dijela proizvodnog procesa ili gotovo cijelog proizvodnog procesa. Iz svakodnevne prakse pri uporabi računala opće namijene tip PC-a već je poznato da je standardni ulaz tipkovnica i miš (eventualno upravljačka palica), dok je standardni izlaz monitor ili pisač. Teško je definirati što će biti standardni ulaz i izlaz mikrokontroleru. Razlog tome je što su mikrokontroleri uglavnom dizajnirani za specifične zadaće vrlo raznolike od slučaja do slučaja. Primjera ima mnogo, od jednostavne regulacije osvjetljenja, alarmnih sustav, pa dao upravljanja robotima u industrijskim pogonima. Ulazi mogu biti vrlo jednostavne izvedbe kao na primjer prekidač u sklopu plovka za nadzor najvećeg ili najnižeg nivoa tekućine u spremniku. Mikrokontroler tada ima za obradu samo dva stanja koje opisuje jedan bit. Složenije je praćenje ako treba pratiti stvarnu razinu nivoa tekućine u spremniku. Tada treba definirati koliko će se nivoa pratiti i tu će se upotrijebiti nekakav potenciometarski sklop koji će mikrokontroleru predati određenu analognu vrijednost koju će ovaj potom pomoću A/D pretvornika obraditi i isporučiti odredištu. Ako je pak povezan s fotoćelijom za brojanje predmeta po načelu prekidanja svjetlosnog snopa radi se o izravnom brojanju impulsa tijekom rada neovisno o vremenu.

Dakle, ulazi mogu biti analogne i digitalne prirode i u suštini podatke će isporučivati nekakav mjerni pretvornik (senzor).

25

Page 27: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Izlazi iz mikrokontrolera također mogu biti analogne i digitalne prirode. Analogni izlazi, bilo naponski ili strujni, mogu se elektromehaničkim sklopovima pretvoriti u neku korisnu radnju kao promjena položaja nekog predmeta, povećanje brzine vrtnje motora i slično. Najjednostavniji primjer je lampica upozorenja koja upozorava čovjeka na promjenu ili neispravnost. Složeniji izlaz biti će kada se želi pratiti veličina promjene bilo kao analogni ili digitalni prikaz.

Naravno, ulaz i izlaz mikrokontrolera nije isključivo vezan na komunikaciju sa strojem. Uglavnom kontroler ima neki vid komunikacije prema korisniku, na primjer s lampicama ili s digitalnim pokazivačem. No nisu rijetki slučajevi da se za komunikaciju s čovjekom koristi računalo tipa PC.

Iz navedenog može se zaključiti da se mikrokontroleri prema načinu izrade i komunikacije s okolišem mogu svrstati u jednu od dvije osnovne kategorije:

• Mikrokontroler kao samostalna upravljačka jedinica • Mikrokontroler kao osobita kartica u jednom od utora PC računala

U suštini mikrokontroler radi na načelu vrlo bliskom računalu. On je uistinu malo računalo, a složenost mu ovisi o složenosti zadaće koju ima nadzirati.

Sl. 3.23. Pojednostavljeni model mikroprocesora

26

Page 28: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

- Aritmetičko-logička jedinica (izvršna jedinica) ALU izvršava osnovne aritmetičke i logičke operacije (+, -, posmak, komplementiranje, logičke operacije I i ILI)

- Akumulator A služi za privremeno pohranjivanje jednog od operanada (podataka nad kojima se obavlja aritmetička ili logička operacija). Rezultat operacije se najčešće ponovo pohranjuje u akumulator. Akumulator sudjeluje i u prijenosu podataka između procesora i ostalih komponenti računala, odnosno vanjskog svijeta.

- Programsko brojilo PC (engl. Program Counter) je registar koji sadrži adresu sljedeće instrukcije koja će se izvesti. Upravljačka jedinica ga automatski inkrementira.

- Instrukcijski registar IR je registar u kojem je zapisan operacijski kod čije je izvršavanje u tijeku. Operacijski kod je binarni kod kojim je pojedina instrukcija prikazana i zapisana u memoriji računala.

- DC (engl. Data Counter) je registar u kojem je zapisana adresa memorijske lokacije na kojoj se nalazi operand, pa se taj registar naziva brojilo podataka.

- Privremeni registar WR (Work Registar) je povezan s jednim od ulaza u aritmetičko-logičku jedinicu i služi za privremeno pohranjivanje jednog od podataka koji sudjeluju u aritmetičkoj ili logičkoj operaciji. Ovaj privremeni registar nije element programskog modela mikroprocesora.

- Interna sabirnica – skup linija za prijenos podataka koje su izvedene na samom mikroprocesorskom čipu. Omogućava prijenos podataka između pojedinih registara, aritmetičko-logičke jedinice i upravljačke jedinice. Interna sabirnica je preko međuregistara, odnosno sabirničkog sučelja povezana s vanjskom sabirnicom.

- Upravljačka jedinica – sastoji se od sklopova za dekodiranje instrukcije i upravljačkih sklopova. Upravljački sklopovi u skladu s operacijskim kodom instrukcije koja se izvršava generiraju niz upravljačkih signala. Ti signali upravljaju prijenosom podataka između registara i aritmetičko-logičke jedinice, aktiviraju promjenama vrijednosti programskog brojila, omogućavaju prijenose podataka između procesora i memorije i sl. Sve operacije unutar mikroprocesora sinkroniziraju se signalom vremenskog vođenja (takt). Događaji u mikroprocesoru odvijaju se u točno utvrđenim diskretnim vremenskom trenucima.

Registre u procesoru dijelimo na:

a) registri opće namjene (služe za privremenu pohranu podataka koji se obrađuju, odnosno operanada, međurezultata, rezultata, pohranjuju kazala koja upućuju na pojedine memorijske lokacije)

b) namjenski registri (programsko brojilo [program counter], kazalo stoga [stack pointer], registar stanja programa [program status word, statusni registar])

c) namjenski registri kojima korisnik ne može pristupiti (IR – registar instrukcija, privremeni registar)

3.10.3 Arhitektura računala

Postoje dvije dominantne arhitekture procesora, a to su:

• CISC (engl. Complex Instruction Set Computer)

• RISC (engl. Reduced Instruction Set Computer)

CISC arhitektura (slika 3.25.) je starija arhitektura od RISC, osmislio ju je Von Neumann 1945.

godine. Sustavno je opisao osnovnu građu i djelovanje računala, a na njegovom se modelu temelje i današnja računala (slika 3.24.).

27

Page 29: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Sl. 3.24. Van Neumannov model računala

Da bi popravili performanse CISC arhitektura pokušava smanjiti broj instrukcija koje program mora pozivati. Da bi to napravili moraju imati velik broj mikro instrukcija koje pokrivaju velik raspon zadataka. Jedna mikroinstrukcija, kad se dekodira u procesoru može postati nekoliko zadataka (tasks) koje procesor mora izvršiti. Kao posljedica, instrukcije su varijabilne duljine i često zahtjevaju više od jednog takta za njihovo izvršavanje. Kao što vidimo na slici 3.25. CISC arhitektura koristi samo jednu sabirnicu koja služi kao podatkovna i kao adresna sabirnica.

Sl. 3.25. Pojednostavljena shema CISC arhitekture ili Von Neumann-ove arhitekture Najznačajnije karakteristike CISC mikroprocesora:

• proširenje instrukcije • kompleksne strojne instrukcije • dekodiranje instrukcija • razni načini adresiranja memorije • relativno malo registara • viši radni takt

RISC arhitektura (slika 3.26.) računala nastala je na Sveučilištu Harvard. RISC arhitektura pokušava poboljšati performanse reduciranjem broja taktova potrebnih za izvršavanjem zadatka. Imaju mali set pojednostavljenih instrukcija, izvršavajući cijeli mikro kôd odjednom. Ovo znači da zadatak treba više instrukcija koje su jednake duljine i obično trebaju jedan takt za izvršavanje. Zbog ovoga, RISC sustavi su sposobni procesirati više instrukcija paralelno (pipelining). Procesor radi više instrukcija odjednom, počevši drugu instrukciju prije završetka prve. Ovo značajno povećava propusnost i čini RISC bržim od CISC-a. Vidimo na slici 3.26. da ova koncepcija koristi dvije sabirnice. Time se postiže veći protok informacija. Odvajanjem sabirnica omogućava se da instrukcije mogu biti veće od 8 bit-a. PIC16F84 koristi 14 bit-a za instrukcije što dozvoljava da sve instrukcije budu od jedne riječi i svaka instrukcija se izvršava u jednom ciklusu osim instrukcija skoka i grananja.

28

Page 30: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Sl. 3.26. Pojednostavljena shema RISC arhitekture ili Harvard-ske arhitekture

Najznačajnije karakteristike RISC mikroprocesora:

• smanjen instrukcijski set • manje kompleksne, jednostavne instrukcije • nije potrebna kontrolna jedinica za dekodiranje instrukcija • maksimalno četiri načina adresiranja memorije • puno registara • manji radni takt

3.10.4 Razlika između mikroprocesora i mikrokontrolera

Sa rastom snage mikroprocesora rasla je i njegova primjenjivost. Zato se na čip veličine mikroprocesora stavlja cijelo računalo – mikrokontroler. Mikrokontroleri su uglavnom dizajnirani za specifične zadatke vrlo raznolike od slučaja do slučaja. U suštini mikrokontroler je malo računalo, a složenost mu ovisi o složenosti zadaće koju mora obavljati. Od namjene mikrokontrolera ovisiti će broj U/I portova, odnosno broj digitalnih i analognih ulaza/izlaza.

POD

ATKO

VNA

SABI

RNI

CA

ME

MO

RIJ

A

Sl. 3.27. Shema mikrokontrolera s njegovim osnovnim elementima

29

Page 31: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Svim mikrokontrolerima su zajednička sljedeća svojstva:

• Relativno mali radni takt (reda 10 MHz) • Mali broj jednostavnih instrukcija (red veličine oko 100) • Radna memorija (RAM - reda KB) • Stalna memorija s programskim kodom (u EPROM izvedbi) • Brojači različitih namjena kao sat, brojač impulsa, BCD brojač... • Brojač za nadzor ispravnog rada – WDT (Watch Dog Timer) • Ulazno/izlazni portovi za prihvat i slanje podataka • A/D i D/A pretvornici razlučivosti prema namjeni (uobičajeni 8-bit) • Širok raspon napona napajanja (2V – 6V)

3.10.5 Memorijska jedinica

Dio mikrokontrolera koji je zadužen za čuvanje podataka. Memorija mora biti u mogućnosti da čita i zapisuje podatke. Zato postoji linija Č/P, ako je Č/P = 1 onda se vrši čitanje u suprotnom vršimo upis.

Sl. 3.28. Model memorijske jedinice

3.10.6 Adresno polje mikroračunala

• Adresno polje – sve moguće lokacije koje neka procesorska jedinica može adresirati (ne moraju biti iskorištene baš sve adrese)

• Sa prvi bajt može se adresirati 256 lokacija, dok se sa dva bajta može adresirati i do 64 K lokacija

• Moćno mikroračunalo mora imati različite načine adresiranja Adresiranje memorije vršimo na više načina:

• neposredno – naredba sadrži sam podatak s kojim se radi. Podatak može biti 8 ili 16 bitni. Za dohvat 2 bajta podatka dovoljna su tri zahvata u memoriju. To je vrlo brz način adresiranja.

30

Page 32: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

• direktno (izravno) – prvi bajt je operacijski kod koji govori koja se operacija radi sa podatkom, a drugi i treći bajt naredbe pokazuju lokaciju memorije gdje se nalazi podatak koji se želi obraditi. Ovakvim načinom adresiranja može se doduše adresirati bilo koja lokacija u adresnom polju, ali za dobivanje samo adrese operanda potrebna su dva zahvata u memoriju, to je vrlo spor način adresiranja.

• indirektno (posredno) – drugi i treći bajt naredbe pokazuju adresu lokacije(pointera) gdje se nalazi adresa podatka koji se obrađuje. To je vrlo neekonomično adresiranje, jer za dohvat podatka treba puno zahvata u memoriju. Prednost je da se stvarna adresa operanda može programski mjenjati, mjenjanjem sadržaja pointera tijekom izvođenja programa bez potrebe mijenjanja glavnog programa.

• segmentno – zasniva se na činjenici da se programi većinom vrte u jednom dijelu (segmentu) memorije.

MMU (jedinica za upravljanje memorijom) - zadatak Memory Management Unit je da podjeli memoriju na više segmenata. Tako podijeljena memorija se adresira segmentno.

3.10.7 CPU (Central Processing Unit)

Mikroprocesor (CPU) je najvažniji elektronički sklop računala, koji preuzima programske naredbe i na osnovu njih obrađuje podatke. Naziv ''mikro’’ koristi se zbog malih dimenzija. Sadrži do nekoliko milijuna tranzistora ukomponiranih na silicijskoj pločici upakiranoj u plastično kućište.

Vrijeme izvođenja instrukcija je reda mikrosekunde, a broj instrukcija i veličina binarnog podatka osnovni su parametri koji definiraju kvalitetu mikroprocesora. Mikroprocesori koji se u računalnim sustavima opće namjene koriste dizajnirani su za rad s podacima duljine 4, 8, 16, 32 i 64 bit-a.

Sl. 3.29. Primjer centralne procesorske jedinice sa tri registra

Na slici 3.29. prikazan je primjer centralne procesorske jedinice sa tri registra, registri su dakle memorijske lokacije čija je uloga da pomognu pri obavljanju raznih matematičkih operacija ili bilo kojih drugih operacija sa podacima gdje god da se oni nalazili. Imamo dvije nezavisne cjeline (memoriju i CPU) koje nisu međusobno povezane , čime je spriječena bilo kakva razmijena podataka. Ako naprimjer želimo zbrojiti sadržaj dvije lokacije iz memorije i njihov rezultat ponovo vratiti u memoriju potrebna nam je veza između memorije i CPU, tj. moramo imati neki ″put″ preko kojeg podaci idu iz jednog bloka u drugi, a ti ″putevi″ se zovu sabirnice.

31

Page 33: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

3.10.8 Sabirnica

Prijenos podataka između sklopova unutar mikroprocesora i unutar računala vrlo je značajan dio posla, a obavlja se preko SABIRNICA (BUS), višežilnim prenosnim putevima između pojedinih sklopova. Broj vodova sabirnice ovisi o broju bit-a koji opisuju podatke koje je potrebno prenjeti. U suštini prijenos podataka je paralelan.

Dakle postoje dva osnovna sustava sabirnica:

1.) Unutrašnje sabirnice - veze unutar mikroprocesora. 2.) Vanjske sabirnice - veze u računalu izvan mikroprocesora.

Međusobno su odvojene međusklopovima jer se često promet na njima ne odvija istom brzinom. Razmjena podataka u mikroprocesoru obavlja se višestruko brže nego između sklopova računala, te ih je stoga potrebno odvojiti. O prijenosu podataka između unutrašnje i vanjske sabirnice brinu se posebni upravljači (controller).

Unutarnja i vanjska komunikacija odvija se preko tri odvojene sabirnice:

1.) Podatkovne sabirnice – dvosmjerna 2.) Adresne sabirnice – jednosmjerna 3.) Upravljačke sabirnice – jednosmjerna

Naravno, komunikacija posredstvom triju sabirnica ubrzava sustav. Podatku, koji je na sabirnici

podataka, preko adresne sabirnice određuje se mjesto na koje će se uputiti, a upravljačka sabirnica će prijenos odobriti.

REGISTAR 1

REGISTAR 2

REGISTAR 3

CPU

MEMORIJSKA LOKACIJA 0

MEMORIJSKA LOKACIJA 1

MEMORIJSKA LOKACIJA 2

MEMORIJSKA LOKACIJA n

PODACIMEMORIJA

Kontrolne linije

Č/P

ADRESE

Sl. 3.30. Primjer komunikacije memorije i centralne procesorske jedinice pomoću sabirnica

Na slici 3.30. prikazana je komunikacija centralne procesorske jedinice sa memorijom. Memorija se sastoji od 16 memorijskih lokacija koja sa centalnom procesorskom jedinicom komunicira preko podatkovne sabirnice (koja je dvosmjerna). Podatkovna sabirnica sastoji se od onoliko linija koliko memorije želimo adresirati, a služi za prijenos adrese od CPU do memorije, dok adresna sabirnica (koja je jednosmjerna) povezuje sve blokove unutar mikrokontrolera.

32

Page 34: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

3.10.9 U/I jedinica

Ove memorijske lokacije se nazivaju portovi. Portovi mogu biti ulazni, izlazni ili dvosmjerni. Kod rada s portovima potrebno je prvo odabrati port s kojim se radi.

ULAZNIREGISTAR

U/Ijedinica

PODACI

PODACI

PODACI

IZLAZNIREGISTAR

Sl. 3.31. Primjer U/I jedinice

3.10.10 Serijska komunikacija

Ovime smo mikrokontroleru omogućili povezivanje na daljinu. Paralelni prijenos nije pogodan za velike udaljenosti zbog većeg broja vodiča. Da bi prijenos funkcionirao treba odrediti skup pravila po kojima će se odvijati, skup pravila po kojem se vrši prijenos podataka nazivamo protokol. Serijski prijenos podataka dijelimo na sinkroni i asinkroni. Sinkroni prijenos između dva uređaja radi pod zajedničkim taktom. Asinkroni prijenos koristimo kad ne znamo frekvencijski takt drugog uređaja, ovu vrstu prijenosa koristimo za slanje manjih podataka.

Sl. 3.32. Serijska jedinica

33

Page 35: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

3.10.11 Slobodni brojač

To je registar čija se vrijednost uvećava u pravilnim vremenskim razmacima. Omogućava nam mjerenje vremena.

Sl. 3.33. Slobodni brojač

3.10.12 Sigurnosni brojač (Watchdog timer)

Program u njega upisuje 0 svaki put kad kada se pravilno izvrši. Ako signal izostane, neće doći do upisivanja 0 (znači da se mikrokontroler vrti u beskonačnoj petlji ), vrijednost brojača će se povećavati do svoje maksimalne vrijednosti kada će sam resetirati mikrokontroler.

Sl. 3.34. Sigurnosni brojač

Na taj način onemogućava se duži nepravilan rad mikrokontrolera bez obzira na uzrok neispravnosti. Ova metoda višestruko povećava sigurnost sustava kojeg mikrokontroler nadzire/upravlja.

34

Page 36: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

4 Mikrokontroler PIC 16F84

4.1 Osnovne karakteristike mikrokontrolera PIC 16F84

4.1.1 Karakteristike mikrokontrolera

• samo 35 jednorječnih instrukcija • sve su instrukcije jednociklusne, osim instrukcija grananja programa i programskog skoka • radni takt; 4MHz, trajanje instrukcijskog ciklusa: 1µs (4 takta vanjskog oscilatora za jednu

instrukciju) – mogućnost nabave mikrokontrolera koji podnose 10 MHz i 20 MHz vanjski takt • 14 b veličina riječi instrukcijskog koda • 8 b podatkovna sabirnica • 15 registara specijalne namjene • hardverski stog dubok osam nivoa • tri načina adresiranja:

-direktno -indirektno -relativno

• 1k programske memorije izvedene u Flash tehnologiji • 68 B podatkovne RAM memorije • 64 B podatkovne EEPROM memorije • četiri izvora prekida:

- vanjski na nožici RB0/INT - preljev timer-a TMR0 - prekid pri promjeni na RB4, RB5, RB6 i RB7 nožicama porta B - prekid nakon završetka procesa upisivanja podataka u EEPROM memoriju

• oko 1 000 piši/briši ciklusa može podnijeti Flash programska memorija • oko 10 000 000 piši/briši ciklusa može podnijeti EEPROM podatkovna memorija • postojanost podataka u EEPROM podatkovnoj memoriji je više od 40 godina

4.1.2 Karakteristike ulazno/izlaznih sklopova

• 13 ulazno/izlaznih pojedinačno upravljivih nožica • velika struja U/I sklopova za napajanje LED dioda:

- maksimalna ulazna struja po nožici je 25mA - maksimalna izlazna struja po nožici je 20mA

• 8-bit-ni timer/brojač sa 8-bit-nim programibilnim djeliteljem frekfencije

4.1.3 Specijalne karakteristike mikrokontrolera

• serijsko In-System programiranje – preko dvije nožice • Power-on Reset (reset pri uključenju) • Power-up Timer (određeno kašnjenje nakon uključenja) • Oscilatorski Start-up Timer (određeno kašnjenje od stabilizacije radne frekfencije) • Watchdog Timer sa vlastitim integriranim RC oscilatorom za neovisan rad

35

Page 37: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

• zaštita koda • SLEEP način rada ( za štednju energije) • odabir vrste oscilatora

4.1.4 Karakteristike CMOS Flash/EEPROM tehnologije

• mala potrošnja, velika brzina • radni napon od 2.0V do 6.0V • mala potrošnja energije:

- < 2 mA pri naponu napajanju od 5 V i radnom taktu od 4 MHz - 15 µA pri naponu napajanju od 2 V i radnom taktu od 32 kHz - < 1 µA u standby nčinu rada pri naponu napajanju od 2 V

4.2 Kratak opis mikrokontrolera

PIC 16F84 je 8-bit-ni mikrokontroler niske cijene, izveden CMOS tehnologijom. Izveden je u RISC (Reduced Instruction Set Computer) arhitekturi. To znači da koristi dvije sabirnice, podatkovnu (8-bit-na) i instukcijsku (14-bit-na). PIC 16F84 ima osam nivoa dubok stog i više prekidnih izvora, što unutarnjih, što vanjskih. Istovremeno izvođenje i prihvaćenje slijedeće instrukcije omogućuje da se svaka instrukcija izvrši u jednom instrukcijskom ciklusu, osim instrukcija skoka i poziva potprograma (za koje su potrebna dva instrukcijska ciklusa). Također obično koriste 2:1 sažimanje koda i 4:1 veću brzinu rada (na 20 MHz) od drugih 8-bit-nih mikrokontrolera iste klase. SLEEP način rada omogućuje štednju energije. Iz takvog načina rada mikrokontroler se može vratiti u aktivno stanje putem prekida, vanjskih ili unutarnjih, i/ili resetom. Te ima Watchdog timer sa vlastitim RC oscilatorom koji štiti od softverskog ″zamrzavanja″ ili slučajne beskonačne petlje. Incircuit reprogramibilnost omogućuje optimiranje programskog koda unutar sklopa, bez odvajanja mikrokontrolera od gotovog sklopa. To je vrlo korisno u razvoju sklopova gdje mikrokontroler nije fizički dostupan, a prototip zahtjeva optimizaciju.

MEM. ZAPODATKE

RAM

MEM. ZAPODATKEEEPROM

PORT A PORT B

SLOBODNIBROJAČ

CPU

Sl. 4.1. Blok shema mikrokontrolera PIC 16F84

36

Page 38: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

4.3 Raspored nožica

Sl. 4.2. Raspored nožica mikrokontrolera PIC 16F84

1. RA2 – druga nožica porta A 2. RA3 – treća nožica porta A 3. RA4/TOCKI – četvrta nožica porta A, može biti i ulaz takta za timer/brojač 4. MCLR – reset ulaz i Vpp napon programiranja mikrokontrolera 5. VSS – napajanje (″masa″) 6. RB0/INT – nulti pin porta B i interrupt ulaz 7. RB1 – prva nožica porta B 8. RB2 – druga nožica porta B 9. RB3 – treća nožica porta B

10. RB4 – četvrta nožica porta B 11. RB5 – peta nožica porta B 12. RB6 – šesta nožica porta B i ulaz takta u programskom modu 13. RB7 – sedma nožica porta B i linija za ulaz podataka u programskom modu 14. Vdd – pozitivno napajanje 15. OSC1 – nožica koja služi za spajanje vanjskog oscilatora 16. OSC2 – nožica koja služi za spajanje vanjskog kristalnog oscilatora a ako imamo na OSC1

RC osvilator tada služi kao djelitelj frekvencije OSC1 sa 4 17. RA0 – nulta nožica porta A 18. RA1 – prva nožica porta A

4.4 Generatori takta

PIC 16F84 može raditi sa dvije različite konfiguracije oscilatora. A to su kristalni oscilator (XT) i RC oscilator, radnog takta 4 MHz, 10 MHz ili 20 MHz ovisno o tipu mikrokontrolera. Slika 4.5. prikazuje oblik signala dobiven iz oscilatora u trenutku uključenja, oscilatoru treba neko vrijeme ∆T da se stabilizira na određenu frekvenciju.

37

Page 39: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

OSCI 1

OSCI 2

C2

C1

XTAL

Sl. 4.3. Spajanje kristalnog oscilatora

OSCI 1

OSCI 2

C

Vdd

R

Sl. 4.4. Spajanje RC oscilatora

+5

t

U

TSl. 4.5. Oblik signala pri uključenju oscilatora

38

Page 40: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

4.5 Takt / instrukcijski ciklus

Takt doveden s nožice OSC1 u mikrokontroleru se dijeli na četiri nepreklapajuća takta koje nazivamo Q1, Q2, Q3 i Q4 koji skupa čine jedan instrukcijski ciklus npr. TCY1.

Instrukcijske cikluse dijelimo:

• Q1 – pozivanje instrukcije iz programske memorije • Q2 – dekodiranje naredbe iz predhodnog instrukcijskog ciklusa • Q3 – izvođenje naredbe iz predhodnog instrukcijskog ciklusa • Q4 – spremanje instrukcije pozvane u Q1 u instrukcijski registar

Uzmimo za primjer instrukcijski ciklus TCY2. Na Q1 takt u instrukcijskom ciklusu TCY2 programski

brojač (PC) se uvećava za 1 te poziva instrukciju iz programske memorije. U sljedeća dva takta Q2 i Q3 instrukcijskog ciklusa TCY2 instrukcija koja je bila pozvana i spremljena u instrukcijski registar u prijašnjem TCY1 instrukcijskom ciklusu se dekodira i izvodi. U četvrtom taktu Q4 instrukcijskog ciklusa TCY2 se instrukcija pozvana na Q1 sprema u instrukcijski registar.

TCY1 TCY2 TCY3

PC

Q1

Q1 Q1 Q1

Q2

Q2 Q2 Q2

Q3

Q3 Q3 Q3

Q4

Q4 Q4 Q4

OSC1

Sl. 4.6. Vremenski dijagram izvršavanja instrukcije

4.6 Obrada instrukcija

Ciklusi povezivanja i izvršavanja instrukcija su tako povezani da je za pozivanje potreban jedan instrukcijski ciklus a za dešifriranje i izvršavanje još jedan. No zbog protočne obrade, svaka instrukcija se efektivno izvršava u jednom ciklusu.

39

Page 41: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

4.7 Reset

Reset služi da bi sve registre mikrokontrolera doveli u početni položaj. Znači ako se mikrokontroler ''smrzne'' ili smo ga tek uključili treba ga resetirati. Da bi spriječili slučajno dovođenje ''0'' na MCLR nožicu, potrebno ju je preko otpornika spojiti na pozitivan pol napajanja Vdd, slika 4.7.

Sl. 4.7.

Vdd

RA 2

RA 3

RA 4

MCLR

R

PIC 16F84 ima više vrsta resetiranja:

1. Resetiranje pri dovođenju napajanja (Power-on Reset). Ovaj reset traje isto koliko treba oscilatoru da stabilizira frekvenciju (∆T), slika 4.5. odnosno 72 ms

2. Dovođenje ″0″ na MCLR nožicu 3. Reset za vrijeme ″Sleep″ načina rada 4. Reset pri prekoračenju Watchdog timera

4.7.1 Reset kod pada napona napajanja (Reset on Brown-Out)

Ovaj impuls generira sam mikrokontroler ako napon napajanja padne ispod dozvoljene granice koja je potrebna za normalan rad mikrokontrolera, te ga ″drži″ 72 ms u resetu koliko je potrebno da se frekvencija stabilizira.

1.8 V

U

t

T

Sl. 4.8. Reset pri padu napona

40

Page 42: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

4.8 Ulazno / izlazni sklopovi

PIC 16F84 ima dva porta, PORTA i PORTB. Portom nazivamo grupu ulazno/izlaznih nožica (pinova) kojima možemo pristupati istovremeno. Fizički, port je registar koji je povezan s pinovima mikrokontrolera. Svi pinovi portova se mogu definirati kao ulazni ili izlazni, prema potrebama sustava. Definiraju se upisivanjem nule i jedinice u registru TRIS, upisivanjem ″1″ pin postaje ulazni a upisivanjem ″0″ izlazni. Pošto imamo dva porta imamo i dva TRIS registra, TRISA i TRISB. PORTA i PORTB se nalaze u banci 0 a TRISA i TRISB u banci 1.

4.8.1 PORTA i TRISA

Ovaj port ima pet pridruženih pinova, od RA0 do RA4. Pin RA4 može biti samo ulazni, jer se na tom pinu nalazi i ulaz takta za brojač TMR0. Bitom T0CS u registru OPTION se bira funkcija (ulaz takta ili standardni ulaz porta) ovog pina, točnije rečeno bira se izvor takta (vanjski ili nutarnji) brojača TMR0. Primjer konfiguriranja porta: bsf STATUS, RP0 ;bank1 movlw b'11111100' ;definiranje ulaznih i izlaznih pinova movwf TRISA ;upis u TRISA registar bcf STATUS, RP0 ;bank0 U primjeru su pinovi RA0 i RA1 proglašeni kao izlazni a RA2, RA3 i RA4 ulazni.

1

RA2

RA3

0TRISA

PORTA

Sl. 4.9. PORTA koristi 5 bitova

4.8.2 PORTB i TRISB

PORTB ima 8 pridruženih pinova, od RB0 do RB7. Svaki pin ima pull-up tranzistor i njime se definira linija na logičku jedinicu. Svim tranzistorima se upravlja pomoću samo jednog bita, RBPU bitom OPTION registra. Četiri pina ovog porta mogu izazvati prekid RB4: RB7 i to samo ako su konfigurirani kao ulazni.

Primjer konfiguriranja porta: bsf STATUS, RP0 ;bank1 movlw 0x0F ;definiranje ulaznih i izlaznih pinova movwf TRISB ;upis u TRISB registar bcf STATUS, RP0 ;bank0

41

Page 43: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

bsf PORTB, 4 ;PORTB < 7 : 4 > = 0 bsf PORTB, 5 bsf PORTB, 6 bsf PORTB, 7

Primjer pokazuje kako su pinovi RB0, RB1, RB2 i RB3 proglašeni za ulazne, a pinovi RB4, RB5, RB6 i RB7 za izlazne, te nakon čega su izlazni pinovi postavljeni u jedinicu.

1

RB1

RB3

RB2

0TRISB

PORTB

Sl. 4.10. PORTB koristi 8 bitova

4.9 Organizacija memorije

PIC16F84 ima dva odvojena memorijska bloka, jedan za podatke i drugi za program. Blok za podatke čini EEPROM memorija, GPR i SFR registri u RAM memoriji a programski blok čini Flash memorija.

Programska memorija je izrađena u Flash tehnologiji što omogućuje programiranje mikrokontrolera više puta pa čak i kada bude ugrađen u sustav. Ima 1024 lokacije širine 14 bit-a. Nulta lokacija je rezervirana za reset a četvrta lokacija za prekid (interrupt).

Memorija za podatke se sastoji od EEPROM i RAM memorije. EEPROM memorija ima 64 lokacije širine 8 bit-a (sl. 4.11) kojima se pristupa indirektno preko EEADR i EEDATA registara, sadržaj ove memorije se ne gubi pri prekidu napajanja. RAM memorija ima 68 osmobitnih lokacija koje zauzimaju prostor u memorijskoj mapi od 0x0C do 0x4F lokacije. Lokacije RAM memorije se nazivaju GPR (General Purpose Registrers) registri.

SFR (Special Function Registers) registri zauzimaju prvih 12 lokacija u banci 0 i banci 1. To su registri specijalne namjene i oni su direktno vezani za rad mikrokontrolera.

42

Page 44: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Sl. 4.11. Organizacija memorije Podatkovna memorija je još podijeljena na dvije banke, BANK0 i BANK1. Banke se biraju preko RP0 bit-a u Status registru. Primjer: Bcf STATUS, RP0 - odabrana je banka 0 Bsf STATUS, RP0 - odabrana je banka 1

4.9.1 Programski brojač (Program Counter)

Programski brojač (PC) je 13 bit-ni registar koji sadrži adresu instrukcije koja se izvršava. Fizički je realiziran pomoću 5 bit-nog registra PCLATH koji predstavlja 5 najviših bit-ova adrese i 8 bit-nog registra PCL koji predstavlja preostalih 8 bit-a adrese.

43

Page 45: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

4.9.2 Stog (Stack)

PIC 16F84 ima 13-bitni hardverski stog dubok 8 nivoa. Memorijski prostor stoga nije dio ni programske ni podatkovne memorije, a pokazivač stoga nije moguće čitati i u njega upisivati vrijednosti. Njegova osnovna zadaća je da sačuva vrijednost PC-a nakon što se iz glavnog programa skoči na adresu potprograma. Da bi se program znao vratiti odakle je počeo mora sa stoga vratiti vrijednost PC-a. Sadržaj sa stoga vraća se u programsko brojilo kod izvršavanja instrukcija RETURN, RETLW ili RETFIE, koje se izvršavaju na kraju potprograma.

4.9.3 Status registar

U status registru se upisuju aritmetički status ALU (C, DC, Z), reset status (TO, PD) i bit-ovi za odabir memorijske banke (IRP, RP1, RP0). Ovaj registar može biti odredište za bilo koju instrukciju s bilo kojim drugim registrom. Ako je status registar odredište instrukcije koja utječe na Z, DC ili C bit tada je upis u ova tri bit-a je onemogućen.

IRP RP1 RP0 TO PD Z DC C

R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x

bit 0bit 7

R – bit koji se može očitati U – neiskorišten bit, čita se kao «0» W – bit koji se može upisati n – vrijednost nakon reseta

C (Carry) – bit na koji utječu operacije zbrajanja i oduzimanja, bit je setiran kada se oduzima manja vrijednost od veće

1 = pojavio se prijenos najvišeg bit-a rezultata 0 = nema prijenosa najvišeg bit-a rezultata DC (Digit Carry) – isto kao i Carry samo ovaj bit predstavlja prijenos sa četvrtog mjesta 1 = pojavio se prijenos na četvrtom mjestu 0 = nema prijenosa Z (Zero) – bit je setiran kada je rezultat aritmetičko logičke operacije nula

1 = rezultat je nula 0 = rezultat nije nula

PD (Power-down) – bit je setiran nakon uključenja napajanja i svakog regularnog reseta 1 = nakon uključenja napajanja 0 = izvršenjem SLEEP instrukcije

TO (Time-out) – bit je setiran nakon uključenja napajanja i izvršenja CLRWDT i SLEEP Instrukcije, a

resetira kad dođe do prekoračenja sigurnosnog brojača 1 = nije bilo prekoračenja sigurnosnog brojača 0 = došlo je do prekoračenja sigurnosnog brojača

RP1, RP0 (Register Bank Select) – bit-ovi za izbor memorijske banke, RP1 je uvijek «0»

01 = BANK 0 00 = BANK 1

IRP (Register Bank Select) – osmi bit za indirektno adresiranje RAM-a, ne koristi se kod PIC 16F84 i

ne smije biti setiran 0 = banka 2 i 3 1 = banka 0 i 1

44

Page 46: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

4.9.4 Direktno adresiranje

Vrši se preko 9 bit-ne adrese koja se dobije povezivanjem sedmog bit-a direktne adrese iz instrukcije i dva bit-a iz STATUS registra (RP1, RP0).

BANK 0 BANK 1

IRP0IRP1

+

00

7F

00 01

07

odabirbanke

odabirlokacije

Sl. 4.12 Direktno adresiranje

4.9.5 Indirektno adresiranje

Ovaj način adresiranja ne uzima adresu iz instrukcije, već je radi pomoću IRP bit-a STATUS registra i FSR registra. Adresiranoj lokaciji se pristupa preko INDF registra koji zapravo nije fizički registar već se njegova adresa nalazi u FSR registru, FSR je pokazivač. Npr. ako memorijska lokacija 05h sadrži vrijednost 10h i ako memorijska lokacija 06h sadrži vrijednost 0Ah, upišemo li vrijednost 05h u FSR registar, INDF registar vratit će vrijednost 10h. Inkrementiranjem FSR registra, INDF registar vratit će vrijednost 0Ah.

Sl. 4.13. Indirektno adresiranje

4.9.6 Relativno adresiranje

Adresa operanda u postupku relativnog adresiranja ovisi o smještaju same naredbe unutar memorije. Oblik naredbe koja koristi relativno adresiranje prikazano je na slici 4.14.

Adresa operanda izračuna se tako, da se adresi, na kojoj se nalazi kod postupka, pribroji pomak. Naziv relativno adresiranje potječe upravo od činjenice, da je adresa operanda određena relativno prema položaju, odnosno smještzaju same naredbe. Relativni pomak računa se kao dvojni komplement, a to znači da on može biti pozitivan i negativan.Budući da na raspolaganju stoji 8 bitova, to je moguće adresirati bilo koju memorijsku lokaciju, udaljenu +127 ili -128 memorijskih lokacija od lokacija same naredbe.

45

Page 47: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Naredbe koje koriste relativno adresiranje su dužine dviju riječi, što ih čini prikladnim za upotrebu. Mana relativnog adresiranja je u relativno kratkom dometu adrese (+127, -128 memorijskih lokacija), te u potrebi za izračunavanjem relativnog pomaka prilikom pisanja programa. Formula po kojoj se izračunava stvarna adresa glasi:

Stvarna adresa (operanda ili skoka) = adresa naredbe+relativni pomak.

Sl. 4.14. Oblik naredbe Relativnog adresiranja

4.10 Prekidi (Interrupts)

Prekid je mehanizam mikrokontrolera koji omogućava da se na neke događaje odgovori u trenutku kada se oni dese, bez obzira što mikrokontroler radi u tom trenutku. Svaki prekid mijenja tok izvršavanja programa, prekida ga, te nakon izvršenja prekidnog potprograma nastavlja na istom mjestu (Slika 4.15). Kontrolni registar prekida naziva se INTCON i nalazi se na adresi 0Bh. Njegova uloga je da omogući ili zabrani prekide, a u slučaju da su zabranjeni, registrira pojedinačne zahtjeve prekida preko svojih bitova.

Sl. 4.15. Prekid glavnog programa

PIC 16F84 ima četiri vrste prekida:

1. Vanjski na nožici RB0/INT

B4, RB5, RB6 i RB7 nožicama porta B memoriju

Vdd

R

RB0/INTT

TOKIZVRŠAVANJAPROGRAMA

NASTAVAKNORMALNOG

TOKAIZVRŠAVANJAPROGRAMA

PROGRAMU KOM SE

OBRAĐUJEPREKID

2. Preljev timer-a TMR0 3. Prekid pri promjeni na R4. Prekid nakon završetka procesa upisivanja podataka u EEPROM

46

Page 48: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

GIE bit može zabraniti ili omogućiti sve prekide odjednom. To je vrlo korisno kod pisanja programa jer omogućuje da se na neko vrijeme zabrane svi prekidi. Prekidi koji su ostali ne riješeni obrađuju se nakon ponovnog setiranja GIE bit-a. Ako se obradi bilo koji od ovih prekida mora se resetirati bit koji je izazvao prekid jer će se u suprotnom prilikom povratka u glavni program prekid ponovno obraditi.

EEIE

TOIE

RBIE

INTE

EEIF

TOIF

RBIF

INTFGIE

INTERUPT

Sl. 4.16. Shema prekida

Na slici 4.16. prikazana je opća shema prekida pomoću sklopki. Pomoću GIE sklopke omogućujemo bilo koji od četiri moguća prekida. Koristeći sklopke EEIE, TOIE, RBIF, INTE određujemo vrste prekida, dok nam sklopke sa desne strane EEIF, TOIF, RBIF, INTF pokazuju koji se prekid dogodio nekom trenutku.

4.10.1 INTCON registar

BIF (RB Port Change Interrupt Flag) – bit koji nam govori o promjeni na 4,5,6, ili 7-om pinu porta B

Interrupt Flag) – bit koji nam govori da e došlo do vanjskog prekida

MR0 brojača ačenja

čenja

, ina porta B

0 = onemogućena pojava prekida

INTE (INT External Interrupt Enable) – bit k rekid sa pina RB0/INT

R

GIE EEIE T0IE INTE RBIE T0IF INTF RBIF

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-x

bit 0bit 7

R – bit koji se može očitati U – neiskorišten bit, čita se kao «0» W – bit koji se može upisati n – vrijednost nakon reseta

INTF (INT External

1 = najmanje jedan pin je promijenio stanje 0 = nije se desila promjena ni na jednom pinu

1 = prekid se desio 0 = prekid se nije desio T0IF (TMR0 Overflow Interrupt Flag) – bit koji nam govori da je došlo do prekoračenja T 1 = došlo je do prekor 0 = nije došlo do prekora RBIE (RB Port Change Interrupt Enable) – bit koji omogućava pojavu prekida na promjenu stanja 4, 5

6 ili 7-og p 1 = omogućena pojava prekida

oji omogućuje vanjski p 1 = prekid je omogućen 0 = prekid je onemogućen

47

Page 49: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

T0IE (TMR0 Overflow Interrupt Enable) – bit koji omogućuje prekid prilikom prekoračenja brojača

EEIE (EEPROM Write Complete Interrupt Enable) – bit koji omogućava prekid nakon završetka upisa

u EEPROM memoriju 1 = prekid je omogućen 0 = prekid je onemogućen

GIE (Global Interrupt Enable) – bit koji dozvoljava ili zabranjuje sve prekide 1 = svi prekidi su omogućeni 0 = svi prekidi su onemogućeni

4.11 Podatkovna EEPROM memorija

PIC 16F84 ima 64 bayt-a EEPROM memorijskih lokacija na adresama od 00h do 63h. Najvažnija osobina ove memorije je da ne gubi sadržaj prilikom nestanka napona napajanja. Stoga ova memorija služi za čuvanje parametaranekog procesa ili nekih važnih promjenjivih podataka.

Iz EEPROM memorije čitamo podatak tako da setiramo RD bit koji inicira prijenos podataka s adrese koja se nalazi u registru EEADR u EEDATA registar. Za čitanje podatka nije potrebno neko vrijeme kao za upis pa se taj podatak može koristiti već u sljedećoj instrukciji.

Primjer djela programa koji vrši čitanje podataka iz EEPROM-a.

Bcf STATUS,RP0 ;bank0 jer je EEADR na 09h Movlw 0x00 ;adresa lokacije koja se cita Movwf EEADR ;adresa se prebacuje u EEADR Bsf STATUS,RP0 ;bank1 jer je EECON1 na 88h Bsf EECON,RD ;citanje iz EEPROM-a Bcf STATUS,RP0 ;bank0 jer je EEDATA na 08h Movf EEDATA,W ;W EEDATA

Da bi upisali podatak u EEPROM memoriju treba prvo upisati adresu željene memorijske lokacije u EEADR registar a podatak u EEDATA registar. Nakon toga setiramo WR bit koji pokreće upisivanje podatka na željenu lokaciju. Nakon upisa WR bit će biti resetiran, a EEIF setiran, što se može iskoristiti za obradu prekida. Vrijednosti 55h i AAh su prvi i drugi ključ koji onemogućuju da dođe do slučajnog upisa u EEPROM. Te dvije vrijednosti se upisuju u EECON2, koji služi samo za prihvaćanje ove dvije vrijednosti i time spriječi slučajan upis. Programske linije u primjeru označene s 1, 2, 3, 4 i 5 moraju biti izvršene tim redoslijedom i u pravilnim vremenskim razmacima, tako da je vrlo važno onemogućiti prekide za vrijeme izvršavanja tih instrukcija. Nakon upisa prekidi se mogu omogućiti.

Primjer dijela programa koji vrši upis podatka 0xEE u prvu lokaciju EEPROM memorije. Bcf STATUS,RP0 ;bank0 jer je EEADR na 09h Movlw 0x00 ;adresa lokacije u koju se pise Movwf EEADR ;adresa se prebacuje u EEADR Movlw 0Xee ;upisujemo vrijednost 0xEE Movwf EEDATA ;podatak ide u EEDATA registar Bsf STATUS,RP0 ;bank1 jer je EEADR na 09h Bcf INTCON,GIE ;svi prekidi se onemogucuju Bsf EECON1,WREN ;omogućuje se upis 1. movlw 55h 2. movwf EECON2 ;prvi kljuc 55h EECON2 3. movlw AAh 4. movwf EECON2 ;drugi kljuc AAh EECON2 5. bsf EECON1,WR ;inicira upis bsf INTCON,GIE ;prekidi se omogucuju

TMR0 1 = prekid je omogućen 0 = prekid je onemogućen

48

Page 50: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

EEPROM memoriji se pristupa preko SFR registara, a to su:

EDAT – sadr i podat eba upisati EADR sadrži adresu istupa ECON1 – sadrži kontrolne bit-ove

4.11.1 EECON1 reg

0 = ne inicira čitanje

R (Write Control) – bit koji inicira upis podataka iz EEDATA registra na adresu koja se nalazi u E

ju ljen

o 255 kreće sa liko će brojač je je potrebno oteklo za bilo

lera i brojača. o je dozvoljen

resetirat da bi avati korištenjem unutarnjeg takta

ću bit-a T0CS u OPTION ća ili padajuća) na koju će

E A ž ak koji je pročitan ili ga trE – EEPROM lokacije kojoj se prEEECON2 – služi da zaštiti EEPROM od slučajnog upisa

istar

B e iste i pri čitanju su uvijek nule. it-ovi 5, 6 i 7 s ne kor

EETE

bit 7

WRERR WREN WR RD

U-0 U-0 U-0 R/W-1 R/W-1 R/W-x R/S-0 R/S-x

bit 0

R – bit koji se može očitati U – neiskorišten bit, čita se kao «0» W – bit koji se može upisati n – vrijednost nakon reseta

RD (Read Control) – bit koji inicira prijenos podataka s adrese definirane EEADR u EEDATA registar 1 = inicira čitanje W

EADR registru 1 = inicira upis 0 = ne inicira upis WREN (EEPROM Write Enable) – bit koji omogućuje upis u EEPROM memori 1 = upis je dozvo

0 = upis nije dozvoljen WRERR (EEPROM Error Flag) – bit koji nam govori da je došlo do greške prilikom upisa u EEPROM

1 = došlo je do greške 0 = do greške nije došlo

EEIF (EEPROM Write Operation Interrupt Flag) – bit koji nam govori da je upis u EEPROM završen 1 = upis je završen 0 = upis nije počeo ili nije završen

4.12 Slobodni brojač TMR0

Fizički brojač je registar čija se vrijednost stalno uvećava za jedan a kad dođe dbrojanjem ponovno od nule. PIC16F84 ima 8 bit-ni brojač, broj bitova određuje do ko

8 e kobrojati (2 = 256). Brojač nam omogućuje da mjerimo vrijeme, ako znamo vrijembrojaču da napravi puni krug od 0 do 256 tada lako možemo izračunati vrijeme koje je pr

skakoje stanje brojača. Na slici 2.2. je prikazana pojednostavljena shema odnosa preNakon svakog prelaska brojača s 255 na 0 setira se bit T0IF u INTCON registru. Ak

mora programerprekid, ovo se može iskoristiti za generiranje prekida. T0IF bit n Stanje brojača može se uvećomogućio generiranje ovog prekida.

ili vanjskog koji se uzima s nožice RA4/TOCKI. Izvor takta se bira pomoa da je moguće birati i ivicu signala (rasturegistru. Izaberemo li v njski takt ta

brojač uvećavati svoju vrijednost.

49

Page 51: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Sigurnosni brojač (Wachdog timer) čuva mikrokontroler od ″smrzavanja″. Ako dođe do nepravilnog ikrokontrolera, sigurnosni brojač ga nakon nekog vremena resetira, a program se počinje

ormalnog toka programa moramo upisati približi svom prekoračenju.

eli instrukcijski ciklus prije nego dođe do strukcijski ciklus se definira pomoću prva tri

bit-a u OPTION registru, najveći djelitelj je 256, čime se omogućuje mjerenje duljih vremenskih užiti brojaču TMR0 ili sigurnosnom brojaču, dodjeljuje se pomoću bita e preskaler dodijeljen TMR0 brojaču sve instrukcije upisa u TMR0

registar (CLRF TMR0, MOVWF TMR0, BSF TMR0…) će obrisati preskaler. Ako je preskaler dodijeljen risati preskaler u isto vrijeme kada i sigurnosni

om programera i može se mijenjati u toku rada ograma.

rada mizvršavati iz početka. Da bi spriječili resetiranje za vrijeme nnulu u WDT registar (instrukcijom CLRWDT) svaki put kad se

Preskaler je naziv za dio mikrokontrolera kojim se dijlogike koja uvećava stanje brojača. Broj kojim se dijeli in

perioda. Preskaler se može pridrPSA u OPTION registru. Kada j

sigurnosnom brojaču samo instrukcija CLRWDT će obrojač. Promjena preskalera je kompletno pod kontrolb

pr

4.12.1 OPTION registar

undi se uvećava TMR ili WDT brojač za jedan.

PS0, PS1, PS2 (Prescaler Rate Select) – bit-ovi koji definiraju faktor djeljenja preskalera

Koristimo li takt od 4 MHz jedan instrukcijski ciklus (4 interna takta) koji traje 1 µs, broj u danoj tablici pokazuje na koliko mikrosek

RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0

R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1

bit 7 bit 0

R – bit koji se može očitati U – neiskorišten bit, čita se kao «0» W – bit koji se može upisati n – vrijednost nakon reseta

50

Page 52: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Bitovi TMR0 WDT 000 1:2 1:1 001 1:4 1:2 010 1:8 1:4 011 1:16 1:8 100 1:32 1:16 101 1:64 1:32 110 1:128 1:64 111 1:256 1:128

PSA (Prescaler Assignment) – bit koji vrši dodjelu preskalera

1 = preskaler je dodijeljen WDT brojaču 0 = preskaler je dodijeljen TMR0 brojaču

T0SE (TMR0 Sorce Edge Select) – bit kojim se bira brid signala za okidanje brojača TMR0

1 = padajući brid 0 = rastući brid

T0CS (TMR0 Clock Source Select) – bit kojim se bira izvor taka za TMR0

1 = vanjski preko RA4/TOCKI nožice 0 = interni takt (¼ takta oscilatora)

INTEDG (Interrupt Edge Select) – bit kojim se bira brid signala na koji se pojavljuje vanjski prekid s

nožice RB0/INT 1 = rastući brid 0 = padajući brid

RBPU (PORB Pull-up Enable) – bit koji uključuje ili isključuje pull-up tranzistore

1 = uključeni 0 = isključeni

51

Page 53: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

5 Set instrukcija

5.1 Prijenos podataka

Vrši se između radnog registra (W) i gi ji vlja bilo koju lokaciju RAM-a (Sl. 3.23). Prve tri instrukcije iz tablice (na strani 63) o aj konstante u W registar (MOVLW je skraćenica od MOVE Literal to W), zati ep ta W registra u RAM i prijepis podataka iz RAM-a u W registar (ili u istu tu lokaci M- e mijenja stanje zastavice Z). Instrukcija

LRF upisuje nulu u f registar, a CLRW upisuje nulu u W registar. SWAPF instrukcija unakrsno amjeni mjesta četverobitnim poljima unutar registra.

.2 Aritmetika i logika

Od svih racija PIC kao i većina mikrokontrolera podržava samo zbrajanje i duzimanje i Z postavljaju se u ovisnosti rezultata te dvije operacije, ali sa izuzetkom

a C je poslije oduzimanja i broj oduzet od manjeg.

Logička vođenja operacija I, ILI, EX-ILI, negacije (COMF) i tiranja (RLF i RRF). Instrukcije koje rotiraju lijevo ili desno pomiču bitove kroz zastavicu C za po

registra.

Instrukc vrše setiranje ili resetiranje jednog bit-a bilo gdje u memoriji (tablica na strani 63).

5.4 Upravljanje tokom programa

Za upravljanje toka programa nam služe instrukcije GOTO, CALL, RETURN. ''RETLW k'' instrukcija je identična RETURN instrukciji, samo što prije povratka iz podprograma u W registar upiše konstantu koja je definirana operandom instrukcije. Ova funkcija nam omogućuje kreiranje Lookup tabela. Instrukcija RETFIE služi za povratak iz podprograma a razlikuje se od RETURN po tome što automatski setira bit GIE. BTFSC i BTFSS su uvjetne naredbe skoka, u zavisnosti od bit-a koji se testira u ''f'' registru preskače se ili se ne preskače sljedeća naredba programa.

″f″ re stra ko predstasiguravis poda

u upism prij ka iz ju RA a, pri č mu se

Cz

5

aritmetičkih o. Zastavice C, DC

peojer se oduzimanje vrši kao zbrajanje s negativnom vrijednošću, zastavicinverzna, zn a, a resetirana ako je većači setirana je ako je operacija moguć

jedinica PIC-a ima mogućnost izrojedno mjesto. Bit koji izlazi iz registra upisuje se u C zastavicu, te se upisuje u bit na suprotnoj strani

5.3 Bit operacije

ije BCF i BSF

52

Page 54: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Instrukcija Opis

Trajanje u strojnim

Utječe na STATUS

ciklusima bit-ove

addwf f, d Zbrajanje akumulatora i registra f 1 C, DC, Z andwf f, d Logički I akumulatora i registra f 1 Z clrf f Brisanje registra f 1 Z clrw Brisanje akumulatora 1 Z comf f, d Komplement registra f 1 Z decf f, d Smanjenje registra f za 1 1 Z decfs ,d Smanjenje

instrukciju az f registra f za 1, preskače sljedeću

ko je rezultat 1 1(2) nijedan

incf f, d Povećanje registra f za 1 1 Z incfsz f, d Povećanje registra f za 1, preskače sljedeću

instrukciju ako je rezultat 0 1(2) nijedan

iorwf f, d Inkluzivni ILI akumulatora i f registra 1 Z movf f, d Premještanje sadržaja rgistra f 1 Z movwf f Premještanje sadržaja akumulatora u registar f 1 nijedan nop Nul-operacija 1 nijedan rlf f, d Rotiranje registra f u lijevo kroz Carry bit 1 C rrf f, d Rotiranje registra f u desno kroz Carry bit 1 C subwf f, d Oduzimanje akumulatora od registra f 1 C, DC, Z swapf f, d Zamjena riječi registra f 1 nijedan xorwf f, d Ekskluzivni ILI akumulatora i registra f 1 Z

5.4.1.1.1 Operacije nad bit-ovima bcf f, b Brisanje bit-a b registra f 1 nijedan bsf f, b Postavljanje bit-a b registra f 1 nijedan btfsc f, b Preskače sljedeću instrukciju ako je rezultat 0 1(2) nijedan btfss f, b Preskače sljedeću instrukciju ako je rezultat 0 1(2) nijedan

Instrukcije nad konstantama i kontrolne instrukcije addlw Zbrajanje akumulatora i k k onstante k 1 C, DC, Z andlw k Logički I akumulatora i konstante k 1 Z call k Poziv potprograma 2 nijedan clwrdt Brisanje sigurnosnog brojača 1 TO , PD goto k Grananje programa 2 nijedan iorlw k Inkluzivni ILI akumulatora i konstante k 1 Z movlw k Upisivanje konstante k u akumulator 1 nijedan retfie Povratak iz prekidne rutine 2 nijedan retlw k Povratak iz potprograma s vrijednošću k u

akumulatoru 2 nijedan

return Povratak iz potprograma 2 nijedan sleep Postavljanje mikrokontrolera u standby mode 1 TO , PD sublw k Oduzimanje akumulatora od konstante k 1 C, DC, Z xorlw Ekskluzivni ILI akumulatora i konstante k 1 Z

Tablica instrukcija za mikrokontroler PIC 16F84

53

Page 55: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

5.5 Opis pojedinih instrukcija

ADDLW Sintaksa: [labela] ADDLW k

Opis: Sadržaj W registra se zbraja s 8 bit-nom konstantom seW registar

Operacija: (W) + k W OperanZastavBroj riBroj ci

= 0x15

o prijenosa j rezulta

Sintak Opis: istra se zbraja s f registrom

star

OperaOpera

k i Rezultat s prema u

d: 0 ≤ k ≤ 255 ica: C, DC, Z

ječi: 1 klusa: 1

Primjer: ADDLW 0X15 Prije instrukcije: W = 0x10

Poslije instrukcije: WC = 0 (nije došlo d

0xFF) er je t m od aji

ADDWF sa: [labela] ADDWF f, d Sadržaj W reg Ako je d = 0 rezultat se sprema u W regi

Ako je d = 1 rezultat se sprema u f registar (W) + (f) d cija:

nd: 0 ≤ f ≤ 127, d ∈ [0,1] Zastav

Broj ri Broj ciklusa: 1

:

2 C = 0

2: ADD

ržaj adrese 0xC2 = 0x20

FSR = 0xC2 adržaj adrese 0xC2 = 0x37

SintakOpis: Vrši logičku operaciju I nad sadržajem W registra i konstante k, rezultat će bit

1 ako su oba odgovarajuća it-a operanda 1-inice. Re

Operacija: ( Operand: 0 ≤ k ≤ 255 Zastavica: Z Broj riječi: 1 Broj ciklusa: 1

ica: C, DC, Z ječi: 1

Primjer 1

ADDWF REG, W

Prije instrukcije: W = 0x17 REG = 0xC2

Poslije instrukcije: W = 0xD9 REG = 0xC

Primjer

WF INDF, f Prije instrukcije: W = 0x17

FSR = 0xC2 sad Poslije instrukcije: W = 0x17

s ANDLW sa: [labela] ANDLW k

b

zultat se smješta u W registar. W) .AND. k W

54

Page 56: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

P er 1: ANDLW 0x5F

rimj

= 0xA3 ;1010 0011 (0xA3)

;0000 0011 (0x03) Z = 0 (rezultat nije nula)

0x55

Prije instrukcije: W = 0xAA ;1010 1010 (0xAA) W = 0x17 ;0101 0101 (0x55) -------------------------------

0 0011 (0x03) ula)

ANDWF

Sintaksa: [labela] ANDWF f, d Opis: Vrši logičku operaciju I nad sadržajem registara W i f

prema u W registar

Prije instrukcije: W Poslije instrukcije: W = 0x03 ;0101 1111 (0x5F)

-------------------------------

Primjer 2: ANDLW

Poslije instrukcije:

;000 Z = 1 (rezultat je n

Ako je d = w rezultat se s

Ako je d = f rezultat se sprema u f registar Operacija: (W) .AND. (f) d Operand: 0 ≤ f ≤ 127 , d∈ [0,1] Zastavi Broj riječi: 1

ca: Z

Broj ciklusa: 1

Primjer 1: ANDWF REG, f

W = 0x17, REG = 0xC2 ;0001 0111 (0x17) W = 0x17, REG = 0x02 ;1100 0010 (0xC2)

------------------------------- ;0000 0010 (0x02)

= 0x17, FSR = 0xC2 ;0001 0111 (0x17) SR = 0xC2 ;1100 0010 (0xC2)

------------------------------- (0x02)

Opis: Resetira bit b u registru f Operacija: (0) (f) < b >

0 ≤ f ≤ 127 , 0 ≤ b ≤ 7

Broj cik

rukcije: REG = 0xC7 ;1100 0111 (0xC7) strukcije: REG = 0x47 ;0100 0111 (0x47)

Prije instrukcije:

Poslije instrukcije:

Primjer 2: ANDWF FSR, w

Prije instrukcije: W Poslije instrukcije: W = 0x02, F

;0000 0010 BCF Sintaksa: [labela] BCF f, b Operand: Zastavica:

Broj riječi: 1 lusa: 1

Primjer 1:

BCF REG, 7 Prije inst Poslije in

55

Page 57: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Primjer 2:

sadržaj adrese (FSR) = 0x27

Sintaks , b pis: f

astavica: Broj riječi: 1

Broj ciklusa: 1

;0000 0111 (0x07) REG = 0x87 ;1000 0111 (0x87)

3 rukcije: W = 0x17

FSR = 0xC2 sadržaj adrese (FSR) = 0x20

: W = 0x17 FSR = 0xC2

Sintaksa: [labela] BTFSC f, b Opis: Ako je bit b u registru f jednak 0-i onda se preskače sljedeća instrukcija. Ako

je bit b jednak nuli tokom izvršavanja tekuće instrukcije onemogućuje se ne i umjesto nje se izvršava NOP, čineći tekuću instrukciju

dvociklusnom.

peraci n

Broj riječi: 1 Broj ciklusa: 1 ili 2 u ovisnosti bit-a b

tiraj bit broj 1 u REG ;Preskoči ovu liniju ako je = 1

vdje skoči ako je = 0

strukcije: Programski brojač je bio na adresi LAB_01 strukcije: Ako je u registru REG bit 1 resetiran, PC pokazuje na

adresu LAB_03. Ako je u registru bit 1 setiran PC pokazuje na adresu LAB_02.

BCF INDF, 3

Prije instrukcije: W = 0x17 FSR = 0xC2 sadržaj adrese (FSR) = 0x2F

Poslije instrukcije: W = 0x17 FSR = 0xC2

BSF

a: [labela] BSF f O Setira bit b u registru Operacija: (1) (f) < b > Operand: 0 ≤ f ≤ 127 , 0 ≤ b ≤ 7 Z

Primjer 1: BSF REG, 7

Prije instrukcije: REG = 0x07

Poslije instrukcije:

Primjer 2: BSF INDF, Prije inst

Poslije instrukcije sadržaj adrese (FSR) = 0x28 BTFSC

izvršavanje nared

O ja: preskoči narednu i strukciju ako je ( f < b > ) = 0 Operand: 0 ≤ f ≤ 127 , 0 ≤ b ≤ 7 Zastavica:

Primjer: LAB_01BTFSC REG, 1 ;TesLAB_02. . . . . . LAB_03. . . . . . ;O

Prije in Poslije in

56

Page 58: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

BTF

Sintaksa: [labela] BTFSS f, b Opis: istru f inici onda se preskače sljedeća instrukcija.

uće instrukcije onemogućuje e izvr vanje naredn a NOP, čineći tekuću

Operand: 0 ≤ f ≤ 127 , 0 ≤ b ≤ 7 Zastavica: Broj riječi: 1

i bit-a b

estiraj bit broj 1 u REG _02. . . . . . ;Preskoči ovu liniju ako je = 0

3. . . . . . ;Ovdje skoči ako je = 1

Prije instrukcije: Programski brojač je bio na adresi LAB_01 Poslije instrukcije: Ako je u registru REG bit 1 setiran, PC pokazuje na adresu

e u registru bit 1 resetiran PC pokazuje na adresu LAB_02.

ALL

Sintaksa: [labela] CALL k Opis: Instrukcija poziva podprogram. Prvo se povratna adresa (PC+1) sprema u stog,

tni operand k koji sadrži adresu potprograma smješta u

Operaci k) k C <10 >, (P 1>

Broj ciklusa: 2

Primjer: ;Pozovi podprogram LAB_02

PC = adresa LAB_01

TOS (vrh stoga) = x

OS (vrh stoga) = LAB_01

Sintaksa: [labela] CLRF f Opis: Sadržaj f registra se izjednačava s 0-om, zastavica Z se setira u 1

Operaci Operan Zastavi

Broj riječi: 1 roj cik

Primjer 1: ISB

Prije instrukcije: TRISB = 0xFF Poslije instrukcije: TRISB = 0x00 Z = 1

SS

Ako je bit b u reg jednak jedAko je bit b jednak jedinici tokom izvršavanja teks ša e i umjesto nje se izvršavinstrukciju dvociklusnom.

Operacija: preskoči narednu instrukciju ako je ( f < b > ) = 1 Broj ciklusa: 1 ili 2 u ovisnost

Primjer: LAB_01BTFSC REG, 1 ;TLABLAB_0

LAB_03. Ako j C

zatim se 11 bit-ni direkPC.

ja: (PC) + 1 vrh stoga (TOS – Top Of Stac P : 0 CLATH <4 : 3>) PC <12 : 1

Operand: 0 ≤ k ≤ 2047 Zastavica: Broj riječi: 1

LAB_01CALL LAB_02 : LAB_02. . . . . . Prije instrukcije:

Poslije instrukcije: PC = adresa LAB_02 T CLRF

ja: 0 f d: 0 ≤ f ≤ 127 ca: Z

B lusa: 1

CLRF TR

57

Page 59: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Primjer 2: CLRF INDF

držaj adrese 0xC2 = 0x00 Z = 1

ela] CLRW a s nulom, zastavica Z se setira u jedan.

Operacija: 0 W Operand: Zastavi Broj rije Broj cik

Prim :

Prije instrukcije: W = 0x55 Poslije instrukcije: W = 0x00 Z = 1

CLRWDT Sintak abela] CLRWDT

Prije instrukcije: FSR = 0xC2 sadržaj adrese 0xC2 = 0x33 Poslije instrukcije: FSR = 0xC2 sa

CLRW Sintaksa: [lab Opis: Sadržaj W registra se izjednačav

ca: Z či: 1 lusa: 1

jer

CLRW

sa: [lPD Opis: Resetira sigurnosni brojač i preskaler a bit-ovi TO i se

0 WDT setiraju

eskaler Operacija:

0 WDT pr TO 1 PD 1

Zastavica:

Operand: TO , PD

Broj rije Broj ciklusa: 1

Poslije instrukcije: WDT brojač = 0 TO = 1 PD = 1

WDT preskaler = 1:128

ela] COMF f, d entira sadržaj f registra

= w rezultat se sprema u W registar Ako je d = f rezultat se sprema u f registar

Operaci

či: 1

Primjer: CLRWDT

Prije instrukcije: WDT brojač = x

WDT preskaler = 1:128

COMF Sintaksa: [lab Opis: Komplem Ako je d

ja: ( f ) d d: 0 ≤ f ≤ 127 , d∈ Operan [0,1]

Zastavica: Z 1 Broj riječi: Broj ciklusa: 1

58

Page 60: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Primjer 1: COMF REG, w

;0001 0011 (0x13)

--------------------- C)

Primjer 2: COMF INDF, f

FSR = 0xC2

kcije: FSR = 0xC2 Sadržaj adrese ( SFR ) = 0x55

Sintaksa: [labela] DECF f, d Opis: Umanjuje f registar za jedan

= w rezultat se sprema u W registar = f rezultat se sprema u f registar

Prije instrukcije: REG = 0x13 Poslije instrukcije: REG = 0x13 ;komplementiranje

W = 0xEC ---------- 1110 1100 (0xE

Prije instrukcije: Sadržaj adrese ( FSR ) = 0xAA

Poslije instru DECF

Ako je dAko je d

Operacija: ( f ) - 1 d Operand: 0 ≤ f ≤ 127 , d ∈ [0,1] Zastavica: Z Broj riječi: 1

Broj ciklusa: 1

EG = 0x01 = 0 Pos tru cije: REG = 0x00

Z = 1

REG, w

Prije instrukcije: REG = 0x13 W = x

Z = 0 Poslije instrukcije: REG = 0x13

DECFSZ Sintaksa: [labela] DECFSZ f,

Opis: Umanjuje f registar za jedan Ako je d = w rezultat se sprema u W registar

Ako je d = f rezultat se sprema u f registar jedeća instrukcija se izvršava kao NOP čineći tekuću

Operan

Primjer 1: DECF REG, f

Prije instrukcije: R

Z lije ins k

Primjer 2: DECF

W = 0x12

Z = 0

d

Ukoliko je rezultat 0 slinstrukciju dvociklusnom.

Operacija: (f) - 1 d d: 0 ≤ f ≤ 127, d∈ [0,1]

Zastavica: Broj riječi: 1

1 ili 2 u ovis osti r Broj ciklusa: n ezultata

59

Page 61: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Primjer:

CNT ;CNT = 10

GOTO Loop ;Preskoči ovu liniju ako je = 0 LAB_03 ;Ovde skoči ako je = 0

i se izvršava onoliko puta koliko je početna vrijednost varijable CNT, što je u ovom primjeru 1

Sintaksa: [labela] GOTO k Opis: Bezuvjetni skok na adresu k.

k PC <10:0>, (PCLATH <4:3>) PC <12:11>

ALL LAB_01 ;Skoči na LAB_01

. . . . . . ;Program nastavlja normalno dalje

Prije instrukcije: PC = adresa LAB_00 ije: PC = adresa LAB_01

d

Ako je d = w rezultat se sprema u W registar prema u f registar

MOVLW .10 MOVWF Loop : ;Blok naredbi : DECFSZ CNT, f ;Umanji sadržaj registra CNT za jedan

U ovom primjeru blok naredb

0.

GOTO

Operacija: Operand: 0 ≤ k ≤ 2047

Zastav ca: i Broj riječi: 1

Broj cik

lusa: 2

Primjer: LAB_00C : LAB_01

Poslije instrukc INCF S a: [labela] INCF f,intaks

Opis: Uvećava f registar za jedan

Ako je d = f rezultat se s Operacija: (f) + 1 d

∈ Operand: 0 ≤ f ≤ 127, d [0,1]

j cik

Prije instrukcije: REG = 0xFF Z = 0

= 0x00

Primjer 2:

REG = 0x10 W = x

Z = 0 nstrukcije: REG = 0x10

Z = 0

Zastavi Broj riječi: 1

ca: Z

Bro

lusa: 1

Primjer 1: INCF REG, f

Poslije instrukcije: REG

Z = 1

INCF REG, w

Prije instrukcije:

Poslije i W = 0x11

60

Page 62: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

INC

intaks Z f, džaj f registar za jedan

at se sprema u f registar e eći instrukciju

Operand: 0 ≤ f ≤ 127, d

FSZ S a: [labela] INCFS Opis: Uvećava sadr Ako je d = w rezultat se sprema u W registar

Ako je d = f rezultAko je rezultat = 0 nar dna instrukcija se izvršava kao NOP čindvociklusnom.

Operacija: (f) + 1 d ∈ [0,1]

1

Broj ciklusa: 1

Primjer: , f ;Uvećaj sadržaj REG za jedan

;Preskoči ovu liniju ako je = 0

ski brojač je bio na adresi LAB_01 egistra poslije izvršavanja instrukcije REG = REG + 1. Ako je REG = 0,

e na adresu labele LAB_03. U suprotnom PC pokazuje adresu ukcije LAB_02.

IORLW Sintaks ] IORL

u operac ad sadr tantom k, r

peraciOperand:

Zastavica: Z Broj riječi: 1

Primjer:

W = 0x9A instrukcije: W = 0xBF Z = 0

RWF

Sintaks ] IORWF f, d Opis: Vr aciju ILI nad sadržajem registara W i f

peraci

Zastavica: Z Broj riječi:

LAB_01INCFSZ REGLAB_02. . . . . . LAB_03. . . . . . ;Ovdje skoči ako je = 0

ije: Program Prije instrukc

Sadržaj REG rtada PC pokazujnaredne instr

a: [labela W k iju ILI n žajem registara W i 8 bit-nom konsOpis: Vrši logičk

ezultat se sprema u W registar. O ja: (W) .OR. (k) W

0 ≤ k ≤ 255 Broj ciklusa: 1

IORLW 0x35 Prije instrukcije: Poslije IO

a: [labelaši logičku oper

Ako je d = w rezultat se sprema u W registar istar Ako je d = f rezultat se sprema u f reg

O ja: (W) .OR. (f) d Operand: 0 ≤ f ≤ 127, d∈ [0,1]

Zastavica: Z Broj riječi: 1

Primjer 1:

W = 0x91

0x93

Broj ciklusa: 1

IORWF REG, w

Prije instrukcije: REG = 0x13, Poslije instrukcije: REG = 0x13, W = Z = 0

61

Page 63: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Primjer 2: IORWF REG, f

= 0x91

MOVF

Fj f registra smješta na lokaciju koju određuje operand d

d = w rezultat se sprema u W registar = f rezultat se sprema u f registar

Operacija d = 1 se koristi za testiranje sadržaja f registra jer izvršavanje ove instrukcije utječe na zastavicu Z.

Operaci Operan

Prije instrukcije: EG=0x13, W Poslije instrukcije: REG=0x93, W = 0x91

Z = 0

Sintaksa: [labela] MOV f, d

Opis: Sadrža Ako je

Ako je d

ja: (f) d d: 0 ≤ f ≤ 127, d∈ [0,1]

Zastavi Broj riječi: 1

Primjer 1:

Prije instrukcije: FSR = 0xC2 W = 0x00

W = 0xC2

strukcije: W = 0x17 EG = 0xC2

sadržaj adrese 0xC2 = 0x00 Poslije instrukcije: W = 0x17 REG=0xC2

adržaj adrese 0xC2 = 0x00

Sintaksa: [labela] MOVLW k Opis: 8 bit-nu konstantu k upisuje u W registar.

Broj rije

W 0x5A

Poslije instrukcije: W = 0x5A

ca: Z Broj ciklusa: 1

MOVF FSR, w

Poslije instrukcije: Z = 0

Primjer 2: MOVF INDF, f

Prije in R

s Z = 1 MOVLW

Operacija: k (W) Operand: 0 ≤ f ≤ 255 Zastavica:

či: 1 Broj ciklusa: 1

Primjer: MOVL

62

Page 64: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

MO

] MOVWF f

peraci

Zastavica: Broj riječi: 1 Broj ciklusa: 1

Primjer 1:

REG = 0x40

W = 0x40

F INDF

rukcije: W = 0x17 REG = 0xC2

sadržaj adrese 0xC2 = 0x00 e: W = 0x17

REG = 0xC2 = 0x17

Sintaksa: [labela] NOP Opis: Ne vrši nikakvu operaciju i ne utječe ni na jednu zastavicu.

Operaci Operand:

Prije instrukcije: PC = x Poslije instrukcije: PC = x + 1

TFIE grama. Vrijednost iz TOS-a se smješta u PC. Omogućuju se

i setiranjem bit-a GIE. TOS PC, 1 GIE

Zastavica: Broj riječi: 1 Broj cik

Prim : RETFIE

Prije instrukcije: PC = x GIE = 0 Poslije instrukcije: PC = TOS GIE = 1

VWF

Sintaksa: [labela Opis: Sadržaj f registra prepisuje se u f registar. O ja: (W) f Operand: 0 ≤ f ≤ 127

MOVWF OPTION_REG

Prije instrukcije: W = 0x40 Poslije instrukcije: OPTION_

Primjer 2:

MOVW Prije inst

Poslije instrukcij sadržaj adrese 0xC2

NOP

ja: Zastavica: Broj riječi: 1 Broj ciklusa: 1

Primjer: NOP ;Kašnjenje od 1µs pri taktu od 4 MHz

RETFIE

Sintaksa: [labela] REOpis: Povratak iz pro

prekid Operacija:

Operand:

lusa: 2

jer

63

Page 65: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

RETLW Sintaksa: [labela] RETLW k

Opis: 8 bit-na konstanta k se smješta u W registar a u PC vrijednost s vrha stoga. TOS PC

Poslije instrukcije: W = 0x43 PC = TOS

TOS = TOS – 1

Operand: Zastavica: Broj riječi: 1

Primjer: URN

strukcije: PC = x OS = x

Poslije instrukcije: PC = TOS TOS = TOS - 1

intaks Opis: Sadržaj f registra se rotira za jedno mjesto u lijevo.

Ako je d = w rezultat se sprema u W registar Ako je d = f rezultat se sprema u f registar

, f<7> C, C d<0>

Operacija: (k) W, Operand: 0 ≤ k ≤ 255 Zastavica: Broj riječi: 1 Broj ciklusa: 2

Primjer: RETLW 0x43

Prije instrukcije: W = x PC = x TOS = x

RETURN Sintaksa: [labela] RETURN Opis: Sadržaj TOS-a smješta u PC

Operacija: TOS PC Broj ciklusa: 2

RET Prije in T

RLF S a: [labela] RLF f, d

Operacija: (f<n>) d<n+1>Operand: 0 ≤ f ≤ 127, d∈ [0,1]

ica: C Zastav

a: 1

Primjer 1: w

0

C = 1

Broj riječi: 1 Broj ciklus

registar 1C

RLF REG, Prije instrukcije: REG = 1110 011 C = 0

0 Poslije instrukcije: REG = 1110 011 W = 1100 1100

64

Page 66: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Primjer 2: RLF REG, f

REG = 1110 0110

G = 1100 1100 C = 1

Sintaksa: [labela] RRF f, d Opis: Sadržaj f registra se rotira za jedno mjesto u desno. at se sprema u W registar

Ako je d = f rezultat se sprema u f registar 0>

Prije instrukcije:

C = 0 Poslije instrukcije: RE RRF

Ako je d = w rezult

Operacija: (f<n>) d<n-1>, f<0> C, C d< Operand: 0 ≤ f ≤ 127, d∈ [0,1] Zastavica: C B či: 1 roj rije

REG, w

rukcije: REG = 1110 0110 W = x

C = 0 rukcije: REG = 1110 0110

W = 0111 0011

Prije instrukcije: REG = 1110 0110 C = 0

REG = 0111 0011

SLEEP

Plja mikrokontroler u mod niske potrošnje. Zaustavlja oscilator,

Broj ciklusa: 1

registar 1C

Primjer 1: RRF

Prije inst

Poslije inst C = 0

Primjer 2: RRF REG, f

Poslije instrukcije: C = 0

Sintaksa: [labela] SLEE

PDOpis: Postav se TOresetira a setiran. Sigurnosni brojač i preskaler su resetirani.

T 0 1

Operacija: 0 WD WDT preskaler TO PD 1

Operand: astaviZ ca: TO , PD

Broj riječi: 1 roj cik B lusa: 1

65

Page 67: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Primjer: SLEEP

x

0x00

Prije instrukcije: WDT brojač =

WDT preskaler = x Poslije instrukcije: WDT brojač =

TO = 1 PD = 0

nte k, rezultat se smješta u W

≤ 255

Broj ciklusa: 1

Primjer: SUBLW

Prije instrukcije: W = 0x01, C = x, Z = x Poslije instrukcije: W = 0x02, C = 1, Z = 0, rezultat je pozitivan

W = 0x03, C = x, Z = x

: 1, rezultat je nula

x, Z = x = 0, rezultat je negativan

Sintaksa: [labela] SUBWF f, d Opis: istra se oduzima od sadržaja f rgistra.

zultat se sprema u W registar. at se s

SUBLW Sintaksa: [labela] SUBLW k

Opis: Sadržaj W registra se oduzima od konstaregistar.

(W) W Operacija: k – k Operand: 0 ≤

Zastavica: DC Broj riječi: 1

0x03

Prije instrukcije: Poslije instrukcije W = 0x00, C = 1, Z =

Prije instrukcije: W = 0x04, C = Poslije instrukcije: W = 0xFF, C = 0, Z SUBWF

Sadržaj W regAko je d = w re Ako je d = f rezult prema u f registar.

Operacija: (f) – (W) d peran ∈ O d: 0 ≤ f ≤ 127, d [0,1]

Zastavica: C, DC, Z Broj riječi: 1

Broj ciklusa: 1

Prije ins

REG = 1, W = 2, C = 1, Z = 0, pozitivan rezultat

Prije instruk REG = 2, W = 2, C = x, Z = x Poslije instru REG = 0, W = 2, C = 1, Z = 1, rezultat je nula

cije: REG = 1, W = 2, C = x, Z = x kc REG = 0xFF, W = 2, C = 0, Z = 0, negativan rezultat

Primjer:

SUBWF REG, 1

trukcije: REG = 3, W = 2, C = x, Z = x Poslije instrukcije:

cije: kcije:

Prije instruk

Poslije instru ije:

66

Page 68: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

SW

Sintaksa: [labela] SWAPF f, d u mjesta.

Ako je d = w rezultat se . se s

Operacija: d< , f<4:7> <0:3> Operand: 0 , d

APF

Opis: Gornja i donja polovica f registra mijenjaj

sprema u W registarAko je d = f rezultat prema u f registar.

f<0:3> 4:7> d ≤ f ≤ 127 ∈ [0,1]

Zastavica: Broj riječi: 1 Broj ciklusa: 1

REG = 0xF3 ije: REG = 0xF3

W = 0x3F

SWAPF REG, f

: REG = 0xF3 :

ORLW Sintaks W k

pis: ciju i 8 bit-nom ltat s

Operaci W peranastavi

Broj riječi: 1 Broj ciklusa: 1

1 0101 (0xB5) e: W = 0x1A ;1010 1111 (0xAF) Z = 0 ------------------------------- ;0001 1010 (0x1A)

u 0x37 Konst

kcije: W = 0xAF ;1010 1111 (0xAF) Konst = 0x37 ;0011 0111 (0x37)

strukci -----------------------

ORWF

ORku fun ma W i f registara, bit u rezultatu

ko sw rezult

Ako je d = f rezultat se sprema u f registar. Operacija: (W) .XOR. k d Operand: 0 ≤ f ≤ 127, d

Primjer 1:

SWAPF REG, w

: Prije instrukcijenstrukc Poslije i

Primjer 2:

Prije instrukcije Poslije instrukcije REG = 0x3F

X a: [labela] XORL

O Vrši logičku opera isključivo ILI nad sadržajem registara Wkonstantom k, rezu e sprema u W registar. ja: (W) .XOR. k

O d: 0 ≤ k ≤ 255 Z ca: Z

Primjer 1:

XORLW 0xAF Prije instrukcije: W = 0xB5 ;101 Poslije instrukcij

Primjer 2: Konst eq

XORLW

Prije instru

Poslije in je: W = 0x98 -------- Z = 0 ;1001 1000 (0x98) X

Sintaksa: [labela] X WF f, d Opis: Vrši logič kciju isključivo ILI nad sadržaji

je 1 samo a u odgovarajući bitovi operanda različiti. Ako je d = at se sprema u W registar.

∈ [0,1] Zastavica: Z Broj riječi: 1 Broj ciklusa: 1

67

Page 69: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Primjer 1: XORWF REG, f

;1011 0101 (0xB5) 5; ;1010 1111 (0xAF)

------------------------- ;0001 1010 (0x1A)

WF REG, w

rukcije: REG = 0xAF, W = 0xB5; ;1010 1111 (0xAF) Poslije instrukcije: REG = 0xAF, W = 0x1A; ;1011 0101 (0xB5)

------------------------- ;0001 1010 (0x1A)

Prije instrukcije: REG = 0xAF, W = 0xB5; Poslije instrukcije: REG = 0x1A, W = 0xB

Primjer 2: XOR

Prije inst

68

Page 70: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

6 vojni a

.1 Asem ler

ki jezik je jezik kojim čovjek i mikrokontroler komuniciraju. Asemblerski jezik je razumljiv o program napisan u asemblerskom jeziku mora se

a bi ga mikrokontroler razumio. Razlikujemo pojam «asembler» i pre blers

ica asem ski j po k mikro

Raz lati za PIC 16F84

6 b

Asemblersčovjeku, sastoji se od riječi i abecednih znakova. Nprevesti u niz nula i jedinica d«asemblerski jezik». Asembler je program vodilac koji prevodi asem ki jezik u jezik nula i jedin , a bler ezik je skup pravila ojima se piše program za kontroler.

Sl. 6.1. Postupak programiranja mikrokontrolera

Program.asm predstavlja datoteku na disku računala koja je napisana po pravilima asemblerskog jezika, Program.hex je datoteka koja je prevedena u jezik nula i jedinica i to heksadecimalnim zapisom, ta datoteka se pomoću programatora upisuje u mikrokontroler. Program se u asemblerskom jeziku može pisati u bilo kojem programu za obradu teksta koji može spremiti datoteku kao ASCII.

Primjer: ovako izgleda naredba RETURN prevedena asemblerom, dobije se 14 bit-ni niz nula i jedinica koji je razumljiv mikrokontroleru.

asm hex RETURN 00 0010 0000 1000

6.1.1 Elementi programskog jezika asembler

Osnovni elementi su:

- Labele - Naredbe - Operandi - Komentari - Direktive

69

Page 71: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Labe e u programskoj ili RAM memoriji. Dužina labele že bit om ili donjom crtom ″_″. Labele se pišu u prvoj

koloni.

potrebom određenog mikrokontrolera i pri pisanju programa treba samo ebe.

a posebnost amog asemblerskog jezika.

Direktiva koju ćemo koristiti glasi:

PROCESOR 16f84 #include ''p16f84.inc'' __CONFIG_CP_OFF &_WDT_OFF &_PWRTE_ON &_XT_OSC

la predstavlja tekstualnu verziju neke adresmo i najviše 32 znaka, bitno je da počinje slov

Naredbe su definirane upoštovati način njihove upotr

Operandi su elementi naredbi nad kojima se izvršava naredba. To su najčešće registri , promjenjive vrijednosti ili konstantne u memoriji.

Komentar je tekst koji programer piše nakon naredbe iz znaka ″ ; ″ da bi program bio jasniji i pregledniji.

Direktiva je slična naredbi, ali je nezavisna od modela mikrokontrolera i predstavljs

70

Page 72: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

7 MPLAB IDE v6.60

7.1 MPLAB IDE

MPLAB IDE (Integrated Development Environment) je integrirano razvojno okruženje za pisanje i razv ®oj programa Microchip-ovih PICmicro MCU porodice mikrokontrolera i dsPIC Digital Signal Controllers. Sa MPLAB razvojnim okruženjem možemo:

TM

i povezivati izvorni kôd. da pratimo izvršavanje tijeka programa koristeći ugrađeni(build-in)

enu sa emulatorima MPLAB ICE 2000 i 4000 ili sa MPLAB ICD 2 in alazačem grešaka (debagger).

• Vr koristeći simulator ili emulator. • Pr• Programiranje firmware-a na uređaje koristeći MPLAB ICD 2, PICSTART® Plus ili PRO MATE® II

programatore uređaja. • Velika podrška za pitanja preko MPLAB IDE pomoći (Help).

7.2 Zahtjevi sustava

Potrebna je sljedeća minimalna konfiguracija za rad MPLAB-a IDE:

• PC kompatibilno računalo • Microsoft Windows 98 SE, Windows 2000 SP2, Windows NT SP6, Windows ME, Windows XP • 64 MB radne memorije (128MB preporučeno) • 45 MB slobodnog prostora na tvrdom disku • Internet Explorer 5.0 ili noviji

7.3 Izrada jednostavnog projekta

7.3.1 Uvod

Da bi napravili kôd koji se može izvršavati koristeći ciljani PICmicro MCU mikrokontroler, izvorni kôd se treba staviti unutar projekta i tada se kôd izgrađuje koristeći selektirane alate za prevođenje (language tools): asemblere, kompajlere, itd.U MPLAB-u IDE, projekt menadžer se brine o tim procesima.

Prvi korak je pisanje vrlo kratkog izvornog kôda koji spremamo u određenu datoteku. Tada izrađujemo projekt, dodajemo izvorni kôd projektu, alati za prevođenje(language tools) kôda se dodjeljuju projektu, i napokon kôd je izgrađen i testiran.

Pri pokretanju programa na ekranu će se pojaviti MPLAB IDE radna površina (desktop).

7.3.2 Pisanje izvornog koda

Krenite sa pisanjem kôda za aplikaciju koristeći MPLAB IDE editor. Odaberite File>New

• Izraditi i editirati izvorni kôd koristeći ugrađen (build-in) editor. • Asemblirati, kompajlirati • Ispravljati završnu logiku tako

simulator ili u realnom vremternim (in-circuit) pronšiti vremenska mjerenje ikaz varijabli preko Prozora za gledanje (Watch windows).

.U radnom prostoru će se otvoriti prazan prozor za editiranje, pisanje. Unesite ovaj primjer gotovog kôda. Preporuka Copy/Paste.

71

Page 73: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

title "PIC16F877 brojac" PROCESSOR 16F877 #include <p16f877.inc> ;Ova datoteka sadrži sva imena registara

;specijalnih namjena i njihove adrese od ;PIC16F877 ;Ta se datoteka nalazi u istom direktoriju ;kao i MPASMWIN.exe

DVAR2 equ 0x0022 ;GPS registra

od koje mikrokontroler

IncCount

;incrementiramo count ;CONT→W ;prosljedi na PORTB

goto IncCount ;petlja

decfsz DVAR,F goto D1

goto D0

__CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC

COUNT equ 0x0020 ;sve tri adrese se DVAR equ 0x0021 ;nalaze u BANK0

org 0x00 ;početna adresa goto Main ; kreće nakon dovođenja napajanja

Main bcf STATUS,RP0 ;BANK0 bcf STATUS,RP1 clrw ;izbriši W registar movwf PORTB ;brišemo PORTB bsf STATUS,RP0 ;BANK1 movwf TRISB ;configuriramo PORTB kao izlazni

Init bcf STATUS,RP0 clrf COUNT ;brišemo count

incf COUNT,F movf COUNT,W movwf PORTB call Delay ;pozivanje Timerskog potprograma

Delay

movlw 0xFF ;vremensko trajanje petlje movwf DVAR2

D0 movwf DVAR

D1

decfsz DVAR2,F

returnend

Kada je kôd unesen, odaberemo akciju File>Save i spremimo datoteku u novi direktorij naziva C:\Projekti kao brojac16f877.asm.

Napomena: Direktiva «__CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC » u izvornom kodu se može podesiti i prilikom učitanja .hex datoteke u mikrokontroler programom IC-Prog.

72

Page 74: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 1.

Prit e S

Bilješka: ko nja kô azan s identifikacijskim bojama, označavajući kôd, rezervirane riječi, komentare, itd. Ta opcija označavanja bojama se može

e ogledajte Help>MPLAB Editor Help

ave. isniti

Na n sprema da, tekst je prik

prilagođavati. Za viš informacija oko editora, p .

7.3.3 Izrad

Slje orak pri stvaranju aplikacije je podešavanje projekta. Najlakši način za to je preko MPLAB k ro t (Pr

7.3.3.1 Pokret (Wiza

1. obnj cijom Project>Project Wizard

a projekta

deći k-ovog Čarobnja a za p jek oject Wizard).

anje Čarobnjaka rd)

Čar ak se pokreće ak . Prikazat će se «Welcome!» ekran. Odaber astavak (Slika 2.)

Slika 2.

ite tipku za nNext

2. Odaberite PIC16F877 sa samo-padajućeg Device izbornika. To će biti PIC mikrokontroler korišten u ovoj demonstraciji. Za sljedeći korak Čarobnjaka pritisnite Next (slika 3).

73

Page 75: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 3.

ite Pritisnite nbi se trebnetočna ili je prazna, pritisnite Browse za lociranjem mpasmwin.exe. Ako je MPLAB instaliran u izvorni (default) direktorij, adresa bi se trebala prikazati kao na slici 4. Za sljedeći

e Next.

Slik

3. Potvrd lokaciju Microchip Toolsuite-a. a MPASM Assembler (maasmwin.exe). Puna adresa od MPASM Assembler.exe

ala prikazati u polju Location of Selected Tool kao što je prikazano na slici. Ako je

korak Čarobnjaka pritisnit

a 4.

4. Unesite ime projekta. Radi ove demonstracije, nazovite ga Brojac i pritisnit Browse da bi odabrali projektni direktorij koji smo napravili ra ije da bi spremili izvorni kôd, :\Projekti (slika 5.)

e Cn

74

Page 76: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 5.

5.

Slik

Pritisnite Next. Sada trebamo dodati postojeće datoteke vašem projektu. Pronađite mapu C:\Projekti i odaberite brojac16f877.asm (Slika 6.).

a 6.

,

6. ritisnite Add>> tipku da bi brojac16f84.asm dodijelili projektu. To je jedina datoteka koja je Ppotrebna za stvaranje projekta (sa iznimkom P16F877.H datoteke koja je «sadržana» u brojac16f877.asm, i nije ju potrebno dodavati).

75

Page 77: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 7.

7. Pritisnite Next za nastavak i dovršenje izrade Čarobnjaka. U ovom finalnom prozoru možemo vidjeti i provjeriti parametre ovog projekta.

Slika 8.

8. Pritisnite Finish i završite Čarobnjak.

76

Page 78: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Prozor projekta na radnoj površini bi trebao izgledati kao na slici 9.

Slika 9.

SAVJET: Datoteke se mogu dodavati i projekti spremati sa desnim klikom miša u projektnom prozoru. U slučaju greške, datoteke se mogu ručno brisati tako da ih odaberemo i pokrenemo izbornik desnim klikom na miša.

7.3.4 Izgradnja projekta

ad ijeme je da ga izgradimo. Tako će se asemblirati izvo risteći Microchipov MPASM toolsuite.

Odaberite Project>Build All

K a smo završili sa stvaranjem projekta, vrrni kôd ko

da izgradimo projekt. Datoteka bi se trebala uspješno asemblirati i Output prozor bi trebao izgledati kao na slici 10.

Slika 10.

Ako se datoteke nisu uspješno asemblirale, provjerite sljedeće natuknice i ponovno izgradite projekt:

● Provjerite sintaksu i format kôda unesenog u editorski prozor. Ako je asembler javio greške u Output prozoru, dvostrukim pritiskom miša na grešku MPLAB će otvoriti odgovarajuću liniju u izvornom kôdu pokazujući na nju sa zelenom strelicom na lijevoj margini prozora izvornog kôda.

● Provjerite da li koristite odgovarajući asembler (MPASM assambler) za PICmicro uređaje. Odaberite Project>Set Language Tool Locations. Pritisnite Microchip MPASM

ler (mpasmwin.exe) i provjerite na njezinu lokaciju. Ako ko nije, promijenite ju i tada pritisnite OK.

Toosuite\Executables\ MPASM Assembje lokacija ispravna, pritisnite Cancel. A a

77

Page 79: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Nakon uspješne izgradnje projekta generira se, alatima za prevođenje, izlazne datoteke. Te datotek adrže objektni kôd koji se može upisati u PICmicro mikrokontrolere i informacije (debugging info koje služe za ispravljanje izvornog kôda i simbolično gledanje varijabla kôda preko prozora za gledanje(Watch windows).

Važno: Generirana datoteka.HEX se sada može otvoriti u programu IC-Prog i upisati na PIC

16F877. Bilješka: Velika korist od projekta se najviše vidi kada je mnogo datoteka koje se trebaju

kompajlirat\asemblirat i povezat da bi činile izvršnu aplikaciju – kao u stvarnim aplikacijama. Projekti sve to prate. Opcije za izgradnju(build options), se mogu namještati za svaku datoteku od koje svaka može pristupati drugim pogodnostima alata za prevođenje(language tools), kao što su izlazna izvješća i optimizacija kompajlera.

7.3.5 Pokretanje simulatora

Sada kad je projekt izgrađen, trebamo provjer da li funkcionira. Da bi to učinili trebamo odabrati alat za pronalaženje pogrešaka (debug tool). To m že biti hardwerski ili softwerski alat za inspekciju kôda poslije izvršenja programa (u ovom slučaju ojac16f877.asm). U ovom vodiču ćemo koristiti MP u

Simulator je mikrokontrolera. S što simulatorski program ovisi o brzini PC-a, kompleksnosti koda, preljevom (overhead) operativnog sustava i koliko drugih zadaća (tasks)

eri vrijeme koje je potrebno da se kôd izvrši kao da radi u realnom

rdwerski alati za testiranje kôda na PC platformi.

i u stvarnoj ciljanoj aplikaciji.

rite MPLAB SIM simulator, kao alat za pronalaženje pogreški, selektiranjem Debugger>Select Tool>MPLAB SIM

e srmation)

itio

brLAB SIM sim lator.

softwerski program koji radi na PC-u i simulira instrukcije od PICmicro imulator ne radi u «realnom vremenu», zato

obavlja. Ipak, simulator precizno mjvremenu i u aplikaciji.

Bilješka: Ostali pronalazači pogreška (debuggers) sadrže MPLAB ICE 2000, MPLAB ICE 4000 i MPLAB ICD2. To su opcionalni haVećina operacija od MPLAB IDE alata za pronalaženje pogreški su iste kao i od simulatora, ali za razliku od simulatora, ovi alati dozvoljavaju da ciljani PIC mikrokontroler radi pri punoj brzin

Odabe

(slika 11).

Slika 11.

oslije odabira MPLAB SIM, vidjet ćemo sljedeće promjene (vidi pripadajuće brojeve na slici 12). P

21. Statusna traka (status bar) na dnu MPLAB IDE prozora će se promijeniti na «MPLAB SIM». . Dodatne meni opcije bi se trebale pojaviti u Debugger meniju. . Dodatne alatne ikone bi se trebale pojaviti koje služe za ispravljanje pogreški u kôdu

(Debugger Tool Bar). 3

78

Page 80: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika12.

7.3.6 Provjera rada aplikacije

DebuggerAplikacija je spremna za pokretanje. Na alatnoj traci će se pojaviti sljedeće ikone prečaca

menij

a:

Run

Halt

Animate

Step into

Reset

Sve te akcije služe za pregledavanje i ispitivanje ispravnosti kôda zajedno sa specijalnim prozorima za gledanje kao što su File Reisters, Watch, Special Function registers i dr.

U prozorima se mogu pratiti promjene u registrima tijekom izvršavanja programa. Prozorima se mogu pristupiti preko View menija. U nastavku teksta će biti objašnjeni.

7.3.6.1 Pokretanje kôda

Prv aberite Debugger>Reseto od (ili ikonu na alatnoj traci). Trebala bi se pojaviti zelena strelica a lijevoj strani prozora izvornog kôda, pokazujući na prvu liniju izvornog kôda koja bi se treb

nala izvršiti.

79

Page 81: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika13a.

Odaberite Debugger>Run (ili ikonu ) da bi pokrenuli aplikaciju. Tekstualna poruka «Running…» oj ar).

Da bi zaustavili izvršenje programa, selektirajte Debegger>Halt

će se p aviti na statusnoj traci(status b

) (ili ikonu . Zelena strelica će pok

Da bi prolazili kroz aplikaciju korak kroz korak, selektirajte Debugger>Step Into

azat na liniju kôda na kojoj je aplikacija zaustavljena.

(ili ikonu ).Tada će se izvršiti trenutna linija kôda na kojoj je program zaustavljen i zelena strelica će skočiti na sljedeću liniju kôda la izvršiti.

Imamo j imate koja se pokreće selektiranjem Debugger>Animate

koja bi se treba

oš akciju An (ili pripadajućom

ikonom ). S njom prola pauzom između s

zimo kroz izvorni kôd automatski korak po korak sa određenom vremenskom koka.

Ta se uza može promijeniti i definira na sljedeći način: selektirajte Debugger>S

vremenska paettings i pod tabularom Debugger Animation promijenimo vrijednost (slika 13b.)

Slika 13b.

80

Page 82: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Vrijednost koju unosimo označava milisekunde po koraku [msecs]. To znači da će prije izvršenja sljedećeg koraka čekati 0,5 sekundi.

7.3.6.2 Praćenje varijabli

Vrijednosti varijabla se mogu vidjeti u svakom trenutku tako da postavimo kursor miša iznad imena varijable bilo gdje u izvornom kôdu. Pojavit će se mali prozorčić sa trenutnom vrijednošću varijable.

Slika 14.

(p

7.3.

a mišom prelazimo preko svake varijable. Prozor za gledanje vrije

Bilješka: Da bi se generirala takva informacija prikazivanja varijable u pojavljujućem op-up) prozorčiću program mora biti kompajliran i povezan.

6.3 Korisnički prozori za gledanje varijabli (Watch Windows)

Korisnici često žele imat pregled ključnih varijabli cijelo vrijeme. Varijable se lakše prate ako otvorimo prozore za gledanje nego d

dnosti varijabli će biti prisutan cijelo vrijeme na ekranu. Prozori (Watch Windows) se mogu naći pod View menijem.

1. Selektiraj View>Watch da bi otvorili prozor za gledanje. 2. Selektiraj PORTB sa Add SFR izbornika vrhu prozora. Pritisnite Add SFR i dodajte ga na

listu za gledanje. Da bi ubrzali pretraživanje možete počet tipkati PORTB nakon odabira padajućeg izbornika.

3. Selektiraj COUNT sa izbornika Add Symbol na vrhu prozora. Pritisnite Add Symbol da bi ga dodali na listu prozora za gledanje.

4. Simboli se mogu unositi direktno ili selektiranjem sa padajućeg izbornika. Direktno unosimo tako da pomaknemo kursor do nove prazne linije i utipkamo «DVAR» i pritisnemo Enter. Ili odaberemo DVAR sa padajućeg izbornika za odabir simbola i pritisnemo Add Symbol i tako ga dodamo listi prozora za gledanje.

81

Page 83: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 15.

Tri simbola bi se trebala nalaziti u prozoru za gledanje. Prva je ispisana adresa File registra, slijedi ime simbola konačno vrijednost simbola. Korisnici mogu gledati kako se vrijednosti simbola mijenjaju pri kretanju kroz program korak po korak.

1. Selektiraj Debugger>Reset i res tiraj aplikaciju.

2. Selektiraj Debugger>Step Into

e

(ili klikni na odgovarajuću ikonu na alatnoj traci) dok ne dođete do sljedeće programske linije:

incf COUNT,F ; uvećaj registar COUNT za 1

3. Koraknite još jednom i vidite da se vrijednost od COUNT u prozoru za gledanje promijenila iz 0 u 1.

4. Krenite dva koraka da bi vidjeli kako se vrijednost PORTB u prozoru za gledanje promijenila iz 0 u 1.

5. renite još četiri koraka da bi vidjeli kako se vrijednost od DVAR u prozoru za gledanje romijenila u FF. Možete primijetiti kako su vrijednosti u prozoru za gledanje crvene boje ako u ih promijenile prethodne operacije izvršavanja, a crne boje ako ih nisu mijenjale prethodne

ij

Vidi sliku 16.

K psoperac e izvršavanja.

Slika 16.

82

Page 84: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Napomena: Te promjene, kao i promjene u ostalim registrima možemo pratiti i u sljedećim prozorima: Prozor Specijalnih registra (poglavlje 3.6.4) i Prozor File registra (poglavlje 3.6.5 ). Svaki korisnik će sam za sebe odlučiti koji im je od prozora najkorisniji za upotrebu.

7.3.6.4 Prozor Registra Specijalnih Namjena (Specal Functin Registers)

Selektiramo View>8 Specal Functin Registers i pojavit će nam se prozor kao na slici 17.

Slika 17.

U ovom prozoru možemo vidjeti sve Registre specijalne namjene sa njihovom adresom (prvi stupac Address), imenom (drugi stupac SFR Name) i njihovom binarnom, decimalnom i heksadecimalnom vrijednošću (sljedeća tri stupca). U posljednjem stupcu (Char) će se ispisati znak koji odgovara vrijednosti ASCII tabele.

83

Page 85: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

7.3.

Selektiranjem V

6.5 Prozor File registra (File Register)

iew>4 File Registers otvorit ćemo prozor za gledanje File registra (slika 19.).

Slika 19.

On pokazuje sve vrijednosti na adresama File registra. Pritiskom na tabular Symbolic (označen crvenom bojom) dobit ćemo simbolični prikaz koji je razumljiviji (slika 20.).

Registri su sortirani po adresama. U ovom prozoru također možemo upisivati vrijednosti u registre kao što je opisano u poglavlju 3.6.5.

Slika 20.

84

Page 86: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

7.3.

Pre ozora, osim gledanja, možemo upisivati vrijednosti u registre. To možemo na dva

1. Dođemo do polja u koji ćemo upisati vrijednost i pritskom na Enter (na tipkovnici), ili dvostrukim lijevim klikom miša, možemo upisati neku vrijednost.

2. Drugi način je da pritiskom desnog klika miša iznad određenog polja, kad se pojavi meni, odaberemo opciju Fill Registers …

6.6 Upisivanje vrijednosti registara preko prozora

ko ovog prnačina:

.Pojavit će se prozor kao na slici 18. Slika 18.

Tu određujemo od koje do koje adrese ćemo upisivati vrijednosti i koju vrijednost.

7.3.6.7 Simuliranje rada priključka (pinova) (Stimulus Controller)

Simuliranje pinova je korisna simulatorska opcija, posebice kad nam je u programu potrebno izazvati prekid preko npr. RB0 pina ili kad su nam određeni portovi definirani kao ulazni i onda želimo na njih dovesti odgovarajuće poticaje, da bi vidjeli kako naš program reagira na njih.

Selektirajte Debugger>Stimulus Controller . U prozoru koji se pojavio, pod tabularom Pin Stimulus, pritisnite Add Row. Prikazat će nam se prozor kao na slici 21.

Slika 21.

85

Page 87: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Pod stupcem Type, pritiskom na polje Asynch, odabiremo sinkroni ili asinkroni oblik poticaja. Ako m ati koji pin želimo stimulirati (pod Pin )

.

odabere o asinkroni oblik poticaja Asynch možemo odabrstupcem i oblik akcije (stupac Action).

Slika 22

Akcije:

• High - logička jedinica • Low - logička nula • Toggle - izmjenjivanje pri svakom pritiskom na ire između logičke jedinice i nule • - impulsni poticaj logičke jedinice

Pri završetku uređivanja pritisnite Edit C

FPulse

omplete. Prilikom prolaska kroz kôd akcijama Step Into ili beremo sinkroni oblik poticaja Animate, stimulacija pina će se obaviti pritiskom na tipku Fire. Ako oda

dobit ćemo poticaj u obliku takta.

Slika 23.

86

Page 88: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

7.3.6.8 Postavljanje točaka za prekid (Setting Breakpoints)

Točke za prekid koristimo kada želimo da nam se kôd kreće do određene lokacije i tada zaustavi. aruje ovako:

1. Selektirajte Debugger>Reset

To se ostv

i resetirajte aplikaciju. 2. Pronađite sljedeću liniju kôda i desnim klikom miša kliknite na nju:

movlw 0xFF ;vremensko trajanje petlje

3. Iz menija koji se pojavio nakon desnog klika miša, selektirajte Set Break Poin . Stop znak bi se trebao pojaviti na lijevoj margini pokraj te linije kôda (slika 21.).

Slika 21.

4. Selektirajte Debugger>Run da bi startali aplikaciju. Trebala bi kratko raditi i zaustaviti se kod linije gdje je postavljena za točka za prekid.

Slika 22.

Bilješka: Nakon zaustavljanja kod točke za prekid, zgodan način za kretanje do neke lokac u kôdu je da stavimo kursor na bilo koju instrukciju u kôdu i pritiskom desnog klika m ša odaberemo Run to Cursor

ijei

. Trajna točka za prekid nije dodana toj liniji i simbol točke za prekid se neće vidjeti – samo će se strelica kretati do te linije. Ako se ta instrukcija slučajno neće nikad izvršiti, aplikacija će nastaviti raditi sve dok ne selektiramo Debugger>Halt.

87

Page 89: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

7.3.6.9 Praćenje kôda (Tracing Code)

kôda. Ponekad je bolje, da umjesto kret

Simulirano praćenje može se koristiti za snimanje izvršenja anja kroz linije kôda korak po korak, kôd snimimo u akciji. Omogućimo simulirano praćenje tako da

selektiramo Debugger>Settings i odaberemo «Trace/Pins» tabular.

Slika 23.

U Trace Option području se nalaze dvije kućice koje se mogu potvrditi kvačicom, a one kontroliraju kakav ćemo dosje dobit simuliranim praćenjem. Kada je gornja kućica potvrđena, simulator skuplja podatke kada simulator radi u «Run» modu. On skuplja podatke sve dok nije zaustavljen točkom za prekid ili «ručno». On će ispisati posljednjih 8192 ciklusa. Ovaj mod je vrlo koristan jer možemo vidjeti zapise instrukcija koje su izvršene do točke za prekid.

Ako potvrdimo i drugu kućicu, tada će memorija za praćenje skupiti 8192 ciklusa i prestati skupljati, a aplikacija će biti zaustavljena na točki za prekid. Ovaj mod je koristan da bi vidjeli zapise instrukc on pritiska Run. ija nak

Selektirajte View>Simulator Trace (slika 20). Simulator praćenja ne prikazuje samo sekvencu e instrukcije nego i druge informacije. Prikazizvršen uje još vremensku bazu da svaki ciklus. Podaci

oji se čitaju ili upisuju u File registar će biti uhvaćeni i prikazani u SA, SD, DA i DD stupcima kao što slici 24.

Slika 24.

kse vidi na

88

Page 90: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

• Line - pokazuje brojeve ciklusa • Addr - adresa programskog brojila (Program Counter) • Op - vrijednost instrukcije strojnog kôda • Label - prikazuje svaku labelu simbolično • Instruction - prevedenu instrukciju (disassembled instruction)

Sljedeća četiri stupca prikazuju vrijednosti podataka koje se upisuju i čitaju u File registre:

• SA - adresa registra za operaciju čitaj (S

ource Address) • SD - podatak pročitan sa registra (Source Data) • DA - adresa registra za operaciju piši (Destination Address) • DD - podatak upisan u registar (Destination Data)

Ako je koje polje označeno crticama to znači da pri toj instrukciju nije korišten taj registar.

• Cycles - pokazuje vremensku bazu za svaki ciklus. Može se koristiti za mjerenje vremena koje je potrebno da se izvrši rutina. Vrijeme se računa na bazi frekvencije unesene u Debugger>Settings , tabular Clock.

89

Page 91: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

8 kontrolera PIC 16F877

8.1

e radi pre

Eas

olere (isporučuje se sa PIC16F877) cime je znatno olakšan rad.

potreba: temperaturne kontrolere, brojače,

IC-Pr g

Pro amiranje mikrokontrolera. Program se nalazi na CD-u, ali preporučamo da se «skine» novija verzija sa Interneta. http://www.ic-prog.com/index1.htm

Programiranje mikro

Uvod

Programiranje mikrokontrolera 16F877, koji se nalazi na Easy-PIC razvojnom sustavu, sko programa IC-Prog.

y-PIC

• Sustav podržava 8, 18, 28 i 40 pinske mikrokontr• Na ploči je jasno označen svaki kratkospojnik, element ili pin • Na sustavu je moguće isprobati većinu industrijskih

tajmere... • Primjeri asembleru cine sam početak rada vrlo efikasnim.

o

gramski paket koji koristimo za progr

pod Download .

Napomena: Korisnici Windows NT/2000/XP operativnog sustava morat će još «skinuti» datoteku icprog.sys i kopirati je u istu mapu gdje i icprog.exe.

8.2 Instalacija sustava pri programiranju programskim paketom IC-PROG

Kratkospojnici (Jumperi) JP3, JP4 i JP5 MORAJU biti postavljeni!

Postupak (uz sliku 1.):

1. Prvo što treba uraditi je priključivanje sustava preko serijskog kabla na računalo. Na računalu mora biti slobodan jedan COM port (najvjerojatnije COM 1 kod novijih računala ili COM2 kod starijih modela) na kojeg se priključuje serijski kabel iz kompleta.

2. Sljedeći korak je priključivanje napajanja. Napajanje može biti i istosmjerno i izmjenično već prema izboru od 9 do 12 Volti.

3. Kopirati ICprog.exe sa CD-a na tvrdi disk računala. Najbolje je napraviti mapu PIC i u njemu posebnu mapu ICPROG čime će sve biti preglednije. (npr. C:\PIC\ICPROG ). Kopiranjem programa u spomenutu mapu je završena njegova instalacija. Kopirajte datoteku icprog.sys u mapu ako koristite Windows NT/2000/XP.

90

Page 92: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 1.

8.3 Pr

(korišten IC-Prog verzija 1.05C)

og. Ukoliko je to prvo pokretanje ICPROG-a na računalu, pojavit će se prozor kao na slici 2.

Slika 2.

ogramiranje mikrokontrolera programskim paketom IC-PROG

1. Pokrenite IC-pr

91

Page 93: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Potrebno je definirati hardwer preko kojeg se mikrokontroler na ploči programira. Kako je na ploči ugrađen JDM programator njega treba odabrati.

Opcija PORTS se bira na osnovu slobodnog porta na računalu korisnika. Obično je slobodan COM1 , pa njega i treba selektirati. Pritisnite OK.

Slika 3.

Pojavit će se IC-Prog sučelje kao na slici 3.

Do opcije Hardware setting možemo doći selektiranjem Settings>Hardware, ako želimnaknadno promijeniti.

o nešto

VAŽNO: Korisnici Windows namjestiti dodatne parametre za

normalan rad. Selektirajte Settings>Options NT/2000/XP OS moraju još

i u tabularu Misc potvrdite prazni

lika 4.

prozorčić kod opcije Enable NT/2000/XP Driver kao na slici 4. Pritisnite OK.

S

Program će se restartati i promjene će postati važeće.

92

Page 94: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

2. Kada se definira hardwer, sljedeći korak je odabir mikrokontrolera koji ćemo programirati. Klikom na Settings > Device> Mikrocip PIC bira se mikrokontroler PIC16F877 koji se koristi na

lika 5.

razvojnom sustavu PIC-easy kao na slici 5.

S

3. Sljedeći korak je učitavanje HEX datoteke (mikrokontroler prima program u toj formi).

Selektirajte ikonicu Open (ili preko odabira File>Open) i pojavit će nam se prozor za

lika 6.

traženje i odabir datoteke (slika 6.).

S

Učitavanje programa se vrši klikom miša na odgovarajuću datoteku (ime_datoteke.hex) i pritisnite Open . Učitani program se pojavljuje u spremniku (buffer) i spreman je za prijenos u mikrokontroler.

Napomena: HEX datoteku pravi bilo koji asemblerski, BASIC ili C ko pajler. m

93

Page 95: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

4. ISP prekidač na razvojnom sustavu prebaciti u položaj za upisivanje/programiranje (u modu za upisivanje svijetli dioda PROGRAM MODE ON).

Slika 7.

5. Klikom na ikonu koja se nalazi na sredini alatne trake počinje programiranje mikrokontrolera. Drugi način je da selektiramo sa menija Command>Program All (slika 8.)

Slika 8.

94

Page 96: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Kad počne programiranje pojavit će se sljedeća slika: Slik 9. a

6. Nakon što je programiranje završeno isključiti prekidač ISP (gornji desni ugao razvojnog sustava), kao što je prikazano na slici ispod.

Slika 10.

Napomena: Ne treba vaditi serijski kabel iz konektora za programiranje, što je od velike

pomoći prilikom čestog programiranja!

95

Page 97: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

9

9.1 Napajanje

Slika 11.

Opis razvojnog sustava

Za ispravan rad svih elemenata na razvojnom sustavu potrebno je osigurati stabilnih +5V. Kod PIC-Easy sustava, to je postignuto upotrebom naponskog stabilizatora LM7805. Zbog povećane disipacije do koje dolazi pri većem opterećenju, stabilizator je postavljen na odgovarajući hladnjak.

Slika 12.

9.2 Led diode

ustav ima 32 diode koje su povezane na pinove porta A, B, C, D i E. Ove diode se obično koriste u p bitnoj fazi rada, ali i kasnije za indikacije dešavanja u programu. Svaka grupa dioda se uklj pje n i.

Napomena: LED diode se uključuju logičkom nulom. To znači da mikrokontroler mora na pinu imati logičku nulu da bi dioda svjetlila.

Srvoučuje/isključuje reko prekidača SW3. Način povezivanja LED dioda sa mikrokontrolerom prikazan a narednoj slic

96

Page 98: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 13.

Slika 14.

9.3 Tipkala

i.

Sustav posjeduje jedano RESET tipkalo i 24 tipkala za simuliranje komandnih ulaza sustava koji su povezani na pinove RE0, RE1 i portove A, B i C. Shematski prikaz veze tipkala i mikrokontrolera dat je na sljedećoj slic

97

Page 99: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 15.

Oznaka iznad svakog predstavlja naziv pina na koji je odgovarajuće tipkalo priključeno. Da bi se tipkalo koristilo odgovarajući pin portova A, B, C i/ili E mora se definirati kao ulazni. Kratkospojnikom u lijevom donjem kutu razvojnog sustava definira se da li je prilikom aktiviranja tipkala vrijednost odgovarajućeg pina 5V ili 0V. Ako je kratkospojnik u gornjem položaju, onda će se prilikom aktiviranja izvjesnog tipkala na odgovarajući pin doći logička jedinica, a ako je u donjem položaju logička nula. Slika 16.

9.4 LCD zaslon (display)

Kontrast zaslona se regulira potenciometrom u donjem lijevom kutu razvojnog sustava. LCD lon se može priključiti ili na port B ili na port D. Naredna slika prikazuje shemu povezivanja LCD-a

na port D i port B mikrokontrolera PIC16F877. Ako su pinovi LCD zaslona sa donje strane, korisnik treba da zalemi kontakt letvicu na mjestu odgovarajućeg porta u dnu razvojnog sustava, u okviru pravokutnika predviđenim za LCD zaslon!!!.

Predviđen je klasičan LCD zaslon sa 2x16 karaktera. Ipak, to nije ograničenje jer se može koristiti bilo koji zaslon koji ima isti tip komunikacije sa mikrokontrolerom.

zas

98

Page 100: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 17.

Slika 18.

Izgled postavljenog LCD zaslona na port B. Izgled postavljenog LCD zaslona na port D.

9.5 Sedamsegmentni zaslon

Sedamsegmentni zaslon se sastoji od četiri znamenke čije se osvježavanje i ispis vrši preko porta B u kombinaciji sa portom A. Preko DIP prekidača SW2, definiraju se znamenke koje će biti uključene, a koje ne. Npr. recimo da treba omogućiti prikazivanje krajnje lijeve znamenke. Prebacivanjem četvrtog prekidača na SW2 u radni režim (ON) znamenka sedamsegmentnog zaslona (DIS1 rajnje lijevo znamenka) će pokazivati vrijednost koja je definirana vrijednostima pinova porta B (sl a 20.). Slično se radi kada su u pitanju znamenke DIS2, DIS3 i DIS4. Naredna slika prikazuje način povezivanja sedamsegmentnih zaslona sa mikrokontrolerom.

, kik

99

Page 101: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 19.

Slika 20.

9.6 Analogno-digitalni pretvarač (A/D converter)

Mikrokontroler PIC16F877 koji se koristi na razvojnom sustavu, u sebi ima implementirane 10 bitne A/D pretvarače. U svrhu prezentacije izdvojena su dva pina RA2 i RA3 sa kojih se mogu očitavati analogne vrijednosti napona koji se određuju potenciometrima P2 i P3.

100

Page 102: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 21.

Ukoliko se želi očitavanje vrijednosti potenciometra P2 neophodno je taviti kratkospojnik iznad dgovarajućeg potenciometra. Prekidač na RA2 na SW1 mora biti isključen donji položaj). Primjer na lici 19. pokazuje očitavanje vrijednosti napona na potenciometru P2 kao i položaj prekidača SW1 u m slučaju.

Slika 22.

s (o

sto

9.7

ti ne većoj od 10 m. oliraju na koji pin se

komunikacija spaja. Ako se koriste DIP40 i DIP28 mikrokontroleri treba ih spojiti na RC6 i RC7, a u slučaju DIP18 mikrokontrolera na RB1 i RB2. Slika 20. prikazuje vezu računala i razvojnog sustava.

RS-232 komunikacija

RS-232 komunikacija je namijenjena komunikaciji dva uređaja na udaljenosajčešće se preko nje komunicira sa računalom. Kratkospojnici RX i TX kontrN

101

Page 103: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 23.

Slika 24.

9.8 Digita

Dallas-ov DSmože poslužiti povezivanje. Possustava. Na slicisustavu.

lni termometar - DS1820

1820 digitalni termometar, sa mogućnošću mjerenja temperature od –55 do 125°C, za mjerenje temperature okoline i eksperimentiranje. Vrlo je točan i lagan za tavlja se u podnožje sa tri pina neposredno ispod konektora za napajanje razvojnog 26. ilustrirano je povezivanje digitalnog termometra i mikrokontrolera na razvojnom

102

Page 104: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 25.

Digitalna vrijednost temperature se šalje ili na A5 ili RE2 u zavisnosti od toga u kom položaju kratkospojnik koji se nalazi neposredno iznad čipa DS1820. U prikazanom primjeru

ra će se očitavati preko pina RA5. Polukrug oko tropinskog podnožja označava orijentaciju DS1820 prilikom postavljanja u podnožje. Slika 26.

pin Rse nalazi temperatu

9.9 Pull-up/pull-down otpornici na portovima

tavlj inovi odgovarajućeg porta se postavljaju na logičku icu ( em položaju, pinovi porta su na logičkoj nuli (pull-

down). Izgled dijela razvojnog sustava prilikom redefiniranja pinova porta A na logičku jedinicu, a pino

S anjem kratkospojnika u gornji položaj pjedin pull-up). Ukoliko je kratkospojnik u donj

va porta B na logičku nulu dat je na slici 27., a shematski je predstavljeno slikama ispod.

103

Page 105: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Slika 27.

Slika 28.

Slika 29.

104

Page 106: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Port B je na PULL-DOWN otpornicima, što znači da su ti pinovi na logičkoj nuli sve dok se na njih ne postavi željena vrijednost.

Port A je preko SW1 povezan na otpornu mrežu. Ako SW1 nije u ON položaju, odgovarajući pin nema ni pull-up ni pull-down otpornik na sebi . Ovo je jako bitno jer omogućuje da se port A koristi u analognom modu kao A/D pretvarač.

DIP prekidači na sustavu omogućavaju veliku fleksibilnost. Njihovim korištenjem pinovi portova se povezuju sa različitim elementima sustava:

SW1 - uključuju / isključuju PULL-UP ili PULL-DOWN otpornike porta A i pinova RE0 i RE1

porta E. SW2 - uključuje / isključuje sedamsegmentne zaslone SW3 - uključivanje / isključivanje led dioda na portovima A, , D i E.

irektan pristup portovima

Svi pinovi PIC-a se mogu definirati kao ulazni ili kao izlazni. Pinovima portova moguće je pristupiti direktno sa desne strane razvojnog sustava preko «flat» kabla. Na taj način se mogu očitavati ili unositi odgovarajuće vrijednosti na portove sa vanjskih elemenata. Slika 30.

B, C

9.10 D

105

Page 107: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

10 Primjeri

10.1 Uvod

om programu. Svaki ovaj primjer možete isprobati u simulatoru

je opisan u prethodnim poglavljima, ali evo jedan kratak odsjetnik:

1.

2.

U ovom poglavlju su prikazani primjeri gotovih programa koji bi vam trebali pomoći da brže savladate programiranje u asemlerskMPLAB IDE i preko programa IC-Prog upisati na mikrokontroler PIC 16F877, koji se nalazi na razvojnom sustavu. Detaljni opis postupka p

Pokrenite MPLAB IDE.

Selektirajte File>New, i u novom prozoru prenesite akcijom Copy/Paste primjer izvornog kôda.

3. Selektirajte File>Save, i spremite datoteku kao ime_datoteke.asm.

4. Izradite projekt preko Čarobnjaka za projekt (vidi poglavlje 7.3).

Iz >Build All5. gradite projekt selektiranjem Project .

Nakon uspješne izgradnje kôda program se može ispitati u simulatoru ili ga možemo odmah upis

7. Selektirajte File>Open File

ati na naš mikrokontroler PIC 16F877. Potrebna .hex datoteka je generirana u istoj mapi u kojoj smo izradili projekt i možemo ju preko programatora IC-Prog upisati u PIC 16F877.

6. Pokrenite IC-Prog.

i odaberite ime_datoteke.hex datoteku u radnoj mapi.

on postavljanja radnih uvjeta razvojnog sustava, selektirajte Command>Program All8. Nak .

9. Programiranje je time je završeno i potrebno je isključiti ISP prekidač.

Na razvojnom sustavu se mogu vidjeti rezultati. Prije primjera nalazi se kratak podsjetnik na makroe i potprograme.

Napomena: LED diode se uključuju logičkom nulom. To znači da mikrokontroler mora na pinu imati logičku nulu da bi dioda svjetlila.

10.2 Makro naredbe

Makro naredbe se definiraju preko direktive macro u okviru koje se zadaje ime makroa i po potrebi argumenti. Ime_makroa macro argument1,arg2,… niz instrukcija

niz instrukcija endm

Definicija makroa se mora nalaziti ispred mjesta gdje se koristi. Kada se u okviru programa pojavi ime makroa, on se zamjenjuje nizom instrukcija koje su navedene prilikom definiranja makroa. Najjednostavnija primjena makroa je davanje imena nizu naredbi koje se ponavljaju.

Kao primjer može poslužiti odabir banke SFR registra. PIC16F877 ima četiri banke: Bank 0, Bank 1, Bank 2, Bank 3. Pristupa im se preko RP1 iRP0 bitova STATUS registra.

106

Page 108: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

RP1:RP0 Bank 00 0 01 1 10 2 11 3

bank.inc (spremiti kao "bank.inc" notepad-u). BAN P0 BAN endm

bcf STATUS,RP1 BAN

kroi se spremaju u posebnu datoteku sa nastavkom .INC. Datoteka ima astavak .INC asocirajući da se radi o INCLUDE (u prijevodu uključi-umetni u program) datoteci.

rimupisa podatka u E u memoriju (raspored File registrima po bankama se nalazi u prilogu 8.10).

10.3 Potprogrami

tavlja niz naredbi koji počinje labelom, a završava se naredbom return ili retlw. lavna razlika u odnosu na makro je to što se niz instrukcija potprograma nalazi samo na jednom jestu u okviru programske memorije. Ovaj niz instrukcija se izvršava svaki put kad se navede

return nastavlja se izvršavati od je je potprogram bio pozvan. Definicija potprograma se

može nalaziti i prije i po a.

abela ;poziv potpr. se obavlja sa "call Labela" niz instrukcija

može reći da pomaže programeru manje kucati) i da oni mogu imati svoje argumente dok potprogram troši manje memorije, ali nema svoje argumente koje može pozivati.

K0 macro bcf STATUS,R bcf STATUS,RP1

endm

K1 macro bcf STATUS,RP0

bsf STATUS,RP1

BANK2 macro bsf STATUS,RP0

endm

K3 macro bsf STATUS,RP0 bsf STATUS,RP1 endm

Ovako napisani ma

n

U sljedećim p jerima će se koristiti samo banke 0 i 1, dok će se banka 3 i 4 koristiti samo kod EPROM, odnosno FLASH programsk

Potprogram predsGmnaredba call Ime_potprograma. Kada program stigne do naredbe sljedeće naredbe u glavnom programu kod ko

slije mjesta poziv

L

niz instrukcija niz instrukcija return ili retlw

Napomena: Osnovna razlika između makroa i potprograma je u tome, da se na mjesto makroa uključuje njegov kôd (jednostavno se

107

Page 109: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

10.4 Primjeri

10.4.1 Program za aktiviranje porta B

U ovom primjeru definiramo pinove porta B kao izlazne, i na njegove pinove dovodimo u stanje

;deklaracija i konfiguracija procesora ;memorijske adrese u slovima

;ukljucivanje makroa umjesto bsf

FIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC

;bcf STSTUS,RP1 ; bsf STSTUS,RP0 movlw 0x00 ;upisi 0 u radni spremnik

TRISB ;upisi u reg. TRISB-definiramo ;pinove portaB kao izlazne ;bcf STATUS,RP0

;b'11111111' movwf PORTB ;svi pinovi porta B odlaze u 1

;labela petlje

;nakon reseta su svi pinovi ulazni

__CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC

bcf STASTUS,RP1

;b'11111111' movwf PORTB ;svi pinovi porta B odlaze u 1

;labela petlje ;nakon reseta su svi pinovi ulazni

logičke jedinice.

PROCESSOR 16F877 #include"p16f877.inc" #include"bank.inc"

__CON BANK1 movwf

BANK0 movlw 0xFF Petlja goto Petlja End

Bez makroa bank.inc to bi izgledalo ovako:

PROCESSOR 16F877 #include "p16f877.inc"

bsf STASTUS,RP0 ;BANKA 1 movlw 0x00 ;upisi 0 u radni spremnik movwf TRISB ;upisi u reg. TRISB-definiramo ;pinove portaB kao izlazne

bcf STATUS,RP0 ;BANKA 0 movlw 0xFF

Petlja goto Petlja

End

108

Page 110: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

10.4.2 Način upisivanja konstanti

binarno

li movlw 0x2c

decimalno '44'

4

koj estira azni p RC0 i o je RC1 u nuli

BANK1 movlw b'00000000'

ovlw b'11111111' movwf TRISC

Main ,0 ;kontrola 1 na RC0 ,0 ;ako je nula resetira RB0

RTC,1 ;kontrola 0 na RC1 ;ako je nula setira RB1

registra opće namjene i radnog tra w te indirektno adresiranje koristeći INDF i FSR registre.

PROCESSOR 16f877

#include "p16f877.inc" __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC org 0x00 goto Main

movlw b'00101100'

heksadecimalno movlw h'2c'

i

movlw d ili movlw .4

10.4.3 Naredbe uvjeta

Ovo je program i t ul in ako je u jedinici setira izlazni RB0, i aksetira RB1 i obratno.

PROCESSOR 16f877 #include "p16f877.inc" #include "bank.inc"

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

org 0x00 goto Main movwf TRISB m BANK0

btfss PORTCbcf PORTB

btfsc PORTC,0 ;kontrola 0 na RC0 bsf PORTB,0 ;ako je jedinica setira RB0 btfss PO

bsf PORTB,1 btfsc PORTC,1 ;kontrola 1 na RC1

bcf PORTB,1 ;ako je jedinica setira RB1 goto Main end

10.4.4 Zbrajanje i oduzimanje, indirektno adresiranje

Jednostavni primjeri zbrajanja i oduzimanja konstanti između regis

109

Page 111: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Main clrf FSR clrf INDF

→ w + 120 = 185 → w

;150 - 185 = .221 ili 0xdd → w 5 → w adrese 0x20

w. 0x20=.0 → w

→ w ;0x21 → FSR

;vrijednost reg. INDF→w sadrži vrijednost tra 0x21, a reg. FSR

;sadrži njegovu adresu addlw .20 ;0 + 20 = .20 → w

toj adresi. Ako je u FSR registar upisana adresa npr. 0x22 , a onda u INDF tar upišemo vrijednost d'55', tada će se u registru 0x22 nalaziti podatak d'55'.

dva binarna broja:

– 34

34 00100010

11011101

e STATUS registra,

.inc" __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

BANK1

clrf TRISC BANK0

ain

;W = portb - 100

movlw .65 ;65 addlw .120 ;65 sublw .150 addlw .120 ;35 + 221 = 8 movf 0x20,0 ;vrijednost sa ;u addlw .12 ;0 + 12 movlw 0x21 ;0x21 mo FSR vwf movf INDF,0

;INDF :regis

goto Main end

Kada u registar FSR upišemo neku adresu(npr. 0x21), tada će registar INDF sadržavati vrijednost podatak) zapisan na(

regis

Primjer na koji način računalo oduzima

56

je isto što i 56 + (–34)56 00111000

prvi komplement + 1

drugi komp. (-34) 11011110 +56 00111000 22 100010110

10.4.5 Usporedba (komparacija)

Oduzimanjem konstante od sadržaja spremnika PORTB djelujemo naodnosn e CAR bit i o koris

stanjo na nj gov RY i ZERO t timo za upravljanje.

PROCESSOR 16f877

6f877.inc" #include "p1 #include "bank

org 0x00

movlw b'11111111' movwf TRISB

clrf PORTC goto Main M movlw .100 subwf PORTB,0

110

Page 112: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

btfsc STATUS,Z ;da li je rez=0 ;portb=100, setiramo RC0

00

ortb<100, >100, resetiramo RC1

tb<100 mo RC2

goto end

gistra:

Prije instrukcije: PortB = 3, W = 2, C = x, Z = x Poslije instrukcije: PortB = 3, W = 1, C = 1, Z = 0 pozitivan rezultat

la

= x , Z = 0 negativan rezultat

10.4.6 Inkr entiranje

lsa većava se za jedan registar PORTB, a dolaskom impulsa na pin edan. Vrijednost registra se ispisuje na izlaznim pinovima

PROCE 1

#include "p16f877.inc" #include "bank.inc"

DT_OFF & _PWRTE_ON & _XT_OSC

ain BANK1

;ili 0xff

;RC0 uvećava PortB

;RC1 smanjuje PortB

anjujemo vrijednost GPS registra 0x20 dok ne dođe do nule i u upisujemo vrijednost .16 i dalje vrtimo petlju.

bsf PORTC,0 btfsc STATUS,C ;da li je portb>100 bsf PORTC,1 ;portb>100, setiramo RC1 btfsc STATUS,C ;da li je portb>1 bcf PORTC,2 ;portb>100, resetiramo RC2

btfss STATUS,C ;da li jep bcf PORTC,1 ;portb btfss STATUS,C ;da li je por bsf PORTC,2 ;portb<100, setira

Main

Primjer sa mogućim stanjem PortB re

Prije instrukcije: PortB = 2, W = 2, C = x, Z = x Poslije instrukcije: PortB = 2, W = 0, C = 1, Z = 1 rezultat je nu

Prije instrukcije: PortB = 1, W = 2, C = x, Z Poslije instrukcije: PortB =1, W = 0xFF, C = 0

mentiranje i dektreme

Dolaskom iRC1 smanjujemo nost registra

mpu na pin RC0 u vrijed za j

porta B.

SSOR 6f877

__CONFIG _CP_OFF & _W

org 0x00 goto Main M Clrf TRISB Movlw b'11111111' Movwf TRISC BANK0

Clrf PORTB Btfsc PORTC,0

PORTB Incf Btfsc PORTC,1 Decf PORTB Goto Main end

Dolaskom impulsa na pin RC0 smtada m

111

Page 113: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

PROCESSOR 16f877 #include "p16f877.inc" #include "bank.inc"

SC

Movlw 0xff

K0

ain btfsc PORTC,0 ;Ispituje stanje RC0 Decfsz 0x20 ;dekrementira, preskače sljedeću

;instrukciju kada dođe do nule

x20,4 vivalentno .16 in

end

0.4.7 Inicijalizacija Porta A i Porta E

Port t E (R oji mogu biti logni i digitalni priključnice (portovi). Ako ih želimo koristiti kao digitalne ulazno/izlazne pinove moramo to

i ja ovim kratkim kôdom:

LRF PORTA ;inicijalizacija PORTA tako ;da prvo očistimo izlazne ;rezultate podataka

S, RP0 ;Bank 1 ;konfiguriranje svih ;pinova kao digitalne

;da odredimo koji su ;ulazno/izlazni pinovi

;RA<3:0> kao ulazni ;RA<5:4> kao izlazni ;TRISA<7:6>su uvijek ;čitani kao ’0’.

;pinovi RE<2:0> se jedino TRISE ;mogu koristiti kao u/i pinovi

;ovom vrijednošću su definirani ;kao ulazni

sljedeći pinovi PORTA E<1:0>.

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_O org 0x00 BANK1

Movwf TRISC ;definiranje portova BANK0 Movlw .12 ;.12→w Movwf 0x20 ;prvi slobodan GPR registar u BAN Goto Main M

goto Main bsf 0 ;setira 4 bit - ek

goto Ma

1

A (RA<5:0>) i por E<2:0>) su ulazno/izlazni pinovi k definirani kao ana

definirat u registru ADCON1. Inicijalizacija se obavl

BCF STATUS, RP0 BCF STATUS, RP1 ;Bank0 C

BSF STATUMOVLW 0x06 MOVWF ADCON1 MOVLW 0xCF ;vrijednost korištena

MOVWF TRISA

MOLW B'00000111' MOVWF

Napomena: Na razvojnom sustavu su na testne LED diode priključeni RA<5:0> i PORTE R

112

Page 114: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

10.4.8 podataka sa memorije

i primjer ovog kôda:

1 ;Bank 2

;adresa s koje

a memoriju

;Bank 2

10.4.9 - u atka u memoriju

1 STATUS, RP0 ;Bank 3

BTFSC EECON1, WR ;čeka na G završetak upisa B ;Bank 2 MOVF ADDR, W ;adresa na koju

BCF EECON1, EEPGD ;pokazuje na memoriju ;podataka EEPROM

BCF INTCON, GIE ćeni te tu liniju

juč)

) BSF EECON1, WR a

TCON

BCF EECON1, WREN

Mikrokontroler PIC16F877 može koristiti FLASH programsku memoriju za spremanje podataka. a uj

sme vinstrukcija, biti prepo ilna instrukcija i biti će izvršena NOP operacija.

Registri: EEADRH : EEADR: - 2 bajtna riječ

- sadrži 13-bitnu adresu lokacije

EEDATH : EEDATA: - sadrži 13-bitni podatak koji čitamo ili ćemo upisati u programsku memoriju

EEPROM - čitanje

Da ki pbi pročitali ne odatak s neke adrese iz EEPROM-a, dovoljno je kopirat

BSF STATUS, RPSTATUS, RP0BCF

MOVF ADDR, W MOVWF EEADR ;ćemo čitati

STATUS, RP0 ;Bank 3 BSF BCF EECON1, EEPGD ;pokazuje n ;podataka EEPROM

;početak operacije čitanja BSF EECON1, RDBCF STATUS, RP0MOVF EEDATA, W ;W = EEDATA

EEPROM pis pod

BSF BSF

STATUS, RP

OTO $-1 ;CF STATUS, RP0

MOVWF EEADR ;ćemo pisati MOVF VALUE, W ;podatak koji MOVWF EEDATA ;ćemo upisati BSF STATUS, RP0 ;Bank 3

BSF EECON1, WREN ;omogućuje upis

;/onemogućuje prekide mogu;- ako su već ranije o

baci ;\u suprotnom izMOVLW 0x55 ;upisuje vrijednost 55h

rvi klMOVWF EECON2 ;u registar EECON2 (pMOVLW 0xAA ;upisuje vrijednost AAh MOVWF EECON2 i ključ;u reg. EECON2 (drug

;počinje operacija upis;/omogućuje prekide

BSF IN , GIE ;- ako ih koristimo, ;\ u suprotnom izbacite

pisanje ;onemogućuje

10.4.10 FLASH programska memorija - čitanje podataka

T opcija omoguć e čitanje i upisivanje 14-bitnog podatka u programsku memoriju. Taj podatak neće tati pri izvrša anju instrukcija u programskoj memoriji jer će se taj podatak, pri izvršenju

znat kao nedopuštena/neprav

113

Page 115: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Čitanje se vrši na sljedeći način:

ujemo

(ciklusa)

MOVF EEDATA, W ;DATAL = EEDATA MOM AH = EEDATH MOVWF DATAH

10.4.11 ataka

rijskoj OVWF EEDATH

i, liniju

W

MOVWF EECON2 ;registar EECON2 isa

potrebna NOP ;dva NOP-a da se spremi za

CF EECON1, WREN ;onemogućuje upis

BSF STATUS, RP0 ;Bank 2 MOVF ADDRL, W ;upisMOVWF EEADR ;adresu sa MOVF ADDRH,W ;koje ćemo MOVWF EEADRH ;čitati podatak BSF STATUS, RP0 ;Bank 3 BSF EECON1, EEPGD ;pokazuje na FLASH ;programsku memoriju BSF EECON1, RD ;početak operacije čitanja NOP ;potrebna su mu dva NOP NOP BCF STATUS, RP0 ;Bank 2

VWF DATAL OVF EEDATH,W ;DAT

FLASH programska memorija - upisivanje pod

BSF STATUS, RP1 BCF STATUS, RP0 ;Bank 2 MOVF ADDRL, W ;upisujemo adresu MOVWF EEADR ;željene lokacije MOVF ADDRH, W ;u programskoj MOVWF EEADRH ;memoriji MOVF VALUEL, W ;upisujemo vrijednost MOVWF EEDATA ;u program MOVF VALUEH, W ;na željenoj memoM ;lokaciji

;Bank 3 BSF STATUS, RP0 BSF EECON1, EEPGD ;pokazuje na FLASH ;programsku memoriju BSF EECON1, WREN ;omogućuje upis

;/onemogućuje prekide BCF INTCON, G ;- ako su već ranije omogućenIE ;\u suprotnom izbacite tu MOVL 0x55 ;upisuje 55h u MOVWF EECON2 MOVLW 0xAA ;upisuje AAh u

;registar EECON2

BSF EECON1, WR ;počinje operaciju upNOP ;mikrokontroleru su

;upis ;/omogućuje prekide

BSF INTCON, GIE ;- ako ih koristimo, ;\u suprotnom izbacite tu liniju

B

114

Page 116: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

10.4.12 Zbrajanje dva 16 bitna broja

T_OSC Main

btf ;kontrola carry bita, preskoči

;za nula MSB2

addwf MSB2,f ;zbroji ga sa MSB2

10.4.13

movf LSB1,W dec

10.4.14

Pod o veličini. Najveći se upisuje na lokaciju i r om os lokacij

R 1 6f8 __CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC cblock 0x40 bi,adr,nadr,rsort,sort,asort endc movlw .10 ;sprema 10 u w

PROCESSOR 16F877 #include "p16f877.inc" __CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_X

LSB1 equ 0x20 ;argument 1, niži bajt MSB1 equ 0x21 ;argument 1, viši bajt LSB2 equ 0x22 ;argument 2, niži bajt

qu 0x MSB2 e 23 ;argument 2, viši bajt

org 0x00 ;reset vektor goto Main

movf LSB1,w ;zbroji i spremi u LSB2 addwf LSB2,f

sc STATUS,C

incf MSB2,1 ;inkrementiraj i spremi u movf MSB1

end

Oduzimanje dva 16 bitna broja

PROCESSOR 16F877 #include "p16f877.inc" __CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC

LSB1 equ 0x20 MSB1 equ 0x21

LSB2 equ 0x22 MSB2 equ 0x23

subwf LSB2,1 ;oduzmi i spremi u LSB2 btfss STATUS,C ;kontrola carry bita

f MSB2,1 ;dekrementiraj i spremi u MSB2 movf MSB1 subwf MSB2,1 ;zbroji ga sa MSB2 end

Sortiranje sa indirektnim pristupom

aci sa lokacija od 0x20 do 0x29 se uspoređuju i sortiraju p 0x30 ed tali po veličini do e 0x39.

PROCESSO 6F877 #include "p1 77.inc"

115

Page 117: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

movwf rsort ;interacija snimanja movlw 0x30 ;sprema h'30' u w

etna adresa sortiranja

poc ;9 w broj interacija traženja najvećeg

;usporedba carry bita statusa u pomoćni registar 0x2a

FSR,0 ;indirektno, u njega guramo adresu, upis movwf nadr ;upis u nadr

a vrijednost u sort sort

decfsz bi ;dekrement

is najvećeg u FSR ti najveću vrijednost ort u FSR ->0x30 novu adresu

pis najvećeg na 1. adresu 0x30 većav

erupt

promjene porta B, prekoračenja TMR0 i prekid preko pina RB0.

#include "p16f877.inc"

FF&_PWRTE_ON&_XT_OSC

;interupt vektor

movwf asort ;poč

movlw .9 movwf bi ;

movlw 0x20 movwf nadr ;početna adresa najvećeg = h'20' movwf FSR ;spremanje u FSR registar, broj 0x20 movf INDF,0 movwf sort ;podatak se sprema u sort, početna ;najveća vrijednost prva clrf 0x20 ;cisti spremnik incf FSR ;sljedeća adresa : 0x21 subwf INDF,0 ;0x21 - 0x20 indirektno →w btfsc STATUS,C bsf 0x2a,0 ;upis

subwf INDF,0 ;vrijednost lokacije 0x21 u w btfsc 0x2a,0 goto naj ;upisivanje najvećeg broja decfsz bi goto prva goto upis naj movf

movf INDF,0 ;sprem movwf sort ;upis u

goto prva goto upis pis movf nadr,0 u

movwf FSR ;up clrf INDF ;cis movf asort,0 ;as movwf FSR ;na

movf sort,0 movwf INDF ;u incf asort ;u anje adrese decfsz rsort ;umanjivanje broja interacija

goto poc end

10.4.15 Int

U ovom programu omogućujemo prekid uslijed

PROCESSOR 16F877

#include "bank.inc" __CONFIG _CP_OFF&_WDT_O

org 0x00 goto Main org 0x04

Inter goto

116

Page 118: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Main clrf TMR0 BANK1 movlw B'01000000' ;unosimo bin podatak

movwf OPTION_REG ;interrupt preko RB0 na stući brid

;global E

E ;port change E

e .10 samo da vrti

;prekid

0IF ;\ F ;- poništava prekide IF ;/

retfie ;naredba RETURN, vraća program

u prekidne rutine i onemogućuju se daljnji

- r R0

AITstd

o timeconst_2,PRESCEXT ;upisi u spremnik w timeconst_2 ;timeconst_2 → w

movwf WCYCLE

ll WAIT_X endm

WAITst WCYCLE ;prescaler 1:4 (ili PRESCstd)

R0

movwf OPTION_REG

it ON,T0IF ;preskoči sljedeću liniju

;ako je 1 inače goto

;ra BANK0 ;setira bitove za E prekida bsf INTCON,7 bsf INTCON,T0IE ;brojač E bsf INTCON,INT ;vanjski E bsf INTCON,RBIE Petlja movf PORTB,0 ;stalno upisuj movwf 0x20 ;i čekamo prekid movlw .10 movwf 0x0d goto Petlja Inter bcf INTCON,GIE ;0 na GIE-globalni interupt movlw 0xff movwf 0x0d ;prekid bcf INTCON,T bcf INTCON,INT bcf INTCON,RB ;na mjesto prekida end

Kada dođe do prekida, program skače na vektor/adresprekidi.

10.4.16 Preskaler ad sa TM

Prvo napravimo makro WAIT. Spremimo ga kao wait.inc. CONSTANT PRESCstd = .1 WAIT macro timeconst_1 timeconst_1 movlw

W call endm

WAITX macr movl

movlw PRESCEXT ca

d movwf movlw .1 WAIT_X clrf TM BANK1 BANK0 WAITa bcf INTCON,T0IF ;briše bWAITb btfss INTC

117

Page 119: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

goto W AITb ;vrti se 255 puta WCYCLE,1 ;dekrementira .100 u .99

ni program

auze nakon pozivanja potprograma ačenja TMR0 brojača (prijelaz iz .255 u .0).

a.

rekidnu rutinu i brojat prekide, n brojati flag b .

o

WAIT .100

reskaler u OPTION registru će biti postavljen na '1' (omjer TMR0 1:4, što znači da će TMR0 dekrementirat) 100

z, jedan ciklus traje 1µs. To iznosi

upišemo

reskaler u OPTION registru će biti postavljen na '7' (omjer TMR0 1:256, što znači da će TMR0 kr

er će trajati 16*244*256=999424 µs što je 0,999424 s. Približno ≈1s. Pri taktu od 4MHz kada jedan ciklus traje 1µs.

Pro

ROCEinclude

RTE_ON&_XT_OSC

sc ORTB

decfsz goto WAITa RETURN ;vraća ga u glav

Ovaj makro će pripremiti parametre koji će definirati dužinu pWAIT ili WAIT_X. Pauza se dobiva tako da se broje prekorKod prekoračenja se u registru INTCON,T0IF (2 bit) javlja zastavic

Prema tome da bi dobili vremenski član - Timer - nije potrebno ići u pnego je dovolj o zastavice ( it)

Ako negdje u programu pozovemo macro Wait tako da upišem

pinkrementirati svaki 4 takt – to je određeno konstantom PRESCstd) i brojat će (prekoračenja i vratiti se u glavni program.

Timer će trajati 4*100*256= 102400 ciklusa. Pri taktu od 4MH102,4 ms.

Ako negdje u programu pozovemo macro Wait tako da

WAITX .244, .3

pin ementirati svaki 256 takt – to je određeno argumentom PRESCext) i brojat će (dekrementirat) 100 prekoračenja i vratiti se u glavni program.

Tim

gram.

P SSOR 16F877 # "p16f877.inc"

#include "wait.inc" #include "bank.inc"

&_WDT_OFF&_PW __CONFIG _CP_OFF cblock 0x20 WCYCLE, PRESC wait endc BANK1 clrf C TRIS BANK0 petlja btf P , 0 bsf PORTC, 0

macro WAIT .100 ;poziv, 0 bcf PORTC

goto petlja

end

118

Page 120: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

10.4.17 Dvosmjerna vrtnja motora

Programom mijenjamo smjer vrtnje trofaznog motora (RA0 – tipkalo T1, RA1 – tipkalo pkalo STOP, RB0 – sklopnik M1, RB1 – sklopnik M2).

T2, RA2 –

_OFF&_PWRTE_ON&_XT_OSC clrf TRISB BANK0

;ili M1

prva btfsc PORTB,1 M2 goto resetm1

resetm2

ruga btfsc PORTA,2 ;i nije STOP goto resetm2 btfsc PORTB,0 ;i nije M1

goto resetm2 ORTB,1 ;ukljuci M2

RTB,0 ;iskljuci M1 m2

poje koja svijetli 2 s, pa 1s ne svijetli, i onda opet svijetli 2 s itd.

R 16F877 877.inc"

#include "bank.inc" __CONFIG _CP_ON&_WDT_OFF&_PWRTE_ON&_XT_OSC

ti

PROCESSOR 16F877 #include "p16f877.inc" #include "bank.inc"

__CONFIG _CP_OFF&_WDT

BANK1

m1 btfsc PORTA,0 ;kontrola T1 goto prva btfss PORTB,0

goto resetm1

btfsc PORTA,2 ;i nije STOP goto resetm1

;i nije

bsf PORTB,0 ;ukljuci M1 m2 btfsc PORTA,1 ;kontrola T2 goto druga

btfss PORTB,1 ;ili M2 goto d bsf P goto m1 r bcf goto esetm1 PO

resetm2 bcf PORTB,1 ;iskljuci M2 goto m1

end

10.4.18 Dioda

Na RA1 pin je s na LED dioda

1. NAČ k i interapta TMR0 IN - vremensko ašnjenje na baz

PROCESSO

#include "p16f

119

Page 121: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

org 0x00 goto main or

ain BANK1

K100' ;preskaler 100

rementiranje ;TMR0 svake 32 µs

000'

kida, jer prilikom prekida GIE ode

puta,jer µs

novno

t da li je dioda svijetlila ili nije

PORTA,1 retfie

end

2. NAČIN - vremensko kašnjenje na bazi petlje.

PROCESSOR 16F84

#include "bank.inc" __CONFIG _CP_ON&_WDT_OFF&_PWRTE_ON&_XT_OSC

goto main

g 0x04 goto prekid con equ 0x20 m movlw movwf TRISA

b'11111101'

BANK0 bsf PORTA,1 ;dioda svijetli

BAN movlw b'000001 movwf OPTION_REG ;ink movlw b'10100 movwf INTCON ;dozvola tajmerskog prekida clrf con petlja goto petlja ;čekanje prekida prekid movlw b'10100000' ;dozvola sljedećeg pre movwf INTCON ; ;u nulu

incf con movlw .244 ;prekid se treba desiti 244

;je 32*256*244=1998848 subwf con,0 btfss STATUS,Z retfie clrf con ;postavljanje con varijable po

;u nulu BANK0 Btfss PORTA,1 ;tes

goto skok

BANK1 Movlw b'00000011' Movwf OPTION_REG BANK0 Bcf PORTA,1 retfie skok BANK1 movlw b'00000100' movwf OPTION_REG BANK0

Bsf

#include "p16f84.inc"

org 0x00 goto main org 0x04

120

Page 122: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

11111101' TRISA ;RA1 definiramo kao izlazni pin

PORTA,1 ;dioda svijetli

.78

return

aa

goto pet0

;kraj petlje od dvije sekunde ;gašenje diode

dalje RTA,1 ;dioda ne svijetli ;čekanje 1 sekundu

cc

cc,1 goto petl2

.183

PETl0 z bb,1

goto petl1 return

ETl0 movlw .19 movwf aa

petl0

aljel goto ponovo

cblock 0x0c aa,bb,cc endc main BANK1 movlw b' movwf BANK0 ponovo bsf

;čekanje 2 sekunde PET2 movlw movwf cc pet2 call PET1 decfsz cc,1 goto pet2 goto dalje PET1 movlw .116 movwf bb pet1 call PET0

decfsz bb,1 goto pet1

PET0 movlw .108 movwf pet0 decfsz aa,1

return

bcf PO

PETl2 movlw .127 movwf petl2 call PETl1 decfsz goto daljel PETl1 movlw

movwf bb petl1 call

decfs P

decfsz aa,1 goto petl0 return

;kraj petlje od 1 sekunde d end

121

Page 123: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

10.4.19 LED diode na portu B

Program za paljenje i gašenje svih LED dioda na portu B u intervalima od 0,5ms. Prvo ćemo enerira pauzu.

;viši bajt argumenta ide u HIcnt

;niži bajt argumenta ide u LOcnt

;testira svoju vrijednost i ako je ;nula, setira se bit Z

cnt,f

Delay1ms dec HIcnt,f decf LOcnt,f

;Del ašnjenje od ;100*10µs=1ms

;dekrementiraj ;trajanje jednog izvršavanja Loop2

lje je 10µs

am koji će koristiti ovu pauzu.

R 16f877.inc"

#include "pause.inc" __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

izraditi makro koji g Spremite kao pausems.inc ausems macro arg1 p

local Loop1 local dechi local Delay1ms local Loop2 local Kraj

movlw high arg1 movwf HIcnt

movlw low arg1 movwf LOcnt Loop1

movf LOcnt,f btfsc STATUS,Z goto dechi

Delay1ms call decf LO

goto Loop1 dechi movf HIcnt,f btfsc STATUS,Z

goto Kraj call

f

goto Loop1 Delay1ms: ay1ms realizira k movlw .100 movwf LOOPcnt Loop2: nop nop nop

nop nop nop nop decfsz LOOPcnt,f goto Loop2

;pet return

Kraj endm

ati kratak progrSada je dovoljno napis

877 PROCESSO#include "p16f

122

Page 124: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Cblock 0x20 ;početak RAM-a HIcnt ;registri koje koristi makro pausems LO

0 ;reset vector n

04 ;interapt vector Main ;nema interapt rutine

;početak programa TRISB ;selektiraj banku u kojoj je TRISB

TRISB ;port B je izlazni l elektir

sključi

ičekaj ključi

ičekaj 500 milisekundi (0.5sec) oči na labelu Loop

makro naredbe možemo unesti 16 bitni broj. To znači da

dresiranjem

R 16f877 6f877.inc" nk.inc" CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

0x00 STATUS,RP0

0x40 movwf 0x22 ;početna adresa sortiranja goto petlja

etlja movlw 0x39 ;kada vrijednost FSR

btfsc STATUS,Z ;vrijednosti 0x39, idi goto prekid ;na labelu prekid

;pokazuje na adresu 0x30 ;vrijednost sa adrese u w

;vrijednost sa 0x30-w

cnt LOOPcnt endc ORG 0x0 goto Mai ORG 0x goto Main banksel clrf bankse PORTB ;s aj banku u kojoj je PORTB Loop movlw 0x00 ;i diode na portu B movwf PORTB pausems .500 ;pr 500 milisekundi (0.5sec)

movlw 0xff ;u diode na portu B movw PORTB f pausems .500 ;pr goto Loop ;sk end

U ovom primjeru na mjesto argumentamožemo napraviti pauzu od 65,535 s.

10.4.20 Usporedba - indirektnim a

Podaci se nalaze od adrese 0x30 do 0x39. Treba ih usporediti sa podatkom na adresi 0x20. Ako su jednaki adresu tog podatka stavi na 0x40 i svaki sljedeći dalje. PROCESSO #include "p1 #include "ba __CONFIG _ ORG bcf bcf STATUS,RP1 ;BANK0 movlw 0x2f ;0x30-1 adresa podatka movwf FSR ;w u FSR movlw p subwf FSR,0 ;inkrementirajući dođe do

incf FSR movf 0x20,0

subwf INDF,0 btfss STATUS,Z ;testira bit Z

123

Page 125: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

goto petlja ;ako nisu isti, goto petlja pis

R,0 ;adresa u w 0x21 ;w u 0x21

movf 0x22,0 ;vrijednost sa adrese 0x22

;(0x40) u FSR movf 0x21,0 ;vrijednost registra 0x21 u w

oju

incf 0x22 ;inkrementira vrijednost reg.

rekid end

impulsi sa mjerača protoka koji daje 100 impulsa/litri tekućine. Ovaj program će ličinu protoka litre/sekundi.

#include "bank.inc" N&_XT_OSC

org 0x00

goto prekid cblock 0x20

ain movlw b'00000010'

;RC1 kao ulazni pin (dolaze impulsi)

i

tira svake 64µs

v1

đe jedinica na RC1 šao 1 impuls

o

goto u ;jednaki su upis movf FS movwf ;(0x40) u w movwf FSR movwf INDF ;spremamo na lokaciju na k ;pokazuje FSR ;0x22 (0x40+1) movwf FSR ;w u FSR goto petlja p 0x21, 0x22 su pomoćni registri za privremeno spremanje podataka.

10.4.21 Protok

Na RC1 pristižua port B ispisivati ven

PROCESSOR 16F877 #include "p16f877.inc"

__CONFIG _CP_ON&_WDT_OFF&_PWRTE_O

goto main org 0x04 brojac,v1 endc m BANK1 movwf TRISC movlw b'00000000' movwf TRISB ;portb kao izlazn movlw b'00000101' movwf OPTION_REG ;timer se inkremen movlw b'10100000' movwf INTCON ;dozvola timerskog prekida

clrf brojac clrf

BANK0 skok1 btfss PORTC,1 goto skok1 ;tu se vrti petlja dok ne do incf brojac ;povećam brojač,što znaci da je doskok2 btfsc PORTC,1 ;kada dođe nula idemo na ponovn

goto skok2 ;čekanje impulsa goto skok1

124

Page 126: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

prekid BANK1 movlw b'10100000' movwf INTCON ;ponovna dozvola prekida

oćne varijable v1 da esilo prekida

ida idem dalje,

ni dešava se

RTB retfie

žu podaci sa 8 bitnog A/D pretvornika o stanju temperature u prostoriji. U spoju sa retvarač nam daje informaciju o temperaturi u rasponu od –20 do +80 °C. Na RC1

je spojen grijač preko releja. Napiši program da temperatura u prostoriji bude 21 plus/minus 1°C. Poč

PROCESSOR 16F877

T_OFF&_PWRTE_ON&_XT_OSC

org 0x00

;TRISC je u bank1 11111101'

TRISC ;RC1 izlazni pin movlw b'11111111'

TRISB ;PORTB ulazni TC & PORTB u bank0

vece od 0 tj. temperatura

,C ;kad je C=1 on mora zagasiti

;grijač tj. temp. veća od 22 bcf PORTC,1 ;gasi RC1

incf v1 ;inkrementiranje pom ;vidimo koliko se d movlw .156 ;156*64 = 9984 µs tj. 1ms subwf v1 btfss STATUS,Z ;ako se desilo 156 prek retfie ;ako nije nastavljam s prekidima movf brojac,0 ;ovaj dio u prekidnoj ruti ;100 puta u sekundi clrf brojac ;brojač natrag u nulu clrf v1 ;v1 natrag u nulu BANK0 movwf PO

end

10.4.22 Regulacija temperature

Na port B pristitermometrom A/D p

etna temperatura u prostoriji je 0°C.

#include "p16f877.inc" #include "bank.inc" __CONFIG _CP_ON&_WD goto main org 0x04 goto main main BANK1 movlw b' movwf movwf BANK0 ;POR petlja movlw .102 subwf PORTB,0 btfss STATUS,C ;c=1, ;veća od 20 bsf PORTC,1 ;pali movlw .108

subwf PORTB,0 btfsc STATUS

goto petlja end

125

Page 127: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Imamo 256 (0-255) mogućih stanja registra kojima moramo pridružiti raspon temperature od -20

6 = 102,4 ≈ 102

– (–20) = 42* ,56 = 1

6f877.inc" _CP_ON&_WDT_OFF&_PWRTE_ON&_XT_OSC

org 0x04

ain movlw .11

3

inarn

_OSC

org 0x00

ain

3

bin

etlja goto petlja end

do 80°C. Raspon temperature: 80 – (–20) = 100°C

256/100 = 2,56 po °C 20°C: raspon 20 – (–20) = 40*2,5

22°C: raspon 22 2 07,52 ≈ 108

10.4.23 Pretvorbe

a) Binarni u EXCESS-3 ESSOR 16F877 PROC #include "p1 __CONFIG

org 0x00 goto main

goto main cblock 0x20 bin,ex3 endc m

movwf bin movlw .3 addwf bin,0 movwf ex petlja goto etlja end b) EXCESS-3 u b i PROCESSOR 16F877 #include "p16f877.inc" __CONFIG _CP_ON&_WDT_OFF&_PWRTE_ON&_XT goto main org 0x04 goto main cblock 0x20 bin,ex3 endc m

movlw .11 movwf ex3 movlw . subwf ex3,0 movwf p

126

Page 128: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

c) B

PROCESSOR 16F877

__CONFIG _CP_ON&_ ON&_XT_OSC

main

oz1,oz2,oz3,bin endc

oz1 2

z3

.8

etlja goto petlja

OFF&_PWRTE_ON&_XT_OSC

0x04 main

cblock 0x20 0,bin ;oz2,oz1,oz0 - oktalne znamenke

;con - kontrolna varijabla za petlje

;množenje sa 64 ;premještamo oz2 u w reg

oz2,1 ;zbrajanje oz2 i w i spremanje

inarni u oktalni

#include"p16f877.inc" WDT_OFF&_PWRTE_

org 0x00 goto cblock 0x20

main clrf clrf oz clrf o prva movlw .64 subwf bin,1 btfsc STATUS,C incf oz1 btfsc STATUS,C goto prva movlw .64 addwf bin,1 dva movlw subwf bin,1

btfsc STAT US,C incf oz2 btfsc STATUS,C goto dva movlw .8 addwf bin,0 movwf oz3 p

end d) Oktalni u binarni

PROCESSOR 16F877 #include "p16f877.inc" __CONFIG _CP_ON&_WDT_ org 0x00 goto main org goto oz2,oz1,oz ,con

endc main clrf con clrf STATUS clrf bin

pet2 movf oz2,0 addwf

127

Page 129: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

;rezultata u oz2 incf con

goto pet2 ;množenje sa 8

oz1,0 ;premještamo oz1 u w reg addwf oz1,1 ;zbrajanje oz1 i w i spremanje rezultata

;u oz1

subwf con,0 S,Z

ajanje oz2+oz1+oz0

addwf bin,1

;binarni zapis je u bin registru

totice, desetice i jedinice iz broja. To ćemo napraviti preko makro rogramu.

Pon0 Exit1

local Exit2 Pozitiv Negativ

;izračunavanje znamenke stotice

igtem ;izračunavanje znamenke desetice

movlw .6 subwf con,0

btfss STATUS,Z

clrf con clrf STATUS pet1 movf

incf con movlw .3 btfss STATU goto pet1

;zbr movf oz0,0 addwf bin,1 movf oz1,0 movf oz2,0 addwf bin,1

petlja goto petlja end e) Binarni kod u BCD Ovaj program izdvaja znamenke snaredbe koju ćemo kasnije pozvati u p

Spremi kao digbyte.inc

d igbyte macro arg0

local local

local

local clrf Dig1

clrf Dig2 clrf Dig3

ozitiv movf arg0,w P movwf Digtemp movlw .100 Pon0 incf Dig1,f subwf Digtemp,f btfsc STATUS,C goto Pon0 ig1,f decf D

D p,f addwf Exit1 movlw .10

incf Dig2,f subwf Digtemp,f btfsc STATUS,C goto Exit1 decf Dig2,f

128

Page 130: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

addwf Digtemp,f ;izračunavanje znamenke jedinice

iz broja.

E SOR 1

_O RTE_ON&_XT_OSC

;Dig3 - jedinica

;adresa reseta

REZ=255

REZ ;poziv makroa

Petlja ;ostani ovdje

ma sadržaj u registrima Dig1, Dig2, Dig3 će biti ovakav:

Dig3

0x22

_PWRTE_ON&_XT_OSC

Exit2 movf Digtemp,w movwf Dig3 endm

Sljedeći primjer izdvaja znamenke

PROC S 6F877

#include "p16f877.inc" #include "digbyte.inc"

__CONFIG _CP_ON&_WDT FF&_PW cblock 0x20 REZ Digtemp Dig1 ;Dig1 - stotica

;Dig2 - desetica Dig2 Dig3 endc

org 0x00 goto Start

Start movlw 0xff

movwf REZ ;;w=255

ain digbyte M Petlja goto end Poslije izvođenja progra

Dig1 Dig2 21 0x20 0x Naravno, u binarnom obliku. BIN u BCD (2. NAČIN)

PROCESSOR 16F877 #include"p16f877.inc"

OFF& __CONFIG _CP_ON&_WDT_ org 0x00 goto main org 0x04 goto main cblock 0x20 con,bcd2,bcd1,bcd0,bin endc

.2 .5 .5

129

Page 131: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

main clrf con clrf bin clrf bcd2 clrf bcd1

bcd0 movlw .3 movwf bin

rvi movlw .10

drugi bin,1 drugi1

bcd1,1

a dolaze binarni podaci vrijednosti od 0 puls na RB7 pinu. Na RA0 spojen je ulaz

oračnog motora jemu je za an puni okre 360° ) potrebno 200 impulsa frekvencije 1KHz. vaj program će upravljati rado oračnog mo , tako da broj zadan na portu B određuje pomak otora u postocima (npr. za zadani binarni broj 50 na portu B motor treba napraviti otklon od 180°).

16f877 877.inc"

#include "bank.inc" IG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

Ulaz EQU 0x20 0x00

;u slučaju interrupta skače na tu labelu

00001' ;uključeni pull up otpori na ;PORTB, prekid na rastući brid, TMR0/4 _REG ;pin RA0 je izlazni

b'11111111'

clrf p subwf bin,1 btfss STATUS,C goto drugi incf bcd1 goto prvi

movlw .10 addwf movf bin,0 movwf bcd0

movlwsubwf

.10 btfss STATUS,C

goto tri incf bcd2

goto drugi1 ri movlw .10 t addwf bcd1,1 petlja goto petlja

end

10.4.24 Servo motor

Na pinove porta B u neodređenim vremenskim razmacimo 100 s tim da svaka promjena stanja izaziva kratkotrajni imd

k , ko jedm k

taj (toraO

m

PROCESSOR #include "p16f

__CONF

org goto Main

rg 0x04 o goto Prekid Main BANK1 movlw b'110 movwf OPTION

TRISA,0 bcf movlw

130

Page 132: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

movw f TRISB ;svi pinovi PORTB su ulazni TION_REG,0

01000' ;uključivanje interrupata: GIE i INTE ON

CON,RBIF ;reset interrupt flag-a RBIF ;ako je prethodno bio setiran)

INTCON,GIE ;setiranje interrupt flag-a ;GIE (ako je prethodno bio resetiran)

;postavlja CPU u stand by mode (može i bez ;toga)

d_by ;kada se dogodi interrupt, pokreće se ovaj ;potprogram

B ;kopira sadržaj PORTB u registar

;ulaz (0x20) call Kontrola ;poziva potprogram koji kontrolira je

;li podatke na PORTB ;ako je RB7 setran, resetira ga (potrebni

;su nam samo podaci RB6:RB0) az ;uzima sadržaj registra Ulaz

;i zbroji ih same sa sobom (množenje sa 2) call Izlaz ;poziva potprogram za Izlaz(upravljanje

;motorom) by ;vraća program iz prekidne rutine

;početak vremenske petlje koja odbrojava 500 ;µs

movlw .135 movwf TMR0 ;upisuje vrijednost .135 u TMR0 Tloop

INTCON,T0IF ;provjerava je li TMR0 prekoračio 255 loop ;ako nije vraća program na Tloop dok

nop ;prazni ciklusi da se dobije na vremenu

jeri se kHz)

A0

;pozivanje Timer podprograma (mjeri se ;vrijeme druge poluperiode freq 1kHz)

Izlaz ;ponavlja ovaj potprogram dok Ulaz ne bude 0 zni, vraća se

, jer nadalje nije ;potreban

bsf OP BANK0 movlw b'100 movwf INTC Stand_by bcf INT bsf

sleep

goto Stan Prekid movfw PORT movwf Ulaz

bcf Ulaz,7

movfw Ul addwf Ulaz,1

goto Stand_ Timer

btfss goto T

;TMR0 ne prekorači bcf INTCON,T0IF ;kada TMR0 prekorači resetira T0IF interrupt

;flag return ;izlazi iz Timer podprograma

Izlaz bsf PORTA,0 ;uključuje relej spojen na RA0 nop

nop nop

call Timer ;pozivanje Timer potprograma (m;vrijeme prve ;poluperiode freq 1

bcf PORTA,0 ;isključuje relej spojen na R nop

call Timer

decfsz Ulaz ;umanjuje sadržaj registra Ulaz za 1 i ;ako registar Ulaz nema vrijednost 0, goto

return ;kada se registar Ulaz ispra ;iz potprograma

Kontrola btfss Ulaz,7 ;ako se prekid nije dogodio na RB7 goto Stand_by ;vraća se u Stand_by bcf Ulaz,7 ;resetira bit 7 registra Ulaz

131

Page 133: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

movf Ulaz btfss STATUS,Z ;ako je sadržaj registra Ulaz 0,

;vraća se iz potprograma Kontrola

end

return goto Stand_by ;u protivnom se vraća u Stand_by

132

Page 134: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

11 Popis pojmova i kratica:

ADC (Analog-to al Converter)- analogno digitalni pretvarač Adresiranje ALU (Arithmetic Logic Unit)- Aritmetičko logička jedinica Analogna veličina Analogno – digitalni pretvarač Algoritam Analogna informacija Arhitektura računala ASCII kod (American Standard Code for Information Interchange)- Američki standardni kod za razmjenu informacija Asinkroni prijenos podataka ASIC (application-specific integrated circuit) B B - Bajt (byte) Binarni podatak b – bit (binary digit) Boolova logika Brojač Bistabil Bit operacije BCF (Bit Clear Function) BSF (Bit Set Function) C CPU (Central Processing Unit)- Centralna procesorska jedinica CRT (Cathode Ray Tube)- Katodna cijev Clock-takt CISC (Complex Instruction Set Computer) CMOS (Complementary Metal Oxide Semiconductor) D DAC (Digital-Dnalog Converter)- Digitalno analogni pretvarač Dekoderi Dinamička greška Digitalni sustav DCE (Data Communications Equipment)-Podatkovna komunikacijska oprema DTE (Data Terminal Equipment)-Podatkovna terminalna oprema DC (Digit Carry) E EEPROM (Electrically Erasable Read-Only Memory) Ekspertni sustavi Električni signali EEDATA registar EEADR registar F FIFO (FIrst in – First out) FPGA (field-programmable gate array) FSR registra G Generator takta Građa računala Greška ponovljivosti GPR (General Purpose Registrers) registri GIE sklopke H Harvard-ska arhitektura

A-Digit

133

Page 135: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

I Indir dresiranje ektno aInstrukcije Instrukcijski registar

grirani sklopovi

istar

a

eme

nt Unit)

line sustavi

p Timer

podataka

ontroleri

cesa puter) računalo nter)-Programsko brojilo

caPORTA

InteINTF (INT External Interrupt Flag) INTCON regINTE (INT External Interrupt Enable) Izlazni sklopovi K Kašnjenje Kodiranje L LSI – komponente Logička jedinica M

morija MeMemorijska jedinicMikroprocesori Mikrokontroleri Mikroračunala Multipleksiranje Mrtvo vrijMrtva zona Međusklop

eMMU (Memory MenagmN Naredba Namjenski registri

egistri Namjenski rO Obrada podataka OffOn line sustavi

ki kod OpreacijsOscilatorski Start-u

OPTION registraOrganizacija memorije OPTION registar P

eleni prijenosParPIC (Programm Interupt Controller) Prijenos podataka

laProcesna računaProcesor Program

amski jeziciProgrPLC programibilni logički kParitetni sklop Paritetni bit PaPC(

rametri proPersonal Com

PC (Program CouPodatkovna sabirniPORTB

rrupts) Prekidi (InteR Radna memorija

ačunalo R

134

Page 136: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

Rezolucija ili razlučivost

puter)

ADA (Supervisory Control And Data Acquisition) adresiranje

rijska komunikacija aka

n Registers)

ta A/D pretvarači

Overflow Interrupt Flag) able)

k Source Select)

trašnja sabirnica

ica rce Edge Select) ock Source Select)

-Privremeni rwgistar

stavica

Registar općenamjene Reset Relativno adresiranjeRS232 RISC (Reduced Instruction Set ComS Sample & Hold sklop Sabirnica SCSegmentnoSenzori SeSerijski prijenos podat

nctioSFR (Special Fubodni brojač Slo

Sigma DelSinkroni prijenos Sigurni brojač Status registar Statička greškaStog (Stack)

Sučelje T

T0IF (TMR0T0IE (TMR0 Overflow Interrupt En

SE (TMR0 Sorce Edge Select) T0T0CS (TMR0 ClocU U/I kanali

ravljačka jedinicaUpUnuUpravljačka sabirnT0SE (TMR0 SoT0CS (TMR0 ClV VLSI tehnologija Vanjska sabirnica W

tchdog timera WaWR (Write Control) WREN (EEPROM Write Enable)

Error Flag) WRERR (EEPROMWR (Work Registar)Z

aZ (Zero) z

135

Page 137: TEHNIČKO VELEUČILIŠTE U ZAGREBU - nastava.tvz.hr · Računalo u procesnoj tehnici može poslužiti samo za njegov nadzor ili za automatsko upravljanje cjelokupnim procesom. Koji

12 Popis korištene literature:

knjiga, Zagreb abro Smiljanić: Osnove digitalnih računala, Školska knjiga, Zagreb, 1990.

čunala i procesi, Školska knjiga, Zagreb, 1991. rundler: Uvod u mikroprocesore, Tehnička knjiga, Zagreb, 1990.

a lak način, Tehnička knjiga, Zagreb,1987. IC Mikrokontroleri, Mikroelektronika, Beograd, 2000. pulsna i digitalna elektronika, Školska knjiga, Zagreb, 1994.

1. Gabro Smiljanić: Mikroračunala, Školska 2. G3. Gabro Smiljanić: Ra4. Darko G5. Zdenek Sobotka: Mikroprocesori i Mikroračunala n6. D. Andrić i N. Matić: P

Szabo, Im7. Aleksandar

136