求助:关于串口中断通讯

[复制链接]
2579|4
 楼主| 心蓝 发表于 2007-8-9 16:28 | 显示全部楼层 |阅读模式
  刚刚做的双机通讯程序,但是第一次中断所传数据不对,相同的数据,中断传送两次即可得到正确的值,而且第二次以后的值都对,请哪位高手给个解释啊。多谢多谢!
gjg191 发表于 2007-8-9 16:40 | 显示全部楼层

dd

程序都没有怎么看?
mannerfh 发表于 2007-8-9 16:42 | 显示全部楼层

不清楚

但我觉得你可以用显示器看看第一个波形,
 楼主| 心蓝 发表于 2007-8-10 08:46 | 显示全部楼层

补上程序,谢谢!

多谢两位的关心,现在把程序贴上,请各位高手多多指教,小弟不胜感激!


int CODE;
int SYNCH;
int ADDRESS;
int COMMAND_1;
int COMMAND_2;
int DATA_1;
int DATA_2;
int CHECK_SUM;
void SEND_ADDRESS();
//*************************************************
void REC_ADDRESS(void) interrupt 4
{    

    if(RI)
      {
    SYNCH=SBUF;
      }     
    RI=0;
    while(RI==0){}

    if(RI)
      {
    ADDRESS=SBUF;
      }     
    RI=0;
    while(RI==0) {}

    if(RI)
      {
         COMMAND_1=SBUF;
      }     
    RI=0;
    while(RI==0) {}

    if(RI)
      {
    COMMAND_2=SBUF;
      }     
    RI=0;
    while(RI==0){}

    if(RI)
      {
         
         DATA_1=SBUF;
      }     
    RI=0;
    while(RI==0){}


    if(RI)
      {
         DATA_2=SBUF;
      }     
    RI=0;
    while(RI==0){}


    if(RI)
      {
         CHECK_SUM=SBUF;
        
      }     
    RI=0;

    if(ADDRESS==CODE)
     {        
        SEND_ADDRESS();
     }
                         
}
//******************************************************
void SEND_ADDRESS(void)
{    
    EA=0;
    SBUF=SYNCH;
    while(TI==0);
    TI=0; 
   
    SBUF=ADDRESS;
    while(TI==0);
    TI=0; 
   
    SBUF=COMMAND_1;
    while(TI==0);
    TI=0; 
   
    SBUF=COMMAND_2;
    while(TI==0);
    TI=0; 
   
    SBUF=DATA_1;
    while(TI==0);
    TI=0; 
   
    SBUF=DATA_2;
    while(TI==0);
    TI=0;
   
    SBUF=CHECK_SUM;
    while(TI==0);
    TI=0;
    EA=1;     
}    


//****************************************
void main(void)
{
    CODE=P0;
    TCON=0x05;
         SCON=0x52;
    PCON=0x80;
    TMOD=0x21;
    TH1=0xa9;
    TL1=0xa9;
    TR1=1;
    P1_4=0;
    P3_6=1;
    P1_6=0;
    EA=1;
    ES=1;
                   
   while(1)
   {         
   }
}
loxinme 发表于 2007-8-10 10:52 | 显示全部楼层

写程序不写说明,不是好习惯

您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部