📄 ade7759.asm
字号:
menu_start: ; szczegoly w menu.asm
; "Data i czas"
.dw 0x8101, 2*txt_m4, M_CZAS, 0
.dw 0x0102, 2*txt_1, M_DACZ, 2*da_cz1
; "Podglad zmiennych"
;.db 1,0x84, low(2*txt_m3),high(2*txt_m3), low(M_ZR_W),high(M_ZR_W), 0,0
;.db 2,1, low(2*txt_m3e),high(2*txt_m3e), 0,0, low(Prb_z),1
;.db 2,3, low(2*txt_m3f),high(2*txt_m3f), 0,0, low(Okr),1
;.db 2,4, low(2*txt_m3d),high(2*txt_m3d), 0,0, low(Prb),2
;.db 2,7, low(2*txt_m31),high(2*txt_m31), 0,0, low(Okresy_ile),1 ; p0 -adres; p1 -ilosc bajtow
;.db 2,8, low(2*txt_m39),high(2*txt_m39), 0,0, low(Probek_ile),2
;.db 2,4, low(2*txt_m38),high(2*txt_m38), 0,0, low(Wsp_LPF1),2
; "zakres czasu dla energii"
.dw 0x8201, 2*txt_m1a, 0, 0
.dw 0x8102, 2*txt_en_od, M_EN_O_W, 0
.dw 0x0103, 2*txt_1, M_EN_O, 2*da_en_o
.dw 0x8202, 2*txt_en_oddo, M_EN_OO_W, 0
.dw 0x0103, 2*txt_1, M_EN_OO, 2*da_en_oo
; "Taryfa2 -zakres godzin"
.dw 0x8301, 2*txt_m8, M_TAR2, 0
.dw 0x0102, 2*txt_1, M_TAR2ED, 2*da_t21
.dw 0x0202, 2*txt_2, M_TAR2ED, 2*da_t22
.dw 0x0302, 2*txt_3, M_TAR2ED, 2*da_t23
.dw 0x0402, 2*txt_4, M_TAR2ED, 2*da_t24
; "Opcje"
.dw 0x8401, 2*txt_opc, M_OPC_W, 0
.dw 0x0102, 2*txt_o1, M_OPC, 2*da_kwh
.dw 0x0202, 2*txt_o0, M_OPC, 2*da_taryf
.dw 0x0302, 2*txt_o2, M_OPC, 2*da_s
.dw 0x0402, 2*txt_o3, M_OPC, 2*da_akum
; koniec menu
.dw 0
menu_kalibr:
; "Zapisz konfig. w EEPROM"
.dw 0x0101, 2*txt_m5, M_ZEE, 0
; "Podglad zmiennych"
;.db 1,0x84, low(2*txt_m3),high(2*txt_m3), low(M_ZR_W),high(M_ZR_W), 0,0
;.db 2,1, low(2*txt_m3e),high(2*txt_m3e), 0,0, low(Prb_z),1
;.db 2,3, low(2*txt_m3f),high(2*txt_m3f), 0,0, low(Okr),1
;.db 2,4, low(2*txt_m3d),high(2*txt_m3d), 0,0, low(Prb),2
;.db 2,7, low(2*txt_m31),high(2*txt_m31), 0,0, low(Okresy_ile),1 ; p0 -adres; p1 -ilosc bajtow
;.db 2,8, low(2*txt_m39),high(2*txt_m39), 0,0, low(Probek_ile),2
;.db 2,4, low(2*txt_m38),high(2*txt_m38), 0,0, low(Wsp_LPF1),2
; "Zerowanie wskazan"
.dw 0x8201, 2*txt_mk1, 0, 0
.dw 0x0102, 2*txt_mk12, M_K_U, 0
.dw 0x0202, 2*txt_mk11, M_K_I, 0
.dw 0x0302, 2*txt_mk13, M_K_E, 0
; "Kalibracja wskazan"
.dw 0x8301, 2*txt_mk2, M_AZR_W, 0
.dw 0x0102, 2*txt_mk12, M_AZR, 2*da_wspu
.dw 0x0202, 2*txt_mk11, M_AZR, 2*da_wspi
.dw 0x0302, 2*txt_mk21, M_AZR, 2*da_wspe0
.dw 0x0402, 2*txt_mk22, M_AZR, 2*da_wspe1
; "Zmiana offsetow i wsp."
.dw 0x8401, 2*txt_mzz, 0, 0
.dw 0x8102, 2*txt_mz1u, M_AZR_W, 0
.dw 0x0103, 2*txt_m35od, M_AZR, 2*da_ofud
.dw 0x0203, 2*txt_m35orz, M_AZR, 2*da_ofurz
.dw 0x0303, 2*txt_m35omz, M_AZR, 2*da_ofumz
.dw 0x0403, 2*txt_m35oaz, M_AZR, 2*da_ofuaz
.dw 0x8202, 2*txt_mz1i, M_AZR_W, 0
.dw 0x0103, 2*txt_m35od, M_AZR, 2*da_ofid
.dw 0x0203, 2*txt_m35orz, M_AZR, 2*da_ofirz
.dw 0x0303, 2*txt_m35omz, M_AZR, 2*da_ofimz
.dw 0x0403, 2*txt_m35oaz, M_AZR, 2*da_ofiaz
.dw 0x8302, 2*txt_mz2, M_AZR_W, 0
.dw 0x0103, 2*txt_m3h, M_AZR, 2*da_wspf
.dw 0x0203, 2*txt_m31, M_AZR, 2*da_okr
.dw 0x0303, 2*txt_m3a, M_AZR, 2*da_hzer
.dw 0x0403, 2*txt_m3b, M_AZR, 2*da_hpi
.dw 0x0503, 2*txt_m3c, M_AZR, 2*da_hpu
; "Obsluga ADE7759"
.dw 0x8501, 2*txt_m1, 0, 0
.dw 0x8102, 2*txt_m11, M_ARM_W, 0
.dw 0x0103, 2*txt_m111, M_ARM, 0x0001 ; p1:p0 -maska
.dw 0x0203, 2*txt_m112, M_ARM, 0x0002
.dw 0x0403, 2*txt_m114, M_ARM, 0x0008
.dw 0x0503, 2*txt_m115, M_ARM, 0x0010
.dw 0x0603, 2*txt_m116, M_ARM, 0x0020
.dw 0x0903, 2*txt_m119, M_ARM, 0x0100
.dw 0x0A03, 2*txt_m11a, M_ARM, 0x0200
.dw 0x0B03, 2*txt_m11b, M_ARM, 0x0400
.dw 0x0C03, 2*txt_m11c, M_ARM, 0x0800
.dw 0x0D03, 2*txt_m11d, M_ARM, 0x1000
.dw 0x0E03, 2*txt_m11e, M_ARM, 0x2000
.dw 0x0F03, 2*txt_m11f, M_ARM, 0x4000
.dw 0x8202, 2*txt_m13, M_AOR_W, 0
.dw 0x0103, 2*txt_m131, 0, 0x0206 ; p0 -adres; p1 -ilosc bajtow
.dw 0x0203, 2*txt_m132, 0, 0x0104
.dw 0x0303, 2*txt_m13b, 0, 0x0110
.dw 0x0403, 2*txt_m133, 0, 0x0108
.dw 0x0503, 2*txt_m134, 0, 0x0109
.dw 0x0603, 2*txt_m135, 0, 0x010A
.dw 0x0703, 2*txt_m136, 0, 0x020B
.dw 0x0803, 2*txt_m137, 0, 0x010C
.dw 0x0903, 2*txt_m138, 0, 0x020D
.dw 0x0A03, 2*txt_m139, 0, 0x020E
.dw 0x0B03, 2*txt_m13a, 0, 0x010F
.dw 0x0C03, 2*txt_m13c, 0, 0x0111
.dw 0x0D03, 2*txt_m13e, 0, 0x0112
.dw 0x0E03, 2*txt_m13d, 0, 0x011F
.dw 0x8302, 2*txt_m14, M_AZR_W, 0
.dw 0x0103, 2*txt_m133, M_AZR, 2*da_ch1os
.dw 0x0203, 2*txt_m134, M_AZR, 2*da_ch2os
.dw 0x0303, 2*txt_m135, M_AZR, 2*da_gain
.dw 0x0403, 2*txt_m137, M_AZR, 2*da_phcal
.dw 0x0503, 2*txt_m138, M_AZR, 2*da_apos
.dw 0x0603, 2*txt_m139, M_AZR, 2*da_zxtout
.dw 0x0703, 2*txt_m13a, M_AZR, 2*da_sagcyc
.dw 0x0803, 2*txt_m13c, M_AZR, 2*da_saglvl
; "Zerowanie energii"
.dw 0x8601, 2*txt_m9, 0, 0
.dw 0x0102, 2*txt_en_poz, M_CZEN, Energia1_poz
.dw 0x0202, 2*txt_en_sum, M_CZEN, Energia1
; "Zapisz energie w EEPROM"
.dw 0x0701, 2*txt_m10z, M_ZEN, 0
; "Czytaj energie z EEPROM"
.dw 0x0801, 2*txt_m10c, M_CEN, 0
; "Inicjalizacja EEPROM"
.dw 0x0901, 2*txt_m6, M_IE, 0
; koniec menu_kalibr
.dw 0
;--------------------------------------
txt_m1: .db "Obs",11,"uga ADE7759", 0
txt_m11: .db "Rejestr MODE", 0
txt_m111: .db "DISHPF", 0
txt_m112: .db "DISLPF2", 0
txt_m114: .db "DISSAG", 0
txt_m115: .db "ASUSPEND", 0
txt_m116: .db "TEMPSEL", 0
txt_m119: .db "DISCH1", 0
txt_m11a: .db "DISCH2", 0
txt_m11b: .db "SWAP", 0
txt_m11c: .db "DTRT0", 0
txt_m11d: .db "DTRT1", 0
txt_m11e: .db "WAVSEL0", 0
txt_m11f: .db "WAVSEL1", 0
txt_m13: .db "Odczyt rejestr",13,"w", 2,"z ADE7759", 0
txt_m131: .db "MODE", 0
txt_m132: .db "STATUS", 0
txt_m133: .db "CH1OS", 0
txt_m134: .db "CH2OS", 0
txt_m135: .db "GAIN", 0
txt_m136: .db "APGAIN", 0
txt_m137: .db "PHCAL", 0
txt_m138: .db "APOS", 0
txt_m139: .db "ZXTOUT", 0
txt_m13a: .db "SAGCYC", 0
txt_m13b: .db "IRQEN", 0
txt_m13c: .db "SAGLVL", 0
txt_m13d: .db "DIEREV", 0
txt_m13e: .db "TEMP", 0
txt_m14: .db "Zmiana rejestr",13,"w", 0
;tylko dla testow: podglad zmiennych
;txt_m3: .db "Podgl",8,"d", 2,"zmiennych", 0
;txt_m3e: .db "prb_znak", 0
;txt_m3f: .db "okres",13,"w w INT2", 0
;txt_m3d: .db "pr",13,"bek w INT2", 0
;txt_m39: .db "Pr",13,"bek_ile", 0
;txt_m38: .db "Wsp_LPF1", 0
txt_m35od: .db "Offset DC", 0
txt_m35orz: .db "Offset rms", 0
txt_m35omz: .db "Offset ",14,"red", 0
txt_m35oaz: .db "Offset ampl", 0
txt_m3h: .db "Offset F", 0
txt_m31: .db "Ilo",14,9," okres",13,"w", 0
txt_m3a: .db "Histereza zera", 0
txt_m3b: .db "Hist. przepe",11," I", 0
txt_m3c: .db "Hist. przepe",11," U", 0
txt_m4: .db "Data i czas", 2, "OK->zmiana", 0
txt_d0: .db "nieaktywny", 0
txt_pn: .db "Pon", 0
txt_wt: .db "Wt ", 0
txt_sr: .db "Sr ", 0
txt_cz: .db "Czw", 0
txt_pt: .db "Pt ", 0
txt_sb: .db "Sob", 0
txt_nd: .db "Nd ", 0
txt_m5: .db "Zapisz", 2,"konfiguracj", 10, 0
txt_m6: .db "Domy",14,"lna", 2,"konfiguracja", 0
txt_m8: .db "Zakres godzin", 2,"taryfy 2", 0
txt_mzz: .db "Zmiana offset",13,"w", 2,"i wsp",13,11,"cz.", 0
txt_mz1i: .db "Offsety pr",8,"du", 0
txt_mz1u: .db "Offsety napi",10,"cia", 0
txt_mz2: .db "Inne parametry", 0
txt_m9: .db "Zerowanie liczn.", 2,"energii", 0
txt_m10z: .db "Zapisz stan", 2,"licznik",13,"w energi", 0
txt_m10c: .db "Przywr",13,"c stan", 2,"licznik",13,"w energi", 0
txt_m1a: .db "Zakres zliczania", 2,"energii", 0
txt_mk1: .db "Zerowanie", 2,"wskaza",12, 0
txt_mk11: .db "pr",8,"du", 0
txt_mk12: .db "napi",10,"cia", 0
txt_mk13: .db "mocy P", 0
txt_mk2: .db "Kalibracja", 2,"wskaza",12, 0
txt_mk21: .db "mocy P (LSB)", 0
txt_mk22: .db "mocy P (MSB)", 0
txt_opc: .db "Ustawienia", 0
txt_o0: .db "Licznik energii", 0
txt_o00: .db "jednotaryfowy", 0
txt_o01: .db "dwutaryfowy", 0
txt_o1: .db "Pokazuj energi",10, 0
txt_o10: .db "kWh", 0
txt_o11: .db "Wh", 0
txt_o2: .db "Energia pozorna", 0
txt_o20: .db "nieliczona", 0
txt_o21: .db "liczona", 0
txt_o3: .db "Akumuluj energi",10, 0
txt_o30: .db "tylko dodatni",8, 0
txt_o31: .db "r",13,"wnie",15," ujemn",8, 0
;--------------------------------------
txt_us: .db 2,"Ustawiony ", 0
txt_ze: .db 2,"Wyzerowany", 0
txt_zro: .db 2,"Zrobione ", 0
txt_pust: .db " ", 0
txt_jp: .db 2,"czy na pewno?", 0
txt_zdn: .db 2, "Za du",15,"e napi",10,"cie", 0
txt_1: .db "1)", 0
txt_2: .db "2)", 0
txt_3: .db "3)", 0
txt_4: .db "4)", 0
;-------- dane dla "Zmiana rejestrow" -----------------------------------------
; kolejno: adres zmiennej (2B), wartosc min (2B), wartosc max (2B), adres rejestru ADE,ile bajtow
; bit7 w "ile_bajtow" informuje o liczbie w kodzie U2
da_ch1os: .dw Ade_ch1os, 0, 0x3F, 0x108
da_ch2os: .dw Ade_ch2os, 0, 0x3F, 0x109
da_gain: .dw Ade_gain, 0, 0xFF, 0x10A
da_phcal: .dw Ade_phcal, 0xFF9E, 0x5C, 0x810C
da_apos: .dw Ade_apos, 0x8000, 0x7FFF, 0x820D
da_zxtout: .dw Ade_zxtout, 0, 0xFFF, 0x20E
da_sagcyc: .dw Ade_sagcyc, 0, 0xFF, 0x10F
da_saglvl: .dw Ade_saglvl, 0, 0xFF, 0x111
;-------- dane dla "Zmiana zmiennych" -----------------------------------------
da_wspi: .dw Wsp_I, 1, 0xFFFF, 0x200
da_wspu: .dw Wsp_U, 1, 0xFFFF, 0x200
da_ofid: .dw Off_I_dc, 0xFD01, 0x2FF, 0x8200
da_ofud: .dw Off_U_dc, 0xFD01, 0x2FF, 0x8200
da_ofirz: .dw Off_Ir_z, 0, 0xFF, 0x100
da_ofurz: .dw Off_Ur_z, 0, 0xFF, 0x100
da_ofimz: .dw Off_Im_z, 0, 0xFF, 0x100
da_ofumz: .dw Off_Um_z, 0, 0xFF, 0x100
da_ofiaz: .dw Off_Ia_z, 0, 0xFF, 0x100
da_ofuaz: .dw Off_Ua_z, 0, 0xFF, 0x100
da_wspf: .dw Wsp_F, 0xFE01, 0x1FF, 0x8200
da_wspe0: .dw Wsp_E, 1, 0xFFFF, 0x200
da_wspe1: .dw Wsp_E+2, 0, 0xFF, 0x100
da_okr: .dw Okresy_ile, 1, 40, 0x100
da_hzer: .dw Hist_zera_ile, 1, 0x3F, 0x100
da_hpi: .dw Hist_przepel_I_ile, 0, 0x3F, 0x100
da_hpu: .dw Hist_przepel_U_ile, 0, 0x3F, 0x100
;-------- dane dla "Rozne ustawienia" -----------------------------------------
da_taryf: .db Flagi2, 1, low(2*txt_o00), high(2*txt_o00), low(2*txt_o01), high(2*txt_o01)
da_kwh: .db Flagi2, 2, low(2*txt_o10), high(2*txt_o10), low(2*txt_o11), high(2*txt_o11)
da_s: .db Flagi2, 4, low(2*txt_o20), high(2*txt_o20), low(2*txt_o21), high(2*txt_o21)
da_akum: .db Flagi2, 8, low(2*txt_o30), high(2*txt_o30), low(2*txt_o31), high(2*txt_o31)
;-------- dane dla "Daty i czasu" ---------------------------------------------
da_dni: .dw 2*txt_d0, 2*txt_pn, 2*txt_wt, 2*txt_sr, 2*txt_cz, 2*txt_pt, 2*txt_sb, 2*txt_nd
; low(zmienna), min, max, (znak_na_lcd OR koniec) ->koniec=bit7
da_cz1: .db Rok_bcd, 0, 99, 3
.db Miesiac_bcd, 1, 12, 6
.db Dzien_bcd, 1, 31, 9
.db Godziny_bcd, 0, 23, 12
.db Minuty_bcd, 0, 59, 15
.db Dzien_tyg, 1, 7, 0xC0 ; koniec serii Czas
da_t21: .db T21_dzien_st, 0, 7, 4
.db T21_dzien_sp, 1, 7, 8
.db T21_godz_st, 0, 23, 0x41
.db T21_min_st, 0, 59, 0x44
.db T21_godz_sp, 0, 23, 0x47
.db T21_min_sp, 0, 59, 0xCA
da_t22: .db T22_dzien_st, 0, 7, 4
.db T22_dzien_sp, 1, 7, 8
.db T22_godz_st, 0, 23, 0x41
.db T22_min_st, 0, 59, 0x44
.db T22_godz_sp, 0, 23, 0x47
.db T22_min_sp, 0, 59, 0xCA
da_t23: .db T23_dzien_st, 0, 7, 4
.db T23_dzien_sp, 1, 7, 8
.db T23_godz_st, 0, 23, 0x41
.db T23_min_st, 0, 59, 0x44
.db T23_godz_sp, 0, 23, 0x47
.db T23_min_sp, 0, 59, 0xCA
da_t24: .db T24_dzien_st, 0, 7, 4
.db T24_dzien_sp, 1, 7, 8
.db T24_godz_st, 0, 23, 0x41
.db T24_min_st, 0, 59, 0x44
.db T24_godz_sp, 0, 23, 0x47
.db T24_min_sp, 0, 59, 0xCA
da_en_o: .db Od_rok_st, 0, 99, 3
.db Od_mies_st, 1, 12, 6
.db Od_dzien_st, 1, 31, 9
.db Od_godz_st, 0, 23, 12
.db Od_min_st, 0, 59, 0x8F
da_en_oo: .db Oddo_rok_st, 0, 99, 3
.db Oddo_mies_st, 1, 12, 6
.db Oddo_dzien_st, 1, 31, 9
.db Oddo_godz_st, 0, 23, 12
.db Oddo_min_st, 0, 59, 15
.db Oddo_rok_sp, 0, 99, 0x43
.db Oddo_mies_sp, 1, 12, 0x46
.db Oddo_dzien_sp, 1, 31, 0x49
.db Oddo_godz_sp, 0, 23, 0x4C
.db Oddo_min_sp, 0, 59, 0xCF
;--------------------------------------
znaki_CGRAM: ; osiem polskich literek (malych): a, c, e, l, n, o, s, z
.db 0, 8, 0x20,0x54,0x54,0x54,0xF8, 0x38,0x44,0x46,0x45,0x20, 0x38,0x54,0x54,0xD4,0x18, 0,0x49,0x7F,0x44,0, 0x7C,0x8,0x6,0x5,0x78, 0x38,0x44,0x46,0x45,0x38, 0x48,0x54,0x56,0x55,0x20, 0x44,0x64,0x55,0x4C,0x44
;-------- dane poczatkowe EEPROMu ---------------------------------------------
EE_ADE_ini:
.db 0, 0, 0x9, 0,0, 0, 0,0, 0x8D,0x04, 3, 0x47, 2, 0x05,0x28, 25, 0x85, 5, 5, low(20000),high(20000), low(3960), high(3960), low(36000),high(36000), low(675770),byte2(675770),byte3(675770), 0,0, 0,0, 0, 0, 0, 0,0, 0, 0, 0, 2, 1,7,0x13,0x14,0,0x59, 1,7,0x22,0x5,0,0x59, 0,1,0x12,0,0,0x59, 0,1,0x12,0,0,0x59, 3,1,1,0,0, 4,3,1,1,1,0x31,0,0x23,0,0x59
;EE_ADE_ini: ; moj miernik po kalibracji
;.db 0x21, 0x23, 9, 0,0, 0, 0xD2,0xF5, 0x8D,0x04, 3, 0x47, 2, 0x05,0x28, 25, 0x85, 5, 5, low(19900),high(19900), low(3995), high(3995), low(36000),high(36000), low(668602),byte2(668602),byte3(668602), 0,0, 0xDA,0xFF, 25, 19, 100, 44,0, 22, 18, 62, 2, 1,7,0x13,0x14,0,0x59, 1,7,0x22,0x5,0,0x59, 0,1,0x12,0,0,0x59, 0,1,0x12,0,0,0x59, 3,1,1,0,0, 4,3,1,1,1,0x31,0,0x23,0,0x59
EE_KON: ; koniec
.db 0
.exit
;==============================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -