BÀI 10: LẬP TRÌNH HIỂN THỊ LCD 16X2 VỚI 8051.

0
5693

 

LCD là một màn hình nhiều điểm ảnh, có thể coi là một Led ma trận dạng lớn, tuy nhiên chúng ta không cần đi vào điều khiển từng Pixel hay là từng chấm nhỏ như trong Phần 1 mà chúng ta sẽ điều khiển qua lệnh, con trỏ… để hiển thị thông tin một cách dễ dàng hơn. Có nhiều loại LCD, trong bài này chúng ta dùng loại đơn giản 16×2. Trước tiên chúng ta tìm hiểu về cầu tạo của nó.

Dưới đây là hình mô phỏng, các em tìm nó với từ khóa “lcd 16×2”.

Tiếp theo chúng ta học về cách kết nối, lập trình để sử dụng LCD. Trước tiên chúng ta phải gửi lệnh vào cho LCD biết nó phải làm gì. Cách gửi lệnh như sau:

Các em có thể xem một số lệnh sau đây. Những lệnh này gọi là lệnh khởi tạo LCD.

Sau khi gửi các lệnh vào LCD (qua các chân D0 – D7) để nó biết sẽ phải làm gì (bật màn hình, hiển thị hay tắt con trỏ, di chuyển con trỏ …), chúng ta sẽ phải gửi lệnh chứa các kí tự mà chúng ta muốn hiển thị. Cách gửi dữ liệu ra cũng tương tự như cách gửi lệnh, các em có thể xem trong hình sau:

Bước 1 thường là mặc định. Các bước sau tương tự như việc gửi lệnh vào LCD. Tại sao B1 lại là mặc định, vì chúng ta thường dùng LCD để hiển thị chứ không để nhận dữ liệu vào. Hình sau nối chân RW với Ground:

Các em tạo Project mô phỏng như hình vẽ dưới và sử dụng đoạn code sau để hiển thị kí tự ra màn hình.

 

Trong việc hiển thị kí tự tại một vị trí có sẵn, chúng ta sử dụng 8 bit để chọn vị trí của kí tự. Bit đầu tiên luôn mặc định là 1. Các bit tiếp theo hiển thị vị trí của kí tự. Có tất cả 128 ô (00-7F).
Với các câu lệnh khác, chúng ta có thể hiển thị kí tự ở một vị trí bất kì trong  một dòng, thay vì chỉ đầu dòng. Chúng ta cũng có thể cho cả dòng chữ chạy trái, chạy phải chỉ với một dòng lệnh.

Sau khi hiển thị một kí tự tại một vị trí có sẵn, chúng ta có thể tiến đến bước xa hơn, dịch chuyển kí tự mà chúng ta muốn (dịch trái, dịch phải) với câu lệnh như hình dưới.

Cuối cùng, khi dòng chữ đang chạy, các em muốn dừng không cho chạy nữa, trở lại vị trí như ban đầu, có thể dùng lệnh sau:

 

 

Trao đổi học tập

Comments