Giỏ hàng
DANH MỤC

LCD OLED Module OLED12864 0.96Inch SPI I2C

Thương hiệu: Khác
SKU: HN18-8
Giá: 100,000₫
Số lượng

Kiểm tra có hàng tại nơi bạn ở không?

VẬN CHUYỂN NHANH CHÓNG
THANH TOÁN ĐẢM BẢO
HỖ TRỢ 24/7
BẢO HÀNH DÀI HẠN
Mô tả chi tiết

1- Thông số kĩ thuật

- Điện áp hoạt động 3.3V
- Display RAM 128x64 bit
- Chuẩn giao tiếp : + SPI 4-wire
+ SPI 3-wire
+ I2C

2- Sơ đồ chân và chức năng 
[​IMG]
3- Sơ đồ đấu nối với MCU 
[​IMG]
4- Giao tiếp

Ở bài viết này mình xin giới thiệu với các bạn giao tiếp với LED 128x64 bằng chuẩn SPI 3-wire 
Lưu ý : LED 128x64 trên đây chỉ hỗ chợ chân có thể ghi vào chứ không hỗ trợ cho đọc dữ liệu ra từ RAM
Ghi dữ liệu vào LED
[​IMG]
Nếu dữ liệu cần ghi là lệnh thì

- Kéo chân DC xuống 0
- Kéo chân CS xuống 0
- Ghi lệnh vào thông qua chân SDIN khi mỗi sườn lên trên chân SCLK
- Kéo chân DC và CS lên 1

Mã:
void LED128x64_SendCommand(uint8_t Command)
{
    uint8_t i;LED128x64_CS = 0;            // SlaveLED128x64_DC = 0;            // Data
    for(i=0;i<8;i++)
    {LED128x64_SCK = 0;LED128x64_DIN = (Command&0x80) != 0;LED128x64_SCK = 1;
      Command = Command << 1;
    }LED128x64_CS = 1;LED128x64_DC = 1;
}

Nếu dữ liệu cần ghi là Data

- Kéo chân DC lên 1
- Kéo chân CS xuống 0
- Ghi lệnh vào thông qua chân SDIN khi mỗi sườn lên trên chân SCLK
- Kéo chân DC và CS lên 1 

Mã:
//Code
void LED128x64_SendData(uint8_t Data)
{
    uint8_t i;LED128x64_CS = 0;            // SlaveLED128x64_DC = 1;            // Data
    for(i=0;i<8;i++)
    {LED128x64_SCK = 0;LED128x64_DIN = (Data&0x80) != 0;LED128x64_SCK = 1;
      Data = Data << 1;
    }LED128x64_CS = 1;LED128x64_DC = 1;
}

5- Các lệnh của LED 128x64
Để rõ hơn về các lệnh các bạn có thể tham khảo trong Datasheed đính kèm 
6- Quản lí vùng nhớ Display RAM
Vùng Display RAM của LED 128x64 có kích thước 128x64 bit .Được chia làm 8 page được đánh số từ PAGE0 đến PAGE7 .Mỗi PAGE có kích thước 8x128 bit .Nói cách khác,mỗi PAGE gồm 128 cột ,mỗi cột gồm 8 bit được đánh số từ Bit0 đến Bit7 . Mô tả như hình sau 
[​IMG]
[​IMG]
7- Một số hàm cơ bản sử dụng 

Như đã nói ở phần trên .Do LCD khác thì mình sẽ xử lí toàn bộ dữ liệu trên mảng này sau đó mới ghi vào RAM

a. Hàm ON/OFF một điểm ảnh

Muốn hiển thị một điểm ảnh có tọa độ bất kì
- Tìm Page chứa điểm ảnh đó PAGE = x/8 (x là tọa độ hàng)
- Tìm vị trí điểm ảnh trong PAGE Bit = x%8
Để ON điểm ảnh thì cho bit tương ứng lên 1
Để OFF điểm ảnh thì cho bit tương ứng về 0 

Mã:
// Code
void LED128x64_DrawPixel(uint8_t x ,uint8_t y ,uint8_t Color)
{
    if((x>LED128x64_WIDTH))return;
    else
    {
        if(Color==1)
        {
            OLED_RAM[x/8][y] |= (0x01 << (x%8));
        }
        else
        {
            OLED_RAM[x/8][y] &= ~(0x01 << (x%8));
        }
    }
}

b. Hàm ON/OFF toàn bộ màn hình
Để on toàn bộ khung hình thì cho tất cả các bít lên 1 .Ngược lại ,để OFF toàn bộ màn hình thì cho tất cả các bít xuống 0 

Mã:
//Code
void LED128x64_FillScreen(uint8_t Data)
{
    uint8_t i,j;
    for(i=0;i<8;i++)
    {LED128x64_StartPage(i);LED128x64_StartColumn(0x00);
        for(j=0;j<128;j++)
        {LED128x64_SendData(Data);
        } 
    }
}