LCD có hai mode giao tiếp là 4 bit và 8 bit. Ta sẽ lần lượt tìm hiểu về cách sử dụng cũng như ưu – nhược điểm của hai mode này.
- Mode 8 bit: Để sử dụng mode 8 bit, tất cả các lines dữ liệu của LCD từ D0 đến D7 (từ chân 7 đến chân 14) phải được nối với một PORT (gồm 8 chân) của vi điều khiển bên ngoài. Ưu điểm của phương pháp giao tiếp này là dữ liệu được ghi và đọc rất nhanh và đơn giản vì chip điều khiển chỉ cần xuất hoặc nhận dữ liệu trên 1 PORT. Tuy nhiên, phương pháp này có nhược điểm là tổng số chân dành cho giao tiếp LCD quá nhiều, nếu tính luôn cả 3 chân điều khiển thì cần đến 11 đường cho giao tiếp LCD.
- Mode 4 bit: LCD cho phép giao tiếp với bộ điều khiển ngoài theo chế độ 4 bit. Trong chế độ này, các chân D0, D1, D2 và D3 của LCD không được sử dụng (để trống), chỉ có 4 chân từ D4 đến D7 được kết nối với vi điều khiển bên ngoài. Các instruction và data 8 bit sẽ được ghi và đọc bằng cách chia thành 2 phần, gọi là các nibbles, mỗi nibble gồm 4 bit và được giao tiếp thông qua 4 chân D7:4, nibble cao được xử lí trước và nibble thấp sau. Ưu điểm lớn nhất của phương pháp này tối thiểu số lines dùng cho giao tiếp LCD, nếu tính luôn cả 3 chân điều khiển thì chỉ cần 7
đường cho giao tiếp LCD. Tuy nhiên, việc đọc và ghi từng nibble tương đối khó khăn hơn đọc và ghi dữ liệu 8 bit.
Hình 2.6 là hình ảnh cách mắc LCD theo mode giao tiếp 4 bit. Trong đó, các chân từ D4 đến D7 được mắc vào 4 chân thuộc 1 PORT của vi điều khiển. Chân VSS nối đất, VDD nối với nguồn 5V, VEE nối chân chạy của biến trở hạn dòng nhằm điều chỉnh độ tương phản của LCD.
Hình 2.6: Cách mắc LCD theo kiểu giao tiếp 4 bit.
Trình tự giao tiếp với LCD mode 4 bit được mô tả bằng sơ đồ hình 2.7.
Để sử dụng LCD chúng ta cần khởi động LCD, sau khi được khởi động LCD đã sẵn sàng để hiển thị. Quá trình khởi động chỉ cần thực hiện một lần ở đầu chương trình. Trong code giao tiếp với LCD, quá trình khởi động được viết trong một chương trình con tên LCD_Init, khởi động LCD thường bao gồm xác lập cách giao tiếp, kích thước font, số dòng LCD (Function set), cho phép hiển thị LCD, Cursor home…(Display control), chế độ hiển thị tăng/giảm, shift (Entry mode set). Các thủ tục khác như xóa LCD, viết ký tự lên LCD, di chuyển con trỏ…được sử dụng liên tục trong quá trình hiển thị LCD và sẽ được trình bày trong các đoạn chương trình con riêng.
Chú ý: Mỗi khi thực hiện ghi lệnh hay dữ liệu hiển thị lên LCD đều phải kiểm tra cờ bận. Sở dĩ xuất hiện vấn đề này là do trong một khoảng thời gian LCD chỉ có thể thực hiện được một nhiệm vụ như xóa hay ghi dữ liệu.. Tuy nhiên, có một số loại LCD không cho phép kiểm tra cờ bận, vì thế nên ta phải chủ động trong việc lập trình trong việc phân phối thời gian khi ra lệnh cho LCD. Ví dụ như khi thực hiện lệnh xóa màn hình thì phải chờ 2 ms rồi mới thực hiện lệnh mới vì thời gian thực hiện lệnh xóa màn hình là 1,64 ms.