.:Matrix:. Inserita: 7 settembre 2007 Segnala Inserita: 7 settembre 2007 Scusatemi, ma non dipende da me.Altervista fa i capricci con i link.Copiate ed incollate il link in una nuova finestra del browser per visualizzarlo.Grazie.
.:Matrix:. Inserita: 7 settembre 2007 Segnala Inserita: 7 settembre 2007 Grazie Livio,infatti avevo pensato di usarne una per i dati ed una per i comandi dell'LCD.Vorrei utilizzare la libreria per LCD allegata al mio precedente messaggio, come posso modificarla per usarla con lo schema dello Z80 da me proposto?Grazie.
.:Matrix:. Inserita: 7 settembre 2007 Segnala Inserita: 7 settembre 2007 Vi linko lo schema con la modifica delle due porte per l'utilizzo dell'LCD e con la mappa completa degli indirizzi delle porte I/O.La porta si chiama LCD-PORT1Z80-board2
.:Matrix:. Inserita: 8 settembre 2007 Segnala Inserita: 8 settembre 2007 Secondo voi può adare bene scritta in questo modo per poi essere richiamata nel file di gestione dell'LCD?/* * Header file for the Z80 * Microprocessor * build with Z80-board * made by Luigi Erroi *//* LCD PORT addresses */sfr at 0x00 LCDDATA;sfr at 0x01 LCDCTRL;/* LCD CTRL-PORT bits */sfr at (LCDCTRL & 0b10000000) RS;sfr at (LCDCTRL & 0b01000000) RW;/* LCD DATA-PORT bits */sfr at (LCDDATA & 0b10000000) LP0;sfr at (LCDDATA & 0b01000000) LP1;sfr at (LCDDATA & 0b00100000) LP2;sfr at (LCDDATA & 0b00010000) LP3;sfr at (LCDDATA & 0b00001000) LP4;sfr at (LCDDATA & 0b00000100) LP5;sfr at (LCDDATA & 0b00000010) LP6;sfr at (LCDDATA & 0b00000001) LP7;
giacomo56 Inserita: 8 settembre 2007 Segnala Inserita: 8 settembre 2007 Non penso sia corretto.Per darti un'idea io farei così: /* LCD PORT addresses */ sfr at 0x00 LCDDATA; sfr at 0x01 LCDCTRL; //Variabile globale che memorizza //lo stato dei bit di controllo unsigned char LCD_Ctrl = 0x03; // RS(bit 0) e EE(bit 1) alti void LCD_Res_RS() // Azzera RS { LCD_Ctrl &= 0xfe; // RS = 0 LCDCTRL = LCD_Ctrl; // Scrive sull'uscita } void LCD_Set_RS() // Setta RS { LCD_Ctrl |= 0x01; // RS = 1 LCDCTRL = LCD_Ctrl; // Scrive sull'uscita } void LCD_Res_EN() // Azzera EN { LCD_Ctrl &= 0xfd; // EN = 0 LCDCTRL = LCD_Ctrl; // Scrive sull'uscita } void LCD_Set_EN() // Setta EN { LCD_Ctrl |= 0x02; // EN = 1 LCDCTRL = LCD_Ctrl; // Scrive sull'uscita } // Per scrivere sempre in modalità a 4 bit // si potrebbe fare così /****************************************/ /* Write a byte to the LCD (4 bit mode) */ /****************************************/ void LCD_WRITE (unsigned char c) { LCDDATA = c; LCD_STROBE(); LCDDATA = c << 4; LCD_STROBE(); DelayUs(50); }Forse esiste un altro modo ma intanto puoi provare così.Ciao
.:Matrix:. Inserita: 9 settembre 2007 Segnala Inserita: 9 settembre 2007 Grazie Giacomo,in settimana ultimerò la realizzazione delle schede del progetto e poi ti farò sapere.Volevo solo chiederti, in modo da capire, perchè non andava bene.Grazie.
giacomo56 Inserita: 9 settembre 2007 Segnala Inserita: 9 settembre 2007 Hai ragione scusa mi sono dimenticato di scriverlo.sfr at (LCDDATA & 0b10000000) LP0; non va perchè tra parentesi ci deve essere l'indirizzo della porta che è lo stesso per tutti i bit d'uscita. Puoi indirizzare la porta d'uscita non i singoli bit.Ciao.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora