编辑代码

#include <reg51.h>

//灯
sbit led =P2^0;

//定义定时器:开启中断器ea,开启定时器et0,启动定时器程序tr0,设置1ms定时器间隔
void timer0Init(){
    TMOD=0x01;//0:T0,1:16位定时器
EA=1;
ET0=1;
TR0=1;
//1ms=1000us/(12*(1/11059200))=922;一毫秒的机器日期
TH0=(65535-922)/255;
TL0=(65535-922)%255;
}

void timer0() interrupt 1{//interrupt1表示定时器0程序
static int i=0;
//1ms=1000us/(12*(1/11059200))=922;一毫秒的机器日期:每一毫秒调用一次定时器程序
TH0=(65535-922)/255;
TL0=(65535-922)%255;

if(i>=1000){//1000*1ms=1s,闪烁
i=0;
led=!led;
}

}


int main () {
   timer0Init();
   while(1){}

}