可预置99s倒计时设计出问题了

在单片机课,能问一下怎么改这个程序能实现从99s倒计时可以用四个开关实现+10s,-10s,+1s,-1s这样的

    #include
    #define uchar unsigned char
    #define uint unsigned int
             sbit key0=P1^0;
             sbit key1=P1^1;
             sbit key2=P1^2;
             sbit key3=P1^3;
             sbit led=P1^4;
             uchar count=0;
             uchar time=99;
    void DelayMS(uint ms)
{     uchar t;
      while(ms--)
      {
      for(t=0;t<120;t++);
      }
}
      void keysecp()
{
    if(key0==0)
    {
        DelayMS(10);
        if (key0==0) time=time+10;
        while(!key0);
    }
        if(key1==0)
    {
            DelayMS(10);
        if (key1==0) time=time-10;
        while(!key1);
    }
        if(key2==0)
    {
            DelayMS(10);
        if (key2==0) time--;
        while(!key2);
    }
        if(key3==0)
    {
            DelayMS(10);
        if (key3==0) time++;
        while(!key3);
    }
}
 void disp(unsigned char i)
{
unsigned char guan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90} ;
//定义0~9显示码,共阳极数码管
P0=guan[i/10];   //显示i高位
P2=guan[i%10];   //显示i低位
 }
void jishi() interrupt 3
{
    TH1=(65536-50000)/256;
    TL1=(65536-50000)%256;
    count++;
    if (count==10)
    {    
        count=0;
        time--;    
        led=0;
    }        
    if((time%10)==0)
    {
        led=0; 
    }
    if(time%10!=0)
    {
        led=1; }
    }
void main()                    //主函数
{
   TMOD=0x10;                    //设置T1为工作方式1
   TH1=(65536-50000)/256;   //设置T1计数初值高8位,定时时间50ms
   TL1=(65536-50000)%256;   //设置T1计数初值低8位
   ET1=1;                      //开放T1中断允许
   EA=1;                       //开放总中断允许
   TR1=1;                      //启动T1开始计数  
 while(1){
    disp(time);               //显示秒计数器值
      }
}

在while循环里调用keysecp函数

while(1)
{
  keysecp();
  disp(time);
}

还有在keysecp函数里,需要对time值的返回坐下判断,比如time-10,如果time本身小于10该怎么处理,等等。