/*采用查询方式实现定时器0的方式1 fosc=12MHz, 在P1.0引脚上输出周期为1000ms的方波*/ #include sbit P1_0=P1^0; unsigned int time; void main(void) { time=0; TMOD=0x01; //定时器0方式1 TR0=1; //启动T/C0 for (;;) { TH0=(65536-1000)/256; //预置计数初值 TL0=(65536-1000)%256; do { } while(!TF0); //查询等待TF0置位 TF0=0; //软件清TF0 if (time==500) { P1_0=!P1_0; //定时时间到P1.0取反 time=0; } else time++; } }