如何从距阵键盘上输入多个数字,读取并保存

怎么从距阵键盘上输入多个数字,读取并保存。
在写程序的时候要么就是一按下去就把值都赋到那个数组里面去了。要么就是只能给那个数组的[0]赋值。也判断了松开键盘。但始终写不出来。求指教。
------解决方案--------------------
说下你按键扫描的流程,论坛里有关于矩阵扫描的帖子
如果你按键没问题

uchar keyvalue[128];
void fun(void)
{
    uchar i;
    if(k1==1)
    {
        k1=0;
        for(i=0;i<127;i++)keyvalue[i]=keyvalue[i+1];
        keyvalue[127]=1;
    }
    if(k2==1)
    {
        k2=0;
        for(i=0;i<127;i++)keyvalue[i]=keyvalue[i+1];
        keyvalue[127]=2;
    }
........
}