求能人解释或翻译一下下面的51单片机汇编语言程序(2)

INTE: PUSH PSW
PUSH ACC
JB P1.7,KE3
JNB P1.6,KE3
LCALL D10MS
LCALL DISP
INC R3
CJNE R3,#0AH,GO1
MOV R3,#00H
GO1: MOV 32H,R3
MOV 31H,R4
LCALL DISP
KC1: JNB P1.7,KC1
LJMP OUT
KE3: JB P1.5,OUT
LCALL D10MS
LCALL DISP
INC R4
CJNE R4,#0AH,GO2
MOV R4,#00H
GO2: MOV 31H,R4
MOV 32H,R3
LCALL DISP
KC2: JNB P1.5,KC2
OUT: LCALL D10MS
LCALL DISP
POP ACC
POP PSW
RETI
END

这是个中断函数,通过判断不同引脚的电平,令显示部分的高位或低位循环:
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 R3,#00H

GO1: MOV 32H,R3 ;将R3和R4存入内存32H和31H,再调用显示函数(我估计显示函数的参数就是31H和32H中的内容)
MOV 31H,R4
LCALL DISP

KC1: JNB P1.7,KC1 ;如果P1.7低电平则继续等待,否则跳到out处准备退出中断。
LJMP OUT

KE3: JB P1.5,OUT ;如果P1.5高电平跳到out处准备退出中断,否则类似R3,对R4进行0~9的循环,将结果放到31H中,供DISP函数使用
LCALL D10MS
LCALL DISP
INC R4
CJNE R4,#0AH,GO2
MOV R4,#00H
GO2: MOV 31H,R4
MOV 32H,R3
LCALL DISP
KC2: JNB P1.5,KC2 ;如果P1.5低电平则继续等待,否则跳到out处准备退出中断。

OUT: LCALL D10MS ;准备退出中断,恢复现场
LCALL DISP
POP ACC
POP PSW
RETI ;中断返回
END
温馨提示:内容为网友见解,仅供参考
无其他回答

求能人解释或翻译一下下面的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 ...

能把问题补充的51单片机汇编语言翻译下么?
DJNZ R1,S2 \/\/R1减1,非0,则继续跳转到S2,继续上面的移位点亮操作 AJMP START \/\/跳转到START,程序死循环,一直实现P1口的灯先从右往左亮,然后P2口连接的灯从右往左亮。DELAY:MOV R5,#0FFH \/\/改变值变延时时间 LOOP2: MOV R4,#0FFH\/\/改变值变延时时间 LOOP1:DJNZ R4,LOOP1 \/...

帮我把下面的51单片机汇编语言翻译成C语言
51的通用寄存器只有8位啊,16位数据的寄存器只有一个dptr

51单片机LED操作汇编语言程序解释
ORG 00H ;程序初始地址 SJMP STAR ;跳转到STAR ORG 1BH ;定时器T1的中断向量地址 SJMP T1S ;跳转到T1S ORG 30H ;程序地址30H,即STAR标号地址 STAR: MOV R2,#99 ;将十进制数99送入R2中 MOV R4,#20 ;将十进制数20送入R4中 MOV IE,#88H ;开启EA和E...

求51单片机控制继电器的汇编程序或c语言程序!!!
sbit key=P1^0;sbit key1=P1^1;sbit d1=P0^0;sbit d2=P0^1;void delay1s(void)\/\/误差 0us { unsigned char a,b,c;for(c=167;c>0;c--)for(b=171;b>0;b--)for(a=16;a>0;a--);_nop_();\/\/if Keil,require use intrins.h } main(){ while(1){ if(key==0){ wh...

急求:单片机MS-51,用汇编语言编写程序的问题. 高手的高分,谢谢,
用B方法即可。但是乘以 3.53,还应该研究一下。实际上,不是255对应900,而是256对应900。那么:900 \/ 256 = 3.515 把0.015忽略,由此产生的误差,小于百分之一。那么,全部使用整数的运算,有:(0~255) * 35 = (0~8925)显示的时候,只是显示前3位,即可。--- 用8位的AD转换器,精度就...

跪求单片机c51用汇编语言写的程序,功能为:8只发光二极管依次点亮,从...
跪求单片机c51用汇编语言写的程序,功能为:8只发光二极管依次点亮,从左向右移动,时间间隔0.5秒。 最好加上注释每一步在做什么,急用,好人一生平安!萌の残念 | 浏览914 次 |举报 我有更好的答案推荐于2017-12-16 09:42:07 最佳答案 MAIN: MOV P1, #11111110B ; P1 口 点亮一个发光二极管 ACALL DELAY ...

求一个51单片机汇编语言 串口输出一行中文的程序
MAIN:MOVSCON,#40H;设置串行口工作方式1 MOVPCON,#0;设置波特率4800 MOVTMOD,#20H;波特率可根据需要自己修改 MOVTL1,#0FAH MOVTH1,#0FAH SETBTR1 MOVDPTR,#MSG;DPTR指向待输出字符串首地址 NEXT:MOVA,#0 MOVCA,@A+DPTR CJNEA,'$',NEXT1;字符串结尾?AJMPNEXT2 NEXT1:CLRTI MOVSBUF,A;...

跪求51单片机音乐盒汇编语言程序,急用!!!谢谢@@
HUAN BIT 20H ORG 0000H JMP MAIN ORG 000BH MOV TL0,R2 MOV TH0,R3 CPL P2.0 ORG 001BH DJNZ R4,GOON MOV IE,#80H JMP T1END GOON: MOV TL1,#0B0H MOV TH1,#3CH T1END: RETI ORG 0100H MAIN: MOV R5,#99H LOOP: MOV TMOD,#11H MOV IP,#02H MOV TL0,#0B0H SETB EA...

请解释下这段单片机汇编语言的具体意思,谢谢
同 A相加,结果存A ADD A,B ;A 同 B相加 MOV @R0,A ;A存入R0地址 JNC RETURN;判断是否进位完成,也就是C是否为0 DEC R0 ;还有进位存在,继续在R0减1,存入下一个地址 CLR A ;清A,下面都跟上面一样了。ADDC A,#0 ADD A,@R0 MOV @R0,A RETURN:RET ;子程序返回 END ...

相似回答
大家正在搜