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

📄 lcd15xx.lst

📁 Keil C下通过的UCGUI,UCGUI的移植源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V8.05a   LCD15XX                                                              04/11/2008 14:19:23 PAGE 5   

             -ssible loss of data
                #pragma warning(disable : 4761)  // warning C4761: integral size mismatch in argument; conversion suppli
             -ed
                #pragma warning(disable : 4305)  // warning C4305: '=' : truncation from 'const int ' to ...
              #endif
              
              
              #ifndef LCD_DISPLAY_INDEX
                #define LCD_DISPLAY_INDEX 0
              #endif
              
              
              /*********************************************************************
              *
              *      Map hardware macros
              *
              **********************************************************************
              */
              
              /* mapping for multi-display configuration */
              #if (LCD_NUM_DISPLAYS > 1)
                #if   (LCD_DISPLAY_INDEX == 0)     /* First display in a multi-display configuration */
                  #define LCD_WRITE_A0   LCD_WRITE_A0_0
                  #define LCD_WRITE_A1   LCD_WRITE_A1_0
                  #define LCD_WRITE_A0C1 LCD_WRITE_A0C1_0
                  #define LCD_WRITE_A1C1 LCD_WRITE_A1C1_0
                  #define LCD_WRITE_A0C2 LCD_WRITE_A0C2_0
                  #define LCD_WRITE_A1C2 LCD_WRITE_A1C2_0
                  #define LCD_WRITE_A0C3 LCD_WRITE_A0C3_0
                  #define LCD_WRITE_A1C3 LCD_WRITE_A1C3_0
                  #define LCD_READ_A0    LCD_READ_A0_0
                  #define LCD_READ_A0    LCD_READ_A0_0
                  #define LCD_READ_A0C1  LCD_READ_A0C1_0
                  #define LCD_READ_A0C1  LCD_READ_A0C1_0
                  #define LCD_READ_A0C2  LCD_READ_A0C2_0
                  #define LCD_READ_A0C2  LCD_READ_A0C2_0
                  #define LCD_READ_A0C3  LCD_READ_A0C3_0
                  #define LCD_READ_A0C3  LCD_READ_A0C3_0
                #elif (LCD_DISPLAY_INDEX == 1)  /* Second display in a multi-display configuration */
                  #define LCD_WRITE_A0   LCD_WRITE_A0_1
                  #define LCD_WRITE_A1   LCD_WRITE_A1_1
                  #define LCD_WRITE_A0C1 LCD_WRITE_A0C1_1
                  #define LCD_WRITE_A1C1 LCD_WRITE_A1C1_1
                  #define LCD_WRITE_A0C2 LCD_WRITE_A0C2_1
                  #define LCD_WRITE_A1C2 LCD_WRITE_A1C2_1
                  #define LCD_WRITE_A0C3 LCD_WRITE_A0C3_1
                  #define LCD_WRITE_A1C3 LCD_WRITE_A1C3_1
                  #define LCD_READ_A0    LCD_READ_A0_1
                  #define LCD_READ_A0    LCD_READ_A0_1
                  #define LCD_READ_A0C1  LCD_READ_A0C1_1
                  #define LCD_READ_A0C1  LCD_READ_A0C1_1
                  #define LCD_READ_A0C2  LCD_READ_A0C2_1
                  #define LCD_READ_A0C2  LCD_READ_A0C2_1
                  #define LCD_READ_A0C3  LCD_READ_A0C3_1
                  #define LCD_READ_A0C3  LCD_READ_A0C3_1
                #else
                  #error This many displays not yet supported !
                #endif
              #endif
              
              /* Command definitions in dependence of selected LCD-controller */
              #if   (LCD_CONTROLLER/100 == 15) || (LCD_CONTROLLER     ==  0713)
C51 COMPILER V8.05a   LCD15XX                                                              04/11/2008 14:19:23 PAGE 6   

                #define SET_PAGE0(Page) LCD_WriteSingleCommand0(0xb0 + Page)
                #define SET_CADR0(Col)  LCD_WriteDoubleCommand0(0x10 + (Col >> 4), 0x00 + (Col & 0xf))
                #define CMD_LCD_ON      0xaf
                #define CMD_LCD_OFF     0xae
                #define WAIT0()
                #define WAIT1()
                #define WAIT2()
                #define WAIT3()
              #elif (LCD_CONTROLLER ==  108) || (LCD_CONTROLLER == 61202)
                static int _Status;
                #define SET_PAGE0(Page) LCD_WriteSingleCommand0(0xb8 + Page);
                #define SET_CADR0(Col)  LCD_WriteSingleCommand0(0x40 + Col);
                #if (LCD_NUM_CONTROLLERS > 1)
                  #define SET_PAGE1(Page) LCD_WriteSingleCommand1(0xb8 + Page);
                  #define SET_CADR1(Col)  LCD_WriteSingleCommand1(0x40 + Col);
                #endif
                #define CMD_LCD_ON      0x3f
                #define CMD_LCD_OFF     0x3e
                #define WAIT0()         do { LCD_READ_A0(_Status); }   while (_Status & 0x80);
                #define WAIT1()         do { LCD_READ_A0C1(_Status); } while (_Status & 0x80);
                #define WAIT2()         do { LCD_READ_A0C2(_Status); } while (_Status & 0x80);
                #define WAIT3()         do { LCD_READ_A0C3(_Status); } while (_Status & 0x80);
              #else
                #error LCD-controller not supported!
              #endif
              
              #ifdef WIN32     /* SEGGER internal simulation */
                void SIM_WriteA1C0(U8 Data);
                void SIM_WriteA0C0(U8 cmd);
                U8   SIM_ReadA0C0(void);
                U8   SIM_ReadA1C0(void);
                #define WRITE_DATA0(Data) SIM_WriteA1C0(Data) 
                #define WRITE_CMD0(cmd)   SIM_WriteA0C0(cmd)
                #define READ_DATA0(Data)  Data = SIM_ReadA1C0()
                #define READ_CMD0(cmd)    cmd  = SIM_ReadA0C0()
                #define INIT_CONTROLLER()
                #if LCD_NUM_CONTROLLERS > 1
                  void SIM_WriteA1C1(U8 Data);
                  void SIM_WriteA0C1(U8 cmd);
                  U8   SIM_ReadA0C1(void);
                  U8   SIM_ReadA1C1(void);
                  #define WRITE_DATA1(Data) SIM_WriteA1C1(Data) 
                  #define WRITE_CMD1(cmd)   SIM_WriteA0C1(cmd)
                  #define READ_DATA1(Data)  Data = SIM_ReadA1C1()
                  #define READ_CMD1(cmd)    cmd  = SIM_ReadA0C1()
                #endif
                #if LCD_NUM_CONTROLLERS > 2
                  void SIM_WriteA1C2(U8 Data);
                  void SIM_WriteA0C2(U8 cmd);
                  U8   SIM_ReadA0C2(void);
                  U8   SIM_ReadA1C2(void);
                  #define WRITE_DATA2(Data) SIM_WriteA1C2(Data) 
                  #define WRITE_CMD2(cmd)   SIM_WriteA0C2(cmd)
                  #define READ_DATA2(Data)  Data = SIM_ReadA1C2()
                  #define READ_CMD2(cmd)    cmd  = SIM_ReadA0C2()
                #endif
                #if LCD_NUM_CONTROLLERS > 3
                  void SIM_WriteA1C3(U8 Data);
                  void SIM_WriteA0C3(U8 cmd);
                  U8   SIM_ReadA0C3(void);
                  U8   SIM_ReadA1C3(void);
                  #define WRITE_DATA3(Data) SIM_WriteA1C3(Data) 
C51 COMPILER V8.05a   LCD15XX                                                              04/11/2008 14:19:23 PAGE 7   

                  #define WRITE_CMD3(cmd)   SIM_WriteA0C3(cmd)
                  #define READ_DATA3(Data)  Data = SIM_ReadA1C3()
                  #define READ_CMD3(cmd)    cmd  = SIM_ReadA0C3()
                #endif
              #else
                #define WRITE_CMD0(cmd)   WAIT0(); LCD_WRITE_A0(cmd)
                #define WRITE_DATA0(Data) WAIT0(); LCD_WRITE_A1(Data)
                #define READ_DATA0(Data)  WAIT0(); LCD_READ_A1(Data)
                #define READ_CMD0(cmd)    WAIT0(); LCD_READ_A0(cmd)
                #define INIT_CONTROLLER  LCD_INIT_CONTROLLER
                #if LCD_NUM_CONTROLLERS > 1
                  #define WRITE_CMD1(cmd)   WAIT1(); LCD_WRITE_A0C1(cmd)
                  #define WRITE_DATA1(Data) WAIT1(); LCD_WRITE_A1C1(Data)
                  #define READ_DATA1(Data)  WAIT1(); LCD_READ_A1C1(Data)
                  #define READ_CMD1(cmd)    WAIT1(); LCD_READ_A0C1(cmd)
                #endif
                #if LCD_NUM_CONTROLLERS > 2
                  #define WRITE_CMD2(cmd)   WAIT(2); LCD_WRITE_A0C2(cmd)
                  #define WRITE_DATA2(Data) WAIT(2); LCD_WRITE_A1C2(Data)
                  #define READ_DATA2(Data)  WAIT(2); LCD_READ_A1C2(Data)
                  #define READ_CMD2(cmd)    WAIT(2); LCD_READ_A0C2(cmd)
                #endif
                #if LCD_NUM_CONTROLLERS > 3
                  #define WRITE_CMD3(cmd)   WAIT(3); LCD_WRITE_A0C3(cmd)
                  #define WRITE_DATA3(Data) WAIT(3); LCD_WRITE_A1C3(Data)
                  #define READ_DATA3(Data)  WAIT(3); LCD_READ_A1C3(Data)
                  #define READ_CMD3(cmd)    WAIT(3); LCD_READ_A0C3(cmd)
                #endif
              #endif
              
              /*
                ********************************************************************
                *
                *                  ID translation table
                *
                ********************************************************************
              
              This table contains 0, 1, 2, ... and serves as translation table for DDBs
              
              */
              
              #define INTS(Base)  Base+0,Base+1,Base+2,Base+3,Base+4,Base+5,   \
                                  Base+6,Base+7,Base+8,Base+9,Base+10,Base+11, \
                                  Base+12,Base+13,Base+14,Base+15
              
              static const LCD_PIXELINDEX aID[] = {
                INTS(0),
                #if LCD_MAX_LOG_COLORS > 0x10
                  INTS(0x10),
                #endif
                #if LCD_MAX_LOG_COLORS > 0x20
                  INTS(0x20),
                  INTS(0x30),
                #endif
                #if LCD_MAX_LOG_COLORS > 0x40
                  INTS(0x40),
                  INTS(0x50),
                  INTS(0x60),
                  INTS(0x70),
                #endif
                #if LCD_MAX_LOG_COLORS > 0x80
                  INTS(0x80),
C51 COMPILER V8.05a   LCD15XX                                                              04/11/2008 14:19:23 PAGE 8   

                  INTS(0x90),
                  INTS(0xa0),
                  INTS(0xb0),
                  INTS(0xc0),
                  INTS(0xd0),
                  INTS(0xe0),
                  INTS(0xf0)
                #endif
              };
              
              /*
                ********************************************************************
                *                                                                  *
                *                Defaults for config switches                      *
                *                                                                  *
                ********************************************************************
              */
              
              #ifndef LCD_CACHE
                #define  LCD_CACHE (1)
              #endif
              
              #ifndef LCD_SUPPORT_REFRESH
                #define  LCD_SUPPORT_REFRESH LCD_CACHE
              #endif
              
              #ifndef LCD_REVERSEMODE_SUPPORT
                #define LCD_REVERSEMODE_SUPPORT (0)
              #endif
              
              #ifndef LCD_SUPPORT_VERIFY
                #define LCD_SUPPORT_VERIFY (0)
              #endif
              
              /* Drivers supports anti-aliasing if active. */
              #ifndef LCD_SUPPORT_ANTIALIASING
                #define LCD_SUPPORT_ANTIALIASING (0)
              #endif
              
              /* Switch for support of cache control (locking) */
              #ifndef  LCD_SUPPORT_CACHECONTROL
                #define  LCD_SUPPORT_CACHECONTROL     (1)
              #endif
              
              /* Switch support for the LCD_CopyRect function of the driver */
              #ifndef  LCD_SUPPORT_COPYRECT
                #define  LCD_SUPPORT_COPYRECT         (1)
              #endif
              
              /* If disabled, selected drawmode is ignored.
                 ==> XOR, REVERSE drawing not supported */
              #ifndef LCD_SUPPORT_DRAWMODE
                #define LCD_SUPPORT_DRAWMODE          (1)
              #endif
              
              /* Switch support for the LCD_On, LCD_Off functions of the driver */
              #ifndef  LCD_SUPPORT_ONOFF
                #define  LCD_SUPPORT_ONOFF            (1)
              #endif
              
              /* Switch for support of multiple pages.
               Only available with certain LCD-controllers */

⌨️ 快捷键说明

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