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

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


 
 
Strumenti discussione Visualizzazione
Prev Messaggio precedente   Prossimo messaggio Next
Vecchio 18 febbraio 07, 19: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
 

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 16:10
16f876 e display lcd (GDM1602K) angelole Circuiti Elettronici 6 15 aprile 07 10:05
PIC 16f876 ??????? manulele84 Circuiti Elettronici 9 11 agosto 06 12:56
voltmetro con display Melquattro Circuiti Elettronici 9 21 giugno 06 19:27
Display LCD SoldatoSemplice Circuiti Elettronici 5 15 maggio 06 23:21



Tutti gli orari sono GMT +2. Adesso sono le 18:56.


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