导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→初学者:初学者:请教,单片机接收数据出错如何解决[wqj]

 *第1479篇: 初学者:初学者:请教,单片机接收数据出错如何解决

  
楼 主:wqj 2001年12月12日21:41
 初学者:初学者:请教,单片机接收数据出错如何解决
用89C2051接收计算机发的数据,数据格式为2400,n,8,1,基本上接收十次总有一次收不
到,发送软件是下载丁丁的sscom,试验多次还是不行,请问谁知道是怎么回事,如何解
决?多谢!
  
2楼:leech42 2001年12月12日21:57
 贴出你的接收代码,我看一下,有可能是你的代码有问题
堆栈设的对吗?
  
3楼:wqj 2001年12月12日21:59
 代码如下
                   MOV   TMOD,#20H ;设置定时器1为模式2作波特率发生
器                  
                   MOV   TL1,#0f4H ;设波特率为2400                  
                   MOV   TH1,#0f4H
                   SETB  TR1       ;定时器1接通工作
                   MOV   SCON,#50H ;设置串行口为模式1
                   JB    P3.4,LOOP ;P3.4为1则跳转至LOOP                 
                   MOV   A,#11h
SPOUT:             MOV   SBUF,A 
                   JNB   TI,$      ;等待数据发送完成                   
                   CLR   TI
LOOP:              jnb   RI,$      ;等待数据接收完成(RI为零则转移)
                   MOV   A,SBUF    ;串行数据缓冲器内容送累加器
                   DEC   A
                   CLR   P3.5
                   SETB  P3.5
                   clr   ri
                   MOV   R2,A
                   ADD   A,#224
                   JNC   CON
  
4楼:leech42 2001年12月12日22:07
 我感觉可能是你的堆栈溢出了。
  
5楼:wqj 2001年12月12日22:11
 一次只收一个字节的数据,直接传给A,无堆栈
  
6楼:寄存器 2001年12月19日09:41
 很奇怪?你既有接收,又有发送为什么不用中断做?用查询只要其他地方的循环时间多一点像你这个程序只要查询间隔大于500uS就有出错的可能

>>>>>>对该主题发表你的看法

本主题贴数6,分页: [第1页]


[上一篇主题]:寻:SIM8051木模拟/调试软件

[下一篇主题]:硬件:不知各位搞单片机TCP/IP的都是怎么处理ICMP的呀!能谈谈吗???