找回密码
 注册
搜索
查看: 957|回复: 1

[讨论] 求帮忙改双机串口通讯的汇编程序改错!谢谢

[复制链接]
发表于 2008-3-16 22:33:19 | 显示全部楼层 |阅读模式
两个单片机系统之间进行通讯,#1机发送数据;#2机接受数据,串行口工作方式设置为1(即一帧信息包括:1为起始位0,8位数据位和1位停止位1)。
如下的#2机的程序:完成如下功能---将#1机发送的16个无符号数据接受并存放到内部RAM以30h为首地址的连续的16个单元中,然后从大到小排序并显示出来。并且对接收到的字符信息采用累加和方式校验。
      ORG     0000H     ;The receive program of machine_2
          SJMP          MAIN
          ORG          0023H
          SJMP          RECEIVER
          ORG          0030H
MAIN:          MOV          SP,#70H
          LCALL          QL
          LCALL          DIS
          MOV          TMOD,#20H
          MOV           TL1,#0FDH
          MOV          TH1,#0FDH
          MOV          SCON,#50H
       
          MOV           PCON,#00H
          SETB          ES
          SETB          EA
          SETB          TR1
CALLED:          CJNE          A,#0AAH,CALLED
          MOV          A,#55H
          MOV          SBUF,A
          SETB          F0
          JB          F0,$
AGAIN:          SETB          REN
          MOV          R1,#30H
          MOV          R2,#10H
          MOV          R3,#00H
          SETB          F0
LOOOP:          JB          F0,$
          SETB          F0
          MOV          @R1,A
          ADD          A,R3
          MOV          R3,A
          INC          R1
          DJNZ          R2,LOOOP
          JB          F0,$
          SETB          F0
          CJNE          A,R3,ERROR ;        EXPRESSION TYPE DOES NOT MATCH INSTRUCTION
          CLR          REN
          MOV          A,#00H
          MOV          SBUF,A
          JB          F0,$
          LCALL          DISPOSAL
       
          LCALL          ARRAY
XA:          MOV          R0,#40H

          MOV          R3,#20H
XA1:          MOV          A,@R0
          MOV          6CH,6DH
          MOV          6DH,6EH
          MOV          6EH,6FH
          MOV          6FH,A
          LCALL          DIS
          LCALL          YS
          INC           R0
          DJNZ          R3,XA1
          SJMP          $
RECEIVER: CLR          F0
          CLR     RI
          CLR          TI
          MOV          A,SBUF
          RETI
ERROR:          CLR          REN
          MOV          A,#0FFH
          MOV          SBUF,A
          JB          F0,$
          LJMP          AGAIN
QL:          MOV          R5,#04H
          MOV          R0,#6CH
SQ:          MOV          @R0,#00H ;SYNTAX ERROR
          INC          R0
          DJNZ          R5,SQ
          MOV          R0,#40H
          RET
DIS:          SETB          P3.4
          CLR          P3.5
          CLR          P3.3
          SETB          P3.2
          ORL          6EH,#0E0H
          MOV          P1,6FH
          ANL          6FH,#0FH
          NOP
          SETB          P1.4
          ORL          6EH,#0D0H
          MOV          P1,6EH
          ANL          6EH,#0FH
          NOP
          SETB          P1.5
          ORL          6DH,#0B0H
          MOV          P1,6DH
          ANL          6DH,#0FH
          NOP
          SETB          P1.6
          ORL          6CH,#70H
          MOV          P1,6CH
          ANL          6CH,#0FH
          NOP
          SETB          P1.7
          CLR          P3.2
          RET
DISPOSAL: MOV          R3,#10H
          MOV          R0,#40H
          MOV          R1,#30H
LOP1:           MOV          A,@R1
          MOV          7FH,A
          ANL           A,#0FH
          MOV          @R0,A
          INC          R0
          MOV          A,7FH
          SWAP          A
          ANL          A,#0FH
          MOV          @R0,A
          INC          R0
          INC          R1
          DJNZ          R3,LOP1
          RET
ARRAY:          MOV          R0,#40H
          MOV          R1,#41H
LP:          MOV          A,@R0
          CLR          CY
          SUBB          A,@R1
          MOV          A,@R0
          JNC          LOOP
          CLR          CY
          LJMP          LOP
LOOP:          XCH          A,@R1
          MOV          @R0,A
LOP:          INC          R1
          CJNE          R1,#60H,LP
          INC          R0
          MOV          B,R0
          INC          B
          MOV          R1,B
          CJNE          R0,#5FH,LP
          RET
YS:          MOV          R4,#14H
LL1:          MOV          TMOD,#01H
          MOV          TH0,#4CH
          MOV          TH0,#00H
          SETB          TR0
          JNB          TF0,$
          CLR     TF0
          DJNZ          R4,LL1
          RET
          END
我用keil集成开发环境uVision2进行编译(translate),报错为:
CJNE   A,R3,ERROR ;        EXPRESSION TYPE DOES NOT MATCH INSTRUCTION
而SQ:          MOV          @R0,#00H ;SYNTAX ERROR这条语句被识别为三个错误,都是SYNTAX ERROR
这是怎么回事,请高手指点?

附件是粘贴在word中的汇编语言程序

【文件名】:08316@52RD_RX-PROG-M2.rar
【格 式】:rar
【大 小】:5K
【简 介】:
【目 录】:
发表于 2008-3-23 21:34:39 | 显示全部楼层
不好意思,我不懂这个,没能帮到你
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-24 00:36 , Processed in 0.065919 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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