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

📄 general.h

📁 单相复费率MSP430硬件时钟参考代码,MSP413设计方案
💻 H
📖 第 1 页 / 共 2 页
字号:
// EEPROM管脚定义 ( MSP430F413 <--> AT24C16 )
// +---------------+
// |          P6.7 | <---  SCL
// |          P6.6 | <---> SDA
// |          P6.3 | <---  WP
// +---------------+
#define I2C_SDA                          BIT6
#define I2C_SDA_IN                       P6IN
#define I2C_SDA_OUT                     P6OUT
#define I2C_SDA_DIR                     P6DIR
#define I2C_SDA_SEL                     P6SEL

#define I2C_SCL                          BIT7
#define I2C_SCL_IN                       P6IN
#define I2C_SCL_OUT                     P6OUT
#define I2C_SCL_DIR                     P6DIR
#define I2C_SCL_SEL                     P6SEL

#define E2PROM_WP                        BIT3
#define E2PROM_WP_OUT                   P6OUT
#define E2PROM_WP_DIR                   P6DIR

// RS485管脚定义 ( MSP430F413 <--> RS485 )
// +---------------+
// |          P6.4 |  ---> RS_EN
// |          P1.1 | <---  RS_R(Interrupt)
// |      P1.0/TA0 |  ---> RD_D
// +---------------+
#define RS485_EN                         BIT4
#define RS485_EN_IN                      P6IN
#define RS485_EN_OUT                    P6OUT
#define RS485_EN_DIR                    P6DIR
#define RS485_EN_SEL                    P6SEL

#define RS485_RX                         BIT1
#define RS485_RX_DIR                    P1DIR
#define RS485_RX_IN                      P1IN
#define RS485_RX_OUT                    P1OUT
#define RS485_RX_IE                      P1IE
#define RS485_RX_IES                    P1IES
#define RS485_RX_IFG                    P1IFG
#define RS485_RX_SEL                    P1SEL

#define RS485_TX                         BIT0
#define RS485_TX_DIR                    P1DIR
#define RS485_TX_IN                      P1IN
#define RS485_TX_OUT                    P1OUT
#define RS485_TX_IE                      P1IE
#define RS485_TX_IES                    P1IES
#define RS485_TX_IFG                    P1IFG
#define RS485_TX_SEL                    P1SEL

// IR红外管脚定义 ( MSP430F413 <--> IR )
// +---------------+
// |          P1.2 | <---  IR_IN/IRRX(interrupt)
// |      P2.0/TA1 |  ---> IR_OUT/IRTX
// +---------------+
#define IR_RX                            BIT2
#define IR_RX_DIR                       P1DIR
#define IR_RX_IN                         P1IN
#define IR_RX_OUT                       P1OUT
#define IR_RX_IE                         P1IE
#define IR_RX_IES                       P1IES
#define IR_RX_IFG                       P1IFG
#define IR_RX_SEL                       P1SEL

#define IR_TX                            BIT0
#define IR_TX_DIR                       P2DIR
#define IR_TX_IN                         P2IN
#define IR_TX_OUT                       P2OUT
#define IR_TX_IE                         P2IE
#define IR_TX_IES                       P2IES
#define IR_TX_IFG                       P2IFG
#define IR_TX_SEL                       P2SEL

#define IR_TX_CCR                        CCR2
#define IR_TX_TACCTL                  TACCTL2

// program enable ( MSP430F413 --> PROG_EN )
// +---------------+
// |          P1.4 |  <--- PROG_EN
// +---------------+
#define PROG_EN                          BIT4
#define PROG_EN_IN                       P1IN

// 时钟频率管脚定义 ( MSP430F413 --> RTC_FREQ )
// +---------------+
// |          P1.5 |  ---> RTC_FREQ
// +---------------+
#define RTC_FREQ                             BIT5
#define RTC_FREQ_DIR                        P1DIR
#define RTC_FREQ_OUT                        P1OUT

// Break Power Test ( MSP430F413 <-- BRK_PWR_TST )
// +---------------+
// |          P1.6 |  <--- BRK_PWR_TST
// +---------------+
#define BRK_PWR_TST                      BIT6
#define BRK_PWR_TST_IN                   P1IN
#define BRK_PWR_TST_IES                 P1IES
#define BRK_PWR_TST_IE                   P1IE
#define BRK_PWR_TST_IFG                 P1IFG

// Low Power Test ( MSP430F413 <-- LOW_PWR_TST )
// +---------------+
// |          P1.7 |  <--- LOW_PWR_TST
// +---------------+
#define LOW_PWR_TST                      BIT7
#define LOW_PWR_TST_IN                   P1IN
#define LOW_PWR_TST_IES                 P1IES
#define LOW_PWR_TST_IE                   P1IE
#define LOW_PWR_TST_IFG                 P1IFG

// 计费脉冲管脚定义
#define POWER_PULSE                      BIT1
#define POWER_PULSE_DIR                 P2DIR
#define POWER_PULSE_IN                   P2IN
#define POWER_PULSE_OUT                 P2OUT
#define POWER_PULSE_IE                   P2IE
#define POWER_PULSE_IES                 P2IES
#define POWER_PULSE_IFG                 P2IFG
#define POWER_PULSE_SEL                 P2SEL

#define POWER_DIRECTION                  BIT5
#define POWER_DIRECTION_IN               P6IN
#define POWER_DIRECTION_OUT             P6OUT
#define POWER_DIRECTION_DIR             P6DIR
#define POWER_DIRECTION_SEL             P6SEL

#if 0
// 继电器控制管脚定义 ( MSP430F413 --> RELAY )
// +---------------+
// |          P6.2 |  ---> RELAY_OPEN
// |          P6.1 |  ---> RELAY_CLOSE
// +---------------+
#define RELAY_CLOSE                      BIT1
#define RELAY_CLOSE_DIR                 P6DIR
#define RELAY_CLOSE_OUT                 P6OUT
#define RELAY_OPEN                       BIT2
#define RELAY_OPEN_DIR                  P6DIR
#define RELAY_OPEN_OUT                  P6OUT 

// 继电器状态检测管脚定义 ( MSP430F413 --> RELAY_TEST )
// +---------------+
// |          P1.4 | <---  RELAY_OPEN
// +---------------+
#define RELAY_TEST                       BIT4
#define RELAY_TEST_DIR                  P1DIR
#define RELAY_TEST_IN                    P1IN
#endif 

// 蜂鸣器管脚定义 ( MSP430F413 --> BELL )
// +---------------+
// |          P1.3 |  ---> BELL
// +---------------+
#define BELL                             BIT3
#define BELL_DIR                        P1DIR
#define BELL_OUT                        P1OUT

// LCD灯管脚定义 ( MSP430F413 --> LCD_LIGHT )
// +---------------+
// |          P2.5 |  ---> LCD_LIGHT
// +---------------+
#define LCD_LIGHT                        BIT5
#define LCD_LIGHT_DIR                   P2DIR
#define LCD_LIGHT_OUT                   P2OUT

// User key 0 ( MSP430F413 --> USERKEY0 )
// +---------------+
// |          P2.2 |  <--- USERKEY0
// +---------------+
#define USERKEY0                         BIT2
#define USERKEY0_IE                      P2IE
#define USERKEY0_IES                    P2IES
#define USERKEY0_IFG                    P2IFG

#define USERKEY_VIEW BIT0
#define USERKEY_SELECT BIT1
#define USERKEY_JUST BIT2

// Cover Up ( MSP430F413 --> STA_UP )
// +---------------+
// |          P2.3 |  <--- STA_UP
// +---------------+
#define STA_UP                         BIT3
#define STA_UP_IN                           P2IN
#define STA_UP_IE                      P2IE
#define STA_UP_IES                    P2IES
#define STA_UP_IFG                    P2IFG

// CLR ( MSP430F413 --> CLR )
// +---------------+
// |          P2.4 |  <--- CLR
// +---------------+
#define CLR                              BIT4
#define CLR_IN                           P2IN
#define CLR_IE                           P2IE
#define CLR_IES                         P2IES
#define CLR_IFG                         P2IFG

// P6.1,P6.2 ( MSP430F413 --> P6.1,P6.2 )
// +---------------+
// |          P6.1 |  ---> P6.1
// |          P6.2 |  ---> P6.2
// +---------------+
#define P6_1                              BIT1
#define P6_2                              BIT2

#define WDT                              BIT0

extern unsigned char PowerScalar[10];
extern unsigned char PowerAttribute;
extern unsigned char SystemIndication;

#ifdef _HARDWARE_RTC
extern unsigned char g_time[8];
#else
extern unsigned char g_time[7];
#endif
#ifdef _HARDWARE_RTC
extern unsigned char SystemTime_MonthHex;
#endif
extern unsigned char CommParity;
extern unsigned char CommPortChose;
extern unsigned char LcdInterval;
extern unsigned short LcdDisplayChoose;
extern unsigned char LcdDispPwrChoose[4];
extern unsigned char DisplayPointer;
extern unsigned char LcdDispPageUpOrDown;
extern unsigned char LcdMonthIndex;
extern unsigned char RelayShouldState;
extern unsigned char UartBitCount;
extern unsigned char UartRxByte;
extern unsigned char BreakOrLowPowerFlag;
extern unsigned char PowerPulseConstant_;
extern unsigned char TotleTimeOfMiuns;
extern unsigned char PowerPulseCounter;

extern void DeviceBasicInit(void);
extern void Delay(unsigned short len);
#ifdef _HARDWARE_RTC
extern void RenewSystemTime(void);
#endif
extern unsigned char CheckSystemTime(unsigned char *time);
#ifdef _HARDWARE_RTC
extern void GetSystemTime(void);
#endif
extern void SetSystemTime(void);
#ifndef _HARDWARE_RTC
extern void SecondUp(void);
#endif
#ifndef _HARDWARE_RTC
extern void GetSystemTimeBcd(unsigned char *time_bcd);
extern void GetSystemTimeHex(unsigned char *time_bcd);
#endif

#ifdef _SUPPORT_RELAY
extern unsigned char RelayStateCheck(unsigned char on_off);
extern void RelayCtrl(unsigned char on_off);
extern void RelayOnHook();
extern void RelayOffHook();
#endif
extern void BellOn(void);
extern void SetSystemEvent(unsigned char event);
extern void ClearSystemEvent(unsigned char event);
extern unsigned char IsEqual(unsigned char *src1,unsigned char * src2,unsigned char len);
extern unsigned char IsEqualSpecialData(unsigned char *src,unsigned char data,unsigned char len);
extern void LcdLightOn(unsigned char sec);
extern void LcdLightOff();
extern void ClrWDT(void);
extern unsigned long Hex2Bcd(unsigned long hex);
extern unsigned long Bcd2Hex(unsigned long bcd);
//extern void RelayProc();
extern void ReadPPC(void);
extern void SaveTimeOfMiuns(void);
extern PROC_FUNC TimerProc[TIMER_NUMBER];
extern unsigned short TimerCounter[TIMER_NUMBER];
extern void MemSetTo0(unsigned char * data,unsigned char len);

extern void E2promRead(unsigned short addr, unsigned char *data, unsigned char len);
extern void E2promWrite(unsigned short addr,unsigned char *data,unsigned char len);
#ifdef _HARDWARE_RTC
extern void RealtimeOper(unsigned char addr,unsigned char *data,unsigned char len);
#endif

extern unsigned char GetPreviousMonthIndex(unsigned char item);
extern void LcdDisplayReload(void);
extern void ResetLcdDisplay(void);
extern void DisplayRefresh(void);
extern void LcdSelectPage(void);
extern void LcdViewPage(void);

extern void UartReInit(void);
extern void UartRxReady(void);
extern void UartSendByte(unsigned short sData);

extern void DefaultInit(void);

extern unsigned char GetPowerAttribute(void);
extern void PowerDataSlave(unsigned short *temp1,unsigned short *temp2);
extern void _save_time_to_e2prom_(unsigned short addr);
extern void _bcd_short_add1_and_write_e2prom_(unsigned char addr);
extern void _memset0_and_write_e2prom_ (unsigned short addr,unsigned char len);
extern void PowerDataStore(void);
extern void ReadPeriodOfTimeCount(unsigned char *data);
extern void ClearPowerPulseDataInRam(void);

#endif

⌨️ 快捷键说明

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