標(biāo)題: 求JYD-16080ASLCB驅(qū)動代碼 [打印本頁]

作者: colz    時間: 2025-2-2 15:24
標(biāo)題: 求JYD-16080ASLCB驅(qū)動代碼
請教高手指點,給個驅(qū)動代碼
之前有個某個論壇上 看到這款屏幕的驅(qū)動,當(dāng)時沒有及時收藏起來,現(xiàn)在回來去找,已很難找到
最近過年,也找了很多資料,還是沒有能用起來
無控制器 ,驅(qū)動IC 可能位ST8016、NT7701類似的
觀察引腳 是4bit驅(qū)動的
有LP、CP、FLM、DISPOFF等 配合 D0、D1、D2、D3實現(xiàn)驅(qū)動
奈何能力優(yōu)先,轉(zhuǎn)悠了很久也未能點亮

忘有收藏此屏驅(qū)動的壇友,回復(fù)我一個

51hei圖片_20250202152403.jpg (286.54 KB, 下載次數(shù): 0)

液晶引腳圖片

液晶引腳圖片

NT7701.PDF

470.69 KB, 下載次數(shù): 0, 下載積分: 黑幣 -5

NT7701

LM2068AFW.PDF

1.3 MB, 下載次數(shù): 0, 下載積分: 黑幣 -5

看著引腳相識的拓普微


作者: colz    時間: 2025-3-3 19:57
問了deepseek,給了參考代碼,現(xiàn)在能顯示,但是還是不正常
用的pico,micropython
還需要繼續(xù)摸索

from machine import Pin
import time

# 初始化控制引腳和數(shù)據(jù)引腳(根據(jù)實際連接調(diào)整引腳編號)
flm = Pin(9, Pin.OUT)      # 幀開始信號
cp = Pin(6, Pin.OUT)       # 時鐘脈沖
lp = Pin(7, Pin.OUT)       # 行脈沖
dispoff = Pin(10, Pin.OUT)  # 顯示開關(guān)(假設(shè)低電平啟用顯示)
fr= Pin(8, Pin.OUT)

d0 = Pin(2, Pin.OUT)       # 數(shù)據(jù)位0
d1 = Pin(3, Pin.OUT)       # 數(shù)據(jù)位1
d2 = Pin(4, Pin.OUT)       # 數(shù)據(jù)位2
d3 = Pin(5, Pin.OUT)       # 數(shù)據(jù)位3

dispoff(0)
fr(0)
time.sleep(1)
# 生成棋盤格數(shù)據(jù) (160x80)
def generate_chess_pattern():
    pattern = []
    for y in range(80):
        row = []
        for x in range(20):  # 每行20字節(jié) (160像素)
            byte = 0
            for bit in range(8):
                px = x * 8 + bit
                if (px + y) % 2 == 0:  # 棋盤格條件
                    byte |= (1 << (7 - bit))  # 高位在前
            row.append(byte)
        pattern.append(row)
    return pattern

# 設(shè)置數(shù)據(jù)引腳輸出的函數(shù)
def set_data(nibble):
    d0.value((nibble >> 0) & 0x01)
    d1.value((nibble >> 1) & 0x01)
    d2.value((nibble >> 2) & 0x01)
    d3.value((nibble >> 3) & 0x01)

# 發(fā)送一個字節(jié)(分兩次傳輸高4位和低4位)
def send_byte(byte):
    # 高4位
    set_data((byte >> 4) & 0x0F)
    cp.value(1)  # 產(chǎn)生時鐘上升沿

    cp.value(0)

    # 低4位
    set_data(byte & 0x0F)
    cp.value(1)

    cp.value(0)


# 初始化顯示
dispoff(1)  # 開啟顯示
p=generate_chess_pattern()
def draw_checkerboard():
    while True:
        # 開始新幀
        fr(0)
        flm.value(0)
        flm.value(1)
        fr(1)
        dat=0xf
        for y in range(80):  # 遍歷每一行
            # 行開始信號
            lp.value(1)
            lp.value(0)
            if y%9==1:
                dat=~dat
            for x in range(20):  # 遍歷每行中的像素
                # 根據(jù)棋盤格模式生成像素值
                send_byte(dat)
            # 行結(jié)束信號(根據(jù)需求調(diào)整)

            #lp.value(1)
            time.sleep_ms(100)
        flm(0)   
        #time.sleep_ms(16)  # 控制刷新率

# 運行棋盤格繪制
draw_checkerboard()



cadc5e5863d564332d8a95fa5dff21f.jpg (212.58 KB, 下載次數(shù): 0)

cadc5e5863d564332d8a95fa5dff21f.jpg

作者: colz    時間: 2025-3-3 19:59
問了Deepseek
給了參考代碼,可以點亮了。。。
但是還是顯示不正常

from machine import Pin
import time

# 初始化控制引腳和數(shù)據(jù)引腳(根據(jù)實際連接調(diào)整引腳編號)
flm = Pin(9, Pin.OUT)      # 幀開始信號
cp = Pin(6, Pin.OUT)       # 時鐘脈沖
lp = Pin(7, Pin.OUT)       # 行脈沖
dispoff = Pin(10, Pin.OUT)  # 顯示開關(guān)(假設(shè)低電平啟用顯示)
fr= Pin(8, Pin.OUT)

d0 = Pin(2, Pin.OUT)       # 數(shù)據(jù)位0
d1 = Pin(3, Pin.OUT)       # 數(shù)據(jù)位1
d2 = Pin(4, Pin.OUT)       # 數(shù)據(jù)位2
d3 = Pin(5, Pin.OUT)       # 數(shù)據(jù)位3

dispoff(0)
fr(0)
time.sleep(1)
# 生成棋盤格數(shù)據(jù) (160x80)
def generate_chess_pattern():
    pattern = []
    for y in range(80):
        row = []
        for x in range(20):  # 每行20字節(jié) (160像素)
            byte = 0
            for bit in range(8):
                px = x * 8 + bit
                if (px + y) % 2 == 0:  # 棋盤格條件
                    byte |= (1 << (7 - bit))  # 高位在前
            row.append(byte)
        pattern.append(row)
    return pattern

# 設(shè)置數(shù)據(jù)引腳輸出的函數(shù)
def set_data(nibble):
    d0.value((nibble >> 0) & 0x01)
    d1.value((nibble >> 1) & 0x01)
    d2.value((nibble >> 2) & 0x01)
    d3.value((nibble >> 3) & 0x01)

# 發(fā)送一個字節(jié)(分兩次傳輸高4位和低4位)
def send_byte(byte):
    # 高4位
    set_data((byte >> 4) & 0x0F)
    cp.value(1)  # 產(chǎn)生時鐘上升沿

    cp.value(0)

    # 低4位
    set_data(byte & 0x0F)
    cp.value(1)

    cp.value(0)


# 初始化顯示
dispoff(1)  # 開啟顯示
p=generate_chess_pattern()
def draw_checkerboard():
    while True:
        # 開始新幀
        fr(0)
        flm.value(0)
        flm.value(1)
        fr(1)
        dat=0xf
        for y in range(80):  # 遍歷每一行
            # 行開始信號
            lp.value(1)
            lp.value(0)
            if y%9==1:
                dat=~dat
            for x in range(20):  # 遍歷每行中的像素
                # 根據(jù)棋盤格模式生成像素值
                send_byte(dat)
            # 行結(jié)束信號(根據(jù)需求調(diào)整)

            #lp.value(1)
            time.sleep_ms(100)
        flm(0)   
        #time.sleep_ms(16)  # 控制刷新率

# 運行棋盤格繪制
draw_checkerboard()



cadc5e5863d564332d8a95fa5dff21f.jpg (212.58 KB, 下載次數(shù): 0)

點亮圖

點亮圖





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1