LCD JHD162A vấn đề - đó là không hiển thị bất kỳ ký tự

R

RobustRohit

Guest
LCD của tôi không hiển thị bất kỳ ký tự ....
LCD là JHD162A
Tôi làm việc trên p89v51RD2
Các chân dữ liệu được kết nối với p0.4-p0.7

RS là lúc P0.0
RW tại P0.1
E lúc P0.2Tôi đã viết đoạn mã sau vào trình biên dịch Keil C, plz bất cứ ai có thể gỡ lỗi không???# include "reg51.h"

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

void initialize ();
void putval (int);
void delay ();
void write (unsigned char);void main ()
(
P0 = 0x00;
khởi tạo ();
write ( 'A');
write ( 'B');
)void delay ()
(
int i;
int j;
int t;
for (i = 0; i <100; i )
(
t = 0;
for (i = 0; j <255; i ) / / chỉ vì lợi ích của giết thời gian ....
t ;
)
)void putval (int n)
(
rw = 0;
e = 1;
/ / Higher nibble đầu tiên
P0 = ((n & 0xF0) | (0x08));
trì hoãn ();
e = 0;
trì hoãn ();
e = 1;
/ / Lower nibble kế tiếp
P0 = (((n & (0x0F)) * 16) | (0x08));
trì hoãn ();
e = 0;
trì hoãn ();
)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; / / Điều hành là ghi dữ liệu
rw = 0;
e = 1;
/ / Higher nibble đầu tiên

P0 = ((c & 0xF0) | 0x09);
trì hoãn ();
e = 0;
trì hoãn ();
e = 1;
P0 = (((c & (0x0F)) * 16) | 0x09);
trì hoãn ();
e = 0;
trì hoãn ();
)

 
Xin chào.

Tôi nghĩ rằng bạn có thể có vấn đề với phần này
Trích:void delay ()

(

int i;

int j;

int t;

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

(

t = 0;

for (i = 0; j <255; i ) / / chỉ vì lợi ích của giết thời gian ....

t ;

)

)

 
Chào
Tôi nghĩ rằng t không phải là vấn đề.Tim của nó một biến dummy và chỉ được sử dụng để giết thời gian trong vòng chậm trễ.
Trong tràn nó sẽ được khởi động lại từ 0.
Xin lỗi, dont có thời gian để gỡ lỗi một số mã nhưng có thể đưa ra gợi ý.

 
Tôi nghĩ rằng đây là đoạn code chính xác hãy thử này

Mã số:# include "reg51.h"sbit rs = P0 ^ 0;

sbit rw = P0 ^ 1;

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

void putval (unsigned char);

void delay ();

void write (unsigned char);void main ()

(

P0 = 0x00;

khởi tạo ();

write ( 'A');

write ( 'B');

)void delay ()

(

int i;

int j;

int t;

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

(

t = 0;

for (i = 0; j <255; i ) / / chỉ vì lợi ích của giết thời gian ....

t ;

)

)
void putval (unsigned char n)

(

rw = 0;

e = 1;

/ / Higher nibble đầu tiên

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

trì hoãn ();

e = 0;

trì hoãn ();

e = 1;

/ / Lower nibble kế tiếp

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

trì hoãn ();

e = 0;

trì hoãn ();

)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; / / Điều hành là ghi dữ liệu

rw = 0;

e = 1;

/ / Higher nibble đầu tiênP0 = ((c & 0xF0) | 0x0d);

trì hoãn ();

e = 0;

trì hoãn ();

e = 1;

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

trì hoãn ();

e = 0;

trì hoãn ();

)
 

Welcome to EDABoard.com

Sponsor

Back
Top