迅维网

查看: 1377|回复: 0
打印 上一主题 下一主题

具有测量家用电器功率和消耗电度数的插排 AD7755检测

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-25 10:04:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 山东青岛 来自 山东青岛

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
(一)、测量原理
下面我们要利用淘汰的数字电度表芯,制作一个具有测量电功率和电度数的插排。早期的电子式电度表采用AD7755系列芯片,或类似的国产芯片。
下图是AD7755的功能框图,AD7755是一种高精度的电功率测量芯片,其内部的乘法器是数字型乘法器。它的工作原理是由分压器完成电压取样,电流通过锰铜片分流完成电流取样,取样后的电压、电流信号由乘法器转换为功率信号,经数字--频率变换后,它输出的脉冲信号可以直接驱动计数器的步进电机来显示电度数。V1P、V1N为电流传感器的模拟输入端,V2P、V2N为电压传感器的模拟输入端。ADE7755引脚F1和F2以较低频率形式输出有功功率平均值,能直接驱动机电式计度器或MCU接口。引脚CF以较高频率形式输出有功功率瞬时值,用于校验或与MCU接口。我们制作的插排就是利用CF经光电耦合器输出的电度脉冲进行计数来获得负载的功率和电度数。单片机的INT0接光耦输出端,每个电度脉冲来到时产生中断,中断程序中对电度脉冲数计数,160个脉冲35h单元加1,35单元存电度数1/10位,36单元存电度数个位。中断程序中还要对2个脉冲之间进行定时,第1个脉冲来到,启动定时器,第二个脉冲再来时关闭定时器,这样就获得了一个脉冲周期所用的时间t存放到41H和42H单元。DDS67型单相电子式电能表1度电是1600个脉冲。那么1瓦*2250秒=1个脉冲,定时器0的定时时长为50毫秒,每50毫秒41H加1,42H是50ms计数高位,(42H,41H)*50是一个脉冲周期的时长(ms),2250/0.05=45000,所以用45000除以(42H,41H)的计数值就等于功率数(瓦)。最小量程45000除以65535=0.68瓦,需1.82小时完成,最大量程是45000/1=45kw,50毫秒钟完成。一般家用电器的功率都在几瓦到上千瓦,所以测量时间在几分钟内完成。开始测量时,每个脉冲到来时显示用电器的功率数,当脉冲达到160个以后就显示0.1度开始的电度数。


(二)单片机电路及电度表电路


插排显示的0070是我正在使用的微机实际消耗功率是70瓦。

(三)、电度表插排程序

      ORG0000h                        ;
      AJMPL1                        

      ORG 0003h
      AcallZD
      ORG 000BH
         AJMP CT
      ORG 0023H
        RETI
      ORG 0030H
L1: MOVSP,#60H     ;设堆栈指针
   MOV A,#21H ;定时器1\0工作方式2,8位可重装,
    MOVTMOD,A     ;
      MOV 8BH,#0F3H ;给定时器1赋值6M=FF1200波特率
     MOV8DH,#0F3H ;给定时器0赋值6M=FF1200波特率
     MOV   TH0, #9EH ;定时50毫秒
     MOV   TL0, #58H
      SETB 0BCH   ;通信中断优先,IPPS1
      MOVA,#93H     ;允许串口和定时器0INTO中断及总中断,禁止定时器1中断
      MOVIE,A        ;A8H
   SETBIT0       ;INT0下降沿触发
     MOV A,#50H;;设串行口模式1,允许接收。
    MOVSCON,A     ;送串行控制SCON
   CLR REN
     MOVA,#00H
      MOVR2,#50D     ;清数据区
      MOV R0,#20H
QRAM: MOV @R0,  A
      INC  R0
      DJNZ  R2,  QRAM

   DIS:MOV DPTR,#0700H
       MOV A,35H
       JZ DIS1
       MOV R1, #35H   ;160个脉冲显示电度数
       AJMP  DIS2
DIS1:   MOV R1,#30H
DIS2:  MOV A,@R1
          MOVC A, @A+DPTR
            MOV P1,A
      CLR   P3.3
     ACALL DELAY1
      SETB p3.3
      INC R1
   MOV A, @R1
     MOVC A,@A+DPTR
      MOV P1,A
      CLR   P3.4
    MOVA,R1
    CJNEA,#36H,DIS4
   CLR  P1.0
DIS4:    ACALLDELAY1
      SETB p3.4
    INCR1
    MOVA, @R1
     MOVC A,@A+DPTR
      MOV P1,A
      CLR   P3.5
     ACALL DELAY1
      SETB p3.5
    INCR1
    MOVA, @R1
     MOVC A,@A+DPTR
      MOV P1,A
      CLR   P3.7
     ACALL DELAY1
      SETB p3.7
J6: AJMP  DIS

      ORG 0100h;定时器中断子程序
CT:      MOV   8CH, #9EH
           MOV   8AH, #58H ;BEH
           PUSH  0D0H
           PUSH  0E0H
           PUSH  82H
           PUSH  83H
          INC41H           ;50毫秒计数低241H42H50ms计数高位
           MOV A,41H
           CJNE  A, #0FFH, DONE2
          INC  42H
DONE2:  MOV  A, 2FH
            INC   A
           MOV   2FH, A
           CJNE  A, #14H, DONE
           MOV   2FH, #00H
          MOV   A,30H
           INC   A
           MOV   30H,A
    ;  MOV   41H,A
           CJNE  A, #0AH, DONE
       MOV   30H, #00H
           MOV   A, 31H
           INC   A
           MOV   31H, A
           CJNE  A, #0AH, DONE
           MOV   31H, #00H
           MOV   A, 32H
           INC   A
           MOV   32H, A
           CJNE  A, #0AH, DONE
        MOV   32H,#00H
           MOV   A, 33H
           INC   A
           MOV   33H, A
           CJNE  A, #0AH,DONE
           MOV   33H, #00H
         DONE:  POP   83H
           POP   82H
           POP   0E0H
           POP   0D0H
           RETI


                 ORG 0200H

;      INT0中断程序
ZD:    MOV A,34H
       INCA        ;电度脉冲数加1
       MOV 34H ,A
       CJNE A,#0A0H,ZD1  ;160个脉冲35h单元加135单元存电度数1/10
       MOV   34H, #00H
       MOV A,35H
       INC A
       MOV 35H,A
       CJNEA,#0AH,ZD1  ;160个脉冲35h单元加136单元存电度数个位
        MOV   35H,#00H
       INC 36H
ZD1:   MOVA,40H           ;是第二个脉冲吗
       XRL A,#00H
       JZ DIS3
       CLRTR0              ;第二个脉冲到,关闭定时器
       MOV40H,#00H        ;置标志
       ACALL DIVD         ;调用除法程序
       ACALLIBTD          ;调用二进制数转压缩的十进制数子程序

       MOVA,r6            ;把压缩的十进制数送显示区
       ANL A,#0FH
       MOV 30H,A
       MOV A,r6
       ANL A,#0F0H
       SWAP A
       MOV 31H,A
       MOV A,r5
       ANL A,#0FH
       MOV32H,A
       MOV A,r5
       ANL A,#0F0H
       SWAP A
       MOV 33H,A
       AJMP FH
DIS3:  MOV40H,#01H   ;置标志
       MOV 2FH,#00
       MOV 30H,#00
       MOV 31H,#00
       MOV 32H,#00
       MOV 33H,#00
       MOV41H,#00     ;秒存储单元低位FF
       MOV42H,#00     ;秒存储单元高位FF
       SETBTR0       ;第一脉冲启动定时器计秒数
FH:       RETI


       org 0500h
;入口条件:被除数在R2R3R4R5中,除数在R6R7中。
;出口信息:OV=0时,双字节商在R4R5中,OV=1 时溢出。
;影响资源:PSWABR1R7 堆栈需求: 2字节

DIVD:   MOV R2,#00H
        MOV R3,#00H
        MOV R4,#57H
        MOV R5,#0E4H
        MOV R4,#0AFH ;45000
        MOV R5,#0C8H
        MOV R6,42H;50毫秒存储单元高位FF
        MOV R7,41H;50毫秒存储单元低位FF
        CLR C ;比较被除数和除数
        MOV A,R3
        SUBB A,R7
        MOV A,R2
        SUBB A,R6
        JC DVD1
        SETB OV ;溢出
        RET
DVD1:   MOV B,#10H ;计算双字节商
DVD2:   CLR C ;部分商和余数同时左移一位
        MOV A,R5
        RLC A
        MOV R5,A
        MOV A,R4
        RLC A
        MOV R4,A
        MOV A,R3
        RLC A
        MOVR3,A
        XCH A,R2
        RLC A
        XCH A,R2
        MOV F0,C ;保存溢出位
        CLR C
        SUBB A,R7 ;计算(R2R3R6R7
        MOV R1,A
        MOV A,R2
        SUBB A,R6
        JB F0,DDIV2;ANL C,/F0 ;结果判断
        JC DVD3
DDIV2:   MOV R2,A;够减,存放新的余数
        MOV A,R1
        MOV R3,A
        INC R5 ;商的低位置一
DVD3:   DJNZ B,DVD2 ;计算完十六位商(R4R5
        MOV A,R4 ;将商移到R2R3
        MOV R2,A
        MOV A,R5
        MOV R3,A
        CLR OV ;设立成功标志
        RET

IBTD:         CLRA          ;双字节二翻十子程序(R2R3)---(R4R5R6),结果为压缩BCD
               MOV R4,A
               MOV R5,A
               MOV R6,A
               MOV R7,#10H
LOOP:          CLR C
               MOV A,R3
               RLC A
               MOV R3,A
               MOVA,R2
               RLC A
               MOV R2,A
               MOV A,R6
               ADDC A,R6
               DA A
               MOV R6,A
               MOV A,R5
               ADDC A,R5
               DA A
               MOV R5,A
               MOV A,R4
               ADDC A,R4
               DA A
               MOV R4,A
               DJNZ R7,LOOP
               RET

      ORG 0700H
DB03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H,11H,0C1H,63H ;89ABCDEFP熄灭
DB85H,61H,71H,31H,0FFH,0FCH;"-"

DELAY:         MOV   R5, #0FFH
DEL:            NOP
                  DJNZ  R5,DEL
                  RET
DELAY1:        MOV   R6, #4H
DELA:           ACALL DELAY
                  DJNZ  R6,DELA
                  RET
DELAY2:        MOV   R6, #0FFH
DE:            ACALLDELAY
               DJNZ  R6,DE
               RET
        END





来源:网络转载

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索

快速回复