导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→求救P89C669的串口程序[shenli]

 *第38932篇: 求救P89C669的串口程序

  
楼 主:shenli 2006年3月31日11:01
 求救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;
     }
  }
}
但是当定时器中断服务程序里面的代码长了,就不行了,一直不知道原因。请各位大侠指导!

>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:请问有在1.5v电压下可以正常工作的MCU么?

[下一篇主题]:请问有没有用PIC计算三角函数的程序