📄 v_i_prog.asm
字号:
;************************************************************
$INCLUDE (IO.INC)
$INCLUDE (PL3200.INC)
$INCLUDE (CONST.INC)
$INCLUDE (RAM.INC)
$INCLUDE (RAML128.INC)
NAME V_I_PROG
CODE_REG SEGMENT CODE
RSEG CODE_REG
PUBLIC V_I_PROG
;*******************************;调用子程序情况:
EXTRN CODE(RD_KUI)
EXTRN CODE(v_i_gl_rd)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
V_I_PROG: JB SEC_FLAG,U_I_PROG0
RET
U_I_PROG0: NOP
CLR SEC_FLAG
MOV A,UI_FLAG ;UI_FLAG为ABC三相启动采集的控制字节
CJNE A,#0,RD_UI_DATA
MOV PMU_ADR,#0FBH
MOV PMU_DAT,#55H ;启动电压电流转换
MOV UI_FLAG,#0FFH
RET
RD_UI_DATA: NOP
CJNE A,#0FFH,QD_ERR
MOV PMU_ADR,#2
MOV I_SAM0,PMU_DAT
MOV PMU_ADR,#3
MOV I_SAM1,PMU_DAT
MOV PMU_ADR,#4
MOV I_SAM2,PMU_DAT
MOV PMU_ADR,#5
MOV I_SAM3,PMU_DAT
MOV PMU_ADR,#6
MOV U_SAM0,PMU_DAT
MOV PMU_ADR,#7
MOV U_SAM1,PMU_DAT
MOV PMU_ADR,#8
MOV U_SAM2,PMU_DAT
MOV PMU_ADR,#9
MOV U_SAM3,PMU_DAT
MOV PMU_ADR,#0F9H
MOV Z_CIR0,PMU_DAT
MOV PMU_ADR,#0FAH
MOV Z_CIR1,PMU_DAT
MOV A,Z_CIR1
CJNE A,#5,QD_UI_AGAIN
CALL RD_KUI
CALL v_i_gl_rd
CALL SAVE_UI_PRO
QD_ERR: NOP
MOV UI_FLAG,#0
RET
QD_UI_AGAIN: NOP
MOV PMU_ADR,#0FBH
MOV PMU_DAT,#55H ;启动电压电流转换
MOV UI_FLAG,#0FFH
RET
SAVE_UI_PRO: NOP ;UX_L
MOV DPH,#2
MOV DPL,#UA_L
MOV A,U_SAM0
MOVX @DPTR,A
ADD A,U_SAM1
MOV B,A
MOV A,U_SAM1
INC DPTR ;UX_H
MOVX @DPTR,A
MOV A,B
ADD A,#'X'
INC DPTR ;UX_X
MOVX @DPTR,A
INC DPTR ;IX_L
MOV A,I_SAM0
MOVX @DPTR,A
ADD A,I_SAM1
MOV B,A
MOV A,I_SAM1
INC DPTR ;IX_H
MOVX @DPTR,A
MOV A,B
ADD A,#'X'
INC DPTR ;IX_X
MOVX @DPTR,A
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -