为什么这段代码总是被提示重复定义啊

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include <REGX52.H>
sbit ENA=P1^0;
sbit ENB=P1^5;
sbit IN1=P0^1;
sbit IN2=P0^2;
sbit IN3=P0^3;
sbit IN4=P0^4;
unsigned int  Duty_cycle_A,Duty_cycle_B£»

void advance()  //ǰ½ø
{
    IN1=1;
    IN2=0;
    IN3=0;
    IN4=1;
}

void back()     //ºóÍË
{
    IN1=0;
    IN2=1;
    IN3=1;
    IN4=0;
}

void right()    //ÓÒת
{
    IN1=0;
    IN2=0;
    IN3=0;
    IN4=1;
}

void left()   //×óת
{
    IN1=1;
    IN2=0;
    IN3=0;
    IN4=0;
}
  
void Timer0Init(void)
{

    TMOD = 0x01;        //???????
    TL0 = (65536-10)/256;    //???????
    TH0 = (65536-10)%256;    //???????
    TR0 = 1;        //???0????
    ET0=1;
    EA=1;
}


void Timer0_Routine() interrupt 1
{ 
    unsigned int T0Count;
    TR0=0;
    TL0 = (65536-10)/256;    //???????
    TH0 = (65536-10)%256;    //???????
    TR0=1;
     Duty_cycle_A=13;
        Duty_cycle_B=100;
    T0Count++;
    if(T0Count<Duty_cycle_A)
    {
        ENA=1;
    }
    else
    {
        ENA=0;
    }
    if(T0Count<Duty_cycle_B)
    {
        ENB=1;
    }
    else
    {
        ENB=0;
    }
    if(T0Count>=100)
    {
        T0Count=0;
    }
}
 
 

void main()
{
    Timer0Init();
     EA=1;
     while(1)
     {
      
    advance();
     }
}      

提示哪里重复了?
顺便问一下 T0Count怎么不定义为static了?你这样每次进去中断不都重置了吗

这段代码可能是从其他地方copy出来的,好多个备注都显示乱码。
分析了下,主要问题是乱码导致的,第8行的末尾应该要有一个“;”,因为是乱码,所以没掉了,导致后面的编译误报错了,更正过来就OK了。

img

img