Module LCD 20x4 characters đợc xây dựng dựa trên vi mạch điều khiển HD44780 của hãng Hitachi hoặc các vi mạch điều khiển tơng thích của các hãng khác. Hầu nh không có sự khác biệt nào trong các vi mạch điều khiển module LCD giữa các nhà cung cấp.
Thông thờng module LCD có 3 bộ nhớ chính là CGROM (Character Generator ROM), CGRAM (Character Generator RAM) và bộ nhớ DDRAM (Display Data RAM). Công dụng và chức năng của các bộ nhớ này đợc trình bầy dới đây:
• CGROM : Là bộ nhớ ROM chứa 192 ký tự với cỡ font 5x8 bao gồm các chữ cái, chữ số và các ký hiệu khác đợc thiết lập bởi nhà cung cấp. Ngời dùng có thể sử dụng trực tiếp các ký tự này thông qua bảng mã ASCII của các ký tự (Xem bảng 2.34 để biết chi tiết). Do đó có thể dễ dàng điều khiển việc hiển thị dữ liệu ra module LCD bằng lệnh từ àC đợc ghép nối với nó.
• CGRAM : Bộ nhớ RAM này chứa 8 mẫu ký tự với cỡ font 5x8. Bằng việc ghi font vào bộ nhớ này, ngời dùng có thể tự định nghĩa cho mình một số
Bảng 2.34 : Bảng mã ký tự trong CGROM và CGRAM
• DDRAM : Bộ nhớ này lu trữ tất cả các ký tự đang đợc hiển thị trên màn hình của LCD. Toạ độ của ký tự đợc hiển thị tơng ứng với địa chỉ trong DDRAM nơi mà ký tự đợc lu trữ. Điều này làm cho thao tác điều khiển hiển thị của module LCD rất linh hoạt, vì ngời sử dụng có thể xuất dữ liệu ra bất kỳ vị trí nào trên màn hình LCD thông qua việc ghi ký tự cần hiển thị vào địa chỉ t- ơng ứng trong DDRAM.
Bảng 2.35 :Địa chỉ bộ nhớ DDRAM 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Line 1 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 Line 2 C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CD CE CF D0 D1 D2 D3 D4 Line 3 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 Line D 4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 Trang 86
4
Hình 2.31 : Giao diện hiển thị dữ liệu của LCD
Đa số các module LCD có 14 chân và thứ tự các chân đợc đánh số trên bo mạch in. Ngoài ra, một số module LCD còn có thêm 2 chân 15 và 16 tơng ứng với các chân A và K đợc sử dụng để điều khiển LED BackLight của LCD.
Hình 2.32 : Sơ đồ chân của module LCD 20x4
Chức năng các chân của module LCD
Chân 1 (Vss) : Chân nối đất.
Chân 2 (Vdd) : Chân cấp nguồn 5V.
Chân 3 (V0) :Chân điều khiển độ tơng phản của giao diện hiển thị LCD.
Chân 4 (RS) : Tín hiệu lựa chọn thanh ghi lệnh (IR) hay thanh ghi dữ liệu (DR) của LCD. Khi chân nay ở mức thấp thanh ghi lệnh đợc lựa chọn, khi chân này ở mức cao thanh ghi dữ liệu đợc lựa chọn.
Chân 5 (R/W) : Tín hiệu ghi/đọc dữ liệu của LCD controller. Khi chân này ở mức thấp một thao tác ghi dữ liệu tới LCD đợc thực hiện. Khi chan này ở mức thấp một thao tác đọc dữ liệu từ LCD đợc thực hiện.
Chân 6 (E) : Tín hiệu cho phép LCD controller thực hiện thao tác ghi/đọc. Khi chân này ở mức cao LCD đợc cho phép ghi/đọc.
Chân 7 ...14 (DB0...DB7) : 8 bit dữ liệu của LCD controller.
Chân 15 (A) : Chân cấp nguồn 5V cho LED Backlight.
Chân 16 (K) : Chân nối đất của LED Backlight.
Các lệnh điều khiển LCD controller
Bảng 2.36 : Tập lệnh điều khiển của LCD controller
Tên lệnh RS R/W DB7 DB6 DB5Mã lệnhDB4 DB3 DB2 DB1 DB0 Mô tả Thờigian
Clear display 0 0 0 0 0 0 0 0 0 1 Xoá toàn bộ vùng hiển thị, đặt lại địa chỉ DDRAM là 00H. 1.53ms
Return home 0 0 0 0 0 0 0 0 1 * Đặt địa chỉ DDRAM là 00H và đa con trỏ về vị trí hiển thị đầu tiên. 1.53ms
Entry mode set 0 0 0 0 0 0 0 1 I/D SH Thiết lập chế độ làm việc của AC (Address Counter), và điều khiển dịch chuyển màn hình 39às Display
ON/OFF 0 0 0 0 0 0 1 D C B Bật/tắt chế độ hiển thị (D), con trỏ (C) hoặc nhấp nháy (B). 39às Cursor or
Display shift 0 0 0 0 0 1 S/C R/L * *
Đặt chế độ dịch chuyển con trỏ và dịch chuyển màn hình mà không
làm thay đổi nội dung DDRAM 39às Function set 0 0 0 0 1 DL N F * * Đặt chế độ giao tiếp dữ liệu của LCD là 4 bit hay 8 bit 39às
Set CGRAM
address 0 0 0 1 ACG Đặt địa chỉ CGRAM trong AC 39às Set DDRAM
address 0 0 1 ADD Đặt địa chỉ DDRAM trong AC 39às Read Busy flag
and address 0 1 BF AC Check cờ BF và đọc nội dung AC 39às Write to
CGRAM/DDRA
M 1 0 Write data Ghi dữ liệu vào DDRAM/CGRAM 39às Read from
CGRAM/DDRA
M 1 1 Read data Đọc dữ liệu từ DDRAM/CGRAM 39às I/D 0 : AC tự động giảm 1 : AC tự động tăng
SH 0 : Cấm dịch chuyển vùng hiển thị 1 : Cho phép dịch chuyển vùng hiển thị D 0 : Tắt màn hình hiển thị 1 : Bật màn hình hiển thị
C 0 : Tắt con trỏ 1 : Bật con trỏ B 0 : Tắt nhấp nháy ký tự 1 : Bật nhấp nháy ký tự S/C 0 : Dịch chuyển con trỏ 1 : Dịch chuyển vùng hiển thị R/L 0 : Dịch sang trái 1 : Dịch sang phải
DL 0 : Giao tiếp 4 bit dữ liệu 1 : Giao tiếp 8 bit dữ liệu N 0 : Hiển thị trên một hàng 1 : Hiển thị trên 2 hàng F 0 : sử dụng font 5x8 dots 1 : Sử dụng font 5x11 dots
BF 0 : LCD contrroller sẵn sàng thao tác mới 1 : LCD contrroller đang thực hiện thao tác trong * Không cần quan tâm
Các chế độ khởi tạo LCD controller
Để module LCD làm việc theo đúng yêu cầu, cần phải thực hiện khởi tạo cho LCD controller trớc khi thực hiện các thao tác hiển thị dữ liệu. Hầu hết các module LCD đều có hai chế độ giao tiếp với MPU. Chế độ giao tiếp 4 bit bus và chế độ giao tiếp 8 bit bus. Sự lựa chọn giữa hai chế độ làm việc này đợc quy định bởi sự thiết lập hay xoá bit DL trong thanh ghi lệnh IR của LCD controller. Bởi mặc định, LCD controller đợc khởi tạo ở chế độ 8 bit bus khi Reset. Tuy nhiên, ngời sử dụng có thể thực hiện khởi tạo LCD controller bằng lệnh nếu cần thiết. Dới đây là cơ chế khởi tạo LCD controller ở hai chế độ làm việc khác nhau.
Trong chế độ giao tiếp 4 bit bus, chỉ 4 bit BD4 đến BD7 đợc sử dụng làm bus dữ liệu. Đầu tiên 4 bit cao trong chế độ 8 bit bus (các bit từ BD4 đến BD7) đợc truyền, tiếp theo là 4 bit thấp (các bit từ BD0 đến BD3) đợc truyền. Nh vậy, trong chế độ giao tiếp 4 bit bus, thao tác truyền đợc thực hiện hai lần so với chế độ giao tiếp 4 bit bus. Sau lần truyền dữ liệu thứ hai cờ Busy (BF) đợc đặt ở trạng thái cao cho đến khi LCD controller thực hiện xong các thao tác bên trong.
Cơ chế khởi tạo chế độ giao tiếp 4 bit bus