求助51的232通信调试的问题

[复制链接]
 楼主| coltgg 发表于 2011-10-22 09:12 | 显示全部楼层 |阅读模式
本帖最后由 coltgg 于 2011-10-22 13:12 编辑

各位大侠,今天做了个用电脑通过232写数据到51中,再由51把数据发送回电脑的调试,可是每次51发回电脑的数据都和发出的不一样,比如发送a出去,却接收到8不知道是怎么回事,请求各位指点


#include <REG52.H>
bit Flag;
unsigned int ReData,SenData;
void main (void) {

    SCON = 0x50;      //REN=1允许串行接受状态,串口工作模式1               
    TMOD= 0x20;      //定时器工作方式2                    
                                                        
     TH1  = 0xFD;   
     TL1 = 0xFD;         
     TR1  = 1;                                                            
     ES   = 1;        //开串口中断                  
     EA   = 1;        // 开总中断
     
while(1)
    {

      if (Flag==1)
   {
      SBUF=SenData;              //SUBF接受/发送缓冲器
      while(TI==0);
      TI=0;
      Flag=0;
   }
}

}

void ser_int (void) interrupt 4 using 1
{

if(RI == 1)           //RI接受中断标志
{
  RI = 0;               //清除RI接受中断标志
  ReData = SBUF;  //SUBF接受/发送缓冲器
  SenData=ReData;
  Flag=1;
   
}
}

图是这样接的:
然后max232的11脚接51的P3.1 TXD;12脚接51的P3.0 RXD;
13脚接232口的3,14脚接232口的2。

不知道是哪里出了问题,请各位前辈指点:handshake

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
chinaitboy 发表于 2011-10-22 14:25 | 显示全部楼层
看看你用的电缆对应关系有没有问题,还可以用示波器或万用表测试整个信号路径,就可以发现问题所在。
 楼主| coltgg 发表于 2011-10-22 14:46 | 显示全部楼层
用这个电路烧写程序是没问题,就是一做这个调试就有问题...
 楼主| coltgg 发表于 2011-10-24 14:20 | 显示全部楼层
我重新连了下,可以发送了,应该是电路连接的问题,谢谢:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:好好学习天天向上

0

主题

23

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:好好学习天天向上

0

主题

23

帖子

1

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