跪求解决 16x16 LED点阵显示问题

2019-07-16 07:17发布

各位师傅好!小弟做了一块16x16的LED点阵牌,是用74154+4953作为行驱动,74595送数的。做是做出来了,但是不能正常显示字模,找了很久也找不出原因,希望各大高手能够指点迷津!第一次求助,万分感谢!!!

原理图:
1.png

出现的问题:
14032011_001.jpg

都是用贴片元件做的
PCB




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
cw007
1楼-- · 2019-07-16 12:40
附上测试程序:
#include<reg52.h>
sbit R=P1^6;//       
sbit CLK=P1^4;//   
sbit STB=P1^5;//   
char code table[]={         
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x09,0x40,0x0D,0x20,0x19,0x10,0x11,0x18,
0x21,0x0C,0x41,0x06,0x81,0x04,0x01,0x00,
0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,//小

0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x44,
0x04,0x4E,0x7C,0x58,0x04,0x60,0x04,0x40,
0x04,0x40,0x04,0x40,0x0C,0x40,0x34,0x42,
0xE4,0x42,0x44,0x42,0x04,0x3E,0x00,0x00,//北
   
};       
void delay(int z)
{
int x,y;
for(x=0;x<z;x++)
for(y=0;y<110;y++)
{
y=y;
}

}
void WriteByte(char dat)//
{
char i;
for(i=0;i<8;i++)//
{
dat=dat>>1;//
R=CY;//
CLK=0;//
CLK=1;
}
}
void main()
{
int num=0,move=0,speed=0;
while(1)
{
if(++speed>1)
{
speed=0;
move++;//  
if(move>16)
move=0;//
}
for(num=0;num<16;num++)
{
WriteByte(table[2*num+move*2]);//       
WriteByte(table[2*num+1+move*2]);
P1=(P1&0xf0)|num;//         
STB=1;//  
STB=0;
delay(2);
}
}
}
cw007
2楼-- · 2019-07-16 13:46
自顶!

一周热门 更多>