机电一体化 发表于 2012-4-25 12:19:39

51串口通信有个小问题

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar flag,a,i;
uchar code table[]="i get";
void delay()
{
int i,j;
for(i=0;i<100;i++){
    for(j=0;j<500;j++);
        }
}
void init(){
   TMOD=0X20;
   TH1=0XFD;
   TL1=0XFD;
   TR1=1;
   REN=1;
   SM0=0;
   SM1=1;
   EA=1;
   ES=1;
}

main()
{
   init();
   while(1){
           ES=0;
             SBUF='1';
               while(!TI);
               TI=0;
           delay();
       }
}用proteus上仿真,串口调试软件,上不断显示111111111   
但是自己焊的板子,转成16进制,都是00,00,00如图
javascript:;

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

机电一体化 发表于 2012-4-25 19:50:47

哎,高了半天原来MAX232的VCC和GND口没连线。。。

mon51 发表于 2012-4-25 20:14:49

一般KEIL的模拟仿真正确,基本就可以判断是硬件问题。
页: [1]
查看完整版本: 51串口通信有个小问题