void mcuinit()
{
TMOD = 0X21; //定时器0以方式1,定时器1方式2(串口用)
TH0 = 0X3C;
TL0 = 0XAF; //定时器0初值15535:50ms溢出
IT0 = 1; //INT0负跳变中断
IE = 0X83; //开放外部中断0,定时器0中断, 总中断
}
void ServiceInt0(void) interrupt 0 using 1
{
//while (!INT0); //等待int0引脚低电平
TR0 = 1; //开定时器0
speed++;
}
void ServiceTime0(void) interrupt 1 using 2
{
TH0 = 0X3C;
TL0 = 0XAF; //重装定时器0
if(Overflow < 10) //如果不到500ms
{Overflow++;} //计算溢出次数
else //定时器0溢出10次,定时达到500ms
{
TR0 = 0; //定时500ms事件到关定时器0,由车速脉冲在中断0中开启定时器0
carspeed = speed;
speed = 0;
Overflow = 0;
}
}
void main()
{
//delay(1000,12,0); //开机延时1s,关显示
P3M0 = 0X80; //(0X84)
P3M1 = 0X20
mcuinit();
uartinit(); //串口初始化
while(1)
{
uart(Overflow); //观察定时器工作情况
//uart(speed); //通过串口发送变量值
delay(1,carspeed,0); //显示变量值
}
}
源程序编译通过,可是下载到单片机就是不能进入INT0服务函数,搞了两天了,请赐教!!!谢谢! |