- Các thành phần bắt buộc:
- LCD đồ họa:
- Hiển thị hình ảnh trên màn hình LCD đồ họa sử dụng 8051:
- Giải thích mạch:
- Giải thích lập trình:
Trong cuộc sống hàng ngày, chúng ta thấy nhiều loại thiết bị để hiển thị Văn bản, Hình ảnh và Đồ họa. Màn hình LCD là một trong những Thiết bị hiển thị phổ biến nhất trong Điện tử và được sử dụng trong hầu hết các dự án hiển thị một số loại thông tin. Có nhiều loại LCD được sử dụng trong các Dự án Điện tử. Chúng tôi đã sử dụng LCD 16X2 trong nhiều dự án của mình và cũng đã sử dụng TFT LCD với Arduino. Bạn có thể tìm thấy tất cả dự án liên quan đến LCD 16X2 của chúng tôi theo liên kết này, bao gồm giao tiếp với 8051, AVR, Arduino và nhiều hơn nữa.
Trong hướng dẫn này, chúng ta sẽ thực hiện giao tiếp Graphic LCD với vi điều khiển 8051. Trong dự án này, chúng tôi sẽ giới thiệu cách Hiển thị Hình ảnh trên Màn hình LCD đồ họa (GLCD).
Các thành phần bắt buộc:
- Đồ họa LCD
- Vi điều khiển AT89c52 8051
- Bộ điều chỉnh điện áp 7805
- Tụ điện 1000uf
- Tụ điện 10 uF
- Điện trở 10K
- LẨU 10K
- Bộ dao động tinh thể 12 MH
- Kết nối dây
- Bảng bánh mì
- Burg dải nam
- Nguồn cấp
- Đèn LED
- Điện trở 220 Ohm
- Điện trở 1K
LCD đồ họa:
Một màn hình LCD 16x2 đơn giản có 16 chân nhưng LCD đồ họa có 20 chân. Mô tả ghim được đưa ra dưới đây theo biểu dữ liệu của nó:
Số pin | Tên ghim | Sự miêu tả | Chức năng |
1 | VSS | Đất | 0 Vôn |
2 | VDD | Nguồn cấp | 5 Volt |
3 | V0 | Điều chỉnh độ tương phản LCD | |
4 | RS | Lựa chọn đăng ký lệnh / dữ liệu | RS = 0: Lựa chọn lệnh và RS = 1: Lựa chọn dữ liệu |
5 | R / W | Đăng ký Đọc / Ghi | R / W = 0: Ghi lựa chọn và R / W = 1: Đọc lựa chọn |
6 | E | Bật tín hiệu | |
7 | DB0 | Chân đầu vào / đầu ra dữ liệu (DB0-DB7) | 8 bit (DB0-DB7) |
số 8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Chọn chip | CS1 = 1, Tín hiệu chọn chip cho IC1 |
16 | CS2 | Chọn chip | CS2 = 1, Tín hiệu chọn chip cho IC2 |
17 | RST | Cài lại | Đặt lại GLCD |
18 | VEE | Điện áp âm cho trình điều khiển LCD | |
19 | A | Đèn hậu LED | 5 Volt |
20 | K | Đèn hậu LED | Đất |
Hiển thị hình ảnh trên màn hình LCD đồ họa sử dụng 8051:
Để hiển thị hình ảnh trên màn hình LCD đồ họa, trước tiên chúng ta cần chuyển đổi hình ảnh đó thành Mã hội để Vi điều khiển 8051 có thể hiểu và đọc được. Vì vậy, chúng ta cần làm theo các bước dưới đây để chuyển đổi hình ảnh thành mã HEX:
Bước 1: Đầu tiên chúng ta cần tải một ứng dụng chuyển đổi Image (định dạng BMP) sang Assembly Code. Vì vậy, hãy tải xuống Ứng dụng Chuyển đổi Hình ảnh BMP2ASM từ liên kết này, chỉ cần Nhấp chuột phải vào liên kết và sau đó nhấp vào Lưu liên kết thành…
Bước 2: Sau đó, chọn hình ảnh mà bạn muốn hiển thị trên Graphical LCD và chuyển nó thành BMP, (nếu nó chưa có định dạng BMP) bằng bất kỳ ứng dụng nào như MS Paint, Photoshop, v.v. Hoặc bạn có thể tìm thấy nhiều trang web trực tuyến để chuyển đổi định dạng hình ảnh. Chúng tôi có hình ảnh BMP bên dưới, với kích thước 128x64:
Bước 3: Bây giờ giải nén tệp BMP2ASM.zip mà chúng ta đã tải xuống ở Bước 1 và mở Bmp2asm.exe bên trong nó và chọn hình ảnh BMP.
Bước 4: Bây giờ nhấn “Chuyển đổi” trong cửa sổ ứng dụng BMP2ASM.
Bước 5: Sau đó Copy đoạn mã đã tạo và dán vào chương trình của 8051 trong Keil uVision. Thực hiện một số thay đổi và biên dịch mã.
Bây giờ mã của bạn đã sẵn sàng để tải lên trong Vi điều khiển 8051.
Giải thích mạch:
Kết nối mạch đối với Interfacing Graphical LCD to 8051 Microcontroller, dễ dàng và gần giống như kết nối LCD 16x2 với 8051. Nhưng LCD 16x2 có 16 chân và GLCD có 20 chân.
Nồi 10K được sử dụng để đặt độ tương phản cho GLCD. Các chân điều khiển của GLCD RS, R / W và E được kết nối trực tiếp với số chân 89C52 P1.0, P1.1 và P1.2. Chân chọn chip CS1 và CS2 của LCD được kết nối tương ứng với chân P1.3 và P1.4. Các chân dữ liệu DB0-DB7 được kết nối trực tiếp tại PORT P2. Bộ điều chỉnh điện áp 7805 được sử dụng cho nguồn điện 5 volt thường xuyên. Trong Video trình diễn, tôi đã sử dụng bộ nguồn Arduino.
Giải thích lập trình:
Trước hết, chúng tôi đưa các tệp tiêu đề bắt buộc vào chương trình và xác định các bit cho các Ghim Điều khiển và Dữ liệu của GLCD.
#include
Sau đó, chúng ta đã tạo một hàm trì hoãn.
void delay (int itime) {int i, j; cho (i = 0; i
Hàm void lcd_disp_on () được sử dụng để Bật màn hình.
Hàm void setCursorY (int y) được tạo để thiết lập cột trong GLCD và Hàm void setCursorX (int x) được tạo để thiết lập trang trên GLCD. Tệp mã hoàn chỉnh được cung cấp trong Phần mã bên dưới.
Sau khi thiết lập Cột và Trang, chúng ta đã viết một hàm để gửi lệnh và dữ liệu đến GLCD.
void lcdprint (char dat, int size) {unsigned int i; cho (i = 0; i
Trong hàm void main () , chúng ta đã xóa GLCD và sau đó đặt Cột và Trang. Sau đó, gửi dữ liệu tới LCD bằng cách sử dụng hàm void lcdprint (char dat, int size) .
void main () {int x, y; P3 = 0xff; trong khi (1) {lcdclear (); for (y = 0; y <8; y ++) {for (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (hình ảnh, x); }}…………………..
Dòng mã:
- Đầu tiên khi chúng ta Khởi động hệ thống, chương trình sẽ xóa GLCD và Bật màn hình.
- Sau đó, đặt con trỏ thành Cột, từ nơi chúng ta muốn ghi Dữ liệu.
- Sau đó đặt con trỏ thành Trang, từ nơi chúng ta muốn ghi Dữ liệu.
- Bây giờ chương trình sẽ gửi Dữ liệu đến vị trí đã chọn lần lượt cho đến 128X8 lần. Bởi vì một GLCD có 8 trang và 128 cột.