📄 ocode.asm
字号:
OCODE:MOV R2,#0FFH ;输出码寄存器复位
MOV R3,#08H ;路数计数器
CO6: CJNE @R1,#00H,CO1 ;该路是否工作?
SETB C ;不工作则全不触发
SJMP CO2 ;
CO1: CJNE @R1,#60H,CO3 ;该路工作大于96%?
CO3: JNC CO4 ;大于则全触发
SJMP CO5 ;在1%——95%之间则需要移位处理
CO4: CLR C ;
SJMP CO2 ;
CO5: MOV A,@R0 ;取出该路的触发码
RLC A ;移出最高位
MOV @R0,A ;移位后保存
CO2: MOV A,R2 ;输出码送入A中
RLC A ;将刚才移出的输出位移入A中
MOV R2,A ;送入输出码寄存器
INC R0 ;调整触发码地址
INC R1 ;调整加热数据地址u
DJNZ R3,CO6 ;8路是否处理完?
RET
;作用:将触发码寄存器中的触发码移位,形成一组输出码(一块电路板)
;入口:R0(触发码寄存器区首地址),R1(加热数据存储区首地址)
;出口:R2(输出码寄存器)
;子程序调用:无
;寄存器占用:R0,R1,R2(输出码寄存器),A ,R3(8路计数器)
;===================================================================================
OUTVA:MOV R0,#30H
MOV R1,#08H
LCALL OCODE
MOV 6CH,R2
MOV R0,#38H
MOV R1,#10H
LCALL OCODE
MOV 6DH,R2
MOV R0,#40H
MOV R1,#18H
LCALL OCODE
MOV 6EH,R2
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -