📄 display.h
字号:
#ifndef _DISPLAY_H_
#define _DISPLAY_H_
#define LCD_ADDR_PCF8576 0x70
#define LCD_ADDR_START 0x00
#define LCD_DISPLAY_OFF 0xD0
#define LCD_DISPLAY_ON 0xD8
#define LCD_PARTS_SELECT 0xE0
#define LCD_FLASH_CON 0xF0
#define LCD_SEG_A BIT3
#define LCD_SEG_B BIT2
#define LCD_SEG_C BIT1
#define LCD_SEG_D BIT4
#define LCD_SEG_E BIT5
#define LCD_SEG_F BIT7
#define LCD_SEG_G BIT6
#define LCD_SEG_H BIT0
#define LCD_CODE_INFO_0 (LCD_SEG_A|LCD_SEG_B|LCD_SEG_C|LCD_SEG_D|LCD_SEG_E|LCD_SEG_F)
#define LCD_CODE_INFO_1 (LCD_SEG_B|LCD_SEG_C)
#define LCD_CODE_INFO_2 (LCD_SEG_A|LCD_SEG_B|LCD_SEG_D|LCD_SEG_E|LCD_SEG_G)
#define LCD_CODE_INFO_3 (LCD_SEG_A|LCD_SEG_B|LCD_SEG_C|LCD_SEG_D|LCD_SEG_G)
#define LCD_CODE_INFO_4 (LCD_SEG_B|LCD_SEG_C|LCD_SEG_F|LCD_SEG_G)
#define LCD_CODE_INFO_5 (LCD_SEG_A|LCD_SEG_C|LCD_SEG_D|LCD_SEG_F|LCD_SEG_G)
#define LCD_CODE_INFO_6 (LCD_SEG_A|LCD_SEG_C|LCD_SEG_D|LCD_SEG_E|LCD_SEG_F|LCD_SEG_G)
#define LCD_CODE_INFO_7 (LCD_SEG_A|LCD_SEG_B|LCD_SEG_C)
#define LCD_CODE_INFO_8 (LCD_SEG_A|LCD_SEG_B|LCD_SEG_C|LCD_SEG_D|LCD_SEG_E|LCD_SEG_F|LCD_SEG_G)
#define LCD_CODE_INFO_9 (LCD_SEG_A|LCD_SEG_B|LCD_SEG_C|LCD_SEG_D|LCD_SEG_F|LCD_SEG_G)
#define LCD_CODE_INFO_A (LCD_SEG_A|LCD_SEG_B|LCD_SEG_C|LCD_SEG_E|LCD_SEG_F|LCD_SEG_G)
#define LCD_CODE_INFO_b (LCD_SEG_C|LCD_SEG_D|LCD_SEG_E|LCD_SEG_F|LCD_SEG_G)
#define LCD_CODE_INFO_C (LCD_SEG_A|LCD_SEG_D|LCD_SEG_E|LCD_SEG_F)
#define LCD_CODE_INFO_d (LCD_SEG_B|LCD_SEG_C|LCD_SEG_D|LCD_SEG_E|LCD_SEG_G)
#define LCD_CODE_INFO_E (LCD_SEG_A|LCD_SEG_D|LCD_SEG_E|LCD_SEG_F|LCD_SEG_G)
#define LCD_CODE_INFO_F (LCD_SEG_A|LCD_SEG_E|LCD_SEG_F|LCD_SEG_G)
#define LCD_CODE_INFO_G (LCD_SEG_A|LCD_SEG_C|LCD_SEG_D|LCD_SEG_E|LCD_SEG_F)
#define LCD_CODE_INFO_H (LCD_SEG_B|LCD_SEG_C|LCD_SEG_E|LCD_SEG_F|LCD_SEG_G)
#define LCD_CODE_INFO_i (LCD_SEG_C)
#define LCD_CODE_INFO_L (LCD_SEG_D|LCD_SEG_E|LCD_SEG_F)
#define LCD_CODE_INFO_n (LCD_SEG_C|LCD_SEG_E|LCD_SEG_G)
#define LCD_CODE_INFO_o (LCD_SEG_C|LCD_SEG_D|LCD_SEG_E|LCD_SEG_G)
#define LCD_CODE_INFO_P (LCD_SEG_A|LCD_SEG_B|LCD_SEG_E|LCD_SEG_F|LCD_SEG_G)
#define LCD_CODE_INFO_q (LCD_SEG_A|LCD_SEG_B|LCD_SEG_C|LCD_SEG_F|LCD_SEG_G)
#define LCD_CODE_INFO_r (LCD_SEG_E|LCD_SEG_G)
#define LCD_CODE_INFO_R (LCD_SEG_A|LCD_SEG_E|LCD_SEG_F)
#define LCD_CODE_INFO_S (LCD_SEG_A|LCD_SEG_C|LCD_SEG_D|LCD_SEG_F|LCD_SEG_G)
#define LCD_CODE_INFO_t (LCD_SEG_C|LCD_SEG_G)
#define LCD_CODE_INFO_U (LCD_SEG_B|LCD_SEG_C|LCD_SEG_D|LCD_SEG_E|LCD_SEG_F)
#define LCD_CODE_INFO_u (LCD_SEG_C|LCD_SEG_D|LCD_SEG_E)
#define LCD_CODE_INFO__ (LCD_SEG_G)
#define LCD_CODE_INFO_EQUAL (LCD_SEG_D|LCD_SEG_G)
#define LCD_CODE_INFO_NONE ( 0 )
#define DISP_MAX_ITEM 48
#define DISPLAY_ITEM 27
#define DISPLAY_ITEM_BYTE 4
#define LCD_CODE_ADDR_01 3
#define LCD_CODE_ADDR_02 4
#define LCD_CODE_ADDR_03 5
#define LCD_CODE_ADDR_04 6
#define LCD_CODE_ADDR_05 7
#define LCD_CODE_ADDR_06 8
#define LCD_CODE_ADDR_07 9
#define LCD_CODE_ADDR_08 10
#define LCD_CODE_ADDR_09 11
#define LCD_CODE_ADDR_10 12
#define LCD_CODE_ADDR_11 13
#define LCD_CODE_ADDR_12 14
#define LCD_CN_INFO_ADDR_MNUM 18
#define LCD_CN_INFO_MNUM BIT2
#define LCD_CN_INFO_ADDR_UNUM 18
#define LCD_CN_INFO_UNUM BIT1
#define LCD_CN_INFO_ADDR_TIME 17
#define LCD_CN_INFO_TIME BIT1
#define LCD_CN_INFO_ADDR_DATE 17
#define LCD_CN_INFO_DATE BIT0
#define LCD_CN_INFO_ADDR_WEEK 18
#define LCD_CN_INFO_WEEK BIT5
#define LCD_CN_INFO_ADDR_ZONE 18
#define LCD_CN_INFO_ZONE BIT0
#define LCD_CN_INFO_ADDR_POT 18
#define LCD_CN_INFO_POT BIT4
#define LCD_CN_INFO_ADDR_ACTIVE 17
#define LCD_CN_INFO_ACTIVE BIT5
#define LCD_CN_INFO_ADDR_REACTIVE 17
#define LCD_CN_INFO_REACTIVE BIT4
#define LCD_CN_INFO_ADDR_SUM 17
#define LCD_CN_INFO_SUM BIT6
#define LCD_CN_INFO_ADDR_PEAK 17
#define LCD_CN_INFO_PEAK BIT7
#define LCD_CN_INFO_ADDR_APEX 17
#define LCD_CN_INFO_APEX BIT2
#define LCD_CN_INFO_ADDR_CALM 17
#define LCD_CN_INFO_CALM BIT3
#define LCD_CN_INFO_ADDR_VALE 18
#define LCD_CN_INFO_VALE BIT6
#define LCD_CN_INFO_ADDR_PWR 18
#define LCD_CN_INFO_PWR BIT7
#define LCD_CN_INFO_ADDR_REQ 18
#define LCD_CN_INFO_REQ BIT3
#define LCD_CN_INFO_ADDR_POSITIVE 16
#define LCD_CN_INFO_POSITIVE BIT5
#define LCD_CN_INFO_ADDR_REVERSE 16
#define LCD_CN_INFO_REVERSE BIT4
#define LCD_CN_INFO_ADDR_WINTER 2
#define LCD_CN_INFO_WINTER BIT6
#define LCD_CN_INFO_ADDR_COM 5
#define LCD_CN_INFO_COM BIT0
#define LCD_CN_INFO_ADDR_PGM 1
#define LCD_CN_INFO_PGM BIT0
#define LCD_CN_INFO_ADDR_CONSTANT 1
#define LCD_CN_INFO_CONSTANT BIT6
#define LCD_CN_INFO_ADDR_PWRCUT 1
#define LCD_CN_INFO_PWRCUT BIT5
#define LCD_CN_INFO_ADDR_COVERUP 1
#define LCD_CN_INFO_COVERUP BIT4
#define LCD_CN_INFO_ADDR_COVERDOWN 1
#define LCD_CN_INFO_COVERDOWN BIT7
#define LCD_CN_INFO_ADDR_TIMES 1
#define LCD_CN_INFO_TIMES BIT2
#define LCD_CN_INFO_ADDR_ALARM 1
#define LCD_CN_INFO_ALARM BIT3
#define LCD_CN_INFO_ADDR_LOWPWR 1
#define LCD_CN_INFO_LOWPWR BIT1
#define LCD_CN_INFO_ADDR_LOSTPHASE 2
#define LCD_CN_INFO_LOSTPHASE BIT5
#define LCD_EN_INFO_ADDR_IA 2
#define LCD_EN_INFO_IA BIT2
#define LCD_EN_INFO_ADDR_IB 2
#define LCD_EN_INFO_IB BIT3
#define LCD_EN_INFO_ADDR_IC 2
#define LCD_EN_INFO_IC BIT7
#define LCD_EN_INFO_ADDR_UA 2
#define LCD_EN_INFO_UA BIT1
#define LCD_EN_INFO_ADDR_UB 2
#define LCD_EN_INFO_UB BIT0
#define LCD_EN_INFO_ADDR_UC 2
#define LCD_EN_INFO_UC BIT4
#define LCD_EN_INFO_ADDR_BPS 6
#define LCD_EN_INFO_BPS BIT0
#define LCD_EN_INFO_ADDR_TEMP 7
#define LCD_EN_INFO_TEMP BIT0
#define LCD_EN_INFO_ADDR_WATT 16
#define LCD_EN_INFO_WATT BIT6
#define LCD_EN_INFO_ADDR_VAR 16
#define LCD_EN_INFO_VAR BIT7
#define LCD_SY_INFO_ADDR_S 0
#define LCD_SY_INFO_ADDR_S1 0
#define LCD_SY_INFO_S1 BIT0
#define LCD_SY_INFO_ADDR_S2 0
#define LCD_SY_INFO_S2 BIT1
#define LCD_SY_INFO_ADDR_S3 0
#define LCD_SY_INFO_S3 BIT2
#define LCD_SY_INFO_ADDR_S4 0
#define LCD_SY_INFO_S4 BIT3
#define LCD_SY_INFO_ADDR_S5 0
#define LCD_SY_INFO_S5 BIT7
#define LCD_SY_INFO_ADDR_S6 0
#define LCD_SY_INFO_S6 BIT6
#define LCD_SY_INFO_ADDR_S7 0
#define LCD_SY_INFO_S7 BIT5
#define LCD_SY_INFO_ADDR_S8 0
#define LCD_SY_INFO_S8 BIT4
#define LCD_SY_INFO_ADDR_S9 14
#define LCD_SY_INFO_S9 BIT0
#define LCD_SY_INFO_ADDR_PEAK 16
#define LCD_SY_INFO_PEAK BIT3
#define LCD_SY_INFO_ADDR_APEX 16
#define LCD_SY_INFO_APEX BIT2
#define LCD_SY_INFO_ADDR_CALM 16
#define LCD_SY_INFO_CALM BIT1
#define LCD_SY_INFO_ADDR_VALE 16
#define LCD_SY_INFO_VALE BIT0
#define LCD_SY_INFO_ADDR_P1 3
#define LCD_SY_INFO_P1 BIT0
#define LCD_SY_INFO_ADDR_P2 4
#define LCD_SY_INFO_P2 BIT0
#define LCD_SY_INFO_ADDR_P6 8
#define LCD_SY_INFO_P6 BIT0
#define LCD_SY_INFO_ADDR_P7 9
#define LCD_SY_INFO_P7 BIT0
#define LCD_SY_INFO_ADDR_P8 10
#define LCD_SY_INFO_P8 BIT0
#define LCD_SY_INFO_ADDR_P9 11
#define LCD_SY_INFO_P9 BIT0
#define LCD_SY_INFO_ADDR_P10 12
#define LCD_SY_INFO_P10 BIT0
#define LCD_SY_INFO_ADDR_P11 13
#define LCD_SY_INFO_P11 BIT0
#define LCD_SY_INFO_ADDR_M1 15
#define LCD_SY_INFO_M1 BIT7
#define LCD_SY_INFO_ADDR_M2 15
#define LCD_SY_INFO_M2 BIT6
#define LCD_SY_INFO_ADDR_M3 15
#define LCD_SY_INFO_M3 BIT5
#define LCD_SY_INFO_ADDR_M4 15
#define LCD_SY_INFO_M4 BIT4
#define LCD_SY_INFO_ADDR_N1 15
#define LCD_SY_INFO_N1 BIT3
#define LCD_SY_INFO_ADDR_N2 15
#define LCD_SY_INFO_N2 BIT2
#define LCD_SY_INFO_ADDR_N3 15
#define LCD_SY_INFO_N3 BIT1
#define LCD_SY_INFO_ADDR_N4 15
#define LCD_SY_INFO_N4 BIT0
#define LCD_INFO_2CODE_H_ 0
#define LCD_INFO_2CODE_L_ 2
#define DISP_COLON_FRONT() \
{ \
LCDMEM[LCD_SY_INFO_ADDR_P7]|=LCD_SY_INFO_P7; \
LCDMEM[LCD_SY_INFO_ADDR_P8]|=LCD_SY_INFO_P8; \
}
#define DISP_COLON_REAR() \
{ \
LCDMEM[LCD_SY_INFO_ADDR_P6]|=LCD_SY_INFO_P6; \
LCDMEM[LCD_SY_INFO_ADDR_P10]|=LCD_SY_INFO_P10; \
}
#define DISP_UNION_W() (LCDMEM[LCD_SY_INFO_ADDR_S]|=(LCD_SY_INFO_S2|LCD_SY_INFO_S3|LCD_SY_INFO_S4))
#define DISP_UNION_KW() (LCDMEM[LCD_SY_INFO_ADDR_S]|=(LCD_SY_INFO_S1|LCD_SY_INFO_S2|LCD_SY_INFO_S3|LCD_SY_INFO_S4))
#define DISP_UNION_KWH() (LCDMEM[LCD_SY_INFO_ADDR_S]|=(LCD_SY_INFO_S1|LCD_SY_INFO_S2|LCD_SY_INFO_S3|LCD_SY_INFO_S4|LCD_SY_INFO_S6|LCD_SY_INFO_S7|LCD_SY_INFO_S8))
#define DISP_UNION_AH() (LCDMEM[LCD_SY_INFO_ADDR_S]|=(LCD_SY_INFO_S4|LCD_SY_INFO_S5|LCD_SY_INFO_S6|LCD_SY_INFO_S7|LCD_SY_INFO_S8))
#define DISP_UNION_VAR() (LCDMEM[LCD_SY_INFO_ADDR_S]|=(LCD_SY_INFO_S2|LCD_SY_INFO_S4|LCD_SY_INFO_S5|LCD_SY_INFO_S6|LCD_SY_INFO_S7|LCD_SY_INFO_S8))
#define DISP_UNION_KVAR() (LCDMEM[LCD_SY_INFO_ADDR_S]|=(LCD_SY_INFO_S1|LCD_SY_INFO_S2|LCD_SY_INFO_S4|LCD_SY_INFO_S5|LCD_SY_INFO_S7))
#define DISP_UNION_KVARH() (LCDMEM[LCD_SY_INFO_ADDR_S]|=(LCD_SY_INFO_S1|LCD_SY_INFO_S2|LCD_SY_INFO_S4|LCD_SY_INFO_S5|LCD_SY_INFO_S6|LCD_SY_INFO_S7|LCD_SY_INFO_S8);LCDMEM[LCD_SY_INFO_ADDR_S9]|=LCD_SY_INFO_S9)
#define DISP_UNION_KVAH() (LCDMEM[LCD_SY_INFO_ADDR_S]|=(LCD_SY_INFO_S1|LCD_SY_INFO_S2|LCD_SY_INFO_S4|LCD_SY_INFO_S5|LCD_SY_INFO_S6|LCD_SY_INFO_S7|LCD_SY_INFO_S8))
#define DISP_UNION_KVA() (LCDMEM[LCD_SY_INFO_ADDR_S]|=(LCD_SY_INFO_S1|LCD_SY_INFO_S2|LCD_SY_INFO_S4|LCD_SY_INFO_S5))
#define DISP_UNION_V() (LCDMEM[LCD_SY_INFO_ADDR_S]|=LCD_SY_INFO_S2)
#define DISP_UNION_A() (LCDMEM[LCD_SY_INFO_ADDR_S]|=(LCD_SY_INFO_S4|LCD_SY_INFO_S5))
#define DISP_CN_MNUM() (LCDMEM[LCD_CN_INFO_ADDR_MNUM]|=LCD_CN_INFO_MNUM)
#define DISP_CN_UNUM() (LCDMEM[LCD_CN_INFO_ADDR_UNUM]|=LCD_CN_INFO_UNUM)
#define DISP_CN_DATE() (LCDMEM[LCD_CN_INFO_ADDR_DATE]|=LCD_CN_INFO_DATE)
#define DISP_CN_TIME() (LCDMEM[LCD_CN_INFO_ADDR_DATE]|=LCD_CN_INFO_TIME)
#define LCD_DISP_FLG_ACTIVE BIT0
#define LCD_DISP_FLG_REFIND BIT1
#define LCD_DISP_FLG_PAGEUP BIT2
#define LCD_DISP_FLG_PAGEDOWN BIT3
#define LCD_DISP_FLG_PWR_SUM BIT4
#define LCD_DISP_NEXT BIT5
#define LCD_DISP_TIME BIT6
#define LCD_DISP_ALL BIT7
#define LCD_FLASH_FLAG BIT0
#define LCD_DISPLAY_ON_FLAG BIT1
#define LCD_DISPLAY_OFF_FLAG BIT2
#define DISP_POWER_CNT 12
extern const unsigned char _disp_power_item[];
extern const unsigned char _LcdCodeHex[16];
extern unsigned char LcdDispFlag;
extern unsigned char LCDMEM[20];
extern unsigned char LcdStopInterval;
extern unsigned char UserKeyDownNum;
#define DISPLAY_PAGE_DOWN 1
#define DISPLAY_PGAE_UP 2
#define ACTIVE_PROGRAM 3
#ifdef _TEMPERATURE
extern signed char CurrentTemperature;
#endif
extern void ClearLcd(void);
extern void LargeLedDisplay4Code3Bcd(unsigned char pos,unsigned short data);
extern void LargeLedDisplay6Bcd(unsigned char *data);
extern void DisplayDateTimeData(unsigned char *dt);
extern void DisplayReinit(void);
extern void DisplayContentReinit(void);
extern void DisplayRefresh(void);
extern void InitDisplayPageInfo(void);
extern void OnDisplayPageUp(void);
extern void OnDisplayPageDown(void);
extern void IrKeyDispose(void);
extern void LcdDisplayOpen(void);
extern void LcdDisplayControl(uchar time);
extern void LcdDisplayClose();
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -