scs
scs
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2011-06-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1575回复:3

谁精通intel8251A,快来帮帮忙啊

楼主#
更多 发布于:2002-04-09 12:29
问题: 用8031+8251A和PC机通讯时,两者自收自发都可以,当联机通讯(各将接收到的字节数据发出去,循环)时,8251发的数据PC机再发送,也一切正常,只有PC机做改变(比如加一)后再发送,8251接收就会出错!波特率600-9600都一样。

急!急! 向各位大侠求救!!

小狼
scs
scs
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2011-06-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-09 23:44
快告诉我呀
小狼
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-04-10 09:12
用户被禁言,该主题自动屏蔽!
scs
scs
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2011-06-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-10 14:25
详细说明如下。请多指教。将不胜感激。

工装:8251A与PC机通过三线电缆连接:RXD、TXD、GND。长度<2米。
      8251A一端的DTR-DSR短接,RTS-CTS短接。

8031源程序:
CSEG    AT      0000H
        LJMP    START

START:

INIT8251:
CLR A
MOV DPTR,#0FFF9H ;0FFF9H位8251A控制字口地址
MOVX @DPTR,A
LCALL DLTIME
MOVX @DPTR,A
LCALL DLTIME
MOVX @DPTR,A
LCALL DLTIME
MOV ACC,#40H
MOVX @DPTR,A
LCALL DLTIME
MOV ACC,#4EH ;写方式字
MOVX @DPTR,A
LCALL DLTIME
MOV ACC,#27H ;写命令字
MOVX @DPTR,A
LCALL DLTIME

MOV ACC,#55H ;准备发送的第一个数据

LOOP:
INC ACC ;循环将接收到的数据加一再发送
LCALL SENDCHAR
LCALL RECEIVE
LCALL DLTIME
LJMP LOOP

SENDCHAR:
PUSH ACC
MOV DPTR,#0FFF9H
WAITSEND:
MOVX A,@DPTR
RRC A
JNC WAITSEND ;判断发送准备好否
POP ACC
MOV DPTR,#0FFF8H ;0FFF8H为8251A数据口地址
MOVX @DPTR,A
RET

RECEIVE:
MOV DPTR,#0FFF9H
WAITRECE:
MOVX A,@DPTR
ANL ACC,#02H
JZ WAITRECE ;判断接收到否
MOV DPTR,#0FFF8H
MOVX A,@DPTR
RET

DLTIME: MOV     R2,#01H
DLTIME1:MOV     R3,#10H
DLTIME2:MOV     R4,#10H
        DJNZ    R4,$
        DJNZ    R3,DLTIME2
        DJNZ    R2,DLTIME1
        RET

        END


PC机通讯程序确定无误。

错误现象:
当PC机每接收到一字节数据就发送出去,就会看到数据正确的加一循环接收发送(A、B、B、B、C、C、C、D、、、),此时PC机发送的数据8251能正确接收。
但当PC机每接收到一字节数据,就发送出去一个不同的数据(将数据加一:比如接收到D,就发送E),此时数据将出错,传送的数据总是如(D、E、F、D、D、E、F、D、、、),说明PC机发送F,而8251接收到了D。
()内的数据表示依次是:8251发、PC机收、PC机发、8251收、8251发、PC机收、PC机发、8251收、、、、)

附件为源程序。
附件名称/大小 下载次数 最后更新
2002-04-10_t90553.asm (2KB)  0
小狼
游客

返回顶部