一段单片机的汇编程序的编译

来源:百度知道 编辑:UC知道 时间:2024/09/22 11:37:45
ORG 0000H
START: CLR P2.0
CLR P2.7
SETB P2.6
MOV 34H, #20 ;置浇水时长20秒
MOV 35H, #24 ;置定时时长24小时
MOV R1, 35H
MOV R2, #60 ;延时一小时初值
MOV R3, #120 ;延时一分初值
LCALL YANSHI
MOV 36H, R1 ;显示定时时长
LCALL XIANSHI
JNB P3.2, TDSC ;定时初值减一?
JNB P3.3, TJSC ;浇水初值减一?
AJMP LP5
DJNZ 35H, TDSC1 ;定时初值减一
MOV 35H, #24
MOV 36H, 35H ;定时初值闪动2次
MOV R0, #2
LCALL XIANSHI
LCALL YANSHI
MOV P1, #0FFH
MOV P0, #0FFH
LCALL YANSHI
DJNZ R0, SSC
AJMP LP1
DJNZ 34H, TJSC1 ;浇水初值减一
MOV 34H, #60
MOV 36H, 34H ;浇水初值闪动1次
MOV R0, #1
AJMP SSC
DJNZ R3, LP4
DJNZ R2, LP3
DJNZ R1, LP2 ;定时时间到?
SETB P2.0 ;P2.0输出高电平
MOV R4, 34H ;浇水延时
MOV 36H, R4
LCALL XIANSHI
LCALL YANSHI
LCALL YANSHI
DJNZ R4, LP6
CLR P2.0 ;P2.0为低电平,返回
AJMP LP1

MOV B, #10 ;显示子程序

ORG 0000H
START: clr p2.0
CLR P2.7
SETB P2.6
lp1: MOV 34H, #20 ;置浇水时长20秒
MOV 35H, #24 ;置定时时长24小时
MOV R1, 35H
MOV R2, #60 ;延时一小时初值
MOV R3, #120 ;延时一分初值
LCALL YANSHI
MOV 36H, R1 ;显示定时时长
LCALL XIANSHI
lp2: JNB P3.2, TDSC ;定时初值减一?
lp3: JNB P3.3, TJSC ;浇水初值减一?
AJMP LP5
tdsc:DJNZ 35H, TDSC1 ;定时初值减一
lp4:MOV 35H, #24
MOV 36H, 35H ;定时初值闪动2次
tdsc1:MOV R0, #2
ssc: LCALL XIANSHI
LCALL YANSHI
lp5: MOV P1, #0FFH
MOV P0, #0FFH
LCALL YANSHI
DJNZ R0, SSC
AJMP LP1
tjsc: DJNZ 34H, TJSC1 ;浇水初值减一
MOV 34H, #60
MOV 36H, 34H ;浇水初值闪动1次
tjsc1:MOV R0, #1
AJMP SSC
DJNZ R3, LP4
DJNZ R2, LP3
DJNZ R1, LP2 ;定时时间到?
lp6: SETB P2.0 ;P2.0 输出高电平
MOV R4, 34H ;浇水延时