skraceni kurs ucenja picbasica

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

skraceni kurs ucenja picbasica

Post by pedja089 »

e ovako.
posle kraceg razgovora sa @Cojder-om odlucio sam pokusati da napravimo neki kratak kurs o picevima, tj konkretno o njihovom programiranju u pbp-u,tj picbasicu pro.
e sad zanima me koliko ima zainteresovanih i koliko bi to ljudi ozbiljno shvatilo i bilo u tome od samog pocetka?
stoga molim vas glasajte pa da napravimo nesto ako se bude dalo...
ako imate jos neksto sto bi stavili u glasanje pisi te

HAJDE LJUDI BEZ GLUPOSTI AJDE NEK BAR JEDNA STVAR NA FORUMU BUDE ODRADJENA KAKO VALJA. NEMOJTE PISATI GLUPOSTI!!!!!
Last edited by pedja089 on 05-09-2008, 00:07, edited 10 times in total.
Shenda

Post by Shenda »

Ideja za 5 :!:
Cojder
Posts: 16
Joined: 15-07-2007, 11:05

Post by Cojder »

Mislim da je ovo dobro za sve koji zele nesto da nauce,ko hoce moze ko nece barem neka podrzi ideju,mozda se kasnije prikljuci.
User avatar
pejky
Odlično uznapredovao
Odlično uznapredovao
Posts: 701
Joined: 07-01-2006, 21:33
Location: Tuzla
Contact:

Post by pejky »

Dobra ideja, kad sam ja ucio PBP, nije bilo nista kvalitetno na nasem jeziku, tako da podrzavam ovu ideju, da napravimo nesto za one koji su tek posli u ovo ludilo od elektronike i mikrokontrolera :lol:
User avatar
RIDIK
Napredujem
Napredujem
Posts: 125
Joined: 07-05-2008, 18:11

Post by RIDIK »

brilijantna ideja
User avatar
denahv
Pravo sam se raspisao :)
Pravo sam se raspisao :)
Posts: 1190
Joined: 21-10-2007, 19:15
Location: Osijek

Post by denahv »

ideja je dobra samo ja ne znam nista o picevim-a i nisam imao do sada nikakvog iskustva, rado bih naucio nesto novo
User avatar
Dariolo
Odlično uznapredovao
Odlično uznapredovao
Posts: 822
Joined: 24-08-2006, 23:29
Location: Žepče (BiH), Zagreb (HR)

Post by Dariolo »

ideja za 10 evo ja sam prvi kandidat, baš se pripremam na učenje programiranja PIC-eva!

nisam se nikako mogo odlučit za koji jezik i na kraju sa mislio počet sa asamblerom pošto jedino o njemu imam neke dokumentacije na našem!

tako da bi rado učio pbp pošto mi izgleda jednostavnij za naučit, ali što god sam našo na metu bilo je na eng kojeg razumijem prilično, ali opet sa stručnim terminima nisam najbolji!

još jedan kadidat trebo bi se javt :lol: :lol:
User avatar
schumo
Napredujem
Napredujem
Posts: 143
Joined: 24-10-2007, 21:09

Post by schumo »

dariolo ako si mislio na mene ja se slazem sa vama i ideja je za 10. I ja sam se poceo zanimat za piceve al posto nema literature na nasem jeziku pa je melo teze.
Covjek je najsavrsenije bice koje svaka budala moze napravit.
User avatar
MladaNada
Stariji član
Stariji član
Posts: 2529
Joined: 20-05-2006, 14:57
Location: Banja Luka RS , Novi Sad RS , Herceg Novi CG

Post by MladaNada »

Podrzavam u potpunosti. Mogao bi i za assembler kurs napisati, dosadilo mi je svaki put na engleskom citati :)
Ajde mijenjam php i css tutorijale za dobar picbasic tut!
User avatar
Smjesko
Stariji član
Stariji član
Posts: 4012
Joined: 26-12-2005, 17:12

Post by Smjesko »

Takodjer podrzavam Pedjinu zamisao. Podrzat cu je i hardverski, samo da jos neke sitnice pozavrsavam i sve to poslikam. :D
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Post by pedja089 »

ok. ajde za pocetak pribavite svi programatore.
ja vam preporucujem da napravite ponyporog. mozete naci na www.lancos.com.
ili ako vam treba bas nesto jednostavno onda preporucujem da izradite ovo http://www.elektronika.ba/forum/viewtopic.php?t=2725
mislim da jednostavnije ne moze biti.
ovih 13V nije kriticno. bitno je da bude vise od 11V. tako da se moze zakaciti na napajanje od kompijutera.
ili ako neko ne zeli da pravi neka kupi all pic.
samo pozurite jer sam od 15 u ns-u i krecem na fax tako da vremena mnogo necu imati.
a sacu uploadovati na rapid share mcs i pbp i ukratko cu objasniti kako se instalira
User avatar
pejky
Odlično uznapredovao
Odlično uznapredovao
Posts: 701
Joined: 07-01-2006, 21:33
Location: Tuzla
Contact:

Post by pejky »

Ja sam u pocetku koristio JDM prog., pa sam poslje nabavio AllPic od elektronika.rs.ba (mislim da nije puno dati 15e za njega, ko se misli malo vise bavit PIC-evima)
Last edited by pejky on 07-10-2008, 16:10, edited 1 time in total.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Post by pedja089 »

hardverski se pomazite kako znate i umete. za pocetak vam treba pic16F84A, kristal od 4MHZ-a(ili rezonator), stabilizator 7805 ili stabilizirani izvor napajanja na 5V, par ledica, i isto toliko otpornika od 220oma(ili sl 100-1000oma) nekoliko otpornika od 10k, nekoliko tastera, i ne bi lose dosao jedan lcd displej 16x2. i eventualno neka memorija 24c01 ili nesto slicno
e sad kad krenemo trudite se da ne postavljate pitanja ako bas ne morate.
e ovako za pocetak procitajte samo sve naredbe da ih imate u vidu, ne ocekujem da sve naucite zato cemo ici polako...
http://milan.milanovic.org/skola/mikkon/picbas-00.htm
i nemojte kad vidite ovo da kazete ja to znam i da okrenete glavu...
sutra cu vam sastaviti nesto o picu pinovima ulazi izlazi i napajanje itd...
Last edited by pedja089 on 04-09-2008, 00:06, edited 2 times in total.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Post by pedja089 »

http://rapidshare(dot)com/files/142404491/s ... u.rar.html
e ovako. u raru postoje 2 instalacije setup(instalira microcode studio) i pbp 2.44(to je kompajler). ne bitno kojim redom cete instalirati. samo nakon sto oboje instalirate preostaje vam povezati mcs sa kompajlerom.
uputstvo je na slici. znaci samo pokrenite mcs(micro code studio) i pratite uputstva sa slike

http://www.elektronika.ba/forum/uploadz ... titled.GIF

evo jednostavnog napajanja
http://www.elektronika.ba/forum/uploadz ... 088_01.gif
a evo jos jednostavnijeg
http://www.elektronika.ba/forum/uploadz ... titled.GIF
Branez
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 457
Joined: 22-04-2008, 16:27
Location: Maribor(SLO) Koprivnica(HR)
Contact:

Post by Branez »

Nabavio robu, instalirao program i čekam dalje.....

Programator:

http://www.elektronika.ba/forum/uploadz ... amator.gif

Još samo jedna primjedba. možda bi bilo pametnije upotrebljavati PIC16F628 (jeftinije).
Real Radios Glow in the Dark!
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Post by pedja089 »

mislim da on ima interni oscilator pa se onda tu jos dodatno komplikuju stvari.
16f84a nije skup. kod nas je oko 3 eura. pogledaj cenu nekog usb pica pa ces ideti koja je razlika
SAD DA KRENEMO. MALO TEORIJE ZA POCETAK
PIC16F84 ima 18 pinova od kojih čak 13 mogu da se koriste kao I/O linije (I=input - ulaz, O=output - izlaz), ima FLASH programsku memoriju od 1024 reči (svaka je dužine 14 bitova), RAM memoriju od 68 bajtova i 64 bajta internog EEPROM-a. Programska FLASH memorija može da se reprogramira oko 1000 puta i garantovano "cuva" program bar 40 godina. EEPROM može da se reprogramira cak 1 000 000 puta i takodje cuva podatke bar 40 godina. RAM memorije ima više od 68 bajtova, ali je jedan deo rezervisan za registre sa specijalnim funkcijama. Takodje postoji i STACK od 8 nivoa; STACK je, ukratko, neka vrsta skladišta za memorijsku adresu na koju program treba da se vrati nakon poziva potprograma, a takvih ugnježdenih poziva može da bude maksimalno 8, što je i više nego dovoljno za mikrokontroler sa ovakvim performansama. Napon napajanja se kreće od 2 do 6 V, a potrošnja je manja od 2 mA pri napajanju od 5V i taktu od 4MHz. Potrošnja pri 2 V i taktu od 32kHz je oko 15 uA (mikroampera), a kada je u SLEEP modu pri 2V pada ispod 1uA. Što se tice takta, on može da ide od 0 do 20 MHz; prvo su postojale dve verzije IC-a, do 4 i do 10MHz, ali se nedavno pojavila i verzija do 20 MHz. Arhitektura je RISC tipa (reduced instruction set) što znači da ima malo instrukcija (svega 35), ali se izvršavaju maksimalno brzo.

RASPORED I FUNKCIJA PINOVA
Image
pin 1 = RA2, I/O linija porta A, TTL tipa.

pin 2 = RA3, I/O linija porta A, TTL tipa

pin 3 = RA4/TOCKI, I/O linija porta A, takodje služi kao ulaz do TMR0 brojača. Kada je I, onda je ST tipa (schmitt trigger), a kada je O, onda je open- drain.

pin 4 = inv. MCLR (invertovan MCLR, obeležava se i sa -MCLR), reset pin (reset kada je na niskom nivou) ili se dovodi napon programiranja.

pin 5 = masa napajanja.

pin 6 = RB0/INT, I/O linija porta B, ili izvor spoljnog interapta, TTL/ST (ST kada je ulaz za interapt).

pin 7 = RB1, I/O linija porta B, TTL tipa.

pin 8 = RB2, I/O linija porta B, TTL tipa.

pin 9 = RB3, I/O linija porta B, TTL tipa.

pin 10 = RB4, I/O linija porta B, takodje izvor interapta pri promeni nivoa, TTL tipa.

pin 11 = RB5, I/O linija porta B, izvor interapta pri promeni nivoa, TTL tipa.

pin 12 = RB6, I/O linija porta B, izvor interapta pri promeni nivoa, takt pri programiranju, TTL/ST (ST pri programiranju).

pin 13 = RB7, I/O linija porta B, izvor interapta pri promeni nivoa, podaci pri programiranju, TTL/ST (ST pri programiranju).

pin 14 = pozitivan pol napajanja.

pin 15 = OSC2/CLKOUT, spaja se na jedan kraj kristala, a ako se koristi RC ocilator, na ovom pinu se pojavljuje 1/4 frekvence oscilatora.

pin 16 = OSC1/CLKIN, spaja se jedan kraj kristala, ili RC, ili se dovodi spoljni takt, ST/CMOS tipa (ST kod RC oscilatora).

pin 17 = RA0, I/O linija porta A, TTL tipa.

pin 18 = RA1, I/O linija porta A, TTL tipa

Opis registara sa specijalnim funkcijama

Na adresi 00h nalazi se registar sa imenom INDF; to nije fizički registar već se koristi za indirektno adresiranje u sprezi sa
registrom SFR za indirektno adresiranje.
01h - TMR0, 8-bitni brojač/sat realnog vremena
02h - PCL, niski bajt PC-a (program counter-a)
03h - STATUS, sadrži bitove koji označavaju stanje aritmetičko-logičke jedinice (ALU), RESET status, i bitove za
adresiranje viših lokacija RAM-a.
04h - FSR, pointer za indirektno adresiranje RAM memorije
05h - PORTA, to su, u stvari, pinovi porta A
06h - PORTB, pinovi porta B
07h - ne koristi se
08h - EEDATA, registar podataka za EEPROM
09h - EEADR, registar adrese za EEPROM
0Ah - PCLATH, visoki bajt PC-a
0Bh - INTCON, registar za kontrolu interapta
80h - INDF, isto kao 00h
81h - OPTION, upravljački registar za preskaler, spoljni interapt, TMR0 i pull- up otpornike na portu B
82h - PCL, kao 02h
83h - STATUS, kao 03h
84h - FSR, kao 04h
85h - TRISA, registar za definisanje smera (ulaz ili izlaz) pinova na portu A
86h - TRISB, registar za definisanje smera pinova na portu B
87h - ne korisiti se
88h - EECON1, upravljački registar za rad sa EEPROM-om
89h - EECON2, drugi upravljački registar (nije fizički registar)
8Ah - PCLATH, kao 0Ah
8Bh - INTCON, kao 0Bh
detaljan opis svih registara mozete naci na linku
ovde cemo se samo pozabaviti sledecim registrima TRIS,PORT, i OPTION registrom(OPTION_REG je ime u picbasicu)
pa sad da krenemo redom.
REGISTRI TRISA I TRISB. pomocu ovih registara odredjujemo dali je neki pin ulazni ili izlazni.
oba registra su osmobitna.

http://www.elektronika.ba/forum/uploadz ... _TRISB.gif

posto porta ima samo 5 pinova na ovom kontroleru a registar je osmobitno, onda se koristi nizih 5 bita, a poslednja 3 biota se zanemaruju i ne bitno je dali su postavljeni na 0 ili 1.
koriscenje ovih registara bice kasnije objasnjeno na primeru.

REGISTRI PORTA I PORTB ovi registri sluze citanje/postavljanje stanja na pinovima.
ako su tris registri postavljeni kao izlazni onda se stanje sa port registra "preslikava" na pinove. sto znaci ako je neki bit u registru na 0 onda je i na tom pinu 0, a ako je u registru neki bit na 1 onda je na tom pinu logicka jednica tj 5V.
a ako je tris postavljen kao ulazni oda ce se u port registae upisati stanje sa pina. ako je na pinu 0V onda se u registar upisuje 0, a ako je na pinu 5V onda se u registar upisuje 1. postoji mogucnost pristupa pojedinacnom bitu u port registru. a to se vrsi na sledeci nacin: biti su obelezeni od 0 do 7. i ako hocemo da pristupimo npr 5 bitu registra portb i da ga postavimo na 0 napisacemmo portb.5=0 ili ako hocemo da ga iscitamo u neki promenljivu A napisacemo A=portb.5

OPTION REGISTAR(OPTION_REG) nas konkretno zanima sedmi bit ovog registra. sedmi bit upravlja pulluup-om na portub.
stoga ako nam je potreban pull up na nekom ulaznom pinu umesto da ubacujemo otpornik dovoljno je samo postaviti sedmi bit option_reg na nulu. i imacemu pull up na svim ulaznim pinovima na portub. to je moguce uraditi na dva nacina
prvi OPTION_REG.7=0, ovako pristupamo samo sedmom bitu i postavljamo ga na nulu.
drugi nacin LOW OPTION_REG.7 ovde koristimo naredbu LOW koja postavlja vrednost na nulu.
o vrstama oscilatora ako hocete procitajte na linku
mi cemo ovde koristiti samo xt oscilator
mislim da je ovo za pocetak sasvim dovoljno.
pitajte ako vam nesto nije jasno, ali nemojte glupostim da pitate. mislim da je text dosta razumljiv.
i ako ste ovo savladali mogli bi polako krenuti na pisanje programa u pbp
User avatar
ShOkRe
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 468
Joined: 10-01-2007, 20:55
Location: Pula

Post by ShOkRe »

ma i ja se slazem da je 628A bolja stvar, pa samim tim sto ima interni oscilator imas 2 noge vise na raspolaganju i jedan element manje na ploči i za kupovanje (kristal)...
isto tako svakako big podvukao da je integrirani usart, analogija, komparatori, pwm, naprednija arhitektura, bolja cijena, više memorije, napredniji fuseovi, relativno kompatibilan sa 84, mogučnost da ugasiš mclr i koristiš kao Input nogu, i još štosta, su dobar razlog da se koristi ba ovaj procesor....
npr netko bi pisao subrutunu koja ce po dolasku karaktera u usart generirati interupt obraditi se i nastaviti raditi sto je radila prije, to je sa 84-kom nemoguče.....
jedini je bed malo se naučiti oko tricky komparatora (znati ih ugasiti :-)
kao i startati interni osc, ali to je sve, ....ozbiljno....

ovo sa 84-kom je obsolate...

evo ja mozda uskocim koji put s kojim rijesenjem, ali sam dosta zauzet....

sto se tice programatora :-).... uvjek isti komentari :-) wisp ili icd2-usb moj izbor, ali mcs+ ima bootloadere za dosta piceva nema za 628 ali ima za 877 ili za 16f88(koji je mladji brat 84-ke (čitaj močniji)te isto nije mozda loš odabir za učenje)

ali zasto sam spomenuo bootloader, zato jer jednom ga nafrljis u pic i kasnije programator netrebas, programira sam sebe kroz serial port preko pc-a, treba samo jedan max232 i komadič žice :-)

a najljepša je stavr za početnike i ljude koji zele shvatiti kako izgleda kod koji se vrti i kako jse vrti jednom isprogramirn, i sto je najbitnije gdje kod grijesi.... to se odlično može raditi ICD in circuit dbugerom koji je opet integriran u ovom kompletu/spoju PC(mcs+)-max232-PIC(sabootloaderom)

http://www.mecanique.co.uk/code-studio/ ... mation.gif

hm, moram priznati da nisam bas procitao sve u postovoma, sori ako sam ponovio sto je vec neko napisao :-P
User avatar
alexa_pg
Pravo sam se raspisao :)
Pravo sam se raspisao :)
Posts: 1248
Joined: 11-03-2005, 22:21
Location: Podgorica

Post by alexa_pg »

@ShOkRe
Uz svo uvazavanje tvoje diskusije nemoj sad da raspravljamo sta je bolje. Sad bi jos neko trebao da mudruje "zasto ne atmel.." i prici nikad kraja. @pedja089 se prihvatio da odrzi kratak kurs picbasica i dozvolimo mu da to sprovede u delo. Ko ovo zna, ne mora da prati i nek ne ometa. Kad se "ovaj cas" zavrsi rado cu (cemo) saslusati i ostale casove drugih "predavaca" a i tvoj ako si voljan da ga odrzis.
PS. Molba za moderatore. Iz ove teme brisite suvisne komentare ukljucujuci i ovo moje piskaranje.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Post by pedja089 »

nek stoji. nije nista pogresno receno. samo ja sa ovim nameravam da vas uvedem u pbp a dalje cete morati sami...
ja cu se potruditi da vam objasnim sve do seriske komunikacije sa racunarom. a ako bude vremena i interesovanja onda cemo i to...
e sad ako moze ja bih nastavio sa pisanjem prvog programa koji ce konrolisati leducu na jednom pinu.
morate mi samo reci kad da idem dalje, jer ne bi voleo da se vracam ponovo na ovaj uvod kasnije, zato ako imate nesto da pitate pitajte, ako ne onda pisite da idem dalje
User avatar
Dariolo
Odlično uznapredovao
Odlično uznapredovao
Posts: 822
Joined: 24-08-2006, 23:29
Location: Žepče (BiH), Zagreb (HR)

Post by Dariolo »

što se tiče mene možemo nastaviti, prokužio sam ove naredbe pogledo sam i neke source codove tako da sam nešto skužio!

nisam mogo nabavit ovaj kristal tako brzo, jel mogu koristiti neki RC rezonator?

PS. Svaka čast na trudu :wink: :wink:
Post Reply