求51单片机T0中断实现一个led的闪烁仿真原理图

2025-03-22 12:18:52
推荐回答(1个)
回答1:

#include

unsigned char num,dat1,dat2;

sbit LED=P2^7; 

  //----------主程序----------------------  

  void main() 

   { 

      TMOD=0x51;//定时器0计时,定时器1计数 

TH1=0;    

TL1=0; 

TH0=0x4c;//50ms溢出一次 11.0592m             

TL0=0x00;           

ET0=1;

   EA=1;

TR0=1;  

   TR1=1;

while(1)              

{   //LED=1;

    if (num==20)

{   

TR0=0; 

TR1=0;  //停止计数器0和计数器1,采集数据

dat1=TH1;  

dat2=TL1;

TH1=0;  

TL1=0;

num=0;

LED=~LED;                           

TR0=1;//打开计数器0和计数器1       

TR1=1;   

}       

      } 

    }

 //-----------T0 中断程序------------------------------

 void T0_time()interrupt 1 

 {   

TH0=0x4c;  

TL0=0x00;  

num++;

}