⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ioade7169f16.h

📁 用ADE7169F16单片机实现了单向多费4率电能表
💻 H
📖 第 1 页 / 共 3 页
字号:
#define IRMSOS_R    (0x22)
#define VRMSOS_R    (0x23)
#define WDIV_R      (0x24)
#define VARDIV_R    (0x25)
#define VADIV_R     (0x26)
#define CF1NUM_R    (0x27)
#define CF1DEN_R    (0x28)
#define CF2NUM_R    (0x29)
#define CF2DEN_R    (0x2A)
#define MODCTRL_R   (0x3C)
#define CALMODE_R   (0x3D)
#define TMODE_R     (0x3E)
#define HIDDEN_R    (0x3F)



#define WATTHR_W    (0x81)
#define RWATTHR_W   (0x82)
#define LWATTHR_W   (0x83)
#define VARHR_W     (0x84)
#define RVARHR_W    (0x85)
#define LVARHR_W    (0x86)
#define VAHR_W      (0x87)
#define RVAHR_W     (0x88)
#define LVAHR_W     (0x89)
#define PER_FREQ_W  (0x8A)
#define MODE1_W     (0x8B)
#define MODE2_W     (0x8C)
#define WAVMODE_W   (0x8D)
#define NLMODE_W    (0x8E)
#define ACCMODE_W   (0x8F)
#define PHCAL_W     (0x90)
#define ZXTOUT_W    (0x91)
#define LINCYC_W    (0x92)
#define SAGCYC_W    (0x93)
#define SAGLVL_W    (0x94)
#define IPKLVL_W    (0x95)
#define VPKLVL_W    (0x96)
#define IPEAK_W     (0x97)
#define RSTIPEAK_W  (0x98)
#define VPEAK_W     (0x99)
#define RSTVPEAK_W  (0x9A)
#define GAIN_W      (0x9B)
#define IBGAIN_W    (0x9C)
#define WGAIN_W     (0x9D)
#define VARGAIN_W   (0x9E)
#define VAGAIN_W    (0x9F)
#define WATTOS_W    (0xA0)
#define VAROS_W     (0xA1)
#define IRMSOS_W    (0xA2)
#define VRMSOS_W    (0xA3)
#define WDIV_W      (0xA4)
#define VARDIV_W    (0xA5)
#define VADIV_W     (0xA6)
#define CF1NUM_W    (0xA7)
#define CF1DEN_W    (0xA8)
#define CF2NUM_W    (0xA9)
#define CF2DEN_W    (0xAA)
#define MODCTRL_W   (0xBC)
#define CALMODE_W   (0xBD)
#define TMODE_W     (0xBE)
#define HIDDEN_W    (0xBF)

//***************************************************
//***** METER   NON-BIT ADDRESSABLE BIT DEFINITIONS *****
//***************************************************
__sfr __no_init volatile unsigned char MIRQENH @ 0xDB;
#define MIRQSTH MIRQENH
//MIRQSTH/MIRQENH
#define RESET   (0x80)
#define CALDONE (0x40)
#define WFSM    (0x20)
#define PKI     (0x10)
#define PKV     (0x08)
#define CYCEND  (0x04)
#define ZXTO    (0x02)
#define ZX      (0x01)

__sfr __no_init volatile unsigned char MIRQENM @ 0xDA;
#define MIRQSTM MIRQENM
//MIRQSTM/MIRQENM
#define CF2INT  (0x80)
#define CF1INT  (0x40)
#define VAEOF   (0x20)
#define REOF    (0x10)
#define AEOF    (0x08)
#define VAEHF   (0x04)
#define REHF    (0x02)
#define AEHF    (0x01)

//MIRQSTL/MIRQENL
__sfr __no_init volatile unsigned char MIRQENL @ 0xD9;
#define MIRQSTL MIRQENL
#define FAULTSIGN   (0x20)
#define VARSIGN     (0x10)
#define APSIGN      (0x08)
#define VANOLOAD    (0x04)
#define RNOLOAD     (0x02)
#define APNOLOAD    (0x01)

//MODE1
#define MODE1       (0x0b)
#define SWRST       (0x80)
#define DISZXLPF    (0x40)
#define INTE        (0x20)
#define SWAPBITS    (0x10)
#define PWRDN       (0x08)
#define DISCF2      (0x04)
#define DISCF1      (0x02)
#define DISHPF      (0x01)

//MODE2
#define MODE2       (0x0c)
#define CF2SEL1     (0x80)
#define CF2SEL0     (0x40)
#define CF1SEL1     (0x20)
#define CF1SEL0     (0x10)
#define VARMSCFCON  (0x08)
#define ZXRMS       (0x04)
#define FREQSEL     (0x02)

#define CF1WATT     (0x00)
#define CF2VAR      (0x40)

//GAIN
#define GAIN 0x1b
#define PGA2_2      (0x80)
#define PGA2_1      (0x40)
#define PGA2_0      (0x20)
#define CH1FS1      (0x10)
#define CH1FS0      (0x08)
#define PGA1_2      (0x04)
#define PGA1_1      (0x02)
#define PGA1_0      (0x01)

#define WAVMODE 0x0d
    #define DTRT0    0x01
    #define DTRT1    0x02
    #define WAV1SEL0 0x04
    #define WAV1SEL1 0x08
    #define WAV1SEL2 0x10
    #define WAV2SEL0 0x20
    #define WAV2SEL1 0x40
    #define WAV2SEL2 0x80
    
//NLMODE
#define NLMODE 0x0e
#define IRMSNOLOAD  (0x40)
#define VANOLOAD1   (0x20)
#define VANOLOAD0   (0x10)
#define VARNOLOAD1  (0x08)
#define VARNOLOAD0  (0x04)
#define APNOLOAD1   (0x02)
#define APNOLOAD0   (0x01)

#define ACCMODE 0x0F
  #define ABSAM     0x01
  #define POAM      0x02
  #define SAVARM    0x04
  #define ABSVARM   0x08
  // APSIGN    0x10
  // VARSIGN   0x20
  // FAULTSIGN 0x40
  #define ICHANNEL  0x80
  
#define PHCAL     0x10
#define ZXTOUT    0x11
#define LINCYC    0x12
#define SAGCYC    0x13
#define SAGLVL    0x14
#define IPKLVL    0x15
#define VPKLVL    0x16
#define IPEAK     0x17
#define RSTIPEAK  0x18
#define VPEAK     0x19
#define RSTVPEAK  0x1A

#define IBGAIN  0x1C
#define WGAIN   0x1D
#define VARGAIN 0x1E
#define VAGAIN  0x1F
#define WATTOS  0x20
#define VAROS   0x21
#define IRMSOS  0x22
#define VRMSOS  0x23
#define WDIV    0x24
#define VARDIV  0x25
#define VADIV   0x26
#define CF1NUM  0x27
#define CF1DEN  0x28
#define CF2NUM  0x29
#define CF2DEN  0x2A

#define CALMODE  0x3d
  #define I_CH_SHORT 0x04;
  #define V_CH_SHORT 0x08;
  #define SEL_I_CH0 0x10;
  #define SEL_I_CH1 0x20;
//***************************************************
//***** LCD NON-BIT ADDRESSABLE BIT DEFINITIONS *****
//***************************************************
//LCDCON
#define LCDEN       (0x80)
#define LCDRST      (0x40)
#define BLINKEN     (0x20)
#define LCDPSM2     (0x10)
#define CLKSEL      (0x08)
#define BIASMODE    (0x04)
#define LMUX1       (0x02)
#define LMUX0       (0x01)
#define MUX4_BIAS3  (0x07)

//LCDCLK
#if 0
#define BLKMOD1     (0x80)
#define BLKMOD0     (0x40)
#define BLKFREQ1    (0x20)
#define BLKFREQ0    (0x10)
#define FD3         (0x08)
#define FD2         (0x04)
#define FD1         (0x02)
#define FD0         (0x01)
#endif
#define	BLKMOD0	    (0x00)                          // The blink rate is controlled by software. The display is OFF.
#define	BLKMOD1	    (0x40)                          // The blink rate is controlled by software. The display is ON.
#define	BLKMOD2	    (0x80)                          // blink rate is 2 Hz
#define	BLKMOD3	    (0xC0)                          // The blink rate is set by BLKFREQ[1:0]
#define	BLKFREQ0	(BLKMOD3|0x00)                  // 1   Hz; These bits control LCD blink rate if BLKMOD[1:0]=11
#define	BLKFREQ1	(BLKMOD3|0x10)                  // 1/2 Hz
#define	BLKFREQ2	(BLKMOD3|0x20)                  // 1/3 Hz
#define	BLKFREQ3	(BLKMOD3|0x30)                  // 1/4 Hz
#define	FD3	        (0x08)
#define	FD2	        (0x04)
#define	FD1	        (0x02)
#define	FD0	        (0x01)

//LCDCONX

#define EXTRES      (0x40)
#define BIASLVL5    (0x20)
#define BIASLVL4    (0x10)
#define BIASLVL3    (0x08)
#define BIASLVL2    (0x04)
#define BIASLVL1    (0x02)
#define BIASLVL0    (0x01)

//LCDCONY

#define INVLVL      (0x40)

#define UPDATEOVER  (0x02)
#define REFRESH     (0x01)

//LCDSEGE
#define SEG25EN     (0x80)
#define SEG24EN     (0x40)
#define SEG23EN     (0x20)
#define SEG22EN     (0x10)
#define SEG21EN     (0x08)
#define SEG20EN     (0x04)
#define FDELAY1     (0x02)
#define FDELAY0     (0x01)

//LCDSEGE2

#define SEG19EN     (0x08)
#define SEG18EN     (0x04)
#define SEG17EN     (0x02)
#define SEG16EN     (0x01)

//***************************************************
//BATTERY   NON-BIT ADDRESSABLE BIT DEFINITIONS
//***************************************************
//PERIPH
#define RXFLAG      (0x80)
#define VSWSOURCE   (0x40)

#define EXTREFEN    (0x04)
#define RXPROG1     (0x02)
#define RXPROG0     (0x01)

//BATTPR

#define BATPRG1     (0x02)
#define BATPRG0     (0x01)

//INTPR
#define RTCCAL      (0x80)
#define INT0PRG     (0x01)
#define INT1GPIO    (0x00)
#define INT1BCTRL   (0x02)
#define INT1NOWAKE  (0x04)
#define INT1WAKE    (0x0C)


//IPSME
#define EPSR        (0x80)
#define ADEIAUTCLR  (0x40)
#define ESAG        (0x20)

#define EVSW        (0x08)
#define EBAT        (0x04)
#define EBSO        (0x02)
#define EVDCIN      (0x01)

//KYREG
#define KYREGKEY    (0xA7)

//POWCON
//(NOTE:    write   0xA7    to  KYREG   before  writing this    register)

#define COREOFF     (0x10)

#define CD2         (0x04)
#define CD1         (0x02)
#define CD0         (0x01)



//;***************************************************
//;*****    MISC NON-BIT    ADDRESSABLE BIT DEFINITIONS *****
//;***************************************************
//IEIP2

#define PRTC        (0x40)

#define PSPI_I2C    (0x10)
#define EADE       (0x08)
#define ERTC       (0x04)
#define EPSM       (0x02)
#define ESPI_I2C    (0x01)

//CFG
#define EXSP        (0x80)
#define EXTEN       (0x40)
#define SCPS        (0x20)
#define MOD38EN     (0x10)


/*
 * Interrupt Vectors
 */
//#define IE0_int 0x3 /* External interrupt 0 */
//#define extern0 0x3 /* External interrupt 0 */
/*
 * Interrupt Vectors
 */
#define IE0_int 0x03 /* External interrupt 0 */
#define extern0 0x03 /* External interrupt 0 */
#define TF0_int 0x0B /* Timer 0 Interrupt */
#define timer0  0x0B /* Timer 0 Interrupt */
#define IE1_int 0x13 /* External interrupt 1 */
#define extern1 0x13 /* External interrupt 1 */
#define TF1_int 0x1B /* Timer 1 Interrupt */
#define timer1  0x1B /* Timer 1 Interrupt */
#define TI_int  0x23 /* Serial Port Interrupt */
#define sio_ti  0x23 /* Serial Port Interrupt */
#define sio_ri  0x23 /* Serial Port Interrupt */
#define RI_int  0x23 /* Serial Port Interrupt */

#define timer2    0x2B /* Timer 2 Interrupt */
#define itemp_ADC 0x33 /* Temperature ADC Interrupt */
#define ispi_i2c  0x3B /* SPI/I2C Interrupt */
#define ipsm      0x43 /* Power supply Interrupt */
#define iade      0x4B /* Energy Measurement Interrupt */
#define irtc      0x53 /* RTC interval timer Interrupt */
#define iwdt      0x5B /* watchdog timer  Interrupt */

#pragma language=default
#endif  /* __IAR_SYSTEMS_ICC__  */

/***************************************************************************
 *   Assembler definitions
                                                   *
                                                                           *   The following SFRs are built in in the a8051.exe and can not be
         *   defined explicitly in this file:
                                        *     ACC,B,PSW,SP,DPL,DPH
                                                  *   The PSW-bits are built-in in the a8051.exe
                              *     OV,AC,F0,RS0,RS1,P
                                                    *                                                                             ***************************************************************************/

#ifdef __IAR_SYSTEMS_ASM__


/*-------------------------------------------------------------------------
 *   SPI
 *-------------------------------------------------------------------------*/

SPI2CTx DEFINE 0x9A
SPI2CRx DEFINE 0x9B
SPIMOD1 DEFINE 0xE8
SPIMOD2 DEFINE 0xE9
SPI2CSTAT DEFINE 0xEA

/*-------------------------------------------------------------------------
 *   RTC
 *-------------------------------------------------------------------------*/

TIMECON DEFINE 0xA1
HTSSEC DEFINE 0xA2
SEC DEFINE 0xA3
MIN DEFINE 0xA4
HOUR DEFINE 0xA5
INTVAL DEFINE 0xA6
RTCCOMP DEFINE 0xF6
TEMPCAL DEFINE 0xF7

/*-------------------------------------------------------------------------
 *   LCD
 *-------------------------------------------------------------------------*/

LCDCON DEFINE 0x95
LCDCLK DEFINE 0x96
LCDSEGE DEFINE 0x97
LCDCONX DEFINE 0x9C
LCDPTR DEFINE 0xAC
LCDDAT DEFINE 0xAE
LCDCONY DEFINE 0xB1
LCDSEGE2 DEFINE 0xED

/*-------------------------------------------------------------------------
 *   Energy Measurement
 *-------------------------------------------------------------------------*/

EADDPT DEFINE 0x91
EDATL DEFINE 0x92
EDATM DEFINE 0x93
EDATH DEFINE 0x94
VRMSL DEFINE 0xD1
VRMSM DEFINE 0xD2
VRMSH DEFINE 0xD3
IRMSL DEFINE 0xD4
IRMSM DEFINE 0xD5
IRMSH DEFINE 0xD6
EIRQENL DEFINE 0xD9
EIRQENM DEFINE 0xDA
EIRQENH DEFINE 0xDB
EIRQSTL DEFINE 0xDC
EIRQSTM DEFINE 0xDD
EIRQSTH DEFINE 0xDE
WAV1L DEFINE 0xE2
WAV1M DEFINE 0xE3
WAV1H DEFINE 0xE4
WAV2L DEFINE 0xE5
WAV2M DEFINE 0xE6
WAV2H DEFINE 0xE7

/*-------------------------------------------------------------------------
 *   I2C
 *-------------------------------------------------------------------------*/

I2CCOMP DEFINE 0xE8
I2CADR DEFINE 0xE9

/*-------------------------------------------------------------------------
 *   UART
 *-------------------------------------------------------------------------*/

SCON DEFINE 0x98
SBUF DEFINE 0x99
SBAUDF DEFINE 0x9D
SBAUDT DEFINE 0x9E

/*-------------------------------------------------------------------------
 *   Interupt
 *-------------------------------------------------------------------------*/

IE DEFINE 0xA8
IEIP2 DEFINE 0xA9
IP DEFINE 0xB8
WDCON DEFINE 0xC0

/*-------------------------------------------------------------------------
 *   Temp, batt and volt
 *-------------------------------------------------------------------------*/

TEMPADC DEFINE 0xD7
ADCGO DEFINE 0xD8
BATTADC DEFINE 0xDF
VSWADC DEFINE 0xEF
DIFFPROG DEFINE 0xF3
STRBPER DEFINE 0xF9
BATVTH DEFINE 0xFA

/*-------------------------------------------------------------------------
 *   I/O Ports
 *-------------------------------------------------------------------------*/

P0 DEFINE 0x80 /* Port 0 */
P1 DEFINE 0x90
EPCFG DEFINE 0x9F
P2 DEFINE 0xA0
PINMAP0 DEFINE 0xB2
PINMAP1 DEFINE 0xB3
PINMAP2 DEFINE 0xB4

/*-------------------------------------------------------------------------
 *   Core
 *-------------------------------------------------------------------------*/

PCON DEFINE 0x87
DPCON DEFINE 0xA7
CFG DEFINE 0xAF
SPH DEFINE 0xB7

/*-------------------------------------------------------------------------
 *   Timer
 *-------------------------------------------------------------------------*/

TCON DEFINE 0x88
TMOD DEFINE 0x89
TL0 DEFINE 0x8A
TL1 DEFINE 0x8B
TH0 DEFINE 0x8C
TH1 DEFINE 0x8D
T2CON DEFINE 0xC8
RCAP2L DEFINE 0xCA
RCAP2H DEFINE 0xCB
TL2 DEFINE 0xCC
TH2 DEFINE 0xCD

/*-------------------------------------------------------------------------
 *   FLASH
 *-------------------------------------------------------------------------*/

ECON DEFINE 0xB9
FLSHKY DEFINE 0xBA
PROTKY DEFINE 0xBB
EDATA DEFINE 0xBC
PROTB0 DEFINE 0xBD
PROTB1 DEFINE 0xBE
PROTR DEFINE 0xBF
EADRL DEFINE 0xC6
EADRH DEFINE 0xC7

/*-------------------------------------------------------------------------
 *   Power
 *-------------------------------------------------------------------------*/

KYREG DEFINE 0xC1
POWCON DEFINE 0xC5
IPSME DEFINE 0xEC
PERIPH DEFINE 0xF4
BATPR DEFINE 0xF5
IPSMF DEFINE 0xF8
SCRATCH1 DEFINE 0xFB
SCRATCH2 DEFINE 0xFC
SCRATCH3 DEFINE 0xFD
SCRATCH4 DEFINE 0xFE
INTPR DEFINE 0xFF

#endif /* __IAR_SYSTEMS_ASM__*/
#endif /* IOADE7169F16_H */


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -