void main()
{
P0M0=0x00;P0M1=0x00;
P1M0=0x00;P1M1=0x00;
P2M0=0x00;P2M1=0x00;
P3M0=0x00;P3M1=0x00;
P4M0=0x00;P4M1=0x00;
P5M0=0x00;P5M1=0x00;
P6M0=0x00;P6M1=0x00;
P7M0=0x00;P7M1=0x00;
AUXR &= 0x7F; //定時器時鐘12T模式
TMOD &= 0xF0; //設置定時器模式
TL0=0xB0; //設置定時初始值,50毫秒@12.000MHz
TH0=0x3C; //設置定時初始值,50毫秒@12.000MHz
TF0=0; //清除TF0標志
TR0=1; //定時器0開始計時
ET0=1; //使能定時器0中斷
AUXR |= 0x04; //定時器2為1T模式
AUXR |= 0x08; //T2_C/T=1, T2(P3.1)引腳為時鐘源
T2H=T2L=0xff; //初始化計時值
AUXR |= 0x10; //定時器2開始計時
IE2 |= 0x04; //開定時器2中斷
EA=1;
while (1);
}
void tm0_isr() interrupt 1
{
static unsigned char count,counts;
if(count++==20) //50ms*20 → 1s
{
//1秒定時
}
}
void t2int() interrupt 12 //中斷入口
{
//計數器
}
|