LCD problema JHD162A - non mostra alcun carattere

R

RobustRohit

Guest
Il mio LCD non viene visualizzato alcun carattere ....
Il display LCD è JHD162A
Sto lavorando su p89v51RD2
I perni dati sono collegati a p0.4-p0.7

RS è a P0.0
RW a P0.1
E a p0.2Ho scritto il seguente codice nel KEIL compilatore C, plz qualcuno può eseguire il debug it??# include "reg51.h"

sbit rs = P0 ^ 0;
rw sbit P0 ^ = 1;
E sbit = P0 ^ 2;

void initialize ();
void putval (unsigned int);
void delay ();
void write (unsigned char);void main ()
(
P0 = 0x00;
initialize ();
write ( 'A');
write ( 'B');
)void delay ()
(
unsigned int i;
unsigned int j;
unsigned int t;
for (i = 0; i <100; i )
(
t = 0;
for (j = 0; j <255; j ) / / solo per il gusto di ammazzare il tempo ....
t ;
)
)void putval (unsigned int n)
(
rw = 0;
E = 1;
/ / Higher sgranocchiare prima
P0 = ((n & 0xF0) | (0x08));
delay ();
E = 0;
delay ();
E = 1;
/ / Lower sgranocchiare accanto
P0 = (((n & (0x0F)) * 16) | (0x08));
delay ();
E = 0;
delay ();
)void initialize ()
(
rs = 0;
putval (0x38);
putval (0x0E);
putval (0x04);
/ / Putval (0x02);
/ / Putval (0x0E);
/ / Putval (0x06);
/ / Putval (0x80);
)

void write (unsigned char c)
(
P0 = 0x01;
rs = 1; / / Il funzionamento è scrittura dei dati
rw = 0;
E = 1;
/ / Higher sgranocchiare prima

P0 = ((c & 0xF0) | 0x09);
delay ();
E = 0;
delay ();
E = 1;
P0 = (((c & (0x0F)) * 16) | 0x09);
delay ();
E = 0;
delay ();
)

 
Ciao.

Penso che potreste avere problemi con questa parte
Quote:void delay ()

(

unsigned int i;

unsigned int j;

unsigned int t;

for (i = 0; i <100; i )

(

t = 0;

for (j = 0; j <255; j ) / / solo per il gusto di ammazzare il tempo ....

t ;

)

)

 
Salve
Credo t non è il problema.La sua ricerca una variabile fittizia e solo il tempo utilizzato per uccidere in questo ciclo di ritardo.
In overflow sarà riavviato da 0.
Sorry, dont avere il tempo di eseguire il debug di codice di alcuni, ma può dare suggerimenti.

 
Credo che questo sia il codice corretto Please try this

Codice:# include "reg51.h"sbit rs = P0 ^ 0;

rw sbit P0 ^ = 1;

E sbit = P0 ^ 2;void initialize ();

void putval (unsigned char);

void delay ();

void write (unsigned char);void main ()

(

P0 = 0x00;

initialize ();

write ( 'A');

write ( 'B');

)void delay ()

(

unsigned int i;

unsigned int j;

unsigned int t;

for (i = 0; i <100; i )

(

t = 0;

for (j = 0; j <255; j ) / / solo per il gusto di ammazzare il tempo ....

t ;

)

)
void putval (n unsigned char)

(

rw = 0;

E = 1;

/ / Higher sgranocchiare prima

P0 = ((n & 0xF0) | (0x0C));

delay ();

E = 0;

delay ();

E = 1;

/ / Lower sgranocchiare accanto

P0 = (((n & (0x0F)) * 16) | (0x0C));

delay ();

E = 0;

delay ();

)void initialize ()

(

rs = 0;

putval (0x38);

putval (0x0E);

putval (0x04);

/ / Putval (0x02);

/ / Putval (0x0E);

/ / Putval (0x06);

/ / Putval (0x80);

)void write (unsigned char c)

(

P0 = 0x01;

rs = 1; / / Il funzionamento è scrittura dei dati

rw = 0;

E = 1;

/ / Higher sgranocchiare primaP0 = ((c & 0xF0) | 0x0D);

delay ();

E = 0;

delay ();

E = 1;

P0 = (((c & (0x0F)) * 16) | 0x0D);

delay ();

E = 0;

delay ();

)
 

Welcome to EDABoard.com

Sponsor

Back
Top