0809的最大工作频率可以达到 1280kHz, 这样转换一次就只要50us,而对于50Hz的交变电流,一个周期为20ms,这样至少就可以取到400个值即200对电流电压值。
有了每个时刻的瞬时电压值和瞬时电流值,则有功功率就能很容易的计算出来。对于无功功率,可以这样子来构想一个模型,对于200个电压值和电流值,让电压移相 ,即01H的电流值与第51个电压值(指针地址为33H的电压值)相乘,依此类推,第151个电流值与第1个电压值相乘,直到第200个电流值与第50个电压值相乘。所有的乘积相加,再除以该交流电周期,无功功率即可算出,结果存入存储器中。无功功率已知,视在功率也可算出来。
有功功率计算的具体的程序如下:
MAIN: MOV R6,#00H ;计算值存储位置
MOV R2,#C8H ;设置循环次数
MOV R1,#00H ;设置数据区首地址
P: MOV A,@R1 ;读取电压值
INC R1 ;指向下一个通道
MOV B,@R1 ;读取电流值
INC R1 ;指向下一个通道
MUL AB ;电压电流相乘
ADD A,@R6 ;累加乘积
MOV @R6,A ;存储计算值
DJNZ R2,P ;200个瞬时值计算完毕否?未完则继续
MOV A,@R6
MOV B,#14H ;计算功率
DIV AB
MOV @R6,A ;存储功率
无功功率计算的具体程序如下:
MAIN: MOV R2,#96H
MOV R6,#00H
MOV R1,#33H
MOV R4,#33H
MOV R5,#00H
MOV R7,#97H
Q1: MOV A,@R1 ;电压从第51个值开始与电流第一个值相乘
INC R1
INC R1
MOV B,@R3
INC R3
INC R3
MUL AB
ADD A,@R6
MOV @R6,A
DJNZ R2,Q1
Q2: MOV A,@R5 ;电压第一个值与电流第151个值做乘法
INC R5
INC R5
MOV B,@R7
INC R7
INC R7
MUL AB
ADD A,@R6
MOV @R6,A
DJNZ R2,Q2
MOV A,@R6
MOV B,#14H ;计算功率
DIV AB
MOV @R6,A ;存储功率 |