51串口通信有个小问题

2020-02-04 09:06发布

  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar flag,a,i;
  5. uchar code table[]="i get";
  6. void delay()
  7. {
  8.   int i,j;
  9.   for(i=0;i<100;i++){
  10.     for(j=0;j<500;j++);
  11.         }
  12. }
  13. void init(){
  14.    TMOD=0X20;
  15.    TH1=0XFD;
  16.    TL1=0XFD;
  17.    TR1=1;
  18.    REN=1;
  19.    SM0=0;
  20.    SM1=1;
  21.    EA=1;
  22.    ES=1;
  23. }

  24.   main()
  25. {
  26.    init();
  27.    while(1){
  28.            ES=0;
  29.              SBUF='1';
  30.                  while(!TI);
  31.                  TI=0;
  32.            delay();
  33.          }
  34. }
复制代码用proteus上仿真,串口调试软件,上不断显示111111111   
但是自己焊的板子,转成16进制,都是00,00,00  如图
javascript:;

1我换了一条串口线,居然又什么数据都读不到了。(换的那条串口线肯定是好的)    -----------RS232口我就接了3条线,发射和接收,共地 是不是有些USB转串口线需要9条线都连好才能工作?
2为什么接收到的数据时错误的呢?不是想要的11111呢?   

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
机电一体化
1楼-- · 2020-02-04 10:32
哎,高了半天原来MAX232的VCC和GND口没连线。。。
mon51
2楼-- · 2020-02-04 10:35
一般KEIL的模拟仿真正确,基本就可以判断是硬件问题。

一周热门 更多>