6871|13

13

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

51单片机与MAX232通讯问题 [复制链接]

最新回复

硬件接线如果没问题,就应该是软件的问题,在一般的问题中,软件问题可能性比较大,也比较难解决。 你的程序我稍微改了一下你试试能否用。 #include #include #define uchar unsigned char #define uint unsigned int void initial(void); main() { void initial();   while(1)   {      SBUF=15;      while(TI==0);      TI=0;   } } void initial(void) {   IP=0x10;   TMOD=0x20;      TL1=0xfd;TH1=0xfd; //initial value   TCON=0x00; //SMOD=0 (Baud rate 9600 bps)   TR1=1; //start T/C1   SCON=0x50; //serial port Mode 3   ES=1;   EA=1; }  详情 回复 发表于 2010-6-30 08:42
点赞 关注

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我用MAX232进行串口通讯,电路图传不上去
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
按着芯片的user manual接就可以了,有什么问题?
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
MAX232 的1,3脚\4,5脚接电容,1,4接正极VS-接电容负极,正级接地,VS+接电容正极,负极接VCC,T1IN接单片机的TXD,R1OUT接单片机的RXD,R1IN接TX,T1OUT接RX,外接RS232转USB的转换器
测试程序:
#include
#include
#define uchar unsigned char
#define uint  unsigned int
void initial(void);
main()
{ while(1)
  { SBUF=15;
    while(TI==0);
    TI=0;
   其它程序
   }
}
void initial(void)
{  IP=0x10;
   TMOD=0x20;                                             
   TL1=0xfd;TH1=0xfd;                                       //initial value
   TCON=0x00;                                         //SMOD=0 (Baud rate 9600 bps)
   TR1=1;                                                  //start T/C1
  SCON=0x50;                                               //serial port Mode 3
  ES=1; EA=1;

}
void series(void)interrupt 4 using 1                          //下位机通讯程序
{
  // uchar temp[8],restatu,renum,i,j=0;
  // uint val,p=0,q=0;
   RI=0;   EA=0;  dog();
EA=1;
}
我用USB-RS232转换口转换,用串口精灵观察,微机收不到信号
进入串口中断就设断点,串口精灵发送的东西根本不进中断

我用其它电路的RS485的芯片经RS485-RS232,在用RS232-USB转换后串口精灵却能受到信息.
我没能查出232的软件还是硬件哪有问题,请高手们指点.非常感谢!!
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(中级)

5
 
经常出现的两个问题 1.RXD,TXD接反了    2.软件程序里 全局中断和串口中断没有使能
先检查硬件连接 然后软件单步调试一下
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

6
 
R1IN接TX,T1OUT接RX.........这可能不对.......
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

7
 
学习了,顶
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

8
 
RX和TX我已经换过了,还是不好使,根本发不出东西来
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

9
 
如果连乱码或者接受字符显示为0你看看是不是串口线的问题,串口线有两种,一种交叉串口线一种并行串口线。连错了是没有答应的。另外串口芯片是很脆弱的东东,你要确保串口芯片的正常
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

10
 
  我在软件和硬件上已经检查了好多遍了,发现不出毛病,通讯发不出接不到,我在网上也查了许多MAX232的电路,确认我的接法没有问题,直接用232口或是RS232转USB口我都试了,无论如何就是不好用.哪位朋友有这方面的设计能奉献一下,让我借鉴一下.非常感谢!!我以前总用485口,咋用都没问题,这次电路板上换上232,咋用都不好用,查不出原因
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

11
 
用示波器看看,看一下你的单片机是否正常工作了,还有就是用到串口的时候,晶振要注意,然后再看看TXD上面是否有信号输出? 串口是比较简单的,楼主莫急!
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

12
 
先不接单片机 打开串口调试 在发送里 随便写几个字符 然后把232收,发,两个信号线  短接 看发送正常不 如果正常  232部分没问题,找单片机原因  如果 不能正常收发  232部分有问题

 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

13
 
嗯,个人觉得还是先锁定问题所在,究竟是单片机的问题还是串口线的问题,还是232的问题,一个个来吧。先确定单片机是否跑了?假如跑了,再考虑是串口部分。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

14
 
硬件接线如果没问题,就应该是软件的问题,在一般的问题中,软件问题可能性比较大,也比较难解决。
你的程序我稍微改了一下你试试能否用。

#include
#include
#define uchar unsigned char
#define uint unsigned int
void initial(void);
main()
{
void initial();
  while(1)
  {
     SBUF=15;
     while(TI==0);
     TI=0;
  }
}
void initial(void)
{
  IP=0x10;
  TMOD=0x20;   
  TL1=0xfd;TH1=0xfd; //initial value
  TCON=0x00; //SMOD=0 (Baud rate 9600 bps)
  TR1=1; //start T/C1
  SCON=0x50; //serial port Mode 3
  ES=1;
  EA=1;

}
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表