📄 deal.asm
字号:
DEAL: MOV A,21H
XRL A,24H
CJNE A,#0FFH,DE1 ;第一块电路板有问题吗?,有则进行检测
DE2 : MOV A,22H
XRL A,25H
CJNE A,#0FFH,DE3 ;第二块电路板有问题吗?,有则进行检测
DE4 : MOV A,23H
XRL A,26H
CJNE A,#0FFH,DE5 ;第三块电路板有问题吗?,有则进行检测
LJMP DE6 ;电路没有问题不作任何处理
DE1 :MOV R0,#08H ;第一块板的数据区首地址送入R0
MOV R5,#01H ;第一块板号送入R5
MOV A,21H ;第一块板的第一次采集的电路状态送入A
MOV R1,24H ;第一块板的第二次采集的电路状态送入R1
LCALL DONE ;判断处理
SJMP DE2 ;检测第二块电路板
DE3: MOV R0,#10H ;第二块板的数据区首地址送入R0
MOV R5,#02H ;第二块板号送入R5
MOV A,22H ;第二块板的第一次采集的电路状态送入A
MOV R1,25H ;第二块板的第二次采集的电路状态送入R1
LCALL DONE ;判断处理
SJMP DE4 ;检测第三块电路板
DE5 : MOV R0,#18H ;第三块板的数据区首地址送入R0
MOV R5,#03H ;第三块板号送入R5
MOV A,23H ;第三块板的第一次采集的电路状态送入A
MOV R1,26H ;第三块板的第二次采集的电路状态送入R1
LCALL DONE ;判断处理
DE6: JNB SHORT,DEAL1 ;短路了则进入DEAL1
SJMP DEAL2 ;否则判断是否断路
DEAL1: CPL P1.6 ;翻转短路指示灯
LCALL D500MS ;延时以实现闪烁
JB CUT ,DEAL1 ;否则判断是否断路,未断路则进入DEAL1
CPL P1.7 ;翻转断路指示灯
SJMP DEAL1 ;进入DEAL1以实现闪烁
DEAL2: JB CUT ,DEAL3 ;未断路则电路正常则返回
DEAL4: CPL P1.7 ;翻转断路指示灯
LCALL D500MS ;延时以实现闪烁
SJMP DEAL4 ;继续
DEAL3:RET
;作用:判断各个电路的运行状况,出现异常则上传故障码,并进行指示灯的闪烁
;入口:A(第一次采集的电路状态),R0(加热数据区首地址),R1(第二次采集的电路状态),R5(板号)
;出口:无
;子程序调用:DONE
;寄存器占用
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -