Bác nào đã trải qua lcd 4 bit chi mình voi mình đã tham khảo tren dien đàn và trên mạng nhung khi viết xong thì no ko hien ra chu gi hết cả. Bác nào đã làm rồi thì cho mình chút kinh nghiệm !
Thông báo
Collapse
No announcement yet.
LCD 4bit
Collapse
X
-
LCD 4 bit
Với giao tiếp lcd 4bit thì bạn gởi 4bit cao trước ,4bit thấp sau. Mỗi lần gởi 4bit như vậy ta chọn lại thanh ghi lệnh hay thanh ghi dữ liệu. lưu ý: 4 đường dữ liệu và 3 đường điều khiển của lcd bạn nối chung vào 1 port vdk, 4 đường dữ liệu thì nối với 4 bit cao của vdk.
Comment
-
-
CODE CHUẨN LCD4BIT nếu cần file mô phỏng liên hệ với mình qua gmail:thaiban.ddt@gmail.com
#include<regx51.h>
#include<string.h>
sbit LCD_RS = P0^0;
sbit LCD_E = P0^1;
sbit LCD_D4= P0^4;
sbit LCD_D5= P0^5;
sbit LCD_D6= P0^6;
sbit LCD_D7= P0^7;
#define LINE_1 0x80
#define LINE_2 0xC0
#define CLEAR_LCD 0x01
void lcd1602_enable(void);
void lcd1602_send_4bit_data ( unsigned char cX );
void lcd1602_send_command (unsigned char cX );
void lcd1602_init ( void );
void lcd1602_gotoxy(unsigned char x, unsigned char y);
void lcd1602_clear(void);
void kitu ( unsigned int cX );
void chuoi(unsigned char *s);
void chuoi_cham(unsigned char *s);
void delay(int t)
{
int a,b;
for(a=0;a<t;a++)
{
for(b=0;b<125;b++)
{}
}
}
// Ham tre t(us)
void delay_us(int t)
{
int a;
for(a=0;a<t;a++)
{}
}
void lcd1602_enable(void)
{
LCD_E=1;
delay_us(3);
LCD_E=0;
delay_us(5);
}
// --------------------------------------------------
// Ham Gui 4 Bit Du Lieu Ra LCD
void lcd1602_send_4bit_data ( unsigned char cX )
{
LCD_D4 = cX & 0x01;
LCD_D5 = (cX>>1)&1;
LCD_D6 = (cX>>2)&1;
LCD_D7 = (cX>>3)&1;
}
// --------------------------------------------------
// Ham Gui 1 Lenh Cho LCD
void lcd1602_send_command (unsigned char cX )
{
lcd1602_send_4bit_data ( cX >>4 ); // gui 4 bit cao
lcd1602_enable() ;
lcd1602_send_4bit_data ( cX ); // gui 4 bit thap
lcd1602_enable() ;
}
// --------------------------------------------------
// Ham Khoi Tao LCD
void lcd1602_init ( void )
{
lcd1602_send_4bit_data ( 0x00 );
delay(200);
LCD_RS=0;
LCD_E=0; // che do gui lenh
lcd1602_send_4bit_data ( 0x03 ); // ket noi 8 bit
lcd1602_enable() ;
lcd1602_enable () ;
lcd1602_enable () ;
lcd1602_send_4bit_data ( 0x02 ); // ket noi 4 bit
lcd1602_enable() ;
lcd1602_send_command( 0x2C ); // giao thuc 4 bit, hien thi 2 hang, ki tu 5x8
lcd1602_send_command( 0x80);
lcd1602_send_command( 0x0C); // cho phep hien thi man hinh
lcd1602_send_command( 0x06 ); // tang ID, khong dich khung hinh
lcd1602_send_command( CLEAR_LCD ); // xoa toan bo khung hinh
}
// --------------------------------------------------
// Ham Thiet Lap Vi Tri Con Tro
void lcd1602_gotoxy(unsigned char x, unsigned char y)
{
unsigned char address;
if(!y)
address = (LINE_1+x);
else
address = (LINE_2+x);
delay(3);
lcd1602_send_command(address);
delay(1);
}
// --------------------------------------------------
// Ham Xoa Man Hinh LCD
void lcd1602_clear(void)
{
lcd1602_send_command( CLEAR_LCD );
//delay_us(300);
}
// Ham Gui 1 Ky Tu Len LCD
void kitu ( unsigned int cX )
{
LCD_RS=1;
lcd1602_send_command( cX );
LCD_RS=0;
}
// Ham ghi chuoi
void chuoi(unsigned char *s)
{
char i;
for(i=0;i<strlen(s);i++)
{
kitu(s[i]);
}
}
// Ham ghi cham 1 chuoi
void chuoi_cham(unsigned char *s)
{
char i;
for(i=0;i<strlen(s);i++)
{
kitu(s[i]);
delay(75);
}
}
void main()
{
lcd1602_init ();
lcd1602_clear ();
while(1)
{
lcd1602_send_command(0x80);
chuoi_cham("WELL COME TO ");// chuoi ky tu gui len man hinh
delay(200);
lcd1602_gotoxy (0,1);
chuoi_cham(" HVKTQS 2013");// chuoi ky tu gui len man hinh
}
}
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Hỏi về bơm màng bldcbởi vi van phamPhải xem cơ cấu bơm, chứ xem cơ cấu rotor, thì chỉ làm thầy bói xem voi.
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 08:19 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11vg, cám ơn bác...........
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 14:37 -
-
bởi khoine9899
Em chào các anh và mọi người.
Hiện em đang có 1 con bơm màng trong thiết bị y tế đang gặp tình trạng yếu dần hoặc ngừng hoạt động sau thời gian sử dụng
Sau khi tìm hiểu về thông tin của bơm trên mạng thì em được biết...-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 11:22 -
-
Trả lời cho Cần mọi người giúp mạch tạo sóng siêu âm máy rửabởi bqviet
-
Channel: Điện tử công suất
27-11-2024, 20:26 -
-
bởi Minhdai95Em chào mọi người, e đang sửa mạch tạo sóng siêu âm cho máy rửa mà chưa có tài liệu để tham khảo sửa, mọi người cho e xin tài liệu ạ...
-
Channel: Điện tử công suất
27-11-2024, 11:37 -
-
bởi pia2k1Cùng câu hỏi và cần được giải đáp thêm ạ...
-
Channel: Hướng dẫn sử dụng diễn đàn
27-11-2024, 11:28 -
-
Trả lời cho Công thức điện tửbởi mèomướpDạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
-
Channel: Tâm tình dân kỹ thuật
26-11-2024, 21:21 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi mèomướpDạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
-
Channel: Thiết bị điện tử cá nhân
26-11-2024, 20:31 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11Ok , thanks bác đã chỉ...
-
Channel: Thiết bị điện tử cá nhân
26-11-2024, 15:06 -
-
bởi nguyendinhvanSau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !
Chập thì thay. Cháy thì tháo
Làm thì láo. Báo thì hay
May thì khoe. Rủi thì bỏ
Thành tích nhỏ. Báo thành to
Làm cho có. Báo chi li
Sai cả li. Báo...-
Channel: Tâm tình dân kỹ thuật
26-11-2024, 00:35 -
Comment