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); } } //***************************************************************************