论坛元老
 
- 积分
- 4480
- 金钱
- 4480
- 注册时间
- 2013-4-22
- 在线时间
- 337 小时
|
发表于 2015-1-15 17:31:40
|
显示全部楼层
;***********************************************************
;电压、电流计算处理
;入口:电压、电流的采样值 SPI_BUF0~1 H L
; 电压、电流的修正系数 RD_BUF0~1 L H
;出口:电压、电流的BCD码数值 RD_BUF1~2 L H
;***********************************************************
VI_DO_WITH: MOV A,SPI_BUF1
ADD A,#5
MOV B,A
MOV A,SPI_BUF0
ADDC A,#0
MOV ACC_H,A
MOV A,B
MOV B,RD_BUF0
MOV B_H,RD_BUF1
SETB ALU_MOD
MUL AB
CLR ALU_MOD
MOV RD_BUF0,ACC_H
MOV RD_BUF1,B
MOV RD_BUF2,B_H
MOV RD_BUF3,#0
CALL BIN_TO_BCD
RET
U_I_PROG0: MOV R0,#UI_FLAG ;UI_FLAG为采集控制字节
CJNE @R0,#11H,RD_UI_DATA
MOV SPI_ADR,#24H ;读RN8209的电压采样值
MOV R6,#3
CALL READ_SPI
CALL RD_V_A ;读电压校正系数
CALL VI_DO_WITH ;计算电压有效值
MOV R0,#UA_L ;保存计算后的电压值
CALL MOV_X ;UX_X |
|