📄 pindef.h
字号:
/* hal.h */
#ifndef HAL_H
#define HAL_H
#ifdef __cplusplus
extern "C"
{
#endif
#define BIT0 (uchar)(0x01)
#define BIT1 (0x02)
#define BIT2 (0x04)
#define BIT3 (0x08)
#define BIT4 (0x10)
#define BIT5 (0x20)
#define BIT6 (0x40)
#define BIT7 (uchar)(0x80)
#define BIT8 (0x0100)
#define BIT9 (0x0200)
#define BITA (0x0400)
#define BITB (0x0800)
#define BITC (0x1000)
#define BITD (0x2000)
#define BITE (0x4000)
#define BITF (0x8000)
// LCD_LIGHT ( UPD78F0537 --> RTC_INTB )
// +---------------+
// | P6.3 | <--- LCD_LIGHT
// +---------------+
#define LCD_LIGHT_BIT BIT7
#define LCD_LIGHT P7.7
#define LCD_LIGHT_ON() (LCD_LIGHT=1)
#define LCD_LIGHT_OFF() (LCD_LIGHT=0)
// ALARM0 ( UPD78F0537 --> RTC_INTB )
// +---------------+
// | P0.6 | <--- ALARM0
// +---------------+
#define ALARM0 P0.6
#define ALARM0_ON() ALARM0 = 0
#define ALARM0_OFF() ALARM0 = 1
// ALARM0 ( UPD78F0537 --> RTC_INTB )
// +---------------+
// | P0.5 | <--- ALARM1
// +---------------+
#define ALARM1 P0.5
#define ALARM1_ON() ALARM0 = 0
#define ALARM1_OFF() ALARM0 = 1
// ALARM0 ( UPD78F0537 --> RTC_INTB )
// +---------------+
// | P3.2 | <--- BUZZER
// +---------------+
#define BUZZER P3.2
#define BUZZER_ON() BUZZER = 0
#define BUZZER_OFF() BUZZER = 1
// User key 0 ( UPD78F0537 --> USERKEY0 )//这个是用来上翻下翻的
// +---------------+
// | P7.2 | <--- USERKEY0
// +---------------+
#define USERKEY0 BIT3
#define USERKEY0_IN P7
// User key 1 ( UPD78F0537 --> USERKEY1 )
// +---------------+
// | P7.2 | <--- USERKEY1//这个用来上翻
// +---------------+
#define USERKEY1 BIT2
#define USERKEY1_IN P7
// PROG_EN ( UPD78F0537 --> PROG_EN )
// +---------------+
// | P7.3 | <--- PROG_EN //这个是编程使能按键
// +---------------+
#define PROG_EN BIT4
#define PROG_EN_IN P7
#define USERKEY2 PROG_EN
// 开上盖报警管脚定义 ( UPD78F0537 <--- COVER_UP )
// +---------------+
// | P7.5 | <--- COVER_UP
// +---------------+
#define COVER_UP BIT5
#define COVER_UP_OUT P7
#define COVER_UP_IN P7
#define COVER_UP_DIR PM7
// 开下盖报警管脚定义 ( UPD78F0537 <--- COVER_DOWN )
// +---------------+
// | P7.6 | <--- COVER_DOWN
// +---------------+
#define COVER_DOWN BIT6
#define COVER_DOWN_OUT P7
#define COVER_DOWN_IN P7
#define COVER_DOWN_DIR PM7
// Power FOUT ( UPD78F0537 --> PWR_FOUT )
// +---------------+
// | P7.0 | <--- PWR_F0 这个是市电
// | P7.1 | <--- PWR_F1 这个是电池
// +---------------+
#define PWR_F0 BIT0
#define PWR_F0_IN P7
#define PWR_F1 BIT1
#define PWR_F1_IN P7
// IR红外管脚定义 ( UPD78F0537 <--> IR )
// +---------------+
// | P14.1 | <--- IR_IN/IR_RX(interrupt)
// | P0.0 | ---> IR_OUT/IR_TX
// | P12.0 | ---> IR_EN
// +---------------+
#define IR_RX BIT1
#define IR_RX_DIR PM14
#define IR_RX_IN P14
#define IR_RX_OUT P14
#define IR_TX BIT0
#define IR_TX_DIR PM0
#define IR_TX_OUT P0
#define IR_TX_LOW() ( IR_TX_OUT &=~ IR_TX )
#define IR_EN BIT0
#define IR_EN_OUT P12
#define IR_EN_DIR PM12
#define IR_ON() {PM12.0 = 0; IR_EN_OUT &= ~IR_EN;} //红外电源打开
#define IR_OFF() {PM12.0 = 1;IR_EN_OUT |= IR_EN;PMK7=1;} //红外电源关闭
#define IR_OFF_PD() { IR_OFF(); LCD_LIGHT_OFF();}//;IR_RX_IE&=~IR_RX;IR_EN_OUT|=IR_EN;}
#define IR_ON_PD() IR_ON() //{IR_RX_IE|=IR_RX; IR_EN_OUT&=~IR_EN;}
// UPD78F0537 <---> UART
// +---------------+
// | P1.3 | ---> RD_D
// | P1.4 | <--- RS_R(Interrupt)
// | P
// | P1.0 | ---> RD_D1
// | P1.1 | <--- RS_R1(Interrupt)
// +---------------+
#define RS485_TX BIT3
#define RS485_TX_DIR PM1
#define RS485_TX_OUT P1
#define RS485_RX BIT4
#define RS485_RX_DIR PM1
#define RS485_RX_IN P1
#define RS485_RX_OUT P1
#define RS485_2_TX BIT0
#define RS485_2_TX_DIR PM1
#define RS485_2_TX_OUT P1
#define RS485_2_RX BIT1
#define RS485_2_RX_DIR PM1
#define RS485_2_RX_IN P1
#define RS485_2_RX_OUT P1
#define RS485_PF0() { P1&=~(RS485_TX); PM1|=RS485_TX; }
#define RS485_2_PF0() { P1&=~(RS485_2_TX);PM1|=RS485_2_TX; }
#define RS_EN BIT5
#define RS_EN_DIR PM1
#define RS_EN_IN P1
#define RS_EN_OUT P1
#define RS_EN_2 BIT2
#define RS_EN_2_DIR PM1
#define RS_EN_2_IN P1
#define RS_EN_2_OUT P1
#define RS485_TX_EN() P1.5 = 0
#define RS485_RX_EN() P1.5 = 1
#define RS485_TX_EN2() P1.2 = 0
#define RS485_RX_EN2() P1.2 = 1
//ATT7022B 管脚定义//
// +---------------+
// | 0 | <--- ATT7022SIG //这个没有用
// | P0.2 | <--- ATT7022DOUT
// | P13.0 | ---> ATT7022CS
// | P0.3 | ---> ATT7022DIN
// | P0.4 | ---> ATT7022SCLK
// +---------------+
#define ATT7022DOUT BIT3
#define ATT7022DOUT_DIR PM0
#define ATT7022DOUT_OUT P0
#define ATT7022CS BIT0
#define ATT7022CS_OUT P13
#define ATT7022CS_DIR PM13
#define ATT7022DIN BIT2
#define ATT7022DIN_DIR PM0
#define ATT7022DIN_IN P0
#define ATT7022CLK BIT4
#define ATT7022CLK_OUT P0
#define ATT7022CLK_DIR PM0
#define ATT7022_PF0() //{ ATT7022DOUT_DIR|=(ATT7022DOUT);P2&=(uchar)(~(ATT7022DIN|ATT7022CLK|ATT7022DOUT|ATT7022CS));PM2|=ATT7022SIG;}
//这个地方暂时不改
// UPD78F0537 <---> DataFlash
// +---------------+
// | P5.2 | ---> DATA_FLASH_WP
// | P1.6 | <--- DATA_FLASH_SO
// | P1.7 | ---> DATA_FLASH_SI
// | P3.0 | ---> DATA_FLASH_SCL
// | P5.3 | ---> DATA_FLASH_CS
// +---------------+
#define DATA_FLASH_WP BIT2
#define DATA_FLASH_WP_OUT P5
#define DATA_FLASH_WP_DIR PM5
#define DATA_FLASH_SO BIT6
#define DATA_FLASH_SO_IN P1
#define DATA_FLASH_SO_IN_DIR PM1
#define DATA_FLASH_SI BIT7
#define DATA_FLASH_SI_OUT P1
#define DATA_FLASH_SI_DIR PM1
#define DATA_FLASH_SCL BIT0
#define DATA_FLASH_SCL_OUT P3
#define DATA_FLASH_SCL_DIR PM3
#define DATA_FLASH_CS BIT3
#define DATA_FLASH_CS_OUT P5
#define DATA_FLASH_CS_DIR PM5
// WDI管脚定义 ( UPD78F0537 --> WDI )
// +---------------+
// | P5.1 | ---> WDI//新版没有外置看门狗这个就不用了
// +---------------+
#define WDI BIT1
#define WDI_OUT P5
#define WDI_DIR PM5
// 实时时钟管脚定义 ( MSP430F435 <--> 8025 )
// +---------------+
// | P6.0 | ---> WP
// | P6.1 | <---> SDA
// | P6.2 | ---> SCL
// +---------------+
#define RTC_WP BIT2
#define RTC_WP_OUT P6
#define RTC_WP_DIR PM6
#define RTC_SDA BIT1
#define RTC_SDA_IN P6
#define RTC_SDA_OUT P6
#define RTC_SDA_DIR PM6
#define RTC_SCL BIT0
#define RTC_SCL_OUT P6
#define RTC_SCL_DIR PM6
// +---------------+
// | P6.0 | ---> FRAM_SCL
// +---------------+
#define FRAM_SCL RTC_SCL
#define FRAM_SCL_OUT RTC_SCL_OUT
// +---------------+
// | P6.1 | ---> FRAM_SDA
// +---------------+
#define FRAM_SDA RTC_SDA
#define FRAM_SDA_OUT RTC_SDA_OUT
#define FRAM_SDA_IN RTC_SDA_IN
#define FRAM_SDA_DIR RTC_SDA_DIR
// +---------------+
// | P6.3 | ---> FRAM_WP
// +---------------+
#define FRAM_WP RTC_WP
#define FRAM_WP_OUT RTC_WP_OUT
#define ANA_UART_RX P3.3
#define ANA_UART_RX_DIR PM3.3
#define ANA_UART_TX P6.3
#define ANA_UART_TX_DIR PM6.3
/************************************************************
* P0端口定义:
* -----------------------------------------------------------
* P0.0----IR_D
* P0.1----NOP
* P0.2----DO
* P0.3----DI
* P0.4----CLK
* P0.5----ALARM1
* P0.6----ALARM0
************************************************************/
#define P0DIR_VAL (BIT3)
#define P0OUT_VAL (0xFF)
#define LP_P0DIR_VAL (BIT2)
#define LP_P0OUT_VAL (BIT1)
/************************************************************
* P1端口定义:
* -----------------------------------------------------------
* P1.0----RS_D1
* P1.1----RS_R1
* P1.2----RS_EN1
* P1.3----RS_D
* P1.4----RS_R
* P1.5----RS_EN
* P1.6----DF_DO
* P1.7----DF_DI
************************************************************/
#define P1DIR_VAL (BIT1 + BIT4 + BIT6 )
#define P1OUT_VAL 0XFF
#define LP_P1DIR_VAL (BIT6)
#define LP_P1OUT_VAL (BIT6|BIT7)
/************************************************************
* P2端口定义:
* -----------------------------------------------------------
* P2.0----NC
* P2.1----NC
* P2.2----NC
* P2.3----NC
* P2.4----NC
* P2.5----NC
* P2.6----NC
* P2.7----NC
************************************************************/
#define P2DIR_VAL (0x00)
#define P2OUT_VAL (0xFF)
#define LP_P2DIR_VAL (0x00)
#define LP_P2OUT_VAL (0x00)
/************************************************************
* P3端口定义:
* -----------------------------------------------------------
* P3.0----DF_CLK
* P3.1----JDQ1 //高电平受控
* P3.2----BUZZER //低电平受控
* P3.3----LCD_B //高电平受控
************************************************************/
#define P3DIR_VAL (0xF8)
#define P3OUT_VAL (0xF0|BIT2|BIT0)
#define LP_P3DIR_VAL P3DIR_VAL
#define LP_P3OUT_VAL P3OUT_VAL
/************************************************************
* P4端口定义:
* -----------------------------------------------------------
* P4.0----NC
* P4.1----NC
* P4.2----IR_CON2 //高电平控制
* P4.3----IR_CON1 //高电平控制
************************************************************/
#define P4DIR_VAL (~(BIT2|BIT3))//23为输出别的为输入
#define P4OUT_VAL (~(BIT2|BIT3))
#define LP_P4DIR_VAL P4DIR_VAL
#define LP_P4OUT_VAL P4OUT_VAL
/************************************************************
* P5端口定义:
* -----------------------------------------------------------
* P5.0----JDQ2 高电平控制。有10K下拉电阻
* P5.1----WDI 有10K下拉电阻
* P5.2----WP_D 高电平有效,有10K下拉电阻
* P5.3----DF_CS //低电平有效,有10K上拉电阻
************************************************************/
#define P5DIR_VAL (0xF0)
#define P5OUT_VAL ((~BIT0)&(~BIT1)&(~BIT2)&BIT3)
#define LP_P5DIR_VAL P5DIR_VAL
#define LP_P5OUT_VAL P5OUT_VAL
/************************************************************
* P6端口定义:
* -----------------------------------------------------------
* P6.0----SCK_R //有上接
* P6.1----SDA_R //有上拉
* P6.2----WP_R //低电平有效 有10K上拉
* P6.3----NC
************************************************************/
#define P6DIR_VAL (BIT1)
#define P6OUT_VAL (0x0f)
#define LP_P6DIR_VAL P6DIR_VAL
#define LP_P6OUT_VAL P6OUT_VAL
/************************************************************
* P7端口定义:
* -----------------------------------------------------------
* P7.0----PWR_F0 //市电 上拉没有
* P7.1----PWR_F1 //电池 无上接
* P7.2----USER1 //10K上拉
* P7.3----USER0 //10K上拉
* P7.4----USER2 //10K上拉
* P7.5----STA_DOWN //10上拉 电表正常运行状态下
* P7.6----STA_UP //10上拉 电表正常运行状态下
* P7.7----not connected
************************************************************/
#define P7DIR_VAL (BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6)
#define P7OUT_VAL (0x7F)
#define LP_P7DIR_VAL P7DIR_VAL
#define LP_P7OUT_VAL P7OUT_VAL
/************************************************************
* P14端口定义:
* -----------------------------------------------------------
* P14.0----AD_IRQ //通过上拉接VDD停电时应当成为
* P14.1----IR_R //有10K上接电阻
************************************************************/
#define P14DIR_VAL (0xFF)
#define P14OUT_VAL (0xFF)
#define LP_P14DIR_VAL (0xFE)
#define LP_P14OUT_VAL (0xFE)
#define ALARM_LIGHT() (ALARM0_ON())
#define ALARM_LIGHT_CANCLE() (ALARM0_OFF())
#define ALARM_LIGHT2_ON() (ALARM1_ON())
#define ALARM_LIGHT2_OFF() (ALARM1_OFF())
#define ALARM_SOUND() (BUZZER_ON())
#define ALARM_SOUND_CANCLE() (BUZZER_OFF())
#define BELL() (BUZZER_ON())
#define EXT_IO_RELAY_1_ON() P3.1 = 1
#define EXT_IO_RELAY_1_OFF() P3.1 = 0
#define EXT_IO_RELAY_2_ON() P5.0 = 1
#define EXT_IO_RELAY_2_OFF() P5.0 = 0
#endif /* HAL_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -