//範例9-6C: 中斷計時/計數功能應用 //檔名:ch9_6.c #include int x50ms=20; // 設定1秒=20x50ms main() { IE=0x82; //致能計時器0 中斷 TMOD=0x01; //設定計時器0為工作模式1 TH0=(65536-50000)/256; //設定計時器0初始值50000=50ms TL0=(65536-50000)%256; //設定計時器0初始值50000=50ms TR0=1; //啟動計時器0 P0=0x55; // 設定P0埠初始值 while(1); //無窮迴路,等待計時中斷 } /* main */ void T0_int(void) interrupt 1 { x50ms--; if(x50ms==0){ x50ms=20; //重設x50ms值 TH0=(65536-50000)/256; //設定計時器0初始值50000=50ms TL0=(65536-50000)%256; //設定計時器0初始值50000=50ms P0=~P0; } } /* T0_int */