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

来源:百度知道 编辑:UC知道 时间:2024/06/11 05:29:11
请帮忙翻译一下下面这段程序,逐句翻译或者把编程思路说出来都行.如果有汇编语言和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

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

/*12MHz*/
#include<reg52.h>
sbit k1=P3^0;//button
int