標(biāo)題: 具有測(cè)量家用電器功率和消耗電度數(shù)的插排 AD7755檢測(cè) [打印本頁(yè)]

作者: 51黑黑黑    時(shí)間: 2016-2-24 19:01
標(biāo)題: 具有測(cè)量家用電器功率和消耗電度數(shù)的插排 AD7755檢測(cè)
本帖最后由 51黑黑黑 于 2016-3-3 00:53 編輯

(一)、測(cè)量原理
下面我們要利用淘汰的數(shù)字電度表芯,制作一個(gè)具有測(cè)量電功率和電度數(shù)的插排。早期的電子式電度表采用AD7755系列芯片,或類似的國(guó)產(chǎn)芯片。
下圖是AD7755的功能框圖,AD7755是一種高精度的電功率測(cè)量芯片,其內(nèi)部的乘法器是數(shù)字型乘法器。它的工作原理是由分壓器完成電壓取樣,電流通過錳銅片分流完成電流取樣,取樣后的電壓、電流信號(hào)由乘法器轉(zhuǎn)換為功率信號(hào),經(jīng)數(shù)字--頻率變換后,它輸出的脈沖信號(hào)可以直接驅(qū)動(dòng)計(jì)數(shù)器的步進(jìn)電機(jī)來顯示電度數(shù)。V1P、V1N為電流傳感器的模擬輸入端,V2P、V2N為電壓傳感器的模擬輸入端。ADE7755引腳F1和F2以較低頻率形式輸出有功功率平均值,能直接驅(qū)動(dòng)機(jī)電式計(jì)度器或MCU接口。引腳CF以較高頻率形式輸出有功功率瞬時(shí)值,用于校驗(yàn)或與MCU接口。我們制作的插排就是利用CF經(jīng)光電耦合器輸出的電度脈沖進(jìn)行計(jì)數(shù)來獲得負(fù)載的功率和電度數(shù)。單片機(jī)的INT0接光耦輸出端,每個(gè)電度脈沖來到時(shí)產(chǎn)生中斷,中斷程序中對(duì)電度脈沖數(shù)計(jì)數(shù),160個(gè)脈沖35h單元加1,35單元存電度數(shù)1/10位,36單元存電度數(shù)個(gè)位。中斷程序中還要對(duì)2個(gè)脈沖之間進(jìn)行定時(shí),第1個(gè)脈沖來到,啟動(dòng)定時(shí)器,第二個(gè)脈沖再來時(shí)關(guān)閉定時(shí)器,這樣就獲得了一個(gè)脈沖周期所用的時(shí)間t存放到41H和42H單元。DDS67型單相電子式電能表1度電是1600個(gè)脈沖。那么1瓦*2250秒=1個(gè)脈沖,定時(shí)器0的定時(shí)時(shí)長(zhǎng)為50毫秒,每50毫秒41H加1,42H是50ms計(jì)數(shù)高位,(42H,41H)*50是一個(gè)脈沖周期的時(shí)長(zhǎng)(ms),2250/0.05=45000,所以用45000除以(42H,41H)的計(jì)數(shù)值就等于功率數(shù)(瓦)。最小量程45000除以65535=0.68瓦,需1.82小時(shí)完成,最大量程是45000/1=45kw,50毫秒鐘完成。一般家用電器的功率都在幾瓦到上千瓦,所以測(cè)量時(shí)間在幾分鐘內(nèi)完成。開始測(cè)量時(shí),每個(gè)脈沖到來時(shí)顯示用電器的功率數(shù),當(dāng)脈沖達(dá)到160個(gè)以后就顯示0.1度開始的電度數(shù)。

(二)單片機(jī)電路及電度表電路

插排顯示的0070是我正在使用的微機(jī)實(shí)際消耗功率是70瓦。
(三)、電度表插排程序

      ORG0000h                        ;
      AJMPL1                        

      ORG 0003h
      AcallZD
      ORG 000BH
         AJMP CT
      ORG 0023H
        RETI
      ORG 0030H
L1: MOVSP,#60H     ;設(shè)堆棧指針
   MOV A,#21H ;定時(shí)器1\0工作方式2,8位可重裝,
    MOVTMOD,A     ;
      MOV 8BH,#0F3H ;給定時(shí)器1賦值6M=FF,1200波特率
     MOV8DH,#0F3H ;給定時(shí)器0賦值6M=FF1200波特率
     MOV   TH0, #9EH ;定時(shí)50毫秒
     MOV   TL0, #58H
      SETB 0BCH   ;通信中斷優(yōu)先,IPPS1
      MOVA,#93H     ;允許串口和定時(shí)器0INTO中斷及總中斷,禁止定時(shí)器1中斷
      MOVIE,A        ;A8H
   SETBIT0       ;INT0下降沿觸發(fā)
     MOV A,#50H;;設(shè)串行口模式1,允許接收。
    MOVSCON,A     ;送串行控制SCON
   CLR REN
     MOVA,#00H
      MOVR2,#50D     ;清數(shù)據(jù)區(qū)
      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個(gè)脈沖顯示電度數(shù)
       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;定時(shí)器中斷子程序
CT:      MOV   8CH, #9EH
           MOV   8AH, #58H ;BEH
           PUSH  0D0H
           PUSH  0E0H
           PUSH  82H
           PUSH  83H
          INC41H           ;50毫秒計(jì)數(shù)低241H,42H50ms計(jì)數(shù)高位
           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        ;電度脈沖數(shù)加1
       MOV 34H ,A
       CJNE A,#0A0H,ZD1  ;160個(gè)脈沖35h單元加1,35單元存電度數(shù)1/10
       MOV   34H, #00H
       MOV A,35H
       INC A
       MOV 35H,A
       CJNEA,#0AH,ZD1  ;160個(gè)脈沖35h單元加136單元存電度數(shù)個(gè)位
        MOV   35H,#00H
       INC 36H
ZD1:   MOVA,40H           ;是第二個(gè)脈沖嗎
       XRL A,#00H
       JZ DIS3
       CLRTR0              ;第二個(gè)脈沖到,關(guān)閉定時(shí)器
       MOV40H,#00H        ;置標(biāo)志
       ACALL DIVD         ;調(diào)用除法程序
       ACALLIBTD          ;調(diào)用二進(jìn)制數(shù)轉(zhuǎn)壓縮的十進(jìn)制數(shù)子程序

       MOVA,r6            ;把壓縮的十進(jìn)制數(shù)送顯示區(qū)
       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   ;置標(biāo)志
       MOV 2FH,#00
       MOV 30H,#00
       MOV 31H,#00
       MOV 32H,#00
       MOV 33H,#00
       MOV41H,#00     ;秒存儲(chǔ)單元低位FF
       MOV42H,#00     ;秒存儲(chǔ)單元高位FF
       SETBTR0       ;第一脈沖啟動(dòng)定時(shí)器計(jì)秒數(shù)
FH:       RETI


       org 0500h
;入口條件:被除數(shù)在R2、R3R4、R5中,除數(shù)在R6、R7中。
;出口信息:OV=0時(shí),雙字節(jié)商在R4R5中,OV=1 時(shí)溢出。
;影響資源:PSW、AB、R1R7 堆棧需求: 2字節(jié)

DIVD:   MOV R2,#00H
        MOV R3,#00H
        MOV R4,#57H
        MOV R5,#0E4H
        MOV R4,#0AFH ;45000
        MOV R5,#0C8H
        MOV R6,42H;50毫秒存儲(chǔ)單元高位FF
        MOV R7,41H;50毫秒存儲(chǔ)單元低位FF
        CLR C ;比較被除數(shù)和除數(shù)
        MOV A,R3
        SUBB A,R7
        MOV A,R2
        SUBB A,R6
        JC DVD1
        SETB OV ;溢出
        RET
DVD1:   MOV B,#10H ;計(jì)算雙字節(jié)商
DVD2:   CLR C ;部分商和余數(shù)同時(shí)左移一位
        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 ;計(jì)算(R2R3R6R7
        MOV R1,A
        MOV A,R2
        SUBB A,R6
        JB F0,DDIV2;ANL C,/F0 ;結(jié)果判斷
        JC DVD3
DDIV2:   MOV R2,A;夠減,存放新的余數(shù)
        MOV A,R1
        MOV R3,A
        INC R5 ;商的低位置一
DVD3:   DJNZ B,DVD2 ;計(jì)算完十六位商(R4R5
        MOV A,R4 ;將商移到R2R3
        MOV R2,A
        MOV A,R5
        MOV R3,A
        CLR OV ;設(shè)立成功標(biāo)志
        RET

IBTD:         CLRA          ;雙字節(jié)二翻十子程序(R2R3)---(R4R5R6),結(jié)果為壓縮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

作者: DansLe    時(shí)間: 2016-3-5 11:19
樓主厲害啊,可惜用的匯編,看不大懂,不過思路了解了
作者: GUOXUAN    時(shí)間: 2017-11-24 17:21
好文章,樓主可以做電表了,可是現(xiàn)在的電表都被壟斷換成電子表了.




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1