找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3419|回复: 6
打印 上一主题 下一主题
收起左侧

单片机串口发送显示乱码

[复制链接]
跳转到指定楼层
楼主
ID:438771 发表于 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. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:275826 发表于 2019-9-8 08:39 | 只看该作者
估计是你的晶振频率不对
回复

使用道具 举报

板凳
ID:282850 发表于 2019-9-9 09:35 | 只看该作者
查检上位机的波特率是否9600,检验位是否对。试完如果还是乱码,查一下晶振是否与程序设想的一致,先用11.0592Mhz,如果是STC,下载时一定把默认的内部RC改为外部晶振!!切记
回复

使用道具 举报

地板
ID:93224 发表于 2019-9-10 09:59 | 只看该作者
看看你的晶振是否是11.0592MHz,然后看看接受端的波特率是否是9600
回复

使用道具 举报

5#
ID:610092 发表于 2019-9-10 16:46 | 只看该作者
逻辑分析仪还是示波器看看,估计本质还是时钟配置问题
回复

使用道具 举报

6#
ID:610139 发表于 2019-9-10 18:05 | 只看该作者
可能波特率不对显示乱码。
回复

使用道具 举报

7#
ID:199249 发表于 2019-9-15 15:31 | 只看该作者
工作模式是否与上位机接收模式一致   ,比如说有没有停止位起始位检验位  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表