初学者:各位高人,帮帮忙!
我用的at89c2051,其中p1.0~p1.3接mt8880的四根数据线,p1.4接mt8880的时钟,p1.5
接rs0
p1.6接r/w,p1.7接了一个二极管的负端,用作指示。p3.7接mt8880的cs.
程序如下,其功能主要为发送。现在不能发送。状态位没有变化。
ORG 0000H
AJMP ST
ORG 0003H
AJMP TT
ORG 0050H
ST:ACALL DL1
ACALL DL1
CLR P3.7 ;片选
MOV A,#30H
MOV P1,A
MOV P1,A ;写CRA
MOV A,#38H
MOV P1,A
MOV A,#30H ;写CRB
MOV P1,A
SETB EA
SETB EX0
SETB P1.7
LOOP:NOP
SJMP LOOP
TT:NOP
MOV A,#3DH ;设为中断允许,允许信号输出
MOV P1,A
MOV A,#30H
MOV P1,A
MOV A,#18H ;写发送寄存器,写#8
MOV P1,A
ACALL DL1
ACALL DL1
ACALL DL1
MOV A,#0FFH
MOV P1,A
CLR P1.7
SETB P1.5
SETB P1.6
SETB P1.4 ;读状态寄存器
LOO:MOV A,P1
JNB ACC.1,LOO ;如果ACC.1为1,则发送成功,这里有问题,程
序在这里跳。
ACALL DL1
SETB P1.7
NOP
MOV A,#11H
MOV P1,A
ACALL DL1
SETB P1.5
SETB P1.6
SETB P1.4
LOO1:MOV A,P1
JNB ACC.1,LOO1
ACALL DL1
SETB P1.7 ;这一段发#1
NOP
CLR P1.7
MOV A,#13H
MOV P1,A
ACALL DL1
SETB P1.6
SETB P1.5
SETB P1.4
LOO2:MOV A,P1
JNB ACC.1,LOO2
ACALL DL1 ;这一段发#3,
SETB P1.7
RETI
DL1:MOV R2,#4H
DL11:MOV R3,#0FFH
DL12:MOV R4,#0FFH
DL:DJNZ R4,DL
DJNZ R3,DL12
DJNZ R2,DL11
RET
END
发表时间:2002年6月13日13:59:00