翻译8051微控制器C代码
Translating 8051 microcontroller C code
void extrint (void) interrupt 0 // external Interrupt to detect the heart pulse
{
bt = tick; // number of ticks are picked
tick = 0; // reset for next counting
}
void timer0 (void) interrupt 1 using 1 // Timer 0 for one second time
{
TH0 = 0xdc; // The value is taken for Ssc/100 at crystal 11.0592MHz
sec100++; // It is incremented every Ssc/100 at crystal 11.0592MHz
tick++; // This variable counts the time period of incoming pulse in Sec/100
if (tick >= 3500)
{tick = 0;} // tick are limited to less than 255 for valid calculation
if (sec100 >= 100) // 1 sec = sec100 * 100
{
sec++;
sec100=0;
}
}
谁能解释一下上面代码的含义和作用。它是为 8051 微控制器编写的。
没有上下文很难说。我猜如下:
timer0
中断例程每 100 秒调用一次。它在那里递增 tick
计数器,一旦它大于 3500,它就会重置为 0。sec
计数器似乎是第二个计数器,因为它每第 100 次调用 timer0
递增(每秒调用 100 次)。
extrint
似乎是在发生某些外部事件时调用的。它只是将 tick
的实际值复制到 bt
中(大概是为了进一步处理)并将 tick
重置为 0.
void extrint (void) interrupt 0 // external Interrupt to detect the heart pulse
{
bt = tick; // number of ticks are picked
tick = 0; // reset for next counting
}
void timer0 (void) interrupt 1 using 1 // Timer 0 for one second time
{
TH0 = 0xdc; // The value is taken for Ssc/100 at crystal 11.0592MHz
sec100++; // It is incremented every Ssc/100 at crystal 11.0592MHz
tick++; // This variable counts the time period of incoming pulse in Sec/100
if (tick >= 3500)
{tick = 0;} // tick are limited to less than 255 for valid calculation
if (sec100 >= 100) // 1 sec = sec100 * 100
{
sec++;
sec100=0;
}
}
谁能解释一下上面代码的含义和作用。它是为 8051 微控制器编写的。
没有上下文很难说。我猜如下:
timer0
中断例程每 100 秒调用一次。它在那里递增 tick
计数器,一旦它大于 3500,它就会重置为 0。sec
计数器似乎是第二个计数器,因为它每第 100 次调用 timer0
递增(每秒调用 100 次)。
extrint
似乎是在发生某些外部事件时调用的。它只是将 tick
的实际值复制到 bt
中(大概是为了进一步处理)并将 tick
重置为 0.