16x64LED点阵模块驱动记录(一)简单实现

news/2025/2/2 6:47:38/

驱动记录链接:

1、本文

2、16x64LED点阵模块驱动记录(二)左移实现

3、16x64LED点阵模块驱动记录(三)字库读取并显示

4、16x64LED点阵模块驱动记录(四)SST29EE020 GB2312汉字库读取

5、16x64LED点阵模块驱动记录(五)DS1302时钟

6、16x64LED点阵模块驱动记录(六)PYTHON上位机串口通信并显示

7、16x64LED点阵模块驱动记录(七)像画布一样操作点阵屏

前言

        某宝志鑫家入手一款16x64点阵模块,此类模块常见于停车场等户外场地,用于动态显示车牌号天气时间等信息。模块显示面板由16个8*8点阵屏拼为16x64点阵,主控芯片为STC89C52,行扫描为1个74HC154(4-16译码器),列扫描为8个74HC595(8位串行输入、并行输出的位移缓存器)。板上还有1块flash存储芯片sst29ee020(256k*8,感觉是字库),配合它工作的是74hc573锁存器(隔离sst29ee020输入输出,复用MCU IO);另外还有1个DS1302时钟芯片。

        模块功能较多,不是单纯的点阵显示模块。将模块理解为带MCS、存储、时钟、显示的多功能开发板可能更为合适。

        本文描述显示功能简单实现方法。并且希望可以通过进一步研究,将其他功能也开发出来。

        另外,74HC154做行扫描,为以后做左移效果增加了难度。74HC154是输出低电平有效,也就是点阵行扫描低电平有效,共阴?74HC154虽然是低电平有效,但到点阵屏应该做了电平转换。并且595的列扫描是低电平有效。所以还是共阳。

        sst29ee020较老,地址总线占了MCU18个IO口,STC89C52外部存储寻址最大为64k,52要驱动256k的存储,程序上控制要复杂一些。主要是现在都串行驱动存储了,这种方式应该都淘汰了吧。

eb5a18a88e1745129598cff6ba7ad368.jpeg


一、原理图

e05fc43d26844d478869a4b1767d4d9f.bmp

        简单地画了下原理图,为了仿真并没有完成照搬实物,图中的CD1602和几个LED在实物中并不存在。 proteus中没有sst29ee020的模型,找了个其他容量小一些的存储代替,但是存储是不能仿真的。

二、源码

main.c(就一个文件)

#include <STC89C5xRC.H>sbit SH_CP = P1^5;
sbit DS = P2^7;
sbit ST_CP = P1^6;//PCtoLCD2002
//
unsigned char code Table_row[] = {//这个调了好久,现在贴的不知道是不是实际跑的字模了
//阳码,顺向,逐行式,C51,左右反转
0xFE,0xFF,0xFE,0xFF,0xFE,0xC0,0xC0,0xDF,0xDF,0x5F,0xEF,0x6D,0xFD,0xAB,0xFD,0xD7,
0xFD,0xF7,0xFA,0xEB,0xFA,0xDB,0xF7,0x5D,0xF7,0x7E,0xEF,0xBF,0xDF,0xDF,0xBF,0xEF,/*"欢",0*/
0xFF,0xFF,0xFE,0xFB,0xC3,0x37,0xDB,0xB7,0xDB,0xBF,0xDB,0xBF,0xDB,0xB0,0xDB,0xB7,
0xDB,0xB7,0xD2,0xB7,0xEB,0x37,0xFB,0xB7,0xFB,0xF7,0xFB,0xEB,0x80,0x1D,0xFF,0xFF,/*"迎",1*/
0xFF,0x7F,0xEF,0x7B,0xEF,0x77,0xF7,0x6F,0xFB,0x6F,0xFF,0x7F,0x80,0x00,0xFD,0xDF,
0xFD,0xDF,0xFD,0xDF,0xFD,0xDF,0xBD,0xEF,0xBD,0xEF,0xBD,0xF7,0x83,0xFB,0xFF,0xFC,/*"光",2*/
0xFE,0xEF,0xFE,0xEF,0xFE,0xEF,0x80,0x6D,0xFD,0x6D,0xFB,0xAD,0xFB,0xCD,0xFF,0xED,
0xC0,0x6D,0xDB,0x6D,0xDB,0x6D,0xDB,0x6D,0xDB,0x6D,0xC0,0x6F,0xDF,0x6F,0xFF,0xEF,/*"临",3*/};/*
void delayms(unsigned int m)
{int i,j;for(i=0; i<m; i++)for(j=0; j<120; j++);
}
*/void HC595(unsigned char dat)
{unsigned char j;for(j=0;j<8;j++){SH_CP = 0;	//为移位准备DS = dat & 0x01;	//先低位dat=dat>>1;SH_CP =1;  	//上升沿,移位}
}void Matrix16x16(unsigned char num)
{unsigned char k,i;unsigned int m,n;unsigned char Char_num=num*32;for(m=0;m<Char_num;m++)    //为移动预留{for(n=0;n<16;n++)//控制显示速度,防止闪烁{for(k=0;k<16;k++)	//行扫描{for(i=0;i<num;i++)   //控制第几个字{HC595(Table_row[(32*i+2*k+1)]);		//HC595(Table_row[(32*i+2*k+0)]);		//													}ST_CP = 0;ST_CP = 1; //并行输出//P1=k;    //P1低4位为74HC154输入,高4位未使用P1=16-k;    //从左往右显示//delayms(2);//可以不用delay,89C52已经够慢了}}}
}void main(){while(1){Matrix16x16(4);}
}

5d99e00875de46009ad14c15de177a97.jpg

84820b2b76e64f9a8021ac0b86aca4e0.jpg


三、注意事项

        用STC-ISP下载程序时,选择使能6T(双倍速)模式,这样显示效果会提高一些。

       板上12V的3.96mm接口是电源。

       另外一个3.96mm接口的(5V,LED)就是普通的TTL串行接口,可以接下载器的5V和TXD,实测可以做串口接收。3.96mm接口后面接光耦,光耦输出端到MCU的RXD。光耦负责隔离,提高可靠性。串口通讯的例子很多,不再赘述

       关于本模块的认识前三篇处在探索阶段,到第(四)篇基本完成,可以通过下面链接直达(四):       16x64LED点阵模块驱动记录(四)SST29EE020 GB2312汉字库读取_修充电器上瘾的博客-CSDN博客接上文《16x64LED点阵模块驱动记录(三)字库读取并显示》。上文主要实现了对SST29EE020外部存储的读取,证实了这个外部存储确实是个字库IC。在没有证实之前这都只是猜测。那么下一步应该研究如何正确地读取字库中字模。虽然这方面的例子很多,但我还是走了一两天弯路。走弯路的原因其实很简单。我尝试使用GB2312字库的读取实现方法,但是发现手头的模块似乎并非全部支持此方法,导致部分汉字无法正确读取。在我的漫长尝试中,我开始怀疑程序是否存在问题。经过一晚尝试,我依旧没有找到答案。https://blog.csdn.net/weixin_44067125/article/details/130251835

        “感觉之前商家好像卖过这款模块,还有红、蓝两种可选,但是我看到时只剩8块多的故障品了,就没下手。”

        “这次果断入坑,看来有得研究了”


http://www.ppmy.cn/news/205221.html

相关文章

设置线程池的大小

线程池的理想大小取决于被提交任务的类型以及所部署系统的特性。在代码中通常不会固定线程池的大小,而应该通过某种配置机制来提供,或者根据Runtime. availableProcessors来动态计算。 幸运的是&#xff0c;要设置线程池的大小也并不困难&#xff0c;只需要避免“过大”和“过…

16x16点阵汉字c语言,16x16led点阵滚动汉字显示设计。

下面给大家介绍下我制作的16*16led点阵设计,希望与各位电子爱好者共同讨论,共同进步。 下图是电路图连接图 下面是74HC154 4线-16线译码器引脚说明,以及地址/全能输入对应的输出表。 滚动显示C程序如下。 #include #include #define uchar unsigned char #define uint uns…

IBeginDragHandler、IDragHandler 和 IEndDragHandler 介绍

IBeginDragHandler、IDragHandler 和 IEndDragHandler 介绍 IBeginDragHandler、IDragHandler 和 IEndDragHandler 是 Unity 引擎中的三个接口&#xff0c;用于处理 UI 元素的拖放事件。这些接口通常结合使用&#xff0c;构成了 Unity 引擎的拖放事件系统。 IBeginDragHandle…

攻击者使用 Python 编译的字节码来逃避检测

以 PyPI&#xff08;Python 包索引&#xff09;等开源包存储库为目标的攻击者设计了一种新技术&#xff0c;可以将他们的恶意代码隐藏在安全扫描器、人工审查和其他形式的安全分析中。 在一次事件中&#xff0c;研究人员发现恶意软件代码隐藏在 Python 字节码 (PYC) 文件中&am…

蚂蚁freeline安装教程以及问题解决

介绍 Freeline是一款针对Android平台的增量编译工具, 项目地址 虽然最新的版本是0.7.3.1&#xff0c;但是这个版本增量编译会bug&#xff0c;推荐用0.7.2 第一步 配置project-level的build.gradle&#xff0c;加入freeline-gradle的依赖&#xff1a; buildscript { repos…

水处理锅炉软化水设备 锅炉全自动软化水设备 锅炉软化水设备

软化水设备&#xff0c;如锅炉供水、供热空调系统补充水、纺织印染、造纸、洗衣、洗浴、食品加工、优质生活用水等各领域。处理流量从每小时0.3-数十吨。 软化水处理设备的特点&#xff1a;管理简单、连续出水、流量控制、逆流再生、维护简单等 我公司的软化水处理设备原装进口…

盘点:弱电施工过程中的电线电缆36计

电线电缆在弱电施工中与我们密不可分&#xff0c;今天我们就一起来了解一下电线电缆中常见的36个问题及解答。 常见电线电缆的问答    1、常用的电线、电缆按用途分有哪些种类&#xff1f;    答&#xff1a;按用途可分为裸导线、绝缘电线、耐热电线、屏蔽电线、电力电…

2022年化工自动化控制仪表考试题模拟考试题库及在线模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2022化工自动化控制仪表考试题为化工自动化控制仪表试题高频考题覆盖&#xff01;2022年化工自动化控制仪表考试题模拟考试题库及在线模拟考试根据化工自动化控制仪表最新教材汇编。化工自动化控制仪表上岗证题目随时…