标题: 小弟初学者写的程序,望高手哥哥来指正下 [打印本页]

作者: sensor80    时间: 2010-6-11 08:22
标题: 小弟初学者写的程序,望高手哥哥来指正下
 

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                     ;存储功率


作者: sensor80    时间: 2010-6-11 08:31
希望各位大大能给我修改一下啊
作者: sensor80    时间: 2010-6-11 08:32
电压电流是轮流存储的 。对于第一次转换-存储,得到的电压、电流瞬时值分别存入00H,01H;第二次转换的结果存入02H,03H;依此类推。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1