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

📄 lcd.lst

📁 hx8347 初始化,刷屏,图片显示
💻 LST
📖 第 1 页 / 共 2 页
字号:
 244   1              WMLCDDATA(0x00, L_U16(StartY));
 245   1              WMLCDCOM(0x00, 0x08);
 246   1              WMLCDDATA(0x00, H_U16(EndY));
 247   1              WMLCDCOM(0x00, 0x09);
 248   1              WMLCDDATA(0x00, L_U16(EndY));
 249   1              WMLCDCOM(0x00, 0x22);
 250   1      }
 251          
 252          
 253          /*==================================================================
 254          * Function      : lcd_display_full_screen_color
 255          * Description   : 将全屏刷为某一颜色
 256          * Input Para    : U16 val
 257          * Output Para   : void
 258          * Return Value: void
 259          ==================================================================*/
 260          void lcd_display_full_screen_color(U16 color)
 261          {
 262   1              U16 X, Y;
 263   1              
 264   1              lcd_set_write_area(LCD_FULL_SCREEN_X_START, LCD_FULL_SCREEN_Y_START, LCD_FULL_SCREEN_X_END, LCD_FULL_SCRE
             -EN_Y_END);
 265   1      
 266   1              for(X = 0; X < LCD_WIDTH; X++)
 267   1              {
 268   2                      for(Y = 0; Y < LCD_HEIGHT; Y++)
 269   2                      {
 270   3                              WMLCDDATA(H_U16(color), L_U16(color));
 271   3                      }
 272   2              }
 273   1      
 274   1      }
 275          
 276          /*==================================================================
 277          * Function      : lcd_display_rectangle_color
 278          * Description   : 将某一坐标矩形刷为某一颜色
 279          * Input Para    : U8 StartX, U8 StartY,U8 EndX, U8 EndY, U16 color
 280          * Output Para   : void
 281          * Return Value: void
 282          ==================================================================*/
 283          void lcd_display_rectangle_color(U16 StartX, U16 StartY,U16 EndX, U16 EndY, U16 color)
 284          {
 285   1              U16 i, j;
 286   1              
 287   1              lcd_set_write_area(StartX, StartY, EndX, EndY);
 288   1              
 289   1              for(j = StartY; j <= EndY; j++)
 290   1              {
 291   2                      for(i = StartX; i <= EndX; i++)
 292   2                      {
 293   3                              WMLCDDATA(H_U16(color),  L_U16(color));
 294   3                      }
 295   2              }
 296   1      
 297   1      }
 298          
 299          
 300          /*==================================================================
C51 COMPILER V7.10   LCD                                                                   04/14/2009 23:28:41 PAGE 6   

 301          * Function      : lcd_display_dot
 302          * Description   : 显示3x3的点
 303          * Input Para    : U8 X, U8 Y  中心点的坐标
 304          * Output Para   : void
 305          * Return Value: void
 306          ==================================================================*/
 307          void lcd_display_dot(U16 X, U16 Y)
 308          {
 309   1              U8 i;
 310   1              U16 StX, StY, EndX, EndY;
 311   1      
 312   1              if(X < 1)
 313   1              {
 314   2                      X= 1;
 315   2              }
 316   1      
 317   1              if(X > 238)
 318   1              {
 319   2                      X = 238;
 320   2              }
 321   1      
 322   1              if(Y < 1)
 323   1              {
 324   2                      Y = 1;
 325   2              }
 326   1      
 327   1              if(Y > 318)
 328   1              {
 329   2                      Y = 318;
 330   2              }
 331   1      
 332   1              
 333   1              StX = X - 1;
 334   1      
 335   1      
 336   1              StY = Y - 1;
 337   1      
 338   1      
 339   1              EndX = X + 1;
 340   1      
 341   1              
 342   1              EndY = Y + 1;
 343   1      
 344   1      
 345   1              lcd_set_write_area(StX, StY, EndX, EndY);
 346   1              for(i = 0; i < 9; i++)
 347   1              {
 348   2                      WMLCDDATA(0xF8, 0x00);
 349   2              }
 350   1      
 351   1              return; 
 352   1      }
 353          
 354          /*==================================================================
 355          * Function      : lcd_display
 356          * Description   : 
 357          * Input Para    : EColor color
 358          * Output Para   : void
 359          * Return Value: void
 360          ==================================================================*/
 361          void lcd_display(EColor eColor)
 362          {
C51 COMPILER V7.10   LCD                                                                   04/14/2009 23:28:41 PAGE 7   

 363   1              
 364   1              U16 X, Y;
 365   1              switch(eColor)
 366   1              {
 367   2                      case LCD_BLACK:
 368   2                              lcd_display_full_screen_color(BLACK);
 369   2                              break;
 370   2                      case LCD_WHITE:
 371   2                              lcd_display_full_screen_color(WHITE);
 372   2                              break;
 373   2                      case LCD_RED:
 374   2                              lcd_display_full_screen_color(RED);
 375   2                              break;
 376   2                      case LCD_GREEN:
 377   2                              lcd_display_full_screen_color(GREEN);
 378   2                              break;
 379   2                      case LCD_BLUE:
 380   2                              lcd_display_full_screen_color(BLUE);
 381   2                              break;
 382   2                      case LCD_MIX:
 383   2                              lcd_set_write_area(LCD_FULL_SCREEN_X_START, LCD_FULL_SCREEN_Y_START, LCD_FULL_SCREEN_X_END, LCD_FULL_SC
             -REEN_Y_END);
 384   2                              for(Y = 0; Y < 64; Y++)
 385   2                              {
 386   3                                      for(X = 0; X < 240; X++)
 387   3                                      {
 388   4                                              WMLCDDATA(0xFF, 0xFF);
 389   4                                      }
 390   3                              }
 391   2                              for(Y = 64; Y < 128; Y++)
 392   2                              {
 393   3                                      for(X = 0; X < 240; X++)
 394   3                                      {
 395   4                                              WMLCDDATA(0x00, 0x00);
 396   4                                      }
 397   3                              }
 398   2                              for(Y = 128; Y < 192; Y++)
 399   2                              {
 400   3                                      for(X = 0; X < 240; X++)
 401   3                                      {
 402   4                                              WMLCDDATA(0xF8, 0x00);
 403   4                                      }
 404   3                              }
 405   2                              for(Y = 192; Y < 256; Y++)
 406   2                              {
 407   3                                      for(X = 0; X < 240; X++)
 408   3                                      {
 409   4                                              WMLCDDATA(0x07, 0xE0);
 410   4                                      }
 411   3                              }
 412   2                              for(Y = 256; Y < 320; Y++)
 413   2                              {
 414   3                                      for(X = 0; X < 240; X++)
 415   3                                      {
 416   4                                              WMLCDDATA(0x00, 0x1F);
 417   4                                      }
 418   3                              }
 419   2                              break;
 420   2                      case LCD_LOGO:
 421   2                              Display_Logo();
 422   2                              break;
 423   2                      case LCD_NAND:
C51 COMPILER V7.10   LCD                                                                   04/14/2009 23:28:41 PAGE 8   

 424   2      
 425   2                              nand_disp_bitmap(0);
 426   2                              break;
 427   2                      case LCD_TP_CALI:
 428   2                              bTP_Cali = TRUE;
 429   2                              lcd_display_full_screen_color(WHITE);
 430   2                              lcd_display_rectangle_color(178, 238, 182, 242, BLUE);
 431   2                              break;
 432   2              }
 433   1              
 434   1              lcd_set_write_area(LCD_FULL_SCREEN_X_START, LCD_FULL_SCREEN_Y_START, LCD_FULL_SCREEN_X_END, LCD_FULL_SCRE
             -EN_Y_END);
 435   1      
 436   1              return;
 437   1      }
 438          
 439          
 440          
 441          #if 0
              void LCD_EnterSleep_HX8347A(void)
              {
                      WMLCDCOM(0x00, 0x26); WMLCDDATA(0x00, 0x38); //
                      WMLCDCOM(0x00, 0x26); WMLCDDATA(0x00, 0x28); //
                      WMLCDCOM(0x00, 0x26); WMLCDDATA(0x00, 0x00); //
              
                      WMLCDCOM(0x00, 0x43); WMLCDDATA(0x00, 0x00); //
                      WMLCDCOM(0x00, 0x1B); WMLCDDATA(0x00, 0x00); // 
                      WMLCDCOM(0x00, 0x1B); WMLCDDATA(0x00, 0x08); // 
                      WMLCDCOM(0x00, 0x1C); WMLCDDATA(0x00, 0x00); // 
                      WMLCDCOM(0x00, 0x90); WMLCDDATA(0x00, 0x00); //
                      WMLCDCOM(0x00, 0x1B); WMLCDDATA(0x00, 0x09); // 
                      WMLCDCOM(0x00, 0x19); WMLCDDATA(0x00, 0x48); // 
              }
              
              void LCD_ExitSleep_HX8347A(void)
              {
                      WMLCDCOM(0x00, 0x19); WMLCDDATA(0x00, 0x49); // 
                      WMLCDCOM(0x00, 0x1B); WMLCDDATA(0x00, 0x08); // 
                      WMLCDCOM(0x00, 0x20); WMLCDDATA(0x00, 0x40); // BT=0100
                      WMLCDCOM(0x00, 0x1D); WMLCDDATA(0x00, 0x07); // VC1=111
                      WMLCDCOM(0x00, 0x1E); WMLCDDATA(0x00, 0x00); // VC3=000
                      WMLCDCOM(0x00, 0x1F); WMLCDDATA(0x00, 0x03); // VRH=0011
                      WMLCDCOM(0x00, 0x44); WMLCDDATA(0x00, 0x50); // VCM=101 0000
                      WMLCDCOM(0x00, 0x45); WMLCDDATA(0x00, 0x13); // VDV=1 0001
                      WMLCDCOM(0x00, 0x1C); WMLCDDATA(0x00, 0x04); // AP=100
                      WMLCDCOM(0x00, 0x1B); WMLCDDATA(0x00, 0x18); // 
                      WMLCDCOM(0x00, 0x1B); WMLCDDATA(0x00, 0x10); // 
                      WMLCDCOM(0x00, 0x43); WMLCDDATA(0x00, 0x80); //set VCOMG=1
                      WMLCDCOM(0x00, 0x90); WMLCDDATA(0x00, 0x7f); //
                      WMLCDCOM(0x00, 0x26); WMLCDDATA(0x00, 0x04); //GON=0, DTE=0, D=01
                      WMLCDCOM(0x00, 0x26); WMLCDDATA(0x00, 0x24); //GON=1, DTE=0, D=01
                      WMLCDCOM(0x00, 0x26); WMLCDDATA(0x00, 0x2C); //GON=1, DTE=0, D=11
                      WMLCDCOM(0x00, 0x26); WMLCDDATA(0x00, 0x3C)); //GON=1, DTE=1, D=11
              }
              #endif
 478          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1645    ----
   CONSTANT SIZE    =  38720    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V7.10   LCD                                                                   04/14/2009 23:28:41 PAGE 9   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      30
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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