次为400us,在中断计数为1和2(或任意两次计数之间)时,对P1.0求反即可。 #include
sbit P1_0=P1^0; //输出周期引脚
unsigned char cnt=0; //中断次数计数器,初值为0 void main(){ P1_0=0; //输出初值为0 TMOD=0x02; //T0方式2定时
TH0=256-40; //计40次,计数初值为模256减40 TL0=TH0;
IE=0x82; //允许CPU响应中断,允许T0发中断请求 TR0=1; //启动T0
for(;;){} //无限循环等待中断 }
void timer0()interrupt 1 using 1{ cnt++;//中断次数加1
if(cnt==1||cnt==2) P1_0=!P1_0; //中断次数为1或2时对输出引脚求反 if(cnt==10)cnt=0; //中断次数达到10时复位为0 }