登录
首页 串口通信 串口通信
回帖 发帖
正文

主题:[求助]串口通讯

点击:1296 回复:1

请教各位:
    下面这段程序是:PC向单片机发送14个字节,单片机将14个字节存入30开始的地址单元,然后比较31单元数据与P1是否相等,如不等返回,等待接收PC数据,如果相等就将33单元的数据送到P0(P0有发光2极管)显示。PC与单片机是用485方式 通讯。我在做这个实验时,出现奇观现象,单片机显示的数据和PC发送的数据不一致,因为PC发送的第4个数据存入单片机的33单元,PC发送的第4个数据是01-0F时单片机显示正常,PC发送的第4个数据高4位不是0则显示不正常,例如PC发送的第4个数据是2F,单片机显示4F,如果PC发送的第4个数据是4F单片机显示8F,不知是什么原因。
    MOV   40H,#08H
     MOV   41H,#10H
     MOV   42H,#04H
     MOV   43H,#02H
     MOV   44H,#40H
     MOV   45H,#20H
dl2:  MOV   TMOD,#20H
     MOV   TH1,#0FaH
     MOV   TL1,#0FaH
     SETB  TR1
     MOV   SCON,#50H
     MOV   P0,#00H
     MOV   R7,#0EH
     MOV   R0,#30H
dl6:  JNB   RI,$
     CLR   RI
     MOV   @R0,SBUF
     INC   R0
     DJNZ  R7,dl6
     MOV   SCON,#40H
     MOV   A,P1
     XRL   A,31H
     JZ    dl5
     SJMP  dl2
dl5:  MOV   P0,33H
     MOV   R3,#0FFH
dl3:  MOV   A,#0FFH
dl4:  DEC   A
     JNZ   dl4
     DJNZ  R3,dl3
     AJMP  dl2
     RET
end
06-06-19 00:00
这个问题好象已经解决了吧?是晶振频率的问题对吗?
06-07-25 10:29

工控新闻

更多新闻资讯