📄 lcd.lst
字号:
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 + -