
|
![]() | #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! |
![]() | ![]() |
Bookmarks |
| |
![]() | ||||
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 |