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

请帮忙翻译一下下面这段程序,逐句翻译或者把编程思路说出来都行.如果有汇编语言和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
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-11
/*12MHz*/
#include<reg52.h>
sbit k1=P3^0;//button
int num=0;
void delay(unsigned int t)//delay(t);
{ //delay t ms
unsigned int x,y;
for(x=t;x>0;x--)
for(y=0;y<125;y++);
}
void keyscan()
{
if(k1==0)
{
delay(8);
if(k1==0)
while(!k1);
num++;
if(num==4)
num=0;
}
}
void main()
{
P1=0xff;
P3=0xff;
while(1)
{
keyscan();
switch(num)
{
case 0 :P1=0xff;break;
case 1 :P1=0xfb;break;
case 2 :P1=0xf3;break;
case 3 :P1=0xe3;break;
}
}
}
第2个回答  2009-05-11
许的诺太假

简单的单片机的汇编语言编程的程序翻译
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,$ ...

单片机程序翻译
DJNZ R5, DEL1 上面这段是延时程序(((15*16*2+3)*15*16+3)*2+1)机器周期 RET (延迟程序返回)END (告诉汇编软件,程序到此结束,同ORG一样,单片机不执行这句)有错请指正!!!

单片机应用题,用c或汇编编程都可以。请把程序编写出来!谢谢!_百度知...
INT0(P3.2)、INT1(P3.3)接开关S1与S2,当开关合上时INT0与INT1即接地。当两个开关都断开时单片机控制P1口所接的八个LED灯一秒钟亮一秒暗地闪烁,当开关S1合上D1~D4LED灯亮另四个暗,当S2合上D5~D8LED灯亮另四个暗(如果S1、S2同时合上S1有优先控制权),focs=6MHZ,要求定时器完成1...

一小段单片机C语言程序翻译成汇编
有几种办法,一个就是了解其函数功能,。自己编写汇编。再一个就是用编译器编译这两个函数,然后看其生成的汇编代码。看这两个函数应该是C51的程序,用KEIL编译后,看得到这两个函数对应的汇编程序。不过这两个函数这么简单,自己用汇编写就好了。

求能人解释或翻译一下下面的51单片机汇编语言程序(2)
INTE: PUSH PSW ;进入中断,先保护现场 PUSH ACC JB P1.7,KE3 ;如果P1.7高电平或P1.6低电平则跳转到KE3处 JNB P1.6,KE3 LCALL D10MS ;延时10毫秒 LCALL DISP ;调用显示函数 INC R3 ;R3增1,如果已到10则回到0 CJNE R3,#0AH,GO1 MOV ...

能把问题补充的51单片机汇编语言翻译下么?
DELAY:MOV R5,#0FFH \/\/改变值变延时时间 LOOP2: MOV R4,#0FFH\/\/改变值变延时时间 LOOP1:DJNZ R4,LOOP1 \/\/R4减一,非0跳转到LOOP1 DJNZ R5,LOOP2 \/\/R5减一,非0跳转到LOOP2 RET \/\/子程序返回 END \/\/汇编结束 \/\/\/这是详细的程序注释,你看看吧。

各位大神帮我把下边的程序翻译成pic单片机汇编语言啊
你先把它在PIC的C语言环境下全编译通过并出成HEX的机器文件,再上网去找一智 能反汇编反一下就OK!

怎样把单片机里的数字语言通过电脑反译成程序
你在kile软件里面的仿真中。有一个(disassembly window)图标点击一下,可以把c翻译成汇编, disassembly window是一个反汇编的窗口 采纳哦

8051单片机的汇编程序编程问题!!!
if(P1_2_Turn_Cnt == 0){ P1_2 = ~P1_2;} P1_3_Turn_Cnt++;if(P1_3_Turn_Cnt >= 7){ P1_3_Turn_Cnt = 0;P1_3 = ~P1_3;} } 以上就是这个程序实现的全部过程,你可以自己手动翻译成汇编语言,也可以用Keil的Debug模式自动翻译,因为我时间有限,所以就不给你翻译了,请见谅!

请解释下这段单片机汇编语言的具体意思,谢谢
LCALL ADSS ;调用子程序ADSS MOV A,R3 ;R3 -> A MOV B,R5 ;R5 -> B MUL AB ;AB相乘,高位存B,低位存A MOV R0,#31H ;立即数31H -> R0 LCALL ADSS ;调用子程序ADSS SJMP $ ;停车 ;子过程 ADSS: ADD A,@R0 ;A 同 R0地址的数相加 MOV @R0,A ; A存入R0地址 DEC ...

相似回答
大家正在搜