请问一下高手 我这段51的汇编语言 宏定义 那里错误啊? 不能调用啊?
RST EQU P1.2
SDA EQU P1.1
CLK EQU P1.0
SEND_ADDR EQU 30H
SEND_DATA EQU 31H
SEND_TIMES EQU 32H
DS1302DS1302_WR_BYTE MACRO ADDR,DATA
MOV SEND_ADDR,ADDR
MOV SEND_DATA,DATA
CLR CLK
LCALL DALAY_2US
CLR C
MOV SEND_TIMES,#08H
MOV A,SEND_ADDR
LCALL SEND_BYTE
CLR C
MOV SEND_TIMES,#08H
MOV A,SEND_DATA
LCALL SEND_BYTE
JMP WR_OUT
SEND_BYTE:
RRC A
MOV SDA,C
LCALL DELAY_2US
SETB CLK
LCALL DELAY_2US
CLR CLK
DJNZ SEND_TIMES,LOOP_SEND
RET
WR_OUT:
NOP
ENDM
ORG 00H
JMP MAIN
MAIN:
MOV SP,#060H
DS1302_WIRTE:
CLR RST
CLR CLK
SETB RST
DS1302_WR_BYTE 8EH,#080H
END
答案:建议你先把ORG(代码地址的定位指令)搬到全部代码前先试试! 哈!再就先别宏,先连在后全通过了再来宏试试.
其他:没在起始地址ORG,程序从哪个地方开始执行,要调用的子程序没有返回!
上一个:问个反汇编问题!
下一个:单片机基于8051片子做的八路抢答器程序,请高手帮忙检查下