发表于:2006/6/13 20:42:00
#0楼
请教各位:
下面这段程序是:PC向单片机发送14个字节数据,单片机将14个字节存入30开始的地址单元,然后比较31单元数据与P1是否相等,如不等返回,继续等待接收PC数据,如果相等就将33单元的数据送到P0(P0口有发光2极管)显示。PC与单片机是用485方式 通讯。我在做这个实验时,出现奇观现象,单片机显示的数据和PC发送的数据不一致,如果33单元的数据是01-0F时单片机显示正常,如果33单元高4位不是0则显示不正常,例如33单元是2F单片机显示4F,如果33单元是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
下面这段程序是:PC向单片机发送14个字节数据,单片机将14个字节存入30开始的地址单元,然后比较31单元数据与P1是否相等,如不等返回,继续等待接收PC数据,如果相等就将33单元的数据送到P0(P0口有发光2极管)显示。PC与单片机是用485方式 通讯。我在做这个实验时,出现奇观现象,单片机显示的数据和PC发送的数据不一致,如果33单元的数据是01-0F时单片机显示正常,如果33单元高4位不是0则显示不正常,例如33单元是2F单片机显示4F,如果33单元是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