微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > MCU向PC发送数据出错

MCU向PC发送数据出错

时间:10-02 整理:3721RD 点击:
网上的程序,验证发现,PC收到的数据有问题。程序如下:
#include<reg51.h>       //包含单片机寄存器的头文件
unsigned char code Tab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
void Send(unsigned char dat)
{
   SBUF=dat;
   while(TI==0)
     ;
   TI=0;
}
void delay(void)   
{
   unsigned char m,n;
   for(m=0;m<200;m++)
   for(n=0;n<250;n++)   
      ;
}
void main(void)
{
   unsigned char i;
   TMOD=0x20;  //TMOD=0010 0000B,定时器T1工作于方式2
   SCON=0x40;  //SCON=0100 0000B,串口工作方式1
   PCON=0x00;  //PCON=0000 0000B,波特率9600
   TH1=0xfd;    //根据规定给定时器T1赋初值
   TL1=0xfd;    //根据规定给定时器T1赋初值
   TR1=1;      //启动定时器T1   
  while(1)
   {
      for(i=0;i<8;i++)   //模拟检测数据
   {
    Send(Tab[i]);        //发送数据i
    delay();             //150ms发送一次数据     
      }  
   }
}   
发送“0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F”,PC端显示为“FE FD FB F7 EF DF FF BF ”,后两个错了。如果是发送“F1 F2 F3 F4 F5 F6 F7 F8 ”则不出错。 还试了其他数据,有的对有的错,不知道为什么?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top