cái lcd nó bị gì ấy, 3 lệnh hiển thị đúng, lệnh thứ 3 thế này, mong ae chỉ giáo. Mà có cách nào chèn ảnh vào câu hỏi không
LCD bị lỗi lệnh
Nút thứ 7 trên cái thanh nằm trên phần cmt của bạn chính là chỗ up ảnh đó =))
Delay có đủ thời gian không, có thể nó ko kịp nhận lệnh
Bạn post mỗi cái hình thế này code lcd không có, hình thì không full thì giúp cũng không đc
code ạ
#include <REGX52.H>
/*
0x01 xoa toan bo hien thi
0x02 di chuyen con to ve vi tri dau
0x03 tu dong chuyen con tro den vi tri tiep theo
0x0c bat hien thi va tat con tro
0x0e bat hien thi va con tro
0x80 di chuyen con tro ve dong 1
0xc0 di chuyen con tro ve dong 2
0x38 giao tiep 8 bit
0x28 giao tiep 4 bit
*/
#define RS P2_0
#define E P2_1
#define data P3
// delay
void delay(int time){
int x,y;
for(x=0;x<time;x++) for(
y=0;y<123;y++
);
}
// lenh
void lenh(char byte){
RS=0;
data =byte;
E=0;
E=1;
delay(2);
}
// ky tu
void kytu(char bytekytu){
RS=1;
data=bytekytu;
E=0;
E=1;
delay(1);
}
// mang ky tu
void mangkytu(char * mangkytu){
int i;
while(mangkytu[i] != 0){
kytu(mangkytu[i]);
i++;
}
}
// main
void main(){
lenh(0x0E);
kytu('a');
delay(2000);
lenh(0x01);
mangkytu("sao vay nhi ");
delay(3000);
lenh(0x01);
mangkytu("sao vay troi");
delay(1000);
while (1);
}
Trước khi sử dụng LCD phải khởi tạo đã
void LCD_Init() {
LCD_Cmd(0x30);
Delay_ms(5);
LCD_Cmd(0x30);
Delay_ms(1);
LCD_Cmd(0x30);
LCD_Cmd(0x38); // 0x2# la 4 bit 0x38 la 8 bit, 2 dong 5x8
LCD_Cmd(0x01); //Xoa man hinh
LCD_Cmd(0x0C); //Bat hien thi va tat con tro
}
Sao lại delay 5ms
1 Like
thanks các anh. Mà em đâu có lập trình pic đâu
Vấn đề là thuật toán điều khiển.
Lập trình bằng gì không quan trọng.
1 Like
hihi em lap trình cho 8051.