Protues定时器定时少了一半的有关问题

Protues定时器定时少了一半的问题
我现在在用PROTEUS仿真扬声器,频率1KHZ,芯片用12HZ,也就是每个周期是1ms,高电平跟低电平变化周期是500us,那这时选用计时器0,TMOD=0x01;计数初值为500,但是在仿真时高电平跟低电平变化周期都是只有250us...也就是定时周期少了整整一半。。。不知道是什么问题 求教各位大侠
void timer0() interrupt 1
{
TR0=0;
p10=~p10;
TH0=(-500)/256;
TL0=(-500)%256;
TR0=1;
}  
void main()
{
EA=1;
ET0=1;
TMOD=0x01;
  TH0=(-500)/256;
TL0=(-500)%256;
TR0=1;  
while(1);
}

------解决方案--------------------
你看下你的芯片是不是12分频的,现在不少51内核的片子的分频不是12