微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > AT89S52单片机能发送数据,示波器有显示,但串口助手没显示,换了助手也没显示,求大侠

AT89S52单片机能发送数据,示波器有显示,但串口助手没显示,换了助手也没显示,求大侠

时间:10-02 整理:3721RD 点击:

  1. #include<AT89X51.h>       //包含单片机寄存器的头文件
  2. unsigned char code Tab[ ]={0x1,0x2,3,4,5,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46};
  3. //0-9 A-F
  4. /*****************************************************
  5. 函数功能:向PC发送一个字节数据
  6. ***************************************************/
  7. void Send(unsigned char dat)
  8. {
  9.    SBUF=dat;
  10.    while(TI==0)
  11.       ;
  12.     TI=0;
  13. }
  14. /**************************************************************
  15. 函数功能:延时约150ms
  16. **************************************************************/
  17. void delay(void)   
  18. {
  19.    unsigned char m,n;
  20.      for(m=0;m<200;m++)
  21.       for(n=0;n<250;n++)      
  22.            ;
  23. }
  24. /*****************************************************
  25. 函数功能:主函数
  26. ***************************************************/
  27. void main(void)
  28. {
  29.    unsigned char i;
  30.    TMOD=0x20;  //TMOD=0010 0000B,定时器T1工作于方式2
  31.    SCON=0x40;  //SCON=0100 0000B,串口工作方式1
  32.    PCON=0x00;  //PCON=0000 0000B,波特率9600
  33.    TH1=0xfd;    //根据规定给定时器T1赋初值
  34.    TL1=0xfd;    //根据规定给定时器T1赋初值
  35.    TR1=1;      //启动定时器T1   
  36.   while(1)
  37.    {
  38.       for(i=0;i<16;i++)   //模拟检测数据
  39.          {
  40.             Send(Tab[i]);        //发送数据i
  41.               delay();   //150ms发送一次数据                          
  42.           }               
  43.    }
  44. }     

复制代码


助手


你的程序只是发送数据,没有接收数据,所以从PC发送数据的部分就不用测试了。
助手的选项里除了RXD和TXD外,其他的如DTR,RTS等都不要选择

这里改一下就可以正常发送了。
void Send(unsigned char dat)
{
   SBUF=dat;
   while(!TI);     
    TI=0;
}

小编可以采纳4楼的方法试一试,不过是使用串口助手时,要注意选择正确的端口,而且要选中正确的波特率!

谢谢大家,问题已解决

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

网站地图

Top