Giao tiếp với text LCD

0
3260
lcd16x2

1. Sơ đồ chân của text LCD

Tên chân và chức năng:

Thứ Tự Tên Chức năng
1 Vss (GND) 0 V
2 Vdd (VCC) 5 VDC
3 Vee Điều chỉnh độ tương phản, nguồn từ 0-5VDC
4 RS Lựa chọn thanh ghi (Thanh ghi lệnh và thanh ghi dữ liệu)

RS=0 : Thanh ghi lệnh (khi ghi) tức là data trên chân D0-D7 là lệnh

RS=1 : Thanh ghi dữ liệu (Khi ghi và đọc): tức là data trên chân D0-D7 là dữ liệu

5 R/W R/W=0 : Ghi dữ liệu (vi điều khiển ->LCD)

R/W=1 : Đọc dữ liệu (LCD-> Vi điều khiển)

6 E E=0 : Vô hiệu hóa LCD

E=1 : LCD hoạt động

E chuyển từ 1->0: Bắt đầu ghi/ đọc LCD

7 D0  Chân dữ liệu bit 0
8 D1  Chân dữ liệu bit 1
9 D2  Chân dữ liệu bit 2
10 D3  Chân dữ liệu bit 3
11 D4  Chân dữ liệu bit 4
12 D5  Chân dữ liệu bit 5
13 D6  Chân dữ liệu bit 6
14 D7  Chân dữ liệu bit 7
16 A  Cực dương led nền LCD
17 K  Cực âm led nền LCD

IC lái LCD HD4478U

Trong các text LCD loại 1 dòng và hai dòng trên thị trường hiện nay thường tích hợp chip lái HD44780U hoặc chip tương thích với chíp lái này.

 

Sơ đồ khối của HD4478U

Thanh ghi trong HD4478U:

HD4478U có hai thanh ghi 8 bit: Thanh ghi lệnh (IR) và thanh ghi dữ liệu (DR)

Thanh ghi IR lưu trữ mã lệnh: Như xóa hiện thị và dịch con trỏ, và chứa thông tin địa chỉ cho vùng RAM dữ liệu hiển thị (DDRAM) và vùng RAM tạo ký tự CGRAM. IR chỉ có thể ghi từ vi điều khiển.

Thanh ghi DR dùng để lưu trữ tạm thời dữ liệu để ghi đến DDRAM hoặc CGRAM và dữ liệu lưu trữ tạm thời có thể đọc từ DDRAM hoặc CGRAM. Dữ liệu được ghi đến thanh ghi DR, dữ liệu đó sẽ tự động được truyền đến DDRAM hoặc CGRAM một cách tự động. Thanh ghi DR cũng là vùng lưu trữ dữ liệu tạm thời khi ta muốn đọc dữ liệu DDRAM hoặc CGRAM. Khi các thông tin về địa chỉ được ghi đến thanh ghi IR, dữ liệu được từ DDRAM hoặc CGRAM được đọc và lưu trữ vào DR một cách tự động bởi LCD. Khi đó ta tiến hành đọc dữ liệu lưu trữ ở thanh ghi DR. Sau khi đọc, dữ liệu trong DDRAM hoặc CGRAM tại địa chỉ kế tiếp được đưa đến thanh ghi DR để sẳn sàng cho lần đọc kế tiếp từ vi điều khiển. Nhờ tín hiệu lựa chọn thanh ghi (RS), khi đó ta thể lựa chọn giữa hai thanh ghi IR và DR

Cờ bận (BF):

Khi cờ bận =1 , LCD đang bận xử lý, và lệnh tiếp theo sẽ không được chấp nhận. Khi RS=0 và R/W=1, cờ bận được xuất ra chân DB7. Lệnh tiếp theo chỉ có thể được viết sau khi cờ bận =0;

Bộ đếm địa chỉ (AC):

Bộ đếm địa chỉ (AC) sẽ gán địa chỉ đến cả hai DDRAM và CGRAM. Khi địa chỉ của một lệnh được viết đến IR , thông tin địa chỉ được gửi từ IR đến AC . Lựa chọn của một trong hai DDRAM hoặc CGRAM cũng được xác định đồng thời bởi lệnh.

Sau khi ghi (Hoặc đọc từ) DDRAM hoặc CGRAM, AC sẽ tự động tăng lên 1 hoặc giảm 1. Dữ liệu AC được xuất ra chân DB0 đến DB6 khi RS=0 và R/W =1

Bộ nhớ trong HD44780U

HD44780U có 3 loại bộ nhớ, đó là bộ nhớ RAM dữ liệu cần hiển thị DDRAM (Display Data RAM), bộ nhớ chứa ROM chứa bộ font tạo ra ký tự CGROM (Character Generator ROM) và bộ nhớ RAM chứa bộ font tạo ra các symbol tùy chọn CGRAM (Character Generator RAM). Để điều khiển hiển thị Text LCD chúng ta cần hiểu tổ chức và cách thức hoạt động của các bộ nhớ này:

2.1 DDRAM.

DDRAM là bộ nhớ tạm chứa các ký tự cần hiển thị lên LCD, bộ nhớ này gồm có 80 ô được chia thành 2 hàng, mỗi ô có độ rộng 8 bit và được đánh số từ 0 đến 39 cho dòng 1; từ 64 đến 103 cho dòng 2. Mỗi ô nhớ tương ứng với 1 ô trên màn hình LCD. Như chúng ta biết LCD loại 16×2 có thể hiển thị tối đa 32 ký tự (có 32 ô hiển thị), vì thế có một số ô nhớ của DDRAM không được sử dụng làm các ô hiển thị. Để hiểu rõ hơn chúng ta tham khảo hình 3 bên dưới

 

 

 

Tổ chức của DDRAM.

 

Chỉ có 16 ô nhớ có địa chỉ từ 0 đến 15 và 16 ô địa chỉ từ 64 đến 79 là được hiển thị trên LCD. Vì thế muốn hiển thị một ký tự nào đó trên LCD chúng ta cần viết ký tự đó vào DDRAM ở 1 trong 32 địa chỉ trên. Các ký tự nằm ngoài 32 ô nhớ trên sẽ không được hiển thị.

 

2.2 CGROM.

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ùng nhớ này mà chip HD44780U 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ự đó. Ví dụ ký tự ‘a’ có mã ASCII là 97, tham khảo tổ chức của vùng nhớ CGROM trong hình 4 bạn sẽ nhận thấy địa chỉ font của ‘a’ có 4 bit thấp là 0001 và 4 bit cao là 0110, địa chỉ tổng hợp là 01100001 = 97.
CGROM và DDRAM được tự động phối hợp trong quá trình hiển thị của LCD. Giả sử chúng ta muốn hiển thị ký tự ‘a’ tại vị trí đầu tiên, dòng thứ 2 của LCD thì các bước thực hiện sẽ như sau: trước hết chúng ta biết rằng vị trí đầu tiên của dòng 2 có địa chỉ là 64 trong bộ nhớ DDRAM (xem hình 3), vì thế chúng ta sẽ ghi vào ô nhớ có địa chỉ 64 một giá trị là 97 (mã ASCII của ký tự ‘a’). Tiếp theo, chip HD44780U đọc giá trị 97 này và coi như là địa chỉ của vùng nhớ CGROM, nó sẽ tìm đến vùng nhớ CGROM có địa chỉ 97 và đọc bảng font đã được định nghĩa sẵn ở đây, sau đó xuất bản font này ra các “chấm” trên màn hình LCD tại vị trí đầu tiên của dòng 2 trên LCD. Đây chính là cách mà 2 bộ nhớ DDRAM và CGROM phối hợp với nhau để hiển thị các ký tự. Như mô tả, công việc của người lập trình điều khiển LCD tương đối đơn giản, đó là viết mã ASCII vào bộ nhớ DDRAM tại đúng vị trí được yêu cầu, bước tiếp theo sẽ do HD44780U đảm nhiệm.

 

 

Hình 4. Vùng nhớ CGROM.

2.3 CGRAM.

CGRAM là vùng nhớ chứa các symbol do người dùng tự định nghĩa, mỗi symbol được có kích thước 5×8 và được dành cho 8 ô nhớ 8 bit. 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ó tối đa 8 symbol có thể được định nghĩa.

 

Các kiểu hiển thị:

Leave a Reply