矩阵键盘控制ADC0832端口

各位前辈,我编了一个有由矩阵键盘控制ADC0832端口的电路,调不出来,怎么破?要求是在键盘输入一个数值(0~255),这个数值相应为ADC0832的端口输入得值,按Enter键结束.程序如下

#include "iom128v.h"
#include "macros.h"
#include "keym.h"
#define uchar unsigned char ;
#define uint unsigned int

unsigned char tab1[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

/*延时函数*/
void delay1(uint m)
{
uint a,b;
for(a=0;a<m;a++)
for(b=0;b<500;b++);

}

void io_init(void) {

DDRD = 0x00;
PORTD = 0xFF;
DDRC = 0x00;                                        /*方向输入*/
PORTC = 0xFF;                                       /*打开上拉*/
DDRE = 0x00;
PORTE = 0xFF;

}

int pow(unsigned char a,unsigned char b)//当a=1时,10的幂,b为指数
{
unsigned char z,j,k=1;
for(j=0;j<b;j++)
{
k*=10;
}
z=a*k;
return z;
}

void main(void)
{
void io_init();
uint x=0,num,count=0,count1=0,i=0,j=0;
delay1(1);
DDRD=0xc0;
PORTD&=(~BIT(7))|(~BIT(6));
DDRC=0xff;
PORTC=0x00;
while(1)
{
while(1)
{
if(num=tab[keym()])
{
tab1[i]|=num;
//count+=tab1[i]*pow(1,j);
//PORTC=count;
j++;
i++;
break;
}
}
while(1)
{
if(num!=tab[keym()])
break;
if(num==-16) //按下Enter
{
for(i;i>=0;i--)
{
i--;j--;
count+=tab1[i]*pow(1,j);
PORTC=count; //此为ADC0832端口
j++;
}
}

}
}
}