1 2 3 4 #ifndef __CH57x_LCD_H__ 5 #define __CH57x_LCD_H__ 6 7 #ifdef __cplusplus 8 extern "C" { 9 #endif 10 11 #include "CH579SFR.h" 12 #include "core_cm0.h" 13 14 /** 15 * @brief Configuration LCD driver power 16 */ 17 typedef enum 18 { 19 LCD_PS_3V3 = 0, // 3.3V 驱动 20 LCD_PS_2V5, // 2.5V 驱动 21 }LCDDrvPowerTypeDef; 22 23 24 /** 25 * @brief Configuration LCD bias 26 */ 27 typedef enum 28 { 29 LCD_1_2_Bias = 0, // 2级分压 30 LCD_1_3_Bias, // 3级分压 31 }LCDBiasTypeDef; 32 33 /** 34 * @brief Configuration LCD duty 35 */ 36 typedef enum 37 { 38 LCD_1_2_Duty = 0, // COM0-COM1 39 LCD_1_3_Duty, // COM0-COM2 40 LCD_1_4_Duty, // COM0-COM3 41 }LCDDutyTypeDef; 42 43 /** 44 * @brief Configuration LCD scan clk 45 */ 46 typedef enum 47 { 48 LCD_CLK_256 = 0, // 256Hz 49 LCD_CLK_512, // 512Hz 50 LCD_CLK_1000, // 1KHz 51 LCD_CLK_128 // 128Hz 52 }LCDSCANCLKTypeDef; 53 54 55 void LCD_DefInit( void ); /* LCD段式屏驱动默认初始化配置 */ 56 57 #define LCD_PowerDown() (R8_LCD_CTRL_MOD &= ~(RB_LCD_POWER_ON|RB_SYS_POWER_ON)) /* LCD功能模块关闭 */ 58 #define LCD_PowerOn() (R8_LCD_CTRL_MOD |= (RB_LCD_POWER_ON|RB_SYS_POWER_ON)) /* LCD功能模块开启 */ 59 60 // 输入值参考 LCDDrvPowerTypeDef 61 #define LCD_PowerCfg( d ) (R8_LCD_CTRL_MOD=R8_LCD_CTRL_MOD&0x7F|(d<<7)) /* 配置LCD的 供电电压选择 */ 62 // 输入值参考 LCDSCANCLKTypeDef 63 #define LCD_ScanCLKCfg( d ) (R8_LCD_CTRL_MOD=R8_LCD_CTRL_MOD&0x9F|(d<<5)) /* 配置LCD的 扫描时钟选择 */ 64 // 输入值参考 LCDDutyTypeDef 65 #define LCD_DutyCfg( d ) (R8_LCD_CTRL_MOD=R8_LCD_CTRL_MOD&0xE7|(d<<3)) /* 配置LCD的 duty选择 */ 66 // 输入值参考 LCDBiasTypeDef 67 #define LCD_BiasCfg( d ) (R8_LCD_CTRL_MOD=R8_LCD_CTRL_MOD&0xFB|(d<<2)) /* 配置LCD的 bias选择 */ 68 69 #define LCD_WriteData0( d ) (R32_LCD_RAM0=R32_LCD_RAM0&0xffffff00|((UINT32)d)) /* 填充SEG0驱动数值 */ 70 #define LCD_WriteData1( d ) (R32_LCD_RAM0=R32_LCD_RAM0&0xffff00ff|((UINT32)d<<8)) /* 填充SEG1驱动数值 */ 71 #define LCD_WriteData2( d ) (R32_LCD_RAM0=R32_LCD_RAM0&0xff00ffff|((UINT32)d<<16)) /* 填充SEG2驱动数值 */ 72 #define LCD_WriteData3( d ) (R32_LCD_RAM0=R32_LCD_RAM0&0x00ffffff|((UINT32)d<<24)) /* 填充SEG3驱动数值 */ 73 74 #define LCD_WriteData4( d ) (R32_LCD_RAM1=R32_LCD_RAM1&0xffffff00|((UINT32)d)) /* 填充SEG4驱动数值 */ 75 #define LCD_WriteData5( d ) (R32_LCD_RAM1=R32_LCD_RAM1&0xffff00ff|((UINT32)d<<8)) /* 填充SEG5驱动数值 */ 76 #define LCD_WriteData6( d ) (R32_LCD_RAM1=R32_LCD_RAM1&0xff00ffff|((UINT32)d<<16)) /* 填充SEG6驱动数值 */ 77 #define LCD_WriteData7( d ) (R32_LCD_RAM1=R32_LCD_RAM1&0x00ffffff|((UINT32)d<<24)) /* 填充SEG7驱动数值 */ 78 79 #define LCD_WriteData8( d ) (R32_LCD_RAM2=R32_LCD_RAM2&0xffffff00|((UINT32)d)) /* 填充SEG8驱动数值 */ 80 #define LCD_WriteData9( d ) (R32_LCD_RAM2=R32_LCD_RAM2&0xffff00ff|((UINT32)d<<8)) /* 填充SEG9驱动数值 */ 81 #define LCD_WriteData10( d ) (R32_LCD_RAM2=R32_LCD_RAM2&0xff00ffff|((UINT32)d<<16)) /* 填充SEG10驱动数值 */ 82 #define LCD_WriteData11( d ) (R32_LCD_RAM2=R32_LCD_RAM2&0x00ffffff|((UINT32)d<<24)) /* 填充SEG11驱动数值 */ 83 84 85 86 #ifdef __cplusplus 87 } 88 #endif 89 90 #endif // __CH57x_LCD_H__ 91 92