单片机汇编程序谁给我讲下啥意思

; FLAG 20H EXPRESS THE 0.5S TIME ARRIVED.
; FLAG 21H EXPRESS THE LED LIGHTED.
ORG 0000h
AJMP main0
ORG 0030h
MAIN0:
CLR 21H ;清标志
main:
MOV C,P0.0 ;检测按键
JC main
MOV R6,#200 ;设定延时
MOV R7,#200
TT0:
JNB 21H,TT2 ;检测灯状态
tt:
MOV C,P0.0 ;检测按键
JNC tt1

JNB 20H,MAIN ;检测时间标志
CLR 20H
AJMP TT3
TT2:
MOV c,P0.0 ;检测按键
JNC tt2
TT3:
CPL 21H ;改变灯状态
CPL p2.0
AJMP main
TT1: NOP ;延时但不是子程序
NOP
NOP
NOP
NOP
NOP
DJNZ R6,TT
MOV R6,#200
DJNZ R7,TT
MOV R7,#200
SETB 20H
AJMP TT
END

; FLAG 20H EXPRESS THE 0.5S TIME ARRIVED.
; FLAG 21H EXPRESS THE LED LIGHTED.
ORG 0000h ;code位置0000h 一般为开机跳转到程序开始位置。这样做是为了给中断向量表留些空间。
AJMP main0 ;如上 直接跳转到0030h
ORG 0030h ;此处为0030位置
MAIN0: ;主程序位置
CLR 21H ;清标志
main:
MOV C,P0.0 ;检测按键 ;p00接的是一个按键。
JC main ;如果c寄存器是1 继续监测p00(死循环),如果按键被按下,p00清零,程序继续往下走。
MOV R6,#200 ;设定延时
MOV R7,#200
TT0:
JNB 21H,TT2 ;检测灯状态 ;如果灯状态寄存器为1 ,跳转到tt2
tt:
MOV C,P0.0 ;检测按键 ;继续监视按键P00
JNC tt1 ;如果没被按下,跳转到tt1,否则继续下一条

JNB 20H,MAIN ;检测时间标志 ;如果20H寄存器为0 跳转到main
CLR 20H
AJMP TT3
TT2: ;此处只能跳转到。正常的程序无法到这里。
MOV c,P0.0 ;检测按键 ;同样是监视按键p00
JNC tt2
TT3:
CPL 21H ;改变灯状态
CPL p2.0 ;灯应该接在p20
AJMP main
TT1: NOP ;延时但不是子程序 ;执行几步NOP(no operation)
NOP
NOP
NOP
NOP
NOP
DJNZ R6,TT
MOV R6,#200
DJNZ R7,TT
MOV R7,#200
SETB 20H ;置1
AJMP TT ;跳到tt 继续监视按键。
END

程序写的乱七八糟,简单的功能写这么多。一句一句解释好像没什么意义。

无论什么实践活动,一定要自己试试,把上面的程序编程自己的语句一点不困难。
楼主努力啊。
good good study,day day up!追问

看的人家的例程,汇编学的不太好,如果是C语言就简单多了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-14
这家伙英语太差。意思是半秒到了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网