Giao tiếp màn hình LCD 16x2 với 8051. Màn hình LCD là một thành phần không thề thiếu trong hầu hết các dự án lập trình nhúng.
Giao tiếp màn hình LCD 16x2 với 8051
Màn hình LCD là một phần không thể thiếu trong hầu hết các dự án nhúng và bài viết này hướng dẫn kết nối màn hình LCD 16 × 2 với vi điều khiển 8051. Nhiều người cảm thấy khó khăn khi giao tiếp mô-đun LCD với 8051 nhưng thực tế là nếu bạn học đúng cách, công việc rất dễ dàng, bạn có thể thiết kế các dự án nhúng như vôn kế / ampe kế, đồng hồ kỹ thuật số, màn hình tự động gia đình , hiển thị chỉ báo trạng thái, khóa mã kỹ thuật số, đồng hồ tốc độ / đo tốc độ kỹ thuật số, hiển thị cho máy nghe nhạc, v.v. Xem kỹ bài viết này sẽ giúp bạn có thể hiển thị bất kỳ văn bản nào (bao gồm các ký tự mở rộng) trên bất kỳ phần nào của màn hình hiển thị 16 × 2. Để hiểu được giao tiếp này trước tiên, bạn phải biết về mô-đun LCD 16 × 2.
Mô-đun LCD 16x2
Mô-đun LCD 16 × 2 là loại mô-đun LCD rất phổ biến được sử dụng trong các dự án nhúng dựa trên 8051. Nó bao gồm 16 hàng và 2 cột 5 × 7 hoặc 5 × 8 ma trận điểm LCD. Các mô-đun đang nói về ở đây là loại JHD162A, một loại rất phổ biến. Nó có sẵn trong một gói 16 chân với ánh sáng nền , chức năng điều chỉnh độ tương phản và mỗi ma trận điểm có độ phân giải 5 × 8 chấm. Số chân, tên của chúng và các chức năng tương ứng được hiển thị trong bảng bên dưới.
Chân số |
Tên chân |
Chức năng |
1 |
Vss |
Chân này phải được nối GND |
2 |
Vcc |
Chân nối nguồn cấp (5V) |
3 |
Vee |
Chỉnh độ tương phản |
4 |
RS |
Chọn thanh ghi |
5 |
R/W |
Đọc hoặc ghi |
6 |
E |
Cho phép mô-đun |
7 |
DB0 |
Chận dữ liệu |
8 |
DB1 |
Chân dữ liệu |
9 |
DB2 |
Chân dữ liệu |
10 |
DB3 |
Chân dữ liệu |
11 |
DB4 |
Chân dữ liệu |
12 |
DB5 |
Chân dữ liệu |
13 |
DB6 |
Chân dữ liệu |
14 |
DB7 |
Chân dữ liệu |
15 |
LED+ |
Anode của led |
16 |
LED- |
Cathode của led |
Chân Vee là để điều chỉnh độ tương phản của màn hình LCD và độ tương phản có thể được điều chỉnh bằng cách thay đổi điện áp ở chân này. Thực hiện bằng cách nối một đầu của biến trở với Vcc (5V), đầu kia với GND và nối chân giữa của biến trở với chân Vee. Xem sơ đồ mạch để hiểu rõ hơn.
JHD162A có hai thanh ghi tích hợp là thanh ghi dữ liệu và thanh ghi lệnh. Thanh ghi dữ liệu để đặt dữ liệu sẽ được hiển thị và thanh ghi lệnh để đặt các lệnh. Mô-đun LCD 16 × 2 có một bộ lệnh mỗi lệnh để thực hiện một công việc cụ thể với màn hình. Chúng ta sẽ thảo luận chi tiết về các lệnh sau. Nếu mức logic cao đưa vào chân RS thì sẽ chọn thanh ghi dữ liệu và mức logic thấp ở chân RS thì sẽ chọn thanh ghi lệnh. Nếu chúng ta đặt chân RS lên cao và đặt dữ liệu vào dòng dữ liệu 8 bit (DB0 đến DB7), mô-đun LCD sẽ nhận ra đó là dữ liệu sẽ được hiển thị. Nếu chúng ta làm cho chân RS ở mức thấp và đặt dữ liệu trên đường dữ liệu, mô-đun sẽ nhận ra đó là một lệnh.
Chân R / W có nghĩa là để chọn giữa chế độ đọc và ghi. Mức cao ở chân này cho phép chế độ đọc và mức thấp ở chân này cho phép chế độ ghi.
Chân E là để kích hoạt các mô-đun. Chuyển đổi từ cao xuống thấp ở chân này sẽ cho phép mô-đun.
DB0 đến DB7 là các chân dữ liệu. Dữ liệu được hiển thị và lệnh được đặt trên các chân này.
LED+ là cực dương của đèn LED phía sau và chân này phải được kết nối với Vcc thông qua một điện trở giới hạn dòng thích hợp. LED- là cực âm của đèn LED phía sau và chân này phải được nối đất.
Các lệnh cho mô-đun LCD 16x2
Mô-đun LCD 16 × 2 có một bộ hướng dẫn lệnh đặt trước. Mỗi lệnh sẽ làm cho mô-đun thực hiện một nhiệm vụ cụ thể. Các lệnh thường được sử dụng và chức năng của chúng được đưa ra trong bảng dưới đây
Lệnh |
Chức năng |
0F |
LCD bật, con trỏ bật, con trỏ nhấp nháy bật |
01 |
Xoá toàn màn hình |
02 |
Quay về màn hình chính |
04 |
Giảm con trỏ |
06 |
Tăng con trỏ |
0E |
Màn hình bật, con trỏ nhấp nháy tắt |
80 |
Bắt con trỏ trở về vị trí đầu tiên của hàng 1 |
C0 |
Bắt con trỏ trở về vị trí đầu tiên của hàng 2 |
38 |
Sử dụng 2 hàng và ma trận 5x7 |
83 |
Con trỏ hàng 1 vị trí 3 |
3C |
Kích hoạt dòng 2 |
08 |
Tắt màn hình hiển thị và con trỏ |
C1 |
Nhảy đến dòng 2 vị trí 1 |
OC |
Bật màn hình hiển thị, tắt con trỏ |
C2 |
Nhảy đến hàng 2, vị trí 2 |
Khởi tạo LCD
Các bước phải được thực hiện để khởi tạo màn hình LCD được đưa ra dưới đây và các bước này là phổ biến cho hầu hết các ứng dụng.
B1: Gửi 38H đến dòng dữ liệu 8 bit để khởi tạo
B2: Gửi 0FH để bật LCD, con trỏ BẬT và con trỏ nhấp nháy ON.
B3:Gửi 06H để tăng vị trí con trỏ.
B4: Gửi 01H để xóa màn hình và trả về con trỏ.
Đưa dữ liệu vào LCD
Các bước để gửi dữ liệu đến mô-đun LCD được đưa ra dưới đây. Mô-đun LCD có các chân RS, R / W và E. Chính trạng thái logic của các chân này làm cho mô-đun xác định xem đầu vào dữ liệu đã cho là lệnh hay dữ liệu được hiển thị.
Đặt R / W mức thấp.
Đặt RS = 0 nếu byte dữ liệu là lệnh và tạo RS = 1 nếu byte dữ liệu là dữ liệu sẽ được hiển thị.
Đặt byte dữ liệu trên thanh ghi dữ liệu.
Xung E từ cao xuống thấp.
Lặp lại các bước trên để gửi dữ liệu khác.
Sơ đồ nguyên lý
Sơ đồ mạch được đưa ra ở trên cho thấy cách giao tiếp mô-đun LCD 16 × 2 với vi điều khiển AT89S1. Tụ điện C3, điện trở R3 và công tắc nút nhấn S1 tạo thành mạch reset. Tụ gốm C1, C2 và tinh thể X1 tạo ra tần số xung nhịp cho vi điều khiển. Các chân từ P1.0 đến P1.7 của vi điều khiển được kết nối với các chân DB0 đến DB7 của mô-đun tương ứng và qua đó, dữ liệu đi đến mô-đun LCD. P3.3, P3.4 và P3.5 được nối với các chân E, R / W, RS của vi điều khiển và tín hiệu điều khiển được truyền đến mô-đun LCD. Biến trở R2 được sử dụng để điều chỉnh độ tương phản của màn hình. Chương trình giao tiếp LCD với vi điều khiển 8051 được hiển thị bên dưới.
Lập trình
MOV A,#38H // dùng 2 hàng và sử dụng ma trận 5x7
ACALL CMND
MOV A,#0FH // LCD bat, con tro bat, con tro nhap nhay bat
ACALL CMND
MOV A,#01H //Xoa man hinh
ACALL CMND
MOV A,#06H //Tang con tro
Hotline: 0979 466 469