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