Здравствуйте, интересует вот какой вопрос, насколько точно протеус симулирует работу таймера у микроконтроллера. Взял вот такую программку для 8051: #include<reg51.h>
void init (void)
{
TMOD=0x01;			//Настроить Т0 в режим 16-ти разрядного таймера
TH0=(-10000)>>8;		//Занести старший байт числа -10000
TL0=-10000;			//Занести младший байт числа -10000
TF0=0;				//Обнулить флаг переполнения таймера
TR0=1;				//Включить таймер
}
void Gorit (void)
{
P0=0;				//Включаем светодиод
}
void NeGorit (void)		
{
P0=0xFF;			//Выключаем светодиод
}
void main (void)
{
for (;;)
{
init();
while (TF0==0)
Gorit();                        //Вызов функции Gorit
init();                         //Подготовка к следующему циклу
while (TF0==0)
NeGorit();                      //Вызов функции NeGorit
}
}
На P0 повесил пьезоизлучатель. Частота на микроконтроллере стоит 12 МГц. Вроде как должна выдавать на P0 сигнал с периодом где-то 10 Мс, а в пьезоизлучаетеле слышен треск. Товарищ попробовал сделать нечто подобное на PIC - тоже утверждает, что работает медленне, чем должно в теории. Вопрос - или в самом Протеусе таймер считает медленнее, чем в реале, или я что-то с программой напутал, или в Протеусе что-то нужно настроить? 
Заранее спасибо.