找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 700|回复: 2
打印 上一主题 下一主题
收起左侧

求JYD-16080ASLCB驱动代码

[复制链接]
跳转到指定楼层
楼主
请教高手指点,给个驱动代码
之前有个某个论坛上 看到这款屏幕的驱动,当时没有及时收藏起来,现在回来去找,已很难找到
最近过年,也找了很多资料,还是没有能用起来
无控制器 ,驱动IC 可能位ST8016、NT7701类似的
观察引脚 是4bit驱动的
有LP、CP、FLM、DISPOFF等 配合 D0、D1、D2、D3实现驱动
奈何能力优先,转悠了很久也未能点亮

忘有收藏此屏驱动的坛友,回复我一个

51hei图片_20250202152403.jpg (286.54 KB, 下载次数: 0)

液晶引脚图片

液晶引脚图片

NT7701.PDF

470.69 KB, 下载次数: 0, 下载积分: 黑币 -5

NT7701

LM2068AFW.PDF

1.3 MB, 下载次数: 0, 下载积分: 黑币 -5

看着引脚相识的拓普微

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1051633 发表于 2025-3-3 19:57 | 只看该作者
问了deepseek,给了参考代码,现在能显示,但是还是不正常
用的pico,micropython
还需要继续摸索

from machine import Pin
import time

# 初始化控制引脚和数据引脚(根据实际连接调整引脚编号)
flm = Pin(9, Pin.OUT)      # 帧开始信号
cp = Pin(6, Pin.OUT)       # 时钟脉冲
lp = Pin(7, Pin.OUT)       # 行脉冲
dispoff = Pin(10, Pin.OUT)  # 显示开关(假设低电平启用显示)
fr= Pin(8, Pin.OUT)

d0 = Pin(2, Pin.OUT)       # 数据位0
d1 = Pin(3, Pin.OUT)       # 数据位1
d2 = Pin(4, Pin.OUT)       # 数据位2
d3 = Pin(5, Pin.OUT)       # 数据位3

dispoff(0)
fr(0)
time.sleep(1)
# 生成棋盘格数据 (160x80)
def generate_chess_pattern():
    pattern = []
    for y in range(80):
        row = []
        for x in range(20):  # 每行20字节 (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

# 设置数据引脚输出的函数
def set_data(nibble):
    d0.value((nibble >> 0) & 0x01)
    d1.value((nibble >> 1) & 0x01)
    d2.value((nibble >> 2) & 0x01)
    d3.value((nibble >> 3) & 0x01)

# 发送一个字节(分两次传输高4位和低4位)
def send_byte(byte):
    # 高4位
    set_data((byte >> 4) & 0x0F)
    cp.value(1)  # 产生时钟上升沿

    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):  # 遍历每行中的像素
                # 根据棋盘格模式生成像素值
                send_byte(dat)
            # 行结束信号(根据需求调整)

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

# 运行棋盘格绘制
draw_checkerboard()



cadc5e5863d564332d8a95fa5dff21f.jpg (212.58 KB, 下载次数: 0)

cadc5e5863d564332d8a95fa5dff21f.jpg
回复

使用道具 举报

板凳
ID:1051633 发表于 2025-3-3 19:59 | 只看该作者
问了Deepseek
给了参考代码,可以点亮了。。。
但是还是显示不正常

from machine import Pin
import time

# 初始化控制引脚和数据引脚(根据实际连接调整引脚编号)
flm = Pin(9, Pin.OUT)      # 帧开始信号
cp = Pin(6, Pin.OUT)       # 时钟脉冲
lp = Pin(7, Pin.OUT)       # 行脉冲
dispoff = Pin(10, Pin.OUT)  # 显示开关(假设低电平启用显示)
fr= Pin(8, Pin.OUT)

d0 = Pin(2, Pin.OUT)       # 数据位0
d1 = Pin(3, Pin.OUT)       # 数据位1
d2 = Pin(4, Pin.OUT)       # 数据位2
d3 = Pin(5, Pin.OUT)       # 数据位3

dispoff(0)
fr(0)
time.sleep(1)
# 生成棋盘格数据 (160x80)
def generate_chess_pattern():
    pattern = []
    for y in range(80):
        row = []
        for x in range(20):  # 每行20字节 (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

# 设置数据引脚输出的函数
def set_data(nibble):
    d0.value((nibble >> 0) & 0x01)
    d1.value((nibble >> 1) & 0x01)
    d2.value((nibble >> 2) & 0x01)
    d3.value((nibble >> 3) & 0x01)

# 发送一个字节(分两次传输高4位和低4位)
def send_byte(byte):
    # 高4位
    set_data((byte >> 4) & 0x0F)
    cp.value(1)  # 产生时钟上升沿

    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):  # 遍历每行中的像素
                # 根据棋盘格模式生成像素值
                send_byte(dat)
            # 行结束信号(根据需求调整)

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

# 运行棋盘格绘制
draw_checkerboard()



cadc5e5863d564332d8a95fa5dff21f.jpg (212.58 KB, 下载次数: 0)

点亮图

点亮图
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表