51單片機定時器0工作在模式0,每中斷10次,使P2.0引腳連接的LED燈閃爍。
//單片機網www.sahacks.com提供的演示程序.
#include "reg_c51.h"
int nn; //中斷次數變量
void main(void)
{
TMOD &= 0xF0; //定時器0運行在模式0 ,13位計數器
// GATE0=0; C/T0#=0; M1=0; M0=0;
TH0 = 0x00; //設置初值0x00,所以計數值為8192,若是時鐘頻率為12MHz
TL0 = 0x00; //則8192μs中斷一次
ET0=1; //允許定時器0中斷
EA=1; //允許總中斷
TR0=1; //啟動定時器0
while(1); //無限循環,沒有循環體
}
void it_timer0(void) interrupt 1 定時器0中斷服務程序
{
nn=nn++; //每次中斷nn加1
if(nn==10) //當中斷10次后,使LED燈閃爍
{ nn=0;
P2_0 = ~P2_0; //引腳P2.0取反
}}