打印

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

[复制链接]
1539|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

粉丝