找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机串口通信,为啥我甲机的935467传送过去变成了这样?求一个解决办法

查看数: 3070 | 评论数: 19 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-6-8 15:59

正文摘要:

本帖最后由 一个用户名 于 2021-6-10 00:34 编辑 这是程序问题还是电路问题啊,求分析 甲机源码: #include <reg51.h>   void main()           &nbs ...

回复

ID:934867 发表于 2021-6-13 23:25
已解决,感谢各位的指导和帮助,麻烦大家了!
ID:390416 发表于 2021-7-6 20:29

串口1打印程序 可以打印3个十六位的变量 波特率9600 http://www.51hei.com/bbs/dpj-201660-1.html

串口发送 不需要while死等 串口接收执行软件复位 http://www.51hei.com/bbs/dpj-200927-1.html
ID:934867 发表于 2021-6-13 23:24
xuyaqi 发表于 2021-6-12 08:07
数码管应该用共阴要换。

!成功了,是换成共阳!!
ID:94031 发表于 2021-6-12 08:07
一个用户名 发表于 2021-6-11 21:33
就在9楼那个New. zip里面

数码管应该用共阴要换。
ID:934867 发表于 2021-6-11 21:34
yzwzfyz 发表于 2021-6-11 11:14
不一定是软件问题。
先学会如果调试程序。
走单步看结果先搞会,看看传来的数据是否OK?

好的(Д)补课去了,感觉拿了本坏教材
ID:934867 发表于 2021-6-11 21:33
xuyaqi 发表于 2021-6-11 09:07
你把你的工程整个打包发出来让大家看一下。

就在9楼那个New. zip里面
ID:123289 发表于 2021-6-11 11:14
不一定是软件问题。
先学会如果调试程序。
走单步看结果先搞会,看看传来的数据是否OK?
再调试显示器:人工给个数字,看看能否正确显示。
这些都不会,暂时就不要搞单片机了。先去补课。
ID:94031 发表于 2021-6-11 09:07
一个用户名 发表于 2021-6-10 22:17
我用的Proteus 8.9,改了频率,还是不行。

你把你的工程整个打包发出来让大家看一下。
ID:934867 发表于 2021-6-10 22:17
wulin 发表于 2021-6-10 06:20
仿真里的两个芯片加载程序不要搞错了,另外晶振频率都要改为11059200或11.0592MHz。

我用的Proteus 8.9,改了频率,还是不行。
ID:213173 发表于 2021-6-10 06:20

仿真里的两个芯片加载程序不要搞错了,另外晶振频率都要改为11059200或11.0592MHz。


ID:213173 发表于 2021-6-9 21:11
一个用户名 发表于 2021-6-9 17:48
求修改方案,我努力消化


给你改好了,就这么一点代码你慢慢去消化吧。


  1. #include <reg51.h>  
  2. void main()               
  3. {
  4.         unsigned char i;
  5.         unsigned char send[]={9,3,5,4,6,7};
  6.         TMOD=0x20;      
  7.         TL1=0xf4;         
  8.         TH1=0xf4;
  9.         TR1=1;
  10.         SCON=0x40;

  11.         for(i=0;i<6;i++)
  12.         {
  13.            SBUF=send[i];   
  14.            while(!TI);     
  15.            TI=0;
  16.         }  
  17.         while(1);
  18. }
复制代码
  1. #include<reg51.h>
  2. unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  3. unsigned char buffer[6];

  4. void disp(void);

  5. void main()
  6. {
  7.         TMOD=0x20;
  8.         TL1=0xf4;
  9.         TH1=0xf4;
  10.         TR1=1;        
  11.         SCON=0x40;
  12.         REN=1;
  13.         EA=1; //开总中断
  14.         ES=1; //允许串口中断

  15.         while(1)
  16.         {
  17.                 disp();
  18.         }
  19. }

  20. void disp()
  21. {
  22.         static unsigned char i;
  23.         unsigned char j;
  24.         P2=0xff;
  25.         P1=tab[buffer[i]];
  26.         P2=~(0x01<<i);
  27.         for(j=0;j<100;j++);
  28.         i=++i%6;
  29. }

  30. void ser() interrupt 4
  31. {
  32.         static unsigned char i=0;
  33.         RI=0;
  34.         buffer[i]=SBUF;
  35.         i++;
  36.         if(i>=6)
  37.                 i=0;
  38. }
复制代码




ID:934867 发表于 2021-6-9 17:48
求修改方案,我努力消化
ID:934867 发表于 2021-6-9 17:43
cn_zhx 发表于 2021-6-9 09:00
乙机主程序会跑飞的

啊,怎么解决
ID:934867 发表于 2021-6-9 17:42
wulin 发表于 2021-6-9 17:29
其实这个问题很简单,但楼主基础太差。三言两语说不清,说多了也消化不了。串口函数和显示函数都有问题。

这,新手实锤,那程序怎么改啊?
ID:213173 发表于 2021-6-9 17:29
其实这个问题很简单,但楼主基础太差。三言两语说不清,说多了也消化不了。串口函数和显示函数都有问题。
ID:883031 发表于 2021-6-9 09:00
乙机主程序会跑飞的
无效楼层,该帖已经被删除

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

Powered by 单片机教程网

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