|
本帖最后由 bg1trk 于 2022-11-8 10:25 编辑
单位的一个室内LED大屏幕使用多年,备件显示模组已用完,买不到相同型号的显示模组,琢磨着修一修之前替换下来的坏模组凑合用。
换件,再跑去屏幕旁边安装测试,相当麻烦......想着用单片机做个“信号发生器”把模组驱动起来,在办公室就能测试是否修复,不用来回跑,省事。
以上是起因,接下来绘制电路图,分析信号组成和时序。
显示模组为32*64点阵,由32*64个三色LED组成,32行分上下两部分各16行,由两片74HC138将输入的4位并行行选信号译码为16路行驱动信号。列驱动由16路专用驱动芯片SUM2016将输入的串行颜色信号锁存为16路列驱动信号,3色LED共194条列线,共需驱动芯片12片。
板子入口还有两片74HC245做信号缓冲,硬件组成就这些了。
驱动需要A、B、C、D四路行选信号,两组R、G、B颜色信号,每组R、G、B分别对应上下各16行,以及时钟信号和锁存、使能信号,共需要13条口线。
程序大概就是设置一个32*64的显存数组,数组内每个元素值,0X01代表红色、0X02代表绿色、0X04代表蓝色,共可以显示8种颜色。以轮询的方式不断读显存数组的数据,将每个数据转为二进制的0、1,最低位为1时R通道输出1,次低位为1时G通道输出1,次次低位为1时B通道输出1,其他颜色则由这三个“1”组合而成,高低电平由对应的R、G、B口线输出,每扫描一行辅以送出时钟、锁存和使能信号。显存数组每64个元素为一行,扫描16次显示半屏,上下两部分同时扫描则组成全屏显示。修改显存数组的数据即可改变显示内容。
检修时需要模组显示红、绿、蓝、白、黑纯色画面,显存数组所有数据设成相应颜色值就行了。
感觉比较单调,又加入了单独画点、线函数,显示16*8字符的函数,启用ADC,做了个有点实用意义的玩意。
硬件最初是拿系统板+面包板+杜邦线凑合的,已经能跑起来了,线多且乱,时不时显示混乱。
硬件其实就是STM32最小系统,没几个元件不值得打板,用洞洞板把连接显示模组的16P插座和连接系统板的2个17P插排焊接牢固,背面飞线连接,插上系统板就完事了。
为了保护背面乱糟糟的飞线,3D打印了个简单的底壳:
最终效果,一块显示面积巨大的“电压、电流表”。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|