posto vidim da su svi glasovi za dalje i nema potrebe za zadrzavanjem, hajde da krenemo.
prvi program neka bude prgram za obicnu ledicu koja treperi.
sema:
milsim da je sema prosta tako da nema potrebe posebno je komentarisati
prvo sto treba da uradite e da izaberete 16F84A
kao sto je na slici
kada ste izabrali pic vreme je da se krene sa pisanjem
prvo sto treba uraditi je postaviti portb.7 kao izlaz.
to se moze raditi na vise nacina, jedan od nacina je pomocu tris registra.
evo kako bi to izgledalo
TRISB=%01111111(u pbp kada se stavi znak % to znaci da sledi broj ubinarnom zapisu)
ovako su svi pinovi postavljeni kao ulazni sem najviseg bita. kao sto se vidi iz primera rb7 je prvi bit, pa za njim dolazi rb6 itd sve do rb0 koji je najnizi tj krajnji desni bit.
drugi nacin za postavljanje pina kao izlaznog je koriscenje naredbe OUTPUT
ova naredba se koristi tako sto se posle nje napise pin koji zelimo proglasiti izlazom, ili cak ceo port.
npr ako napisemo OUTPUT PORTB tada cemo ceo portb proglasiti izlaznim
a ako napisemo OUTPUT PORTB.7 tada cemo samo rb7 proglasiti izlazom a ostali pinovi ce ostati nepromenjeni.
naredba za postavljanje pina kao ulazni je INPUT i sa njom cemo se pozabaviti kasnije...
sledeca naredba koja ce nam trebati je PAUSE
mislim da se ovde nema sta posebno reci sem da je maksimalna vrednost pauze 65,535 ms
pauza se koristi tako sto se napise PAUSE 50, to znaci da ce pic apraviti pauzu od 50ms. slicna naredba je PAUSEUS. na isti nacin se koristi, samo je za odabir duzine potrebno pogledati tabelu koja se nalazi u help fajlu.
naredbe HIGH i LOW su nam potrebne da bi menjali stanje na odredjenom pinu ili portu.
koriste se tako sto se napise HIGH pa pin ili port
u nasem slucaju HIGH PORTB.7
na isti nacin se koristi i naredba LOW
drugi nacin za menjanje stanja na portu je da napisemo PORTB.7=1 ili PORTB.7=0 ovo je ekvivalentno naredbama HIGH i LOW
e sada nam ostaje sve ovo sloziti u program
i sada nam je ostala jos jedna naredba GOSUB
ona se koristi da bi program skocio na neku labelu.
najlakse cete razumeti na primeru
i ostaje nam jos SYMBOL
ova naredba nije potrebna ali je zgodna.
sa njom mozemo dati ime nekom pinu.
npr ako napisemo SYMBOL LED=PORTB.7
u daljem programu necemo morati pisati portb.7 nego je dovoljno napisati led.
napomene: u toku pisanja programa kada zelimo da komentarisemo neki red stavi se znak ' i posle tog znaka u redu je komentar i on ne ulazi u program.
postoji jedna dosta zgodna stvar koja dosta olaksava posao.
a to je kada u toku pisanja programa ne mozemo necega da se setimo dovoljno je postaviti kursor na naredbu i stisnuti F1, tada se otvara help i odmah prikazuje pomoc oko te naredbe.
npr ako napisemo LOW i stavimo kursor na njega dobicemo opis te naredbe
evo kako bi izgledao program:
Code: Select all
OUTPUT PORTB.7 'proglasavamo portb izlaznim
pocetak: ' ovo je labela sa nazivom pocetak
HIGH PORTB.7 ' ovim smo postavili rb7 na logicku 1(5V)
PAUSE 1000 'sada cekamo jednu sekundu
LOW PORTB.7 'sada postavimo rb7 na 0 tj na 0V
PAUSE 1000 'opet cekamo
GOTO POCETAK 'ovom naredbom kazemo da se program vrati na pocetak i da se tako vrti u krog do beskonacnosti
END 'stavljamo na kraj programa, nije obbavezan
kompajliranje se moze izvesti na 3 nacina,pritiskom na taster 'F9' ili kao sto je pokazano na slici:
http://www.elektronika.ba/forum/uploadz ... titled.GIF
a sad evo isti program samo kada se koristi SYMBOL
Code: Select all
SYMBOL LED= PORTB.7
OUTPUT LED
pocetak:
HIGH LED
PAUSE 1000
LOW LED
PAUSE 1000
GOTO POCETAK
END
i sada kada to sklopite i upisete program u pic imate ledicu koja treperi
sad bih voleo da se vi potrudite pa napravite da se dve ledice naizmenicno pale i gas, kao svetla na rampama znaci vi crtate semu i vi pisete program.
pa ko prvi uradi to, i isproba neka uslika, po mogucnosti i snimi pa da vidimo svi kako mu to radi. e sad majstori lemilice u ruke i na posao
naravno ako ima pitanja pitajte.
e sad vidoh da nisam prokomentarisa tipku reset. o njoj ne treba nista posebno reci. kada se tipka stisne pic se resetuje i program krece ispocetka. tj kada je na pinu mclr logicka nula tada je reset aktivan. kada je logicka jedinica tada pic normalno radi