www.pudn.com > USBdiskRW.rar > LCD.C


#include "44b.h" 
#include "def.h" 
#include "option.h" 
#include "utils.h" 
 
#include "lcd.h" 
#include "lcdlib.h" 
#include "glib.h" 
#include "slib.h" 
 
#include  
 
#include "Bmp_Mono.h" 
#include "Bmp_G4.h" 
#include "Bmp_G16.h" 
#include "Bmp_c256.h" 
 
//*************************************************************************** 
 
/**************************************************************************** 
【功能说明】 
****************************************************************************/ 
void Test_LcdStr(void) 
{ 
	Lcd_Init(MODE_MONO); 
    Lcd_DispON(); 
    Glib_Init(MODE_MONO); 
    Glib_ClearScr(0); 
 
	Slib_ClearScr(); 
	Slib_Init(); 
 
    printf("\n\nLCD屏幕输出字符测试!!!\n\n"); 
 
	Slib_Printf(  "LCD-TEST:www.ucdragon.com - 0"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 1"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 2"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 3"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 4"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 5"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 6"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 7"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 8"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 9"); 
	 
    printf("Press any key to continue !\n");   getchar();  	 
	 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 10"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 11"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 12"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 13"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 14"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 15"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 16"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 17"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 18"); 
	Slib_Printf("\nLCD-TEST:www.ucdragon.com - 19"); 
 
    printf("Press any key to continue !\n");   getchar();  	 
	 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_MONO); 
 
    Lcd_MoveViewPort(0,0,MODE_MONO); 
} 
//*************************************************************************** 
 
/**************************************************************************** 
【功能说明】 
****************************************************************************/ 
void Test_LcdMono(void) 
{ 
    int i,j; 
     
    Lcd_Init(MODE_MONO); 
    Lcd_DispON(); 
    Glib_Init(MODE_MONO); 
     
    printf("\n\n黑白屏测试!!!\n\n"); 
 
    Glib_ClearScr(0); 
    Delay( 500 ) ; 
    Glib_ClearScr(1); 
    Delay( 500 ) ; 
     
    Glib_ClearScr(0); 
    for( j = 0; j < SCR_YSIZE; j += 32 ) 
		for( i = 0; i < SCR_XSIZE; i += 32 ) 
		    Glib_FilledRectangle( i, j, i+31, j+31, ((j+i)/32)%2 ); 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_MONO); 
    
	Lcd_Mono_Bmp( 0, 0, 320, 320, children_320_320_mono ) ;		// 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_MONO); 
 
    Lcd_MoveViewPort(0,0,MODE_MONO); 
} 
//*************************************************************************** 
 
/**************************************************************************** 
【功能说明】 
****************************************************************************/ 
void Test_LcdG4(void) 
{ 
	int i,j ; 
	 
    Lcd_Init(MODE_G4); 
    Lcd_DispON(); 
    Glib_Init(MODE_G4); 
    printf("\n\n四色屏测试!!!\n\n"); 
 
    Glib_ClearScr(0); 
    for( j = 0; j < SCR_YSIZE; j += 32 ) 
		for( i = 0; i < SCR_XSIZE; i += 32 ) 
		    Glib_FilledRectangle( i, j, i+31, j+31, ((j+i)/32)%4 ); 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_G4); 
    Lcd_MoveViewPort(0,0,MODE_G4); 
    
	Lcd_G4_Bmp( 0, 0, 320, 320, ac21IC_320_320_G4 ) ;		// 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_G4); 
     
	Lcd_G4_Bmp( 0, 0, 320, 320, acsohu_320_320_G4 ) ;		// 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_G4); 
     
    Lcd_MoveViewPort(0,0,MODE_G4); 
} 
//*************************************************************************** 
 
/**************************************************************************** 
【功能说明】 
****************************************************************************/ 
void Test_LcdG16(void) 
{ 
    int i, j ; 
    int k = 0 ; 
 
    Lcd_Init(MODE_G16); 
    Lcd_DispON(); 
    Glib_Init(MODE_G16); 
 
    printf("\n\n十六色屏测试!!!\n\n"); 
 
    Glib_ClearScr(0); 
    for( j = 0; j < SCR_YSIZE; j += 23 ) 
		for( i = 0; i < SCR_XSIZE; i += 23 ) 
		    Glib_FilledRectangle( i, j, i+22, j+22, (15-(k++)%16) ); 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_G16); 
    Lcd_MoveViewPort(0,0,MODE_G16); 
 
	Lcd_G16_Bmp( 0, 0, 320, 320, ac21IC_320_320_G16 ) ;		// 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_G16); 
 
	Lcd_G16_Bmp( 0, 0, 320, 320, acflower_320_320_G16 ) ;		// 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_G16); 
 
	Lcd_G16_Bmp( 0, 0, 320, 320, acgirl34_320_320_G16 ) ;		// 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_G16); 
 
	Lcd_G16_Bmp( 0, 0, 320, 320, acsohu_320_320_G16 ) ;		// 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_G16); 
 
    Lcd_MoveViewPort(0,0,MODE_G16); 
} 
//*************************************************************************** 
 
/**************************************************************************** 
【功能说明】 
****************************************************************************/ 
void Test_LcdColor(void) 
{ 
    int i, j, k ; 
 
    rPDATE = rPDATE&~(1<<5)|(1<<5);	//GPE5=H	  
    rPCONE=rPCONE&~(3<<10)|(1<<10);	//GPE5=output 
    rPCONC=rPCONC&~(0xff<<8)|(0xff<<8);	//GPC[4:7] => VD[7:4] 
 
    Lcd_Init(MODE_COLOR); 
    Lcd_DispON(); 
    Glib_Init(MODE_COLOR); 
    printf("\n\n256色彩屏测试!!!\n\n"); 
 
    Glib_ClearScr(0); 
    k = 0 ; 
    for( j = 0; j < SCR_YSIZE; j += 22 ) 
		for( i = 0; i < SCR_XSIZE; i += 22 ) 
		    Glib_FilledRectangle( i, j, i+21, j+21, (k++)%256 ); 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_COLOR); 
    Lcd_MoveViewPort(0,0,MODE_COLOR); 
 
	Lcd_C256_Bmp( 0, 0, 320, 320, ac21IC_320_320_C256 ) ;		//paint bmp 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_COLOR); 
 
	Lcd_C256_Bmp( 0, 0, 320, 320, acflower_320_320_C256 ) ;		//paint bmp 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_COLOR); 
 
	Lcd_C256_Bmp( 0, 0, 320, 320, acgirl34_320_320_C256 ) ;		//paint bmp 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_COLOR); 
 
	Lcd_C256_Bmp( 0, 0, 320, 320, acsohu_320_320_C256 ) ;		//paint bmp 
    printf("虚拟屏测试,按ijkm进行屏幕画面移动!回车退出!!!\n"); 
    MoveViewPort(MODE_COLOR); 
 
    Lcd_MoveViewPort(0,0,MODE_COLOR); 
} 
//*************************************************************************** 
 
/**************************************************************************** 
【功能说明】 
****************************************************************************/ 
void MoveViewPort(int depth) 
{ 
    int vx=0,vy=0,vd; 
     
    //vd=(depth==1)*16+(depth==4)*8+(depth==16)*4+(depth==256)*2; 
    vd = 1 ; 
     
    while(1) 
    { 
    	switch(getchar()) 
    	{ 
    	case 'i': 
	    if(vy>=vd)vy-=vd;    	   	 
    	    break; 
    	case 'j': 
    	    if(vx>=vd)vx-=vd; 
    	    break; 
    	case 'k': 
	    if(vx<=SCR_XSIZE-LCD_XSIZE-vd)vx+=vd; 
    	    break; 
    	case 'm': 
	    if(vy<=(SCR_YSIZE-LCD_YSIZE-vd))vy+=vd;    	   	 
    	    break; 
    	case '\r': 
    	    return; 
    	default: 
	    break; 
	} 
	 
	printf("vx=%3d,vy=%3d\n",vx,vy); 
	Lcd_MoveViewPort(vx,vy,depth); 
	 
    } 
} 
//***************************************************************************