Pic 16F876 con display LCD - BaroneRosso.it - Forum Modellismo

Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 04 febbraio 07, 16:22   #1 (permalink)  Top
User
 
Data registr.: 04-02-2007
Messaggi: 1
Pic 16F876 con display LCD

Salve a tutti, sono nuovo del forum e vi scrivo perchè ho bisogno di una mano...

Allora sto cercando di fare un termometro con questo pic, fin'ora ho scritto tutto ciò che riguarda la definizione dell'lcd e la conversione A/D, ora però ho bisogno di un aiuto...

Non riesco a capire come far visualizzare un dato che si trova dentro una locazione di memoria... Premetto che comando in picbasic pro...

Esempio: io ho dentro la memoria temp il dato che mi rappresenta la temperatura, tipo 25, come faccio a farla visualizzare sul display lcd?

Magari anche con scritto temperatura sulla rima riga e sulla seconda 25 seguito da °C...

Grazie mille a tutti
nunzio88 non è collegato   Rispondi citando
Vecchio 10 febbraio 07, 18:58   #2 (permalink)  Top
User
 
Data registr.: 10-02-2007
Residenza: Perugia
Messaggi: 1
Ciao,
io avevo preso dei free sample del PIC18F4550 (è usb) ma ancora sto cercando di allenarmi... ho fatto solo in modo di farlo rilevare al PC come semplice termometro con un LM35.
Quindi non so ancora come aiutarti, se imparo qualcosa di più mi faccio vivo!
Ciao
bostro non è collegato   Rispondi citando
Vecchio 18 febbraio 07, 20:44   #3 (permalink)  Top
User
 
Data registr.: 18-02-2007
Messaggi: 5
Ciao, mi sono appena iscritto e mi fa piacere poter essere utile.

Dunque, progetti con pic e lcd ne ho fatti molti, però ho sempre usato assembler. Comunque provo a spiegare il concetto, non dovresti avere difficoltà a implementare poi le istruzioni.

Mi pare di capire che hai già preparato le impostazioni del display. Quindi il grosso è fatto. Per scrivere qualcosa su un display lcd bisogna prima inviargli l'indirizzo della posizione dove vuoi scrivere. Per fare ciò invii con istruzione l'indirizzo della posizione desiderata. Tieni presente che la posizione più a sisnistra della prima riga del display corrisponde all'indirizzo 80h, la posizione più a sinistra della seconda riga corrisponde all'indirizzo C0h. Le posizioni adiacenti verso destra ovviamente avranno indirizzi crescenti.

Da tenere presente:
-I display con una sola riga sono comunque indirizzato come due righe poste una di seguito all'altra.
-I display da 4 righe (fino a 24 caratteri per riga) sono considerati comunque da due righe. La riga 1 prosegue nella riga 3 e la riga 2 prosegue nella riga 4
-I diplay 4 x 40 sono considerati come 2 distinti display da 2 x 40 (hanno 2 pin di enable)

Inviata la posizione di partenza, per scrivere qualcosa è sufficiente inviare il valore esasecimale del carattere, della cifra o del simbolo da visualizzare. Se vuoi sapere a che valore corrisponde il carattere che vuoi basta che controlli su una qualunque tabella ascii. Altrimenti in modo più semplice, carichi ila valore desiderato semplicemente racchiudendo il carattere tra virgolette.
Ad esempio l'istruzione:

MOVLW 'A'

carica in W il valore esadecimale 41h, che inviato come dato al display, visualiza proprio il carattere A.
I caratteri possono essere inviati uno dopo l'altro, rispettando ovviamente le tempistiche del display. Verrano automaticamente visualizzati uno a fianco all'altro. Va tenuto presente che la memoria di un display può contenere più caratteri di quelli visualizzabili, quindi alla fine di una riga non è automatico il passaggio alla successiva, ma va inviato un nuovo indirizzo.

Ora che hai visto come visualizzare i messaggi fissi, resta da visualizzare un valore numerico.

Per prima cosa bisogna vedere se il valore che hai a disposizioene è in formato esadecimale o in formato bcd. Presumo che sia in formato esadecimale e quindi devi convertirlo in formato bcd con una apposita ruotine (io l'ho fatta in assembler, se vuoi te la mando). Consiglio, per il formato bcd, di usare un byte per ogni cifra, anche se in teoria con un byte si potrebbero memorizzare due cifre bcd.

Per visualizzare poi le varie cifre decimali sul display non dovremo vare altro che prelevarle dalla memoria nell'ordine giusto (prima le decine, poi le unità), sommare a ogni cifra il valore esadecimale 30h (serve per trasformare il valore di un numero nel corrispondente carattere ascii) e inviare il risultato al display, come dato.

Spero di essere stato chiaro, buon lavoro!
Ciao!
Bit79 non è collegato   Rispondi citando
Vecchio 18 febbraio 07, 23:48   #4 (permalink)  Top
User
 
L'avatar di Naraj
 
Data registr.: 25-07-2004
Residenza: Trieste
Messaggi: 5.670
Mi sono avvicinato al pic da poche settimane (conosco altri micro) e ora sto traslando un programma dall'ST6 al PIC.
In allegato ti ho messo una traccia di come avrei fatto per il controllo del display.
Se ho sbagliato qualche passaggio (mi perdoni il mio maestro) ci risentiamo.

Naraj.
Files allegati
Tipo file: txt prova display.txt‎ (3,8 KB, 673 visite)
Naraj non è collegato   Rispondi citando
Vecchio 20 febbraio 07, 00:28   #5 (permalink)  Top
User
 
Data registr.: 09-01-2006
Messaggi: 25
Citazione:
Originalmente inviato da nunzio88
Esempio: io ho dentro la memoria temp il dato che mi rappresenta la temperatura, tipo 25, come faccio a farla visualizzare sul display lcd?
Il comando LCDOUT ti dice niente

LCDOUT $fe,1 ------------ cancella il display
LCDOUT $fe,$80,"TEMPERATURA" ----------- scrive TEMPERATURA sulla prima riga
LCDOUT $fe,$c0, TEMP ----------- scrive il valore contenuto in TEMP sulla seconda riga


Ciao,

Mimmo
staffy non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
Display Royal Evo fa le bizze Claudiopapi Radiocomandi 3 21 giugno 07 17:10
16f876 e display lcd (GDM1602K) angelole Circuiti Elettronici 6 15 aprile 07 11:05
PIC 16f876 ??????? manulele84 Circuiti Elettronici 9 11 agosto 06 13:56
voltmetro con display Melquattro Circuiti Elettronici 9 21 giugno 06 20:27
Display LCD SoldatoSemplice Circuiti Elettronici 5 16 maggio 06 00:21



Tutti gli orari sono GMT +2. Adesso sono le 05:55.


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