Có khả năng là module LCD của em có bộ xử lý hơi chậm. Em thêm một vài lệnh nop vào đoạn code đọc dữ liệu từ LCD trong chương trình con LCD_Busy thử xem. Tức là chuyển phần code
Code:
bsf LCD_PORT, LCD_E
swapf LCD_PORT, w ;LAY 4 BIT CAO,BIT DAU TIEN LA CO BF
bcf LCD_PORT, LCD_E ;LCD BAT DAU THUC HIEN LENH
thành
Code:
bsf LCD_PORT, LCD_E
nop
swapf LCD_PORT, w ;LAY 4 BIT CAO,BIT DAU TIEN LA CO BF
bcf LCD_PORT, LCD_E ;LCD BAT DAU THUC HIEN LENH
Phần code để đẩy nibble thấp ra cũng cần thêm vài lệnh nop (2 lệnh trở lên).
Thân,