📄 lcd_dis.lst
字号:
446 //========================================================================
447 // 函数: unsigned int Get_Dot(int x,int y)
448 // 描述: 获取x,y为坐标的象素
449 // 参数: x X轴坐标 y Y轴坐标
450 // 返回: Color 像素颜色
451 // 备注: 这里以及之前的所有x和y坐标系都是用户层的,并不是实际LCD的坐标体系
452 // 本函数提供可进行坐标变换的接口
453 // 版本:
454 // 2006/10/15 First version
455 //========================================================================
456 unsigned int Get_Dot(int x,int y)
457 {
458 1 #if LCD_XY_Switch == 0
459 1 #if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 0)
460 1 return Get_Dot_LCD(x,y);
461 1 #endif
462 1 #if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 0)
return Get_Dot_LCD(LCD_X_MAX - x,y);
#endif
465 1 #if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 1)
return Get_Dot_LCD(x,LCD_Y_MAX - y);
#endif
468 1 #if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 1)
return Get_Dot_LCD(LCD_X_MAX - x,LCD_Y_MAX - y);
#endif
471 1 #endif
472 1 #if LCD_XY_Switch == 1
#if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 0)
return Get_Dot_LCD(y,x);
#endif
#if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 0)
return Get_Dot_LCD(y,LCD_Y_MAX - x);
#endif
#if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 1)
return Get_Dot_LCD(LCD_X_MAX - y,x);
#endif
#if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 1)
return Get_Dot_LCD(LCD_X_MAX - y,LCD_Y_MAX - x);
#endif
#endif
486 1 }
487
488 //========================================================================
489 // 函数: void Clear_Dot(int x,int y)
C51 COMPILER V8.02 LCD_DIS 06/27/2007 01:39:54 PAGE 9
490 // 描述: 清除以x,y为坐标的象素
491 // 参数: x X轴坐标 y Y轴坐标
492 // 返回: 无
493 // 备注: 这里以及之前的所有x和y坐标系都是用户层的,并不是实际LCD的坐标体系
494 // 本函数提供可进行坐标变换的接口
495 // 版本:
496 // 2006/10/15 First version
497 //========================================================================
498 void Clear_Dot(int x,int y)
499 {
500 1 #if LCD_XY_Switch == 0
501 1 #if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 0)
502 1 Clear_Dot_LCD(x,y);
503 1 #endif
504 1 #if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 0)
Clear_Dot_LCD(LCD_X_MAX - x,y);
#endif
507 1 #if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 1)
Clear_Dot_LCD(x,LCD_Y_MAX - y);
#endif
510 1 #if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 1)
Clear_Dot_LCD(LCD_X_MAX - x,LCD_Y_MAX - y);
#endif
513 1 #endif
514 1 #if LCD_XY_Switch == 1
#if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 0)
Clear_Dot_LCD(y,x);
#endif
#if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 0)
Clear_Dot_LCD(y,LCD_Y_MAX - x);
#endif
#if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 1)
Clear_Dot_LCD(LCD_X_MAX - y,x);
#endif
#if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 1)
Clear_Dot_LCD(LCD_X_MAX - y,LCD_Y_MAX - x);
#endif
#endif
528 1 }
529 //========================================================================
530 // 函数: void Set_Dot_Addr(int x,int y)
531 // 描述: 设置当前需要操作的象素地址
532 // 参数: x X轴坐标 y Y轴坐标
533 // 返回: 无
534 // 备注: 这里以及之前的所有x和y坐标系都是用户层的,并不是实际LCD的坐标体系
535 // 本函数提供可进行坐标变换的接口
536 // 版本:
537 // 2006/10/15 First version
538 //========================================================================
539 void Set_Dot_Addr(int x,int y)
540 {
541 1 #if LCD_XY_Switch == 0
542 1 #if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 0)
543 1 Set_Dot_Addr_LCD(x,y);
544 1 #endif
545 1 #if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 0)
Set_Dot_Addr_LCD(LCD_X_MAX - x,y);
#endif
548 1 #if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 1)
Set_Dot_Addr_LCD(x,LCD_Y_MAX - y);
#endif
551 1 #if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 1)
C51 COMPILER V8.02 LCD_DIS 06/27/2007 01:39:54 PAGE 10
Set_Dot_Addr_LCD(LCD_X_MAX - x,LCD_Y_MAX - y);
#endif
554 1 #endif
555 1 #if LCD_XY_Switch == 1
#if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 0)
Set_Dot_Addr_LCD(y,x);
#endif
#if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 0)
Set_Dot_Addr_LCD(y,LCD_Y_MAX - x);
#endif
#if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 1)
Set_Dot_Addr_LCD(LCD_X_MAX - y,x);
#endif
#if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 1)
Set_Dot_Addr_LCD(LCD_X_MAX - y,LCD_Y_MAX - x);
#endif
#endif
569 1 }
570 //========================================================================
571 // 函数: void Pos_Switch(unsigned int * x,unsigned int * y)
572 // 描述: 将画面的坐标变换为实际LCD的坐标体系,以便于快速画圆形以及矩形
573 // 参数: x X轴坐标 y Y轴坐标
574 // 返回: 无
575 // 备注: 这里以及之前的所有x和y坐标系都是用户层的,并不是实际LCD的坐标体系
576 // 本函数提供可进行坐标变换的接口
577 // 版本:
578 // 2006/10/15 First version
579 //========================================================================
580 void Pos_Switch(unsigned int * x,unsigned int * y)
581 {
582 1 *x = *x;
583 1 *y = *y;
584 1 #if LCD_XY_Switch == 0
585 1 #if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 0)
586 1 #endif
587 1 #if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 0)
*x = LCD_X_MAX-*x;
#endif
590 1 #if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 1)
*y = LCD_Y_MAX-*y;
#endif
593 1 #if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 1)
*x = LCD_X_MAX-*x;
*y = LCD_Y_MAX-*y;
#endif
597 1 #endif
598 1 #if LCD_XY_Switch == 1
unsigned int uiTemp;
#if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 0)
uiTemp = *x;
*x = y;
*y = uiTemp;
#endif
#if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 0)
uiTemp = LCD_Y_MAX-*x;
*x = *y;
*y = uiTemp;
#endif
#if (LCD_X_Rev == 0)&&(LCD_Y_Rev == 1)
uiTemp = *x;
*x = LCD_X_MAX-*y;
*y = uiTemp;
C51 COMPILER V8.02 LCD_DIS 06/27/2007 01:39:54 PAGE 11
#endif
#if (LCD_X_Rev == 1)&&(LCD_Y_Rev == 1)
uiTemp = LCD_Y_MAX - *x;
*x = LCD_X_MAX-*y;
*y = uiTemp;
#endif
#endif
621 1 }
622 //========================================================================
623 // 函数: void W_Line_f(int s_x,int s_y,int e_x,int e_y,int Mode)
624 // 描述: 以s_x,s_y为起点,e_x,e_y为终点连续填充一条直线上的点.用于画矩形、圆
625 // 参数: x X轴坐标 y Y轴坐标
626 // 返回: 无
627 // 备注: 以实际的LCD坐标体系为准
628 // 版本:
629 // 2006/10/16 First version
630 //========================================================================
631 void Line_f(int s_x,int s_y,int e_x)//,int e_y)
632 {
633 1 unsigned int uiTemp;
634 1 if(s_x>e_x)
635 1 {
636 2 uiTemp = s_x;
637 2 s_x = e_x;
638 2 e_x = uiTemp;
639 2 }
640 1 Write_Dot_LCD(s_x++,s_y,BMP_Color);
641 1 for(;s_x<=e_x;s_x++)
642 1 Fill_Dot_LCD(BMP_Color);
643 1 }
644 //========================================================================
645 // 函数: void ClrScreen(void)
646 // 描述: 全屏以初始化屏幕色的颜色进行清屏
647 // 参数: 无
648 // 返回: 无
649 // 备注: 无
650 // 版本:
651 // 2007/01/16 First version
652 //========================================================================
653 void ClrScreen(void)
654 {
655 1 Set_Dot_Addr_LCD(0,0);
656 1 LCD_Fill(LCD_INITIAL_COLOR);
657 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1724 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 15 94
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 + -