TUTORIAL: Osnovno o Bascom-u te osnovni spojevi MC-a....

Diskusija o MSP, ARM / LPC, PLC kontrolerima.

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
Tr4ck
Posts: 6
Joined: 17-06-2009, 19:17
Location: Valpovo

TUTORIAL: Osnovno o Bascom-u te osnovni spojevi MC-a....

Post by Tr4ck »

Bascom je programski alat koji sluzi za programiranje mikroupravljaca.
Postoje tri inačice ovog programa:
- BascomLT (za porodicu 8051)
- Bascom 8051 (za porodicu 8051)
- Bascom AVR (za porodicu AVR)
Postujuci razlike u arhitekturi mikrokontrolera iz ove dvije porodice, sva tri jezika su u osnovi vrlo slicna. "Podloga" je klasicni Basic, na ciju strukturu je nadogradjena podrska za rad s mikrokontrolerima tj. naredbe ili funkcije koje konfiguriraju i aktiviraju pojedine sklopove mikrokontrolera. Programeru je citava arhitektura mikroprocesora vidljiva preko simbolickih naziva, kao da se radi o "obicnim" programskim varijablama. To bitno pojednostavljuje kako programiranje, tako i razumijevanje nacina rada ovih prilicno slozenih sklopova. Bascom kao razvojni alat, pored samog programskog jezika, sadrzi i simulator te programsko sucelje. Tako se citav razvoj, od programiranja, preko provjere u simulatoru do prenosenja gotovog programa u mikrokontroler, obavlja iz iste radne okoline.
Besplatne demo verzije ovih programa mozete skinuti s interneta. Demo programi sadrze iste opcije kao i licencirani programi, jedino im je kapacitet ogranicen na 2 kB. To je vise nego dovoljno za upoznavanje s mikrokontrolerima i Bascom-om pa i za razvoj jednostavnijih projekata. Evo par slika da vidite vizualno kako izgleda bascom.

http://i43.tinypic.com/d43eu.jpg" onclick="window.open(this.href);return false;
BASCOM radna okolina…..

http://i42.tinypic.com/2j4btdf.jpg" onclick="window.open(this.href);return false;
BASCOM simulator……

http://i44.tinypic.com/2zjdst3.jpg" onclick="window.open(this.href);return false;
Rad sa programatorom u BASCOM-u....

http://i42.tinypic.com/28h0qar.jpg" onclick="window.open(this.href);return false;
Slika programatora PG-302....

Ovo su bile neke slike da vidite kako to zapravo izgleda. Sada cu malo objasniti neke osnovne spojeve sa nekim komponentama koji se upotrebljavaju za spoj sa MC-ima. (u nasem primjerima ce se naci MC AT89Cxx)





Prvi i osnovni: Osnovi izlazni spoj

http://i41.tinypic.com/2nhni1v.jpg" onclick="window.open(this.href);return false;
Ovako izgleda shema tog spoja......

Trosila se kod mikrokontrolera iz porodice 8051 spajaju uvijek izmedu izlaznog prikljucka i + pola napajanja. Naglasimo da struja tece kroz trosilo kada je izlaz u stanju "0", a ne u stanju "1" kako bismo mozda ocekivali. Otpor trosila treba biti toliki da kroz izlazni pin ne tece veca struja od 25 mA (AT89C2051) odnosno 15 mA (AT89C51). Iz sigurnosnih razloga struju je pozeljno ograniciti na 10-12 mA. To ce biti dovoljno da svijetleca dioda svijetii punim sjajem pa cak i za ukljucenje manjih releja, ali nece biti dovoljno za ukljucenje klasicnih releja, motora ili drugih vecih trosila. Tu si mozemo pomci ako povezemo nekoliko izlaznih prikljucaka paralelno i zatim na njih vezemo trosilo, dakako, opet prema + polu napajanja. U primjeru koji slijedi to smo ucinili s pinovima P1.3 do P1.0 pa mozemo ukljucivati trosila od 50 i vise mA. Primjer sa programom.

http://i41.tinypic.com/2vki495.jpg" onclick="window.open(this.href);return false;

Primjetimo ovdje da zbog naredbi And i Or ostali pinovi porta P1 nisu mijenjani i mogu se iskoristiti kao ulazi ili kao izlazi. Sto ce se dogoditi ako sve paralelno spojene izlaze ne postavimo istovremeno u isto stanje? Tada ce trosilo biti ukljuceno ako je barem jedan od izlaza u stanju "0", sto ce eventualno izazvati preopterecenje tog izlaza; sve dok je struja trosila unutar dozvoljcnih granica, nece se dogoditi nista lose.




Drugi spoj: Spojevi sa tranzistorima

Izlaze mikrokontrolera mozemo "pojacati" upotrebom razlicitih tipova tranzistora. Trosilo na slici "2a" je relej, a na svim ostalim slikama je prikazano opcenito kao otpornik Rt. Primijetimo da je trosilo na slikama "2a" i "2c" ukljuceno kada je iz1az u stanju "0" a na slikama "2b" i "2d" kada je izlaz u stanju "1". Spojevi prema slikama "2b" i "2d" su zanimljivi po tome sto se napon napajanja trosila +U moze razlikovati od napona napajanja mikrokontrolera (najcesce +5V). Vanjski pull-up otpornik je nuzan samo kada koristimo NPN tranzistor i njegov otpor treba odrediti prema potrebnoj baznoj struji. Npr. ako kroz trosilo prolazi struja od 100 mA i ako je strujno pojacanje tranzistora 200, bit ce nam potrebna bazna struja od 0,5 mA ili veca. Odaberemo li Rl = 4K7 bazna struja ce iznositi nesto manje od 1 mA. Tako je isto i za R2 u spoju sa PNP tranzistorom. Za vece struje mozemo upotrijebiti i snaznije, BD tranzistore. U ovom slucaju svakako preporucam upotrebu Darlingtonov spoj tranzistora velikog strujnog pojacanja kako potrebna bazna struja ne bi prelazila 5-10 mA. Za razliku od bipolarnih tranzistora, MOS tranzistori (2c, 2d) su naponski upravljani i bolje se "slazu" s izlazima mikrokontrolera. Ovdje nam u pravilu nisu potrebni pull-up otpornici Rl, osim ako ne koristimo neki od pinova bez internih pull-upa. Prikazani tranzistori male snage (BS170, BS250) ce u nasem slucaju zadovoljiti jer im je maksimalna dozvoljena struja 500 mA (BS170) odnosno 250 mA (BS250). Kod nekih snaznijih MOS tranzistora (npr. BUZxx) moze se pojaviti problem preniskog pobudnog napona - pojedini primjerci se nedovoljno otvore pri +5V i tu nikakav pull-up nece moci pomoci. To sto mikroprocesorske pinove mozemo koristiti kao ulaze ili izlaze bez posebne konfiguracijske naredbe, moze ponekad izazvati neocekivane efekte. Evo par slika sa shemama:

http://i40.tinypic.com/lllk2.jpg" onclick="window.open(this.href);return false;

http://i41.tinypic.com/2ivgnsz.jpg" onclick="window.open(this.href);return false;

http://i40.tinypic.com/2vrwg77.jpg" onclick="window.open(this.href);return false;

http://i40.tinypic.com/236810.jpg" onclick="window.open(this.href);return false;





Spoj 2 mikrokontrolera:

Dva mikrokontrolera mozemo povezati na razlicite nacine, neki od njih su Shiftin i Shiftout nacini. Ovdje predlazem koristenje mogucnosti serijske komunikacije zato sto nam je za povezivanje tada potrebno samo jedan vod (i zajednidka masa naravno), a sve potrebne naredbe imamo u Bascomu. Na ovoj slici je prikazan malo slozeniji spoj, no tu smo predvidjeli mogucnost dvosmjerne komunikacije: ako jedan od mikrokontrolera samo salje, a drugi samo prima podatke, jednu od Tx-Rx veza mozemo izostaviti. Na slici je takoder prikazana mogucnost da oba mikrokontrolera koriste samo jedan kristal kvarca, u tom slucaju spajamo na jedan mikrokontroler na standardan nacin a njegov XTAL2 prikljucak spajamo s XTAL1 prikljuckom drugog MC-a. (mozemo vidjeti na slici tockastu vezu)

http://i42.tinypic.com/if7v54.jpg" onclick="window.open(this.href);return false;
Slika: Nacin spajanja preko serijske sabirnice......

Na predajnoj strani (TX) podatke saljemo na sljedeci nacin:

http://i43.tinypic.com/e99r11.jpg" onclick="window.open(this.href);return false;

Na prijemnoj strani mozemo koristiti dvije naredbe, Inkey i Waitkey. Waitkey zadrzava izvrsenje programa dok ne primi znak po serijskoj liniji (Rx ulaz) i moze primiti svih 256 kombinacija (1 byte = 8 bitova = 256 kombinacija). Inkey ce nastaviti izvrsenje programa, a u slucaju da nije primljen nikakav znak, vratit ce vrijednost 0; zbog toga kod primitka 0 nismo sigurni je li upravo taj podatak primljen ili nije doslo nista. Uvazivsi ove specificnosti obje narebe mozemo korisno primijeniti, npr:

http://i40.tinypic.com/t6bgcn.jpg" onclick="window.open(this.href);return false;

Bitna je pretpostavka da bi ovaj nacin veze funkcionirao da oba programa imaju postavljenu istu brzinu prijenosa (naredbe $crystal i $baud nisu prikazane na prijemnoj strani, ali su nuzno iste u oba programa). Moguce je ici do 19200 bauda, no moguce je koristiti i vece brzine; naravno, na obje strane treba uspostaviti odredeni protokol kako bi prijemna strana "znala" koliko znakova predajna strana salje.
Osim pomocu Inkey i Waitkey prihvat podatka mozemo obaviti i aktiviranjem serijske prekidne rutine. Takav pristup omogucuje da mikrokontroler cekajuc poruku s drugog mikrokonlrolera obavlja neki koristan posao, ali zahtijeva poznavanje rada s prekidima. Serijsku komunikaciju mozemo, osim za razmjenu podataka izmedu dvaju mikrokontrolera, iskoristiti npr. za povezivanje mikrokontrolera i PC-a i sl. nacina.




Spajanje alfanumerickog LCD display-a:

Alfanumericke display-e cesto koristimo u mikrokontrolerskim projektima. Bez obzira na izvedbu (1, 2 ili 4 retka te 16, 20 ili 40 znakova u redku), raspored prikljucaka i nacin spajanja su isti: pored 8 data bitova (D7-D0) tu su jos tri kontrolna signala: ENA, R/W i RS. R/W obicno fiksno vezemo na masu (na disply samo pisemo), a zbog ustede broja linija display najcesce koristimo u 4-bitnom modu (koriste se samo D7-D4). Upravo ovakav spoj je prikazan na donjoj slici.

http://i41.tinypic.com/23ma05.jpg" onclick="window.open(this.href);return false;
Slika prikazuje MC spojen na AN LCD modul.....

Mikrokontroler hardverski upravlja radom display-a postavljanjem kontrolnih signala (ENA, RS), a softverski instrukcijama i podacima na sabirnici (D7-D4). U Bascomu nam na raspolaganju stoji dvadesetak naredbi za konfiguriranje display-a, adresiranje, ispis, pomak teksta i sl.



Upravljanje sa DC motorom:

Mikrokontroler ne moze direktno pokretati motor jer tipicni mali DC motor radi sa strujama od 100 i vise mA. Moguce je izraditi prilagodni sklop s tranzistorima na osnovu slika 2a - 2d, (slike mozete pronaci pod naslovom "spojevi sa tranzistorima") no najbolje je rjesenje ako za pobudu motora upotrijebimo specijalne tranzistore, za tu namjenu projektirane integrirane krugove. Jedan takav IC, L272M, upotrijebljen je u primjeru na slici. L272M se u principu sastoji od 2 operacijska pojacala sa snaznim izlaznim stupnjem.

http://i39.tinypic.com/259vn08.jpg" onclick="window.open(this.href);return false;
MC upravlja radom DC motora......

Uz pobudu motora on vrsi i potrebnu konverziju nivoa (+U napon kojim se napaja DC motor je obicno visi od napona napajanja mikrokontrolera). U tu svrhu su postavljeni otpornici R1 i R2 koji postavljaju referentni napon na "-" ulazima otprilike na polovinu napona kojim se napaja mikrokontroler. Nacin upravljanja radom motora je sljedeci:

- ako su oba kontrolna prikljucka, Px.a i Px.b, na niskom nivou (ili na visokom nivou), motor je iskljucen

- ako Px.a = "1" i Px.b = "0", motor se vrti u jednom smjeru (npr. desno)

- ako Px.a = "0" i Px.b = "1", motor se vrti u drugom smjeru (lijevo)



Ovo bi bilo sve za pocetak o osnovnim spajanjima.
btw. malo se slabije vide naredbe iz bascoma posto je to SS.... :ohno:



Tutorial by: Tr4ck
- zabranjeno je svako c/p tutoriala bez moje odluke….

Administrator edit: Izvor teksta: http://www.ad-electronic.hr/web/bascom/o_bascomu.htm
User avatar
rajac
Napredujem
Napredujem
Posts: 129
Joined: 11-03-2009, 19:01

Re: TUTORIAL: Osnovno o Bascom-u te osnovni spojevi MC-a....

Post by rajac »

http://www.ad-electronic.hr/web/bascom/o_bascomu.htm" onclick="window.open(this.href);return false;

Evo tuži ove iz AD-electronic-a,ukrali ti tvoj tutorijal. :wink:
Tr4ck
Posts: 6
Joined: 17-06-2009, 19:17
Location: Valpovo

Re: TUTORIAL: Osnovno o Bascom-u te osnovni spojevi MC-a....

Post by Tr4ck »

hehe da....samo ja sam dodao jos neke stvari za koje mislim da bih bilo dobro da se stave tj dodaju.... :D
btw. neznam zasto nisu cijeli tut c/p.....xD :P
User avatar
rajac
Napredujem
Napredujem
Posts: 129
Joined: 11-03-2009, 19:01

Re: TUTORIAL: Osnovno o Bascom-u te osnovni spojevi MC-a....

Post by rajac »

Samo je pitanje kako su to oni uspjeli kopirati kad to stoji već godinama na njihovoj stranici? :lol: :lol:
Tr4ck
Posts: 6
Joined: 17-06-2009, 19:17
Location: Valpovo

Re: TUTORIAL: Osnovno o Bascom-u te osnovni spojevi MC-a....

Post by Tr4ck »

lol....pa znam, salio sam se....
i osim toga sto da ja pisem o bascomu kad sve potrebno vec pise negdje a da sam stavio samo spojeve vecina bih pitala a sto je to bascom i postavljala sl. pitanja.....pa sam zbog toga c/p to..
Post Reply