Visualizzazione in esadecimale su LCD
- Lello Guidi
-
Autore della discussione
- Platino Utente
-
Less
Di più
10 Anni 5 Mesi fa #1
da Lello Guidi
Visualizzazione in esadecimale su LCD è stato creato da Lello Guidi
Ho fatto un programma con il pic 16F877A su FreedomII che mi visualizza il numero della cella in decimale.
Mi piacerebbe visualizzarlo anche in esadecimale ma non ho idea come fare a trasformalo.
l'istruzione in decimale e' la seguente:
LCD_GOTO(1,12);
LCD_PUTUN(deviceAdr);
Saluti
Lello
Mi piacerebbe visualizzarlo anche in esadecimale ma non ho idea come fare a trasformalo.
l'istruzione in decimale e' la seguente:
LCD_GOTO(1,12);
LCD_PUTUN(deviceAdr);
Saluti
Lello
Si prega Accesso o Crea un account a partecipare alla conversazione.
- firstcolle
-
- Platino Utente
-
Less
Di più
- Messaggi: 362
- Ringraziamenti ricevuti 39
10 Anni 5 Mesi fa - 10 Anni 5 Mesi fa #2
da firstcolle
Risposta da firstcolle al topic Visualizzazione in esadecimale su LCD
Questa è la soluzione che avevo trovato io... ma ci saranno soluzioni migliori... mi serviva solo come debug giusto per verificare che le variabili venissero gestite correttamente, quindi non ci ho perso molto tempo..
leggo il byte, analizzo i 4 bit alti, se sono da 0 a 9 stampo il numero a display se sono da 10 a 15 (A-F) converto in carattere e stampo il char. Stessa cosa con i 4 bit bassi.
LCD_send_data è una funzione della mia libreria.. dovresti vedere nella libreria che usi tu a cosa corrisponde...
leggo il byte, analizzo i 4 bit alti, se sono da 0 a 9 stampo il numero a display se sono da 10 a 15 (A-F) converto in carattere e stampo il char. Stessa cosa con i 4 bit bassi.
Code:
void LCD_send_HEX(char _pbcd) {
char _H = 0; // decine
char _L = 0; // unità
_L = _pbcd & 0b00001111; // unità = 4 bit bassi del byte in ingresso
_H = (_pbcd & 0b11110000) >> 4; // decine = 4 bit alti del dato in ingresso
if (_H < 10)
LCD_send_data(_H + 0b00110000); // scrivo cifra piu significativa da 0 a 9
else
LCD_send_data(_H + 0b00110111); // scrivo cifra piu significativa da A a F
if (_L < 10)
LCD_send_data(_L + 0b00110000); // scrivo cifra meno significativa da 0 a 9
else
LCD_send_data(_L + 0b00110111); // scrivo cifra meno significativa da A a F
}
LCD_send_data è una funzione della mia libreria.. dovresti vedere nella libreria che usi tu a cosa corrisponde...
Ultima Modifica 10 Anni 5 Mesi fa da firstcolle.
I seguenti utenti hanno detto grazie : Lello Guidi
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Lello Guidi
-
Autore della discussione
- Platino Utente
-
10 Anni 5 Mesi fa #3
da Lello Guidi
Risposta da Lello Guidi al topic Visualizzazione in esadecimale su LCD
Penso di aver capito come funziona il tuo listato.
Io uso il C della Microcip che ha una sintassi differente e inoltre devo adattarlo a un dato di 16bit, ma devo solo fare un ciclo ripetitivo.
Lo scoglio maggiore sara' adattarlo alla libreria che uso per visualizzarlo su LCD, che utilizza altri parametri.
Saluti
Lello
Io uso il C della Microcip che ha una sintassi differente e inoltre devo adattarlo a un dato di 16bit, ma devo solo fare un ciclo ripetitivo.
Lo scoglio maggiore sara' adattarlo alla libreria che uso per visualizzarlo su LCD, che utilizza altri parametri.
Saluti
Lello
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Lello Guidi
-
Autore della discussione
- Platino Utente
-
10 Anni 5 Mesi fa #4
da Lello Guidi
Risposta da Lello Guidi al topic Visualizzazione in esadecimale su LCD
Adattato con le dovute modifiche funziona.
Un grazie a Firstcolle per lo spunto.
Saluti
Lello
Un grazie a Firstcolle per lo spunto.
Saluti
Lello
Si prega Accesso o Crea un account a partecipare alla conversazione.
- firstcolle
-
- Platino Utente
-
Less
Di più
- Messaggi: 362
- Ringraziamenti ricevuti 39
10 Anni 5 Mesi fa #5
da firstcolle
Risposta da firstcolle al topic Visualizzazione in esadecimale su LCD
Perfetto!!! se condividi anche il tuo codice potrebbe tornare utile anche ad altri!
Si prega Accesso o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, StefA
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Forum - Ultimi messaggi
-
- progetto can
- da marcelloraja
-
- MODULO GSM SIM900A
- da Mauro Laurenti
-
- Freedom III e compilazioni fallite
- da Mauro Laurenti
-
- Gestione degli errori su comunicazione seriale
- da Mauro Laurenti
-
- Timer0 e interrupt
- da Mauro Laurenti