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

📄 lcd.c

📁 在LPC2368上实现的FFT程序
💻 C
📖 第 1 页 / 共 3 页
字号:
	FIO_Clr(PORT2,LCD_RS_P209);		//clear_bit(RS_LCD);
    Dnop(1);           
	FIO_Set(PORT0,LCD_RD_P015);		//set_bit(RD_LCD);
    FIO_Clr(PORT0,LCD_WR_P016);		//clear_bit(WR_LCD);
    Dnop(1);

	FIO_Set(PORT0,LCD_WR_P016);		//set_bit(WR_LCD);
    Dnop(1);
	FIO_Set(PORT2,LCD_RS_P209);		//set_bit(RS_LCD);
    FIO_Set(PORT2,LCD_CS_P208);		//set_bit(CS_LCD);                // disable the access
	Dnop(1);
}
void SdData(unsigned char DData)    //send display data
{
    FIO_Set(PORT0,LCD_WR_P016);		//set_bit(WR_LCD);                // init all control signal
    FIO_Set(PORT0,LCD_RD_P015);		//set_bit(RD_LCD);
    FIO_Set(PORT2,LCD_RS_P209);		//set_bit(RS_LCD);  
	Dnop(1);             
    WR_LCDBUS(DData);
	Dnop(1); 
	FIO_Clr(PORT2,LCD_CS_P208);		//clear_bit(CS_LCD);enable the access
    Dnop(1);
    FIO_Clr(PORT0,LCD_WR_P016);		//clear_bit(WR_LCD);
    Dnop(1);
    FIO_Set(PORT0,LCD_WR_P016);		//set_bit(WR_LCD);
    Dnop(1);
	FIO_Clr(PORT2,LCD_RS_P209);		//clear_bit(RS_LCD);
    FIO_Set(PORT2,LCD_CS_P208);		//set_bit(CS_LCD);  disable the access
}
void Clr_part(unsigned char x,unsigned char y,unsigned char high,unsigned char width)
{
	unsigned char i,j=0;
	unsigned char temp=0;
	temp = width/8;
	CmdWrite(0x00,0xC5); 
    CmdWrite(0x60,x); 
	Dnop(10);   						// set cursor X location to 0
    CmdWrite(0x70,y); 
	Dnop(10);   						// set cursor Y location to 0
	for(i=0;i<high;i++)
	{
      	for(j=0;j<temp;j++)
     	{
     		SdData(0);
			Dnop(10);
 		}
		CmdWrite(0x60,x); 
		Dnop(10);	
		CmdWrite(0x70,y+i); 
		Dnop(10);	
    }
}

void Clr_Screen(void)
{
	CmdWrite(0xe0,0x00); 
	Dnop(10); 
	CmdWrite(0xf0,0xa8); 
}

void Full_Screen(unsigned char date)
{
	unsigned char i,j;
	CmdWrite(0x60,0);
	CmdWrite(0x70,0);
	for(i=0;i<24;i++)
	{
		for(j=0;j<128;j++)
		{
			SdData(date);
		}
	}
}

void Horizen_Move(unsigned char start,unsigned char end)
{
	CmdWrite(0x71,start);
	Dnop(10);
	CmdWrite(0x72,end);
	Dnop(10);
	CmdWrite(0x03,0x83);	
}

void wr_Num(unsigned x,unsigned y,unsigned char num)
{
	CmdWrite(0x00,0xCD);    		// Whole Chip LCD Controller Reg(Char Mode)
	CmdWrite(0x60,x);
	CmdWrite(0x70,y);

	SdData(num+0x30);

}
void Print_Str(unsigned char x,unsigned char y,unsigned char *str)
{
	CmdWrite(0x00,0xCD);    		// Whole Chip LCD Controller Reg(Char Mode)
	Dnop(10);
	CmdWrite(0x60,x);
	Dnop(10);
	CmdWrite(0x70,y);
	while(*str>0)
	{
		SdData(*str);
		str++;
		Dnop(10);
	}
}

void WriteGraphicScreen(unsigned char *GDData)
// DisplayData should be 192x128/8 = 3072byte
// set to graphic display
{
	unsigned char TempData;
	unsigned char i, j;
    CmdWrite(0x00,0xC5); 
	delayms(1);   // normal power mode, Graphic mode,
                                            // display on, normal display.
    CmdWrite(0x60,0x00); 
	delayms(1);   // set cursor X location to 0
    CmdWrite(0x70,0x00); 
	delayms(1);   // set cursor Y location to 0

    for(i=0;i<128;i++)
	{
      	for(j=0;j<24;j++)
     	{
     		TempData=(*(GDData+(i*24)+j));
     		SdData(TempData);
 		}
    }
}
void WriteTextScreen(unsigned char *TxtData)
// DisplayData should be 12(x2)x8 = 192byte
// set to char display
{
	unsigned char TempData;
	unsigned char i,j;
    CmdWrite(0x00,0xCD); delayms(1);  // normal power mode, Char mode
                                           // display on, normal display
    CmdWrite(0x60,0x00); 
	delayms(1);  // set cursor X location to 0
    CmdWrite(0x70,0x00); 
	delayms(1);  // set cursor Y location to 0

    for (j=0; j<8; j++)
	{
	 	for(i=0; i<24; i++)
   		{
	   		TempData=(*(TxtData+(j*24)+i));
	   		SdData(TempData);
	   	    Dnop(10); Dnop(10); Dnop(10); Dnop(10);
		}
	}

}


//-----------------------------------
// Init LCD module
//-----------------------------------
void initLCDM(void)
{
	FIO_Set(PORT0,LCD_WR_P016);		//set_bit(WR_LCD);                // init all control signal
    FIO_Set(PORT0,LCD_RD_P015);		//set_bit(RD_LCD);
    FIO_Set(PORT2,LCD_RS_P209);		//set_bit(RS_LCD); 
   	FIO_Set(PORT2,LCD_CS_P208);		//set_bit(CS_LCD);  disable the access

	WR_LCDBUS(0xff);            	// pull up data bus
	delayms(300);   
	FIO_Clr(PORT0,LCD_RST_P017);	//clear_bit(RST_LCD);
	delayms(500);          		 	// delay to wait for LCD module OSC start up
	FIO_Set(PORT0,LCD_RST_P017);	//set_bit(RST_LCD);        		// reset pin
	delayms(50);           			// delay to wait for LCD module OSC start up

	CmdWrite(0x00,0xCD);    		// Whole Chip LCD Controller Reg(Char Mode)
	Dnop(10);

	CmdWrite(0x90,0x0D); 
	Dnop(10); 						// Shift Clock Control Reg(192x128,69Hz)

	CmdWrite(0xF0,0xA0); 
	Dnop(10); 

	CmdWrite(0x10,0x6e); 
	Dnop(10); 	

	CmdWrite(0x11,0x0); 
	Dnop(10);

	CmdWrite(0x12,0x91);  
	Dnop(10);

    CmdWrite(0x20,0x17); 
	Dnop(10); 						// Active Window Right  Reg

	CmdWrite(0x30,0x7F); 
	Dnop(10);						// Active Window Bottom Reg(128 duty)

	CmdWrite(0x40,0x00); 
	Dnop(10);						 // Active Window Left   Reg

	CmdWrite(0x50,0x00); 
	Dnop(10);						 // Active Window Top    Reg

	CmdWrite(0x21,0x17); 
	Dnop(10);						 // Display Window Right  Reg

	CmdWrite(0x31,0x80); 
	Dnop(10);						// Display Window Bottom Reg(128 duty)

	CmdWrite(0x41,0x00); 
	Dnop(10); 

	CmdWrite(0x51,0x00); 
	Dnop(10);

	CmdWrite(0x81,0x40); 
	Dnop(10);						 // by default	

	Clr_Screen();
}



void Logo(void)
{
	unsigned char i,j=0;
	unsigned char temp=0;
	CmdWrite(0x00,0xC5); 
	Dnop(10);                            // display on, normal display
    CmdWrite(0x60,0x00); 
	Dnop(10);   						// set cursor X location to 0
    CmdWrite(0x70,0x00); 
	Dnop(10);   						// set cursor Y location to 0
    for(i=0;i<32;i++)
    {
      	for(j=0;j<24;j++)
     	{
     		temp=(*(E_D_C+(i*24)+j));
     		SdData(temp);
			Dnop(10);	
 	}
		CmdWrite(0x60,0x00); 
		Dnop(10);	
		CmdWrite(0x70,0x00+i+1); 
		Dnop(10);	
    }
	CmdWrite(0x60,0x00); 
	CmdWrite(0x70,40);
	for(i=0;i<32;i++)
	{
      	for(j=0;j<24;j++)
     	{
     		temp=(*(power_on_1+(i*24)+j));
     		SdData(temp);
			Dnop(10);
 		}
		CmdWrite(0x60,0);
		Dnop(10); 
		CmdWrite(0x70,40+i+1); 
		Dnop(10);
        }

	CmdWrite(0x60,0); 
	CmdWrite(0x70,80); 
	for(i=0;i<32;i++)
	{
      	for(j=0;j<24;j++)
     	{
     		temp=(*(power_on_2+(i*24)+j));
     		SdData(temp);
			Dnop(10);
 		}
        
	CmdWrite(0x60,0); 
	Dnop(10);
	CmdWrite(0x70,80+i+1); 
	Dnop(10);
	}
	delayms(2000);
	Clr_Screen();
	

	
	
}
void Menu()
{
	CmdWrite(0x00,0xC5); 
	Dnop(10);                            // display on, normal display
    CmdWrite(0x60,0x00); 
	Dnop(10);   						// set cursor X location to 0
    CmdWrite(0x70,0x00); 
	Dnop(10);
	  
	display_24(0, 8 ,shu);
	display_24(3, 8 ,ru);
	display_24(6, 8 ,zu);
	display_24(9, 8 ,kang);

	display_24(0, 40 ,xian);
	display_24(3, 40 ,shi_1);
	display_24(6, 40 ,fang);
	display_24(9, 40 ,shi);

	display_24(0, 72 ,ji);
	display_24(3, 72 ,ben);
	display_24(6, 72 ,bu);
	display_24(9, 72 ,fen);

	display_24(0, 104 ,fa);
	display_24(3, 104 ,hui);
	display_24(6, 104,bu);
	display_24(9, 104 ,fen);
	CmdWrite(0x00,0xC5); 
	Print_Str(12,12,":50 10K OFF ");
	Print_Str(12,44,":Text Graph ");
	Print_Str(12,76,":Enter");
	Print_Str(12,108,":Enter");
		
	curse_x=13;
	curse_y=31;
	CmdWrite(0x00,0xC5);
	CmdWrite(0x60,13);   //光标起始位置设置 
   	CmdWrite(0x70,31); 
}

void Print_Check(unsigned char x,unsigned char y)
{
	unsigned char i=0;

	CmdWrite(0x00,0xC5); 
	Dnop(10);                            // display on, normal display
    CmdWrite(0x60,0x00+x); 
	Dnop(10);   						// set cursor X location to 0
    CmdWrite(0x70,0x00+y); 
	Dnop(10); 
	
	for(i=0;i<8;i++)
	{
		SdData(check[i]);
		Dnop(10);
		CmdWrite(0x60,x);						// set cursor X location to 0
    	CmdWrite(0x70,y+i+1); 
		Dnop(10); 
    }

  	
}


void Recall(void)
{
	CmdWrite(0x00,0xC5);
	display96_24(0,0,jiluhao);
	display96_24(0,24,jiluhao);

	CmdWrite(0x00,0xC5);
	display_24(12,0,ling);
	display48_24(14,0,cunfang);
	display_24(12,24,ling);
	display48_24(14,24,neidiao);
	display48_24(14,48,fanhui);
	
	
}

⌨️ 快捷键说明

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