![]() |
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? |
se mi dici la frequenza del quarzo ti mando un hex di prova |
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 |
Citazione:
Naraj |
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. |
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++ ; } } |
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