a. Cấu tạo:
LCD 20x4 thuộc loại Text LCD là loại màn hình tinh thể lỏng nhỏ, dùng ựể hiển thị các dòng chữ hoặc số trong mã ASCII. Không giống các loại LCD lớn, Text LCD ựược chia sẵn thành từng ô và ứng với mỗi ô chỉ có thể hiển thị ựược một ký tự ASCII. Cũng vì lý do ựó nên loại LCD này ựược gọi là Text LCD (ựể phân biệt với Graphic LCD có thể hiển thị ựược hình ảnh). Mỗi ô của Text LCD bao gồm các chấm tinh thể lỏng, việc kết hợp ỘẩnỢ và ỘhiệnỢ các chấm này tạo thành một ký tự cần hiển thị. Trong các Text LCD, các mẫu ký tự ựược ựịnh sẵn. Kắch thước LCD ựược ựịnh nghĩa bằng số ký tự có thể hiển thị trên 1 dòng và tổng số dòng mà LCD có. Cụ thể LCD 20x4 dùng trong ựề tài này là loại có 4 dòng và mỗi dòng hiển thị ựược tối ựa 20 ký tự.
Hình 2.23. LCD 20x4
Text LCD có hai cách giao tiếp cơ bản là nối tiếp (như I2C) và song song. Trong ựồ án này, em sử dụng loại giao tiếp song song.
b. Sơ ựồ chân:
LCD 20x4 có 16 chân trong ựó 14 chân kết nối với Vi ựiều khiển và hai chân nguồn cho ựèn LED nền.
Bảng 2.8. Bảng tóm tắt thứ tự các chân của LCD 16x4 Chức năng Số thứ tự chân Tên Trạng
thái logic Mô tả
Ground 1 Vss (GND) - 0V Nguồn cấp cho LCD 2 Vdd (VCC) - +5V Tương phản 3 Vee - 0-Vdd 4 RS 0 1 D0-D7: Lệnh D0-D7: Dữ liệu 5 R/W 0 1 Ghi dữ liệu đọc dữ liệu điều khiển LCD 6 E 0 1 Từ 1 xuống 0
Vô hiệu hóa LCD LCD hoạt ựộng Bắt ựầu ghi/ựọc LCD 7 D0 0/1 Bits 0 LSB 8 D1 0/1 Bits 1 9 D2 0/1 Bits 2 10 D3 0/1 Bits 3 11 D4 0/1 Bits 4 12 D5 0/1 Bits 5 13 D6 0/1 Bits 6 Dữ liệu/Lệnh 14 D7 0/1 Bits 7 MSB
Chân 1 và 2 là các chân nguồn ựược nối với GND và nguồn 5V, Chân 3 ựể chỉnh ựộ tương phản, chân này ựược nối với 1 biến trở chia áp. Trong quá trình LCD hoạt ựộng, ta chỉnh biến trở này ựể ựạt ựược ựộ tương phản cần thiết. Các chân ựiều khiển RS, R/W, EN và các ựường dữ liệu ựược nối trực tiếp ựến vi ựiều khiển. Tùy theo chế ựộ 4 bits hoặc 8 bits mà các chân D0-D3 có thể bỏ qua hoặc nối với v i ựiều khiển.
c. Thanh ghi và tổ chức bộ nhớ
LCD 20x4 có hai thanh ghi 8 bits là INTRUCTION REGISTER (IR) và DATA REGISTER (DR). Thanh ghi DR chứa mã lệnh ựiều khiển LCD và là thanh ghi Ộchỉ ghiỢ (chỉ có thể ghi vào thanh ghi này mà không ựọc ựược nó). Thanh ghi DR chứa các loại dữ liệu như ký tự cần hiển thị hoặc dữ liệu ựọc ra từ bộ nhớ LCD. Cả hai thanh ghi ựều ựược nối với các ựường dữ liệu D0 ọ 7 của LCD và ựược lựa chọn tùy theo các chân ựiều khiển RS, RW.
c.1. Thanh ghi DDRAM
DDRAM là bộ nhớ tạm chứa các ký tự cần hiển thị lên LCD. c.2. Thanh ghi CGROM
Là vùng nhớ cố ựịnh chứa ựịnh nghĩa Font cho các ký tự. Chúng ta không trực tiếp truy xuất vào vùng nhớ này LCD 20x4 sẽ tự thực hiện khi có yêu cầu ựọc Font ựể hiển thị. Một ựiều ựáng lưu ý là ựịa chỉ font của mỗi ký tự vùng nhớ CGROM chắnh là mã ASCII của ký tự ựó.
CGROM và DDRAM ựược tự ựộng phối hợp trong quá trình hiển thị của LCD. Vùng nhớ CGROM ựược chỉ rõ trong bảng 2.9.
c. 3 Thanh ghi CGRAM
Là vùng nhớ chứa các symbol do người dùng tự ựịnh nghĩa, mỗi symbol có kắch thước 5x8 và ựược dành cho 8 ô nhớ 8 bits. Các symbol thường ựược ựịnh nghĩa trước và ựược gọi hiển thị khi cần thiết. Vùng này có tất cả 64 ô nhớ nên có thể có tối ựa 8 symbol ựược ựịnh nghĩa.
d. điều khiển hiển thị LCD
d.1. Các chân ựiều khiển LCD
Các chân ựiều khiển việc ựọc và ghi bao gồm: RS, R/W và EN.
- RS (chân số 3): Lựa chọn thanh ghi (Select Register), chân này cho phép lựa chọn 1 trong hai thanh ghi IR hoặc DR ựể làm việc. Vì cả hai thanh này ựều ựược kết nối với các chân data của LCD nên cần 1 bits ựể lựa chọn giữa chúng. Nếu RS=0, thanh ghi IR ựược chọn và nếu RS=1 thanh ghi DR ựược chọn. Ta biết rằng thanh ghi IR là thanh ghi chứa mã lệnh cho LCD vì thế nếu muốn gửi 1 mã lệnh lên LCD thì chân RS phải ựược set về 0. Ngược lại, khi muốn giải mã ASCII của ký tự cần hiển thị lên LCD thì ta set RS=1 ựể chọn thanh ghi DR.
- R/W (chân số 4): Chân lựa chọn giữa việc ựọc và ghi. Nếu R/W=0 thì dữ liệu sẽ ựược ghi từ bộ ựiều khiển ngoài vào LCD. Nếu R/W=1 thì dữ liệu ựược ựọc từ LCD ra ngoài.
- EN (chân số 5): cho phép LCD hoạt ựộng (Enable), chân này cần ựược kết nối với bộ ựiều khiển ựể cho phép thao tác LCD. để ghi dữ liệu vào LCD ta phải set chân EN=0, tiếp ựến xuất dữ liệu ựến các chân D0ọ7, sau ựó set chân EN lên 1 và cuối cùng xóa EN về 0 ựể tạo 1 xung cạnh xuống.
Bảng 2. 10. Tập lệnh LCD (Trắch hocavr.com)