下面是一个单片机的串口接受程序,请问我一直给单片机上电但程序啥时候跑完?是跑一遍还是循环跑,我在主程序里调用接收程序,然后用串口调试助手发送一遍指令后,但好象程序就不再回到主程序里执行下面要调用的其他程序了,不明白是什么原因? 即不执行MOV P0,#0F0H这句了,不明白为什么? ReciCardData EQU 60H ORG 0000H JMP START START:
;---------------------------- ;command::AA FF 01 01 A1 F4 ;---------------------------- ;---------------------------- LCALL SoftUART_GetByte MOV P0,#0F0H ; RET
RET
SoftUART_GetByte: MOV SP,#60H ; 设定堆栈区 MOV SCON,#01010000B ; 设定串列方式 MODE1,接收时 REN=1 MOV TMOD,#20H ; 设定计时器1 为 模式2 MOV TH1,#0FDH ; 设定波特率为 4800 SETB TR1 ; 计时器1 ,开始计时 MOV R0,# ReciCardData MOV R7,#1
AGAIN1: JNB RI,$ CLR RI MOV P0,A MOV A,SBUF MOV @R0,A ; INC R0 ; DJNZ R7,AGAIN1 RET END |