有没有人帮我看一次我这哪里错了,51单片机,4个位码实现百毫秒,秒(个位,十位),分(个位)丘丘了,thanks🙏

#include<reg51.h>

#define uchar unsigned char

#define dula P0
#define wela P2

sbit k4 = P3^6;
sbit k5 = P3^7;
sbit beep = P2^3;

bit stop = 1;
unsigned char j,k,num0,num1,num2,num3,ms,sec,min,count=0;
unsigned char time_count;
unsigned char code weitable[]={0x8f,0x4f,0x2f,0x1f};
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
void delay(unsigned char i)
{
for (j=i;j>0;j--)
for (k=125;k>0;k--);
}

void display1(uchar wei,uchar shu)
{
wei=wei-1;
wela|=0xf0;
if(wei == 2)
P0=table1[shu];
else
P0=table[shu];
wela=wela&weitable[wei];
delay(5);
}
void display (unsigned char a,unsigned char b, unsigned char c,unsigned char d)
{
display1 (4,a);
display1(3,b);
display1(2,c);
display1(1,d);
}

void start_timer()
{
ET0=1;
EA=1;
TR0=1;
}

void stop_timer()
{
ET0=0;
EA=0;
TR0=0;
}

void main()
{
TMOD=0x01;
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
while(1)
{
if(k4 == 0)
{
delay(10);
if(k4 == 0);
{
while(k4 ==0);
{
if(stop)
start_timer();
else
stop_timer();
stop=~stop;
beep=1;
P1=0xff;
}
}
}
else if(k5 == 0)
{
delay(10);
if(k5 == 0)
{
while(k5 == 0)
{
stop_timer();
stop = 1;
beep = 1;
P1 = 0xff;
count = 0;
time_count = 0;
sec = 0;
min = 0;
}
}
}

if (stop)
{
count++;
if(count == 2)
{
P1=~P1;
count=0;
}
}
else if (time_count==2)
{
count=0;
time_count=0;
ms++;
if(ms==10)
{
ms=0;
sec++;
}
if(min==10)
{
min=0;
}
beep=0;
delay(10);
beep=1;
wela=1;
P1=0xef;
wela=0;
P1=0xff;
dula=1;
P1=table[ms];
dula=0;

}
num0=ms%1000/10;
num1=sec%10;
num2=sec/10;
num3=min%10;
display (num3,num2,num1,num0);
}
}