به نظرم خیلی سخت نوشتید برنامتونو
راه های خیلی راحت تری هم برای پیمایش کی پد هست
من خودم از این روش اعداد رو سون سگمنت نمایش میدم
k=4;
for(i=0;i<4;i++)
{
PORTB=row[i];
if(i==3)
{
if(PINB.4==0)
{
while(PINB.4==0)
{
}
count=1;
k=0;
}
else
{
while(PINB.5==0)
{
num=0;
k=0;
}
}
}
else
{
while(PINB.4==0)
{
k=1;
num=i*3+k;
PORTA=table[num];
}
while(PINB.5==0)
{
k=2;
num=i*3+k;
PORTA=table[num];
}
while(PINB.6==0)
{
k=3;
num=i*3+k;
PORTA=table[num];
}
}