#includereg52.hsbitOUT=P1^1;/*----------------定时器0初始化子程序-----------------*/voidInit_Timer0(void){TMOD|=0x01;//采用定时器0,16位TH0=0x00;//初始值高、低8位值,此处从0开始至65536TL0=0x00;EA=1;//总中断打开ET0=1;//定时器中断打开TR0=1;//定时器开关打开}/*----------------主程序-----------------*/main(){Init_Timer0();while(1);}/*----------------定时器中断子程序-----------------*/voidTimer0_isr(void)interrupt1{staticunsignedinti;TH0=(65536-10000)/256;//重新赋值12M晶振计算,指令周期1us,TL0=(65536-10000)%256;//20ms方波半个周期10ms,即定时10000次//溢出然后输出端取反i++;if(1==11)//定时10ms,循环10次,输出10*10=100ms{i=0;OUT=~OUT;}}