8051单片机C代码的翻译

8051单片机C代码的翻译,c,8051,C,8051,有人能解释一下上面的代码是什么意思和作用吗。它是为8051微控制器编写的 我从这里得到的 没有上下文很难说。我猜是这样的: timer0中断例程每100秒调用一次。在那里,它会增加勾号计数器,一旦大于3500,计数器就会重置为0。sec计数器似乎是第二个计数器,因为它每100次调用timer0(每秒调用100次)就会递增一次 extrint似乎在某些外部事件上被调用。它只是将勾号的实际值复制到bt(可能是为了进一步处理)并将勾号重置为0。eh?评论已经这么做了……@AnthonyLambert我

有人能解释一下上面的代码是什么意思和作用吗。它是为8051微控制器编写的

我从这里得到的

没有上下文很难说。我猜是这样的:

timer0
中断例程每100秒调用一次。在那里,它会增加
勾号
计数器,一旦大于3500,计数器就会重置为0。
sec
计数器似乎是第二个计数器,因为它每100次调用
timer0
(每秒调用100次)就会递增一次


extrint
似乎在某些外部事件上被调用。它只是将
勾号的实际值复制到
bt
(可能是为了进一步处理)并将
勾号重置为0。

eh?评论已经这么做了……@AnthonyLambert我还是不明白。第一次与microcontrollers@kai:在继续之前,您可能应该对微控制器和C编程语言有所了解。我搜索了“8051微控制器pdf”,发现这个。。。也许你应该看看,然后也许你可以回来问一些问题。谢谢。一定会经历这一切
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;
   }
 }