proteus定时器仿真问题 不准确 求助

2019-07-18 10:28发布

proteus我用的是定时器1进行1us的定时输出 但是最后的出的是40us的输出 这让我很苦恼。
以下是我的程序
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit out=P1^3;
uint num,N;
uchar FT;
void main(viod)
{                               
EA=1;//全开  
ET1=1;
TMOD=0x01;
  TH1=(65536-1)/256;
  TL1=(65536-1)%256;
//EX0=1;
//IT0=1;                       
// ET0=1;

// TR0=1;
TR1=1;
while(1);


}
/*void delay(unsigned int i)
{
        unsigned int j;
        unsigned char k;
        for(j=i;j>0;j--)
                for(k=125;k>0;k--);
}       

void INchack()interrupt 0
{
  num=65536-TH0*256;
  if(num>=30)
  {
   N=N-15;
  }
  else
  {
   N=N+15;
  }
  FT=1;
}  

void T0_timer() interrupt 1
{
  if(FT==1)
  {
   TH0=(65536-N)/256;
   TL0=(65536-N)%256;
   FT=0;
  }
  else
  {
   TH0=(65536-30)/256;
   TL0=(65536-30)%256;
  }
   TR1=1;
}  
            */

void T1_timer() interrupt 3
{  
  TH1=(65536-1)/256;
  TL1=(65536-1)%256;
   out=~out;
  // delay(1);
//  TR1=0;
}

QQ拼音截图未命名.png QQ拼音截图未命名1.png

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。