BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   16f876 e display lcd (GDM1602K) (https://www.baronerosso.it/forum/circuiti-elettronici/52271-16f876-e-display-lcd-gdm1602k.html)

angelole 13 aprile 07 11:27

16f876 e display lcd (GDM1602K)
 
Salve,
ho acquistato di recente il display in argomento (2x16) nella speranza di poterlo gestire tramite un pic 16f876.

Premetto che ho utilizzato come esempio il progetto ed il software in assembler (gestione display lcd) proposto da Tanzilli, effettuando le opportune modifiche.

I contatti sono i seguenti:

Rb2 = RS;
Rb3 = E;
Rb4 = db4;
Rb5 = db5;
Rb6 = db6;
Rb7 = db7;

LCD => db0, db1, db2, db3, R/W = massa


Ho, inoltre, programmato il pic utilizzando ic-prog e facendo attenzione a disattivare LVP.

I risultati da me ottenuti non sono eccezionali nel senso che riesco correttamente a visualizzare soltanto alcuni caratteri ascii quali ad esempio: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O ovverosia quelli esattamente corrispondenti alla colonna "0100" della rispettiva tabella. Per il resto è una catastrofe.

Qualcuno di voi ha mai utilizzato questi LCD?
E' possibile che le temporizzazioni previste dal Tanzilli non siano perfettamente compatibili al display da me utilizzato?
dove sbaglio?

rivp6 13 aprile 07 19:39

se mi dici la frequenza del quarzo ti mando un hex di prova

angelole 13 aprile 07 20:34

La frequenza del quarzo da me utilizzato è 4 Mhz.

il mio indirizzo e-mail dove potrai inviarmi il file è: angelole@libero.it

Grazie

Aspetto tue notizie

Naraj 13 aprile 07 22:38

Citazione:

Originalmente inviato da angelole
Salve,
ho acquistato di recente il display in argomento (2x16) nella speranza di poterlo gestire tramite un pic 16f876.

Premetto che ho utilizzato come esempio il progetto ed il software in assembler (gestione display lcd) proposto da Tanzilli, effettuando le opportune modifiche.

I contatti sono i seguenti:

Rb2 = RS;
Rb3 = E;
Rb4 = db4;
Rb5 = db5;
Rb6 = db6;
Rb7 = db7;

LCD => db0, db1, db2, db3, R/W = massa


Ho, inoltre, programmato il pic utilizzando ic-prog e facendo attenzione a disattivare LVP.

I risultati da me ottenuti non sono eccezionali nel senso che riesco correttamente a visualizzare soltanto alcuni caratteri ascii quali ad esempio: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O ovverosia quelli esattamente corrispondenti alla colonna "0100" della rispettiva tabella. Per il resto è una catastrofe.

Qualcuno di voi ha mai utilizzato questi LCD?
E' possibile che le temporizzazioni previste dal Tanzilli non siano perfettamente compatibili al display da me utilizzato?
dove sbaglio?

Mi sembra di capire che usi l'invio dei dati al display con 4 bit alla volta. Se è così, non si dovrebbe utilizzare nel display i pin D4-D5-D6-D7 ?

Naraj

angelole 13 aprile 07 22:55

Si, utilizzo quattro bit per volta attraverso db4, db5, db6 e db7 del display.
Questo dovrebbe essere corretto. non credo che l'errore sia li.

rivp6 14 aprile 07 23:00

1 Allegato/i
ecco qua

int i ;
char Text[14] ;

void InitHW(void)
{
TRISA=0xFF ;
TRISB=0x00 ;
TRISC=0x00 ;
}

void main(void)
{
InitHW() ;
Delay_ms(500) ;
Lcd_Init(&PORTB) ; // Initialize LCD connected to PORTB
Lcd_Cmd(Lcd_CLEAR) ; // Clear display
Lcd_Cmd(Lcd_CURSOR_OFF) ; // Turn cursor off
Lcd_Out(1, 1, "ABCDEFGHILMNOPQRS") ; // Print text to LCD, 2nd row, 1st column
i=0 ;
for (;;)
{
Delay_ms(500) ;
Lcd_Out(2,1,"Nr. ") ;
Lcd_Out(2,5,Text) ;
IntToStr(i,Text);
Lcd_Out(2,5,Text) ;
i++ ;
}
}

angelole 15 aprile 07 11:05

Sei un grande, non ho altre parole.:mellow:
Funziona perfettamente.

Purtroppo non conosco il linguaggio C, finora ho programmato in assembler!
Per cui ti chiedo delle informazioni circa le temporizzazioni da te utilizzate in quanto ho la vaga impressione che ci sia qualcosa che non va nel mio codice.


Non ho potuto fare a meno di notare come in poche righe di codice C sei riuscito a fare ciò che in assembler farei con almeno 10 volte tanto!!! :wacko:

Mi sa che passerò anch'io al C. Al proposito dove posso trovare un buon compilatore per il 16F876 e dei tutorial ???

Grazie.


Tutti gli orari sono GMT +2. Adesso sono le 16:06.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002