stm32驱动LED点阵屏(LY-LED16x16)

Posted mygod2093725_wht

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32驱动LED点阵屏(LY-LED16x16)相关的知识,希望对你有一定的参考价值。

各个引脚功能:
OE:使能端,输出高电平关闭屏幕,行选和列选切换的时候需要关闭一下屏幕,防止产生虚影。

D/C/B/A:每个引脚有0、1两个状态,四个引脚用于存储一个四位的二进制数,0/0/0/0是第一行,0/0/1/0是第三行。

R1/G1:R1是红色,G1是绿色,低电平点亮。

SCK:时钟信号。

LAT:锁存器。0打开,1关闭。

列选中原理:将一个16位的二进制串行输入到R1或G1,利用时钟脉冲信号触发寄存器存储当前值,然后通过 LATCH 锁存器将寄存器的值保存。

使用取字软件取出的C51格式的值。

例如:/*--  文字:  中  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x0F,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0x0F,0x00,0x00,0x00,
0x00,0x00,0xF0,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0xF0,0x00,0x00,0x00,

 其中第i位十六进制数和第i+16位十六进制数表示的是第i行的状态。i从0到15,逐次点亮16行。

void display_char()//显示一个静止的汉字
	 int i=0;
	 int j=0;
	 int change;
	 for(i=0;i<16;i++)
	 
		change=(zi[i]<<8)|zi[i+16];//两个8位的二进制数组成一个16位的二进制数
		LAT = 0; 
		for(j = 0; j < 16; j++)
			R1 = ((~change)>>j)&1;    
			SCK = 0;
			SCK = 1;         
        
        OE = 1;
        get_row(i);
        LAT = 1; 
        OE = 0; 
	 

void get_row(int i)//选中行
     A=i&1;
	 B=(i&2)>>1;
	 C=(i&4)>>2;
	 D=(i&8)>>3;

 

以上是关于stm32驱动LED点阵屏(LY-LED16x16)的主要内容,如果未能解决你的问题,请参考以下文章

STM32驱动TM1652代码分享

51单片机 16*64LED单红点阵屏驱动测试

5.1 单片机-16x16LED点阵屏

esp32驱动点阵屏数字乱跳

TM1629驱动LED点阵需要加限流电阻吗?

LED点阵屏实现文字滚动