[新人求助]一个关于定时查询问题

2019-07-15 11:16发布

这是代码:#include <reg51.h>unsigned char count=0;
void main()
{
  TMOD|=0x01;
  TH0=0x3c;                  //给一个初值;计数满了就使TF0=1;
  TL0=0xb0;
  TR0=1;
  while(1)
  {
    TH0=0x3c;                 //问题在这里:我的理解是进入了循环之后又开始计数,因为还没记满,                  TL0=0xb0;                     往后执行代码, TF==1执行下面语句,完了循环回来;                     
  if(TF0==1)                      重点来了:定时又重新从初值开始计,上次并没有记满所以TF0==1
  {                                   还是初值时那次,TF0依然等于初值那次;然后依然会执行下面语句,直到
       count++;                   20次;会一 亮一闪; //谁能详细解答哈,虽然黑简单,谢谢;

       TF0=0;        
     if(count==20)                  
        {
           count=0;
           P2=~P2;
        }
   }
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
蛋淡淡
2019-07-16 14:52
#include <reg51.h>unsigned char count=0;
void main()
{
  TMOD|=0x01;
  TH0=0x3c;                  
  TL0=0xb0;
  TR0=1;
  while(1)
  {                                    
  if(TF0==1)                    
  {         TH0=0x3c;                  
       TL0=0xb0;                              
       count++;                  
       TF0=0;        
     if(count==20)                  
        {
           count=0;
           P2=~P2;
        }
   }
}

一周热门 更多>