LCD JHD162A problème - il ne montre pas tous les caractères

R

RobustRohit

Guest
Mon écran LCD n'affiche pas les caractères ....
L'écran LCD est JHD162A
Je travaille sur p89v51RD2
Les broches de données sont connectées à p0.4-p0.7

RS est à P0.0
RW à P0.1
E à P0.2J'ai écrit le code suivant dans KEIL compilateur C, plz quelqu'un peut-il le déboguer???# include "reg51.h"

sbit rs = P0 ^ 0;
sbit Rw = P0 ^ 1;
e sbit P0 = ^ 2;

void initialisation ();
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 (int j = 0; j <255; j ) / / juste pour le plaisir de tuer le temps ....
t ;
)
)void putval (unsigned int n)
(
RW = 0;
e = 1;
/ / Higher grignoter premier
P0 = ((n & 0xF0) | (0x08));
Delay ();
e = 0;
Delay ();
e = 1;
/ / Lower grignoter prochaine
P0 = (((n & (0x0F)) * 16) | (0x08));
Delay ();
e = 0;
Delay ();
)void initialisation ()
(
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; / / Le fonctionnement est d'écriture de données
RW = 0;
e = 1;
/ / Higher grignoter premier

P0 = ((c & 0xF0) | 0x09);
Delay ();
e = 0;
Delay ();
e = 1;
P0 = (((c & (0x0F)) * 16) | 0x09);
Delay ();
e = 0;
Delay ();
)

 
W kwietniu Toshiba wprowadzi na rynek nową serię komputerów przenośnych - Satellite R800 dedykowaną dla wymagających odbiorców. W skład nowej serii wejdą modele...

Read more...
 
Bonjour.

Je pense que vous auriez pu problème avec cette partie
Quote:void Delay ()

(

unsigned int i;

unsigned int j;

unsigned int t;

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

(

t = 0;

for (int j = 0; j <255; j ) / / juste pour le plaisir de tuer le temps ....

t ;

)

)

 
Salut
Je pense t n'est pas le problème.Son recherchez une variable nominale et à seulement utilisé pour tuer le temps dans cette boucle de retard.
En débordement, il sera relancé à partir de 0.
Désolé, n'ont pas le temps de déboguer le code, mais certains peuvent donner suggestion.

 
Je pense que c'est le bon code s'il vous plaît essayer cette

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

sbit Rw = P0 ^ 1;

e sbit P0 = ^ 2;void initialisation ();

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 (int j = 0; j <255; j ) / / juste pour le plaisir de tuer le temps ....

t ;

)

)
void putval (n unsigned char)

(

RW = 0;

e = 1;

/ / Higher grignoter premier

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

Delay ();

e = 0;

Delay ();

e = 1;

/ / Lower grignoter prochaine

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

Delay ();

e = 0;

Delay ();

)void initialisation ()

(

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; / / Le fonctionnement est d'écriture de données

RW = 0;

e = 1;

/ / Higher grignoter premierP0 = ((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