➢ Giải thích sơ đồ ngun lý
• Chân 2,36,34 : nối GND.
• Chân 25, 33: Cấp nguồn 3.3V từ mạch giảm áp LM2596.
• Tụ điện C1 10uF: lọc nhiễu 50Hz cơng nghiệp.
• Chân 3,…,18: chân lấy dữ liệu truyền song song từ chân vi điều khiển.
• Chân 19: tín hiệu cho phép LCD hoạt động thường là mức thấp.
• Chân 20: Chọn ghi dữ liệu hay đọc dữ liệu trong thanh ghi.
• Chân 21: Chân ghi dữ liệu.
• Chân 22: Chân đọc dữ liệu.
Để lập trình được cho LCD ta cần hiểu chính xác về cấu trúc thanh ghi bên trong RA8875. Giống như những Driver LCD khác, RA8875 cơ bản cũng bao gồm một số thanh ghi cấu hình và các thanh ghi chức năng cho LCD. Ở đây nhóm em sẽ đề cập sâu vào việc hiển thị 1 điểm ảnh tức là việc ghi vào 1 ô bộ nhớ của bộ nhớ đệm được ánh xạ cho LCD trên RA8875. Để làm được việc đó chúng ta sẽ làm việc trên các thanh ghi: 0x46, 0x47, 0x48, 0x49 và lệnh ghi dữ liệu 0x02
Dưới đây là Function mô tả việc ghi 1 ô dữ liệu trên bộ nhớ đệm của RA8875 cũng tức là xuất ra 1 điểm ảnh trên LCD.
void gotoXY(uint16_t x,uint16_t y) {
LCD_CmdWrite(0x46); // Chọn thanh ghi 8bit cao của vị trí hàng ngang
LCD_DataWrite(x); // Ghi giá trị 8bit cao của vị trí hàng ngang
LCD_CmdWrite(0x47); // Chọn thanh ghi 8bit thấp của vị trí
hàng ngang
LCD_DataWrite(x>>8); // Ghi giá trị 8bit thấp của vị trí hàng ngang
LCD_CmdWrite(0x48); // Chọn thanh ghi 8bit cao của vị trí hàng dọc
LCD_DataWrite(y); // Ghi giá trị 8bit cao của vị trí hàng dọc
LCD_CmdWrite(0x49); // Chọn thanh ghi 8bit thấp của vị trí
hàng dọc
LCD_DataWrite(y>>8); // Ghi giá trị 8bit thấp của vị trí hàng dọc }
void drawPixel(uint16_t x,uint16_t y,uint16_t color) {
gotoXY(x,y); // gọi lại function trên để xác định tạo độ x,y trên màn hình cũng chính là vị trí ơ nhớ ta chuẩn bị ghi giá trị vào
LCD_CmdWrite(0x02); // lệnh ghi vào bộ nhớ đệm
LCD_DataWrite(color); // ghi giá trị vào bộ nhớ đệm, giá trị này là 16bit màu theo format 565
}
3.4. SƠ ĐỒ NGUYÊN LÝ TOÀN MẠCH Sơ đồ nguyên lý Sơ đồ nguyên lý