求救P89C669的串口程序当我在编写单片机(P89C669)的串口程序代码如下时,能正常与计算机上面的串口调试助手通信,但是当定时器中断服务程序长了,就不行了,请指导!
// ******************MAIN Routine********************
main()
{
…
while(1)
{
if(k==1) //k的值由外部中断服务程序得到
{
send_string_com(t,8);
k=0;
}
if(v==1) //v的值由定时中断服务程序里面的if(start==1){...} 确定,
{ //而start的值由串口中断接收程序确定
send_string_com(t,8);
v=0;
}
if(w==1) //w的值由定时中断服务程序里面的照射倒计时确定
{
send_string_com(t,8);
w=0;
}
}
}
//*******************Extern_Interrupt0***********************
void EXT__Int1 (void) interrupt 2
{
//send_string_com(t,8);
k=1;
}
//串口接收中断函数
void serial () interrupt 4
{
if(RI_0)
{
RI_0 = 0;
start=S0BUF;
}
}
//****************Timer0 interrupt function********************
void Timer0_Int (void) interrupt 1
{
static unsigned char click=0;
TH0=0x70; TL0=0x00; // 定时器T0重装时间常数
++click;
if(click> =50) // 间隔1s:50*20ms=1s
{
click=0;
if(--time_z.sec==0) //倒计时间没有到,则继续倒计时
{
w=1;
time_z.sec=zhaoshe.sec; // 重装照射倒计时间初值
}
else if(start==1) //照射倒计时时间到
{
v=1;
start=0;
}
}
}
但是当定时器中断服务程序里面的代码长了,就不行了,一直不知道原因。请各位大侠指导!