读书人

本人写一个LED点阵显示屏的程序有行

发布时间: 2013-12-04 17:21:02 作者: rapoo

本人写一个LED点阵显示屏的程序,有行干扰是怎么回事?
具体就是灯亮情况如下时:
--@------*-
--*---@----
------*--@-
其实我只是想点亮@,结果*也亮了,明显被干扰了!!!求解啊。
(实行行扫描,然后再点亮各点!)


void data1(void)
{
int s;

if(reg1==1) //reg用来判断上下,共32行,分为16行控制
{
for(s=0;s<64;s++) //点灯时其他63写灭,只有一个亮
{
if(s==LIGHTTEMP1)
{
LIGHTTEMP1=0;
PDOR5&=~SCK;
SER1
PDOR5|=SCK;
}
else
{
PDOR5&=~SCK;
SER4
PDOR5|=SCK;
}
}
}
else
{
for(s=0;s<64;s++)
{
if(s==LIGHTTEMP1)
{
LIGHTTEMP1=0;
PDOR5&=~SCK;
SER2
PDOR5|=SCK;
}
else
{
PDOR5&=~SCK;
SER4
PDOR5|=SCK;
}
}
}

void Light(void)
{

unsigned int i,j,k;
for(i=0;i<2;i++) //32*64的点阵
for(j=0;j<16;j++ )
for(k=0;k<64;k++)
{
if(point_get[i][j][k]==1)
{ //Dely100um(10000);
if(i==0)
{
reg1=1;
LIGHTTEMP1=k;
scan(j);
data1();
PDOR3|=RCK;
PDOR3&=~RCK;
PDOR3|=RCK;
//ENIR|=0x1<<13;
}
else if(i==1)
{
reg1=0;
LIGHTTEMP1=k;
scan(j);
data1();
PDOR3|=RCK;
PDOR3&=~RCK;
PDOR3|=RCK;
//ENIR|=0x1<<13;
}

}
}

}

[解决办法]
这个主要得靠自己了,外人看明白不容易
------解决方案--------------------


定时去扫描,显示的数据搞个缓冲区,时间一到把缓冲区数据打出去
[解决办法]
请教一下什么是行列干扰?

如何确定是行列干扰呢?
[解决办法]
你这个代码风格。。。本人写一个LED点阵显示屏的程序,有行干扰是咋回事
[解决办法]

代码风格有什么问题?
[解决办法]
情况复杂,首先是不是拉线实验就是那种用直接接,以前实验碰到过,后来制板后注意屏蔽后问题自然解决方

读书人网 >单片机

热点推荐