单片机,AT89C51,一段小程序,麻烦给解释一下。

来源:百度知道 编辑:UC知道 时间:2024/06/26 02:22:32
ORG 0
START: MOV R2,#8
MOV A,#0FEH
SETB C
LOOP: MOV P2,A
LCALL DELAY
RLC A
DJNZ R2 ,LOOP
MOV R2, #8
LOOP1: MOV P2 ,A
LCALL DELAY
RRC A
DJNZ R2, LOOP1
LJMP START

DELAY: MOV R5,#20 ;延时子程序,延时0.2秒
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1

RET
END
每句都是什么意思?谢谢。
我知道是流水灯,只是想知道每一句是什么意思,主要是这一段的每一句是什么意思START: MOV R2,#8
MOV A,#0FEH
SETB C
LOOP: MOV P2,A
LCALL DELAY
RLC A
DJNZ R2 ,LOOP
MOV R2, #8
LOOP1: MOV P2 ,A
LCALL DELAY
RRC A
DJNZ R2, LOOP1
LJMP START

如下图:

这是一个流水灯程序先从左亮到右,再从右亮到左

简单的单片机流程流水灯程序
ORG 0
START: MOV R2,#8
MOV A,#0FEH
SETB C
R2作为一个计数器类似的东西,目的是循环8次;
LOOP: MOV P2,A
LCALL DELAY
RLC A
DJNZ R2 ,LOOP
左移(正亮)
给P2口赋值,使其输出可以实现流水灯效果;
MOV R2, #8
再次复位计数器的值;
LOOP1: MOV P2 ,A
LCALL DELAY
RRC A
DJNZ R2, LOOP1
右移(反亮)
给P2口赋值,使其输出可以实现流水灯效果;
----
大体上就是这样,有将近1年没弄汇编了,有点忘了,如有错误,还请楼下指