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

* 90889: 求救P89C669的串口程序

   shenli 
shenli发表的帖子 

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


发表时间:2006年3月31日11:01:36

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:请问有在1.5v电压下可以正常工作的MCU么?谢谢
[下一篇帖子]:能把你的ALLEGRO15。2的软件发给我吗???先过谢谢啦!!!我在你说的哪个网站没有找到,你到发