Mada sam i ja još u dubokoj fazi učenja pokušat ću napisati da svi početnici (kao i ja) shvate i razumiju!
http://img.alibaba.com/photo/11413948/1 ... odules.jpg
to bi bio primjer jednog paralelnog 16x2 LCD-a, još postoje i serijski al oni su kompliciranij i skuplji pa njih odmah zaboravimo
za PBP koriste se LCD-ei koji u sebi koriste HD44780 kontoler, mada ima i drugih koji se mogu koristit (jedan takav je u mene)
http://home.iae.nl/users/pouweha/lcd/lc ... assignment
tu imamo raspored pinova na jednom takvom LCD-u
Kod spajanja LCD-a sa PIC-om, ako koristimo pbp trebamo koristiti odgovarajuće pinove.
Na slici je prikazano spajanje LCD-a i PIC-a:
No spajanje na ovaj način nije nužno mogu se koristiti i drugi pinovi PIC-a ali se onda se moraju definirati pinovi koji se koriste
to bi bilo malo od hardware-skog dijela sada da pređemo na pisanja programa.
za slanje podtaka na LCD koristi se jednostavna naredba LCDOUT.
Ispod imamo tabelu komandi koje se koriste uz naredbu LCDOUT.
KOMANDA OPERACIJA NA DISPLAY-u
$FE,1 obriši displej
$FE,2 vrati se na početak prve linije
$FE,$0C isključi kursor
$FE,$0E uključi underline kursor
$FE,$0F uključi blinkajući kursor
$FE,$10 pomeri kursor u levo za 1 mesto
$FE,$14 pomeri kursor u desno za 1 mesto
$FE,$80 vrati kursor na početak prve linije
$FE,$C0 vrati kursor na početak druge linije
$FE,$94 vrati kursor na početak treće linije (za one displaye koji imaju 3 linije)
$FE,$D4 vrati kursor na početak četvrte linije (za one displaye koji imaju 4 linije)
ove komande pišu se iz LCDOUT!
Code: Select all
LCDOUT $FE, 1 ;briše sve sa LCD-a
Code: Select all
pause 500
LCDOUT $FE, 1 ;briše sve sa LCD-a i inicijelizira ga
Code: Select all
LCDOUT $FE, $C0 ;početak druge linije
neki od načina slanja podataka na LCD:
Code: Select all
LCDOUT $FE, 1, "elektronika.ba" ; ispisuje u prvu liniju elektronika.ba
LCDOUT $FE, $C0, "elktrophreak ; u drugu liniju ispisuje elektrophreak
LCDOUT $FE, i ; ispisuje neku vrijednost koju smo dodjelili i
ako npr. želimo da podatak bude zapisan od pete pozicije u prvom redu koristit ćemo sljedeće:
Code: Select all
LCDOUT $FE, $80+5, "elektro"
da bi vrijednosti neke konstante ili promjenjive na LCD-u predstavili u binearnom obliku koristi se naredba LCDOUT $FE, BIN i
odnosdno da bi bila u heksadekadnom ili dekadnom obliku umjesto BIN koristit će se HEX ili DEC.
ako oćemo npravi ti niz nekog znaka određeni broj puta koristit ćemo REP,
npr. ako želimo da na LCD-u imamo ispisano ***** , naredba bi izgledala LCDOUT $FE, REP "*"\5
znači gdje je "*" upisuje se znak koji se želi ponavaljati i MORA biti pod novodnicima, a 5 predstavlja broj ponvaljanja.
Ovo su bile neke osnovne naznake kod pisanja naredbih za LCD, prilično su jednostavno tako da nebi trebali imati problema sa njima!
Sada ćemo samo pokazati primjer jednog jednostavnog programa koji mjeri frekvenciju na koju dovedemo na željeni ulaz (RB1)
Code: Select all
TRISB.1=1
TRISA=0
BROJ VAR WORD
pause 500
lcdout $FE, 1
POCETAK:
COUNT PORTB.1,1000,BROJ ' broji impulse na pinu RB1, u periodu od 1S i rezultat smesta u "BROJ"
lcdout $FE, $80, "COUNT=", dec broj ; ispisuje na LCD-u COUNT= i broj prikazuje kao decimalnu veličinu
pause 10
GOTO POCETAK
evo i ja sam se nešto potrudio da doprinesem u učenju pbp-a, ako netko vidi neku grešku u ovome napisanome neka rekne pošto sam još uvjke početnik ko što sam već reko!
a i pedja je reko nadopuniti pa eto vjerujem da će on ako bude kakvi greški il slično ispraviti i nadopuniti tekst!
stavit ću još koji program za LCD čim uhvatim još malo vremena!
i još jednom da pohvalim pedju na trudu, tek sam sada vidio šta znači pisat sav ovaj tekst!!