PIC LCD problemi con la visualizzazione

S

scorrpeio

Guest
Ciao,
Ho scritto un display codeto alcuni dati sul display LCD.
Ma, non ho trovato nulla sul display

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />Codice:# include <p18f4520.h># pragma config WDT = OFFvoid Delay (void);

void GetLCDCommand (void);

void GetLCDData (void);void main (void)

(

int index;

char a [10];

TRISA = 0x0; / / PORT A configurato in O / modalità P

TRISD = 0x00;

GetLCDCommand ();/ / Configure Display come 2-line, 8-bit, 5x7-punti

PORTD = 0x38;

GetLCDCommand ();/ / per ottenere una visualizzazione cursore lampeggiante

PORTD = 0x0F;

GetLCDCommand ();/ / per visualizzare chiaro

PORTD = 0x01;

GetLCDCommand ();while (1)

(

PORTD = 0xff;

GetLCDData ();

))void Delay (void)

(

float index;

for (index = 0; index <10000; index )

(

/ / non fare nulla

))void GetLCDCommand (void)

(

int index;PORTA = 0b0010;

PORTA = 0b0000;

for (index = 0; index <1000; index )

(

)

)void GetLCDData (void)

(

int index;PORTA = 0b1010;

PORTA = 0b1000;

for (index = 0; index <1000; index )

(

))
 
Hai provato a regolare la tensione di contrasto sul display LCD?

 
PORTD Assicurarsi che non sia in modalità PSP.Configurato in TRISE

Di solito TRISE Bit4 = 0, deve essere 0 per default.Ma mi piace essere sicuro e resettava.

Gli altri problemi più importanti è il tempo.È probabile che si va a digiunare durante il CFG messa in scena.Devo incollare un ritardo xxxuS tra le istruzioni LCD CFG.

È necessario controllare la scheda di dati LCD.i tempi sono espressi in là.

Non credo che questo è il codice molto lisci, ma che danno un'idea dei ritardi, si è OK per la mia applicazione.

È sempre possibile rallentare, farla funzionare, li girare il accelerare.

IanCodice:# define LCD_STROBE () ((LCD_EN = 1), (LCD_EN = 1), (LCD_EN = 1), (LCD_EN = 0))/ * Inizializzare il display LCD - mettere in 4 bit * /

void lcd_init ()

(

char init_value;ADCON1 = 0x06; / / Disattiva pin analogico su PORTAinit_value = 0x3;

TRISD = 0;

LCD_RS = 0;

LCD_EN = 0;

LCD_RW = 0;__delay_ms (15); / / wait 15msec dopo la potenza applicata,

LCD_DATA = init_value;

__delay_ms (20);

LCD_STROBE ();

__delay_ms (5);

LCD_STROBE ();

__delay_ms (5);

LCD_STROBE ();

__delay_us (200);

LCD_DATA = ((LCD_DATA & 0xF0) | 2); / / Quattro bit mode

LCD_STROBE ();LCD_WRITE (0x28); / / Imposta la lunghezza di interfaccia (Function Set)

LCD_WRITE (0xF); / / Display On, cursore, Cursor Blink

lcd_clear (); / / trasparente per lo schermo

LCD_WRITE (0x6); / / Set entry Mode

)void LCD_WRITE (unsigned char c)

(__delay_us (80);

LCD_DATA = ((LCD_DATA & 0xF0) | ((c>> 4) & 0x0F));

LCD_STROBE ();

__delay_us (5);

LCD_DATA = ((LCD_DATA & 0xF0) | (c & 0x0F));

LCD_STROBE ();

)
 
Sì ...........
Ho cercato di regolazione del contrasto

Effettivamente ......... durante LCD "Command" ... fa qualcosa .......... prime 4 a 5 linee sul lato sinistro del display LCD si accende automaticamente e poi si affievolisce offAggiunto dopo 2 ore e 31 minuti:Ciao,

Penso di usare 4 bit LCD e di programmazione per gli 8 bit.
Sono un po 'confuso, gentilmente me lo faccia sapere ................... Vi allego l'immagine del display LCD interfacciato con il PIC

 
Hai impostato il ADCON1 a 0x0F.= Tutti Porta A Digital.

ref: http://ww1.microchip.com/downloads/en/DeviceDoc/39631a.pdf
Pagina 105.

Gli altri pin PORTA sono multiplexati con ingressi analogici
ingressi, la VREF analogica e VREF ingressi e il comparatore
uscita tensione di riferimento.L'operazione di pin
RA3: RA0 e RA5 come ingressi A / D converter è selezionato
di compensazione o impostando il bit di controllo nella ADCON1
registro (A / D Control Register 1).
Pins RA0 attraverso RA5 può anche essere utilizzato come comparatore
ingressi o uscite impostando il bit appropriato nel
CMCON registro.Per utilizzare RA3: RA0 come input digitali, è
inoltre necessario disattivare la comparatori.
Il perno RA4/T0CKI/C1OUT è un ingresso Schmitt Trigger.
Tutti gli altri pins PORTA hanno livelli d'ingresso TTL e pieno
Driver di uscita CMOS.

Io personalmente utilizzare il display in modalità 4bit e spostare tutti i dati e le linee di controllo a Port D.

Ho allegato il mio ultimo lavoro LCD Codice, la sua per la Com HiTech.
Spero che questo aiuti.

Saluti
Ian
Ci dispiace, ma è necessario il login per visitare questo allegato

 
Salve.Non riesco a vedere file di inclusione per LCD nel codice, come # include lcd.c per esempio se si utilizza CCS C. BTW quale compilatore C stai usando?e la versione.Allora posso provare ad aiutare con le specifiche.

 

Welcome to EDABoard.com

Sponsor

Back
Top