简单的单片机的汇编语言编程的程序翻译

请帮忙翻译一下下面这段程序,逐句翻译或者把编程思路说出来都行.如果有汇编语言和C语言编程的高手请留言,我会用另外一个号开问题追加200以上的分悬赏给你请你帮忙翻译简单的程序. ORG 000H MOV P1,#0FFH MOV P3,#0FFH XH:JB P3.0,$ ACALL DELAY JB P3.0,$ JNB P3.0,$ MOV P1,#0FBH ACALL DELAY JB P3.0,$ ACALL DELAY JB P3.0,$ JNB P3.0,$ MOV P1,#0F3H ACALL DELAY JB P3.0,$ ACALL DELAY JB P3.0,$ JNB P3.0,$ MOV P1,#0E3H ACALL DELAY JB P3.0,$ ACALL DELAY JB P3.0,$ JNB P3.0,$ MOV P1,#0FFH ACALL DELAY AJMP XH NOP NOP NOP NOP DELAY:MOV R0,#080H D1:MOV R1,#0FAH D2:DJNZ R1,D2 DJNZ R0,D1 RET END

第1个回答  2019-11-20
ORG
000H
//程序从内存地址000h开始执行
MOV
P1,#0FFH
//将P1,P3置高
MOV
P3,#0FFH
//如果P3没有置高,读取p3.0的值将会不准确
XH:
JB
P3.0,$
//判断p3.0是否为低,若为高等待,为低继续往下执行,也就是键盘是否按下
ACALL
DELAY
//调用延时子程序,键盘消抖
JB
P3.0,$
//再次判断
JNB
P3.0,$
//判断按键是否释放
MOV
P1,#0FBH
//点亮p1.2接的灯
ACALL
DELAY
//延时
JB
P3.0,$
ACALL
DELAY
JB
P3.0,$
JNB
P3.0,$
MOV
P1,#0F3H
//点亮p1.3接的灯
ACALL
DELAY
JB
P3.0,$
ACALL
DELAY
JB
P3.0,$
JNB
P3.0,$
MOV
P1,#0E3H
//点亮p1.4接的灯
ACALL
DELAY
JB
P3.0,$
ACALL
DELAY
JB
P3.0,$
JNB
P3.0,$
MOV
P1,#0FFH
//熄灭算所有的灯
ACALL
DELAY
AJMP
XH
//跳转到标号XH
NOP
NOP
//空语句,一个指令周期延时
NOP
NOP
DELAY:
MOV
R0,#080H
//延时子程序
D1:
MOV
R1,#0FAH
D2:
DJNZ
R1,D2
//r1为0,跳转到下一条指令
DJNZ
R0,D1
RET
END
相似回答