标题: 单片机串口发送显示乱码 [打印本页]

作者: dzq123    时间: 2019-9-7 21:02
标题: 单片机串口发送显示乱码
为什么下载一下程序是,在串口接受数据上显示乱码的,请大佬们指教,我想从单片机发送到上位机上显示
  1. #include <REG52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar dis[]={0,0,1,1,0,0};
  5. /*****n(ms)延时子程序*****/
  6. void delayms(uint ms) //延时ms
  7. {
  8. uchar i;
  9. while(ms--)
  10. {
  11. for(i=0;i<120;i++);
  12. }
  13. }
  14. /*****主程序*****/
  15. void main()
  16. {
  17. int i;
  18. TMOD=0x20; //定时器1工作于8位自动重载模式, 用于产生波特率
  19. TH1=0xFD;//波特率9600
  20. TL1=0xFD;
  21. SCON=0x50; //设定串行口工作方式
  22. TR1=1; //启动定时器1
  23. while(1)
  24. {
  25. for(i=0;i<6;i++)
  26. {
  27. SBUF=dis[i];
  28. while(!TI); //等特数据传送
  29. TI=0; //清除数据传送标志

  30. } delayms(500);
  31. }
  32. }
复制代码

作者: tyrl800    时间: 2019-9-8 08:39
估计是你的晶振频率不对
作者: f556    时间: 2019-9-9 09:35
查检上位机的波特率是否9600,检验位是否对。试完如果还是乱码,查一下晶振是否与程序设想的一致,先用11.0592Mhz,如果是STC,下载时一定把默认的内部RC改为外部晶振!!切记
作者: lele5211314    时间: 2019-9-10 09:59
看看你的晶振是否是11.0592MHz,然后看看接受端的波特率是否是9600
作者: h4610    时间: 2019-9-10 16:46
逻辑分析仪还是示波器看看,估计本质还是时钟配置问题
作者: KOKO1213    时间: 2019-9-10 18:05
可能波特率不对显示乱码。
作者: q546822    时间: 2019-9-15 15:31
工作模式是否与上位机接收模式一致   ,比如说有没有停止位起始位检验位  




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1