求帮助!关于led点阵移动的方向,我这里有段16*16led右移动的程序,如何才能将其改为左移那??????
unsignedchardatanum=0;unsignedcharbuff[5],temp1[32],n,numm=0;voidled_16(unsignedcharm...
unsigned char data num=0;
unsigned char buff[5],temp1[32],n,numm=0;
void led_16(unsigned char map[],int shu)
{
int i=0,m,zm=0,k,mm,kk;
kk=shu;numm=num;
for(mm=0;mm<shu;mm++)
{
while(i<16)//16行,IxM=16x16;表示一个字;
{
for(m=0;m<16;m++)//16列
{
if(i<8)
{
k=i;
buff[0]=map[2*m+zm];//buff是我们要显示多个字的数组,实际也是对应点阵的左右部分
buff[1]=map[2*m+1+zm];//zm表是要显示1个字模的个数,加1是字模的第二个,32是下一字字模的第一个
buff[2]=map[2*m+1+zm];
buff[3]=map[2*m+32+zm];
}
else
{
k=i-8;
buff[0]=map[2*m+1+zm];
buff[1]=map[2*m+32+zm];
buff[2]=map[2*m+32+zm];
buff[3]=map[2*m+31+zm];
}
temp1[2*m]=(buff[0]<<k)|(buff[1]>>(8-k));
temp1[2*m+1]=(buff[2]<<k)|(buff[3]>>(8-k));
}
disp(temp1);
i++;
}
i=0;
zm=zm+32;//循环加一,显示下一个字
if(zm>32*(shu-1)) zm=0;//从字体的第一个字开始显示
}
} 展开
unsigned char buff[5],temp1[32],n,numm=0;
void led_16(unsigned char map[],int shu)
{
int i=0,m,zm=0,k,mm,kk;
kk=shu;numm=num;
for(mm=0;mm<shu;mm++)
{
while(i<16)//16行,IxM=16x16;表示一个字;
{
for(m=0;m<16;m++)//16列
{
if(i<8)
{
k=i;
buff[0]=map[2*m+zm];//buff是我们要显示多个字的数组,实际也是对应点阵的左右部分
buff[1]=map[2*m+1+zm];//zm表是要显示1个字模的个数,加1是字模的第二个,32是下一字字模的第一个
buff[2]=map[2*m+1+zm];
buff[3]=map[2*m+32+zm];
}
else
{
k=i-8;
buff[0]=map[2*m+1+zm];
buff[1]=map[2*m+32+zm];
buff[2]=map[2*m+32+zm];
buff[3]=map[2*m+31+zm];
}
temp1[2*m]=(buff[0]<<k)|(buff[1]>>(8-k));
temp1[2*m+1]=(buff[2]<<k)|(buff[3]>>(8-k));
}
disp(temp1);
i++;
}
i=0;
zm=zm+32;//循环加一,显示下一个字
if(zm>32*(shu-1)) zm=0;//从字体的第一个字开始显示
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询