Namjeravam napraviti sklop s 3 gumba, pritiskom na svaki gumb na LCD-u (HD 44780) će se pokazati drugi tekst. Našao sam dosta primjera na internetu o tome kako da LCD ispiše tekst, ali ne kako spojiti LCD i PIC.
Ako bi mi netko mogao pomoći bio bih zahvalan.
Što se tiće sheme:
R1,R2 - 820 Oma
X - 4 MHz
C1,C2 - 22 pF
PIC 16F84
HD 44780
RB0,RB1 i RB2 će biti definirani kao INPUT portovi.
Hvala unaprijed!
LCD
Moderators: pedja089, stojke369, [eDo], trax
- sindja1204
- Odlično uznapredovao
- Posts: 792
- Joined: 03-05-2009, 11:57
- Location: Beograd
Re: LCD
http://www.elektronika.ba/forum/uploadz ... _i_pic.JPG" onclick="window.open(this.href);return false;
DEFINE LCD_BITS 4 'bira se da li lcd radi u 4 bitnom ili 8 bitnom modu
DEFINE LCD_DREG PORTB 'bira se port na koji su zakaceni data biti(d4-d7)
DEFINE LCD_DBIT 0 'pocetni bit data porta. 0 ili 4. ako je postavljen na 0 onda se d4 spaja na rb0,d5-rb1, d6-rb2, d7-rb3,
a ako je postavljen na 4 d4 se spaja na rb4 itd..
DEFINE LCD_RSREG PORTB 'port na koji je zakacena linija RS
DEFINE LCD_RSBIT 4 'bit porta na kome je zakacena linija RS. u ovom slucaju je zakacena na RB4
DEFINE LCD_EREG PORTB 'port na kome je zakacena E linija displeja
DEFINE LCD_EBIT 3 'bit porta na kome je zakacena E linija.
DEFINE LCD_RWREG PORTE 'podesavanje sa RW liniju. mada ovo se ne ubacuje jer se RW vezuje na masu. i time je odabran upis podataka u displej.
DEFINE LCD_RWBIT 2 'RW bit
DEFINE LCD_LINES 2 'broj linija displeja. 1,2,4
Kod je pisan za pic 16F877A. Ako koristis drugi pic promeni portove u DEFINE LCD_OUT ...... i izbaci naredu ADCON1=$00 posto za pic 16f84a nije potrebna, a ako koristis 16f628a ubaci naredbu CMCON=7 i u svakom slucaju procitaj pedjin kurs.
DEFINE LCD_BITS 4 'bira se da li lcd radi u 4 bitnom ili 8 bitnom modu
DEFINE LCD_DREG PORTB 'bira se port na koji su zakaceni data biti(d4-d7)
DEFINE LCD_DBIT 0 'pocetni bit data porta. 0 ili 4. ako je postavljen na 0 onda se d4 spaja na rb0,d5-rb1, d6-rb2, d7-rb3,
a ako je postavljen na 4 d4 se spaja na rb4 itd..
DEFINE LCD_RSREG PORTB 'port na koji je zakacena linija RS
DEFINE LCD_RSBIT 4 'bit porta na kome je zakacena linija RS. u ovom slucaju je zakacena na RB4
DEFINE LCD_EREG PORTB 'port na kome je zakacena E linija displeja
DEFINE LCD_EBIT 3 'bit porta na kome je zakacena E linija.
DEFINE LCD_RWREG PORTE 'podesavanje sa RW liniju. mada ovo se ne ubacuje jer se RW vezuje na masu. i time je odabran upis podataka u displej.
DEFINE LCD_RWBIT 2 'RW bit
DEFINE LCD_LINES 2 'broj linija displeja. 1,2,4
Code: Select all
DEFINE LCD_DREG PORTD 'I/O port na kome se nalazi LCD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 2 'Register select pin
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3 'Enable pin
DEFINE LCD_BITS 4 '4-bitni data bus
DEFINE LCD_LINES 2 'LCD ima dva reda karaktera
B0 Var byte 'Promenljiva koju koristi BUTTON
Symbol T1 = PORTA.2 'Taster T1
Symbol T2 = PORTA.1 'Taster T2
Symbol T3 = PORTA.0 'Taster T3
Lcdout $fe, 1, " BUTTON" 'Ispisi SVOJ TEKST
Lcdout $fe, $C0, " program " 'Ispisi SVOJ TEKST
Pause 2000
ADCON1=$00
Pocetak:
B0 = 0
button T1,0,255,0,B0,1,Tekst1
B0 = 0
button T2,0,255,0,B0,1,Tekst2
B0 = 0
button T3,0,255,0,B0,1,Tekst3
Goto pocetak
'--------Podprogram za prikaz prvog teksta-------
Tekst1:
Lcdout $fe, $C0, "TEKST A" ' UPISI TEKST
Pause 2000
Return
'--------Podprogram za prikaz drugog teksta-------
Tekst2:
Lcdout $fe, $C0, "TEKST B" 'UPISTI TEKST
Pause 2000
Return
'--------Podprogram za prikaz treceg teksta-------
Tekst3:
Lcdout $fe, $C0, "TEKST C" 'UPISTI TEKST
Pause 2000
Return
End