c程序用keil编译时总说这里有错

void ini();

{
TMOD=0x01,
TH0=0x3c,TL0=0xb0;TH1=0x3c,TL1=0xb0; // 定时50ms中断一次
EA=1,ET0=1,TR0=0;ET1=1;TR1=0;}
//**************键值处理程序*************************
void chuli();
{switch(key())
{
case 0:break;
case 1:// 当按键k1按下后
{function++;// 判断按下的次数
switch(function)
{case 1:TR0=1;TR1=0;shan=0;break;//一次条秒同时闪烁
case 2://两次调分同时闪烁
case 3://三次调分同时闪烁
case 4:TR0=0;TR1=1;shan=1;break;//四次跳出调整状态时钟继续走时
case 5:function=1;TR0=1;TR1=0;shan=0;break;//轮流循环
}}
break;
case 2: //k2键上调
{switch(function)
{case 1:break;
case 2:sec++;if(sec==60)sec=0;break;
case 3:min++;if(min==60)min=0;break;
case 4:hour++;if(hour==24) hour=0;break;}}
break;
case 4: //k3键下调
{switch(function)
{case 1:break;
case 2:sec--;if(sec==255) sec=59;break;
case 3:min--;if(min==255) min=59;break;
case 4:hour--;if(hour==255) hour=23;break;
}}break;}}
//*************定时器0的中断服务程序************************
void timer0() interrupt 1 using 3
{
TH0=0x3c,TL0=0xb0;
t0++;
if(t0==20)
{t0=0;
sec++;
if(sec==60)
{sec=0;
min++;
if(min==60)
{
min=0;
hour++;
{if(hour==24)
hour=0;
}}}}}
//*************定时器1的中数服务程序,对shan取反,以使灯闪烁***************
void timer1() interrupt 3 using 2
{
TH0=0x3c,TL0=0xb0;
t1++;
if(t1==40)
{
t1=0;
shan=~shan;
}}
这段程序怎么错了
void ini();
void chuli();
后面汪碧不要有分号。
还有悄陵郑你的启颂 main() 函数在哪里?