求解单片机程序的每一步的意思,谢谢🙏?

ORG 0000H
AJMP MAIN
MAIN:
CLR A
MOV P2,#0FFH
JNB P1.0,LOOP1
JNB P1.1,LOOP2
JNB P1.2,LOOP3
AJMP ABC
LOOP1:
MOV A,#07FH
ABC1:
MOV P2,A
LCALL DEL
RR A
LJMP ABC1
AJMP ABC
LOOP2:
MOV A,#0FEH
ABC2:
MOV P2,A
LCALL DEL
RL A
LJMP ABC2
LOOP3:
MOV A,#03FH
ABC33:
MOV P2,A
LCALL DEL
MOV P2,#09FH
LCALL DEL
MOV P2,#0CFH
LCALL DEL
MOV P2,#0E7H
LCALL DEL
MOV P2,#0F3H
LCALL DEL
MOV P2,#0F9H
LCALL DEL
MOV P2,#0FCH
LCALL DEL
MOV P2,#09FH
JNB P1.0,LOOP1
JNB P1.1,LOOP2
LJMP ABC33
DEL:
MOV R3,#10
MOV TMOD,#10H
MOV TH1,#3CH
MOV TL1,#0B0H
SETB TR1
LP1:
JNB P1.0,LOOP1
JNB P1.1,LOOP2
JNB P1.2,LOOP3
JBC TF1,LP2
SJMP LP2
LP2:
MOV TH1,#3CH
MOV TL1,#0B0H
DJNZ R3,LP1
RET
AJMP ABC
ABC:
END

程序这么长,不一一解释,要想弄明白,还要学汇编,弄清51单片机内部结构和指令
ORG 0000H;从0地址开始
AJMP MAIN;跳转至主程序,为了躲开中断入口地址
MAIN: 主程序
CLR A;清累加器A
MOV P2,#0FFH;没啥用,P2上电就 是0FFH
JNB P1.0,LOOP1 判断P1.0状态 是0转LOOP1,不为0顺序执行
JNB P1.1,LOOP2 判断P1.1状态 是0转LOOP2,不为0顺序执行
JNB P1.2,LOOP3 判断P1.2状态 是0转LOOP3,不为0顺序执行
AJMP ABC 转至标号ABC处
LOOP1:
MOV A,#07FH 立即数7FH送累加器A
ABC1:
MOV P2,A 累加器A内容送P2
LCALL DEL 调延时子程序
RR A 累加器A内容右移
LJMP ABC1 跳转 至 ABC1
AJMP ABC 跳转 至 ABC处 ,上面已提前跳转,本句不可能执行
温馨提示:答案为网友推荐,仅供参考