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 //中断入口
{
//计数器
}
|