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

📄 lcd.c

📁 SD卡调试所用的资料
💻 C
字号:

void delayms(int count)  // /* X10ms */
{
        int i,j;
        for(i=0;i<count;i++)
                for(j=0;j<100;j++);
}
  

void main_Write_COM( int  CH)	 //8位数据接口发送数据	
{	
    A0=0;
	CS_MAIN =0;	
   	DPTR=CH;				
	P2=DPH;	
   	WRB=0;
	WRB=1;
	P2=DPL;		
	WRB=0;
	WRB=1;
	CS_MAIN =1;	
}


void main_Write_DATA(int DH)	//8位数据接口发送数据		
{
    A0=1;
	CS_MAIN =0;
 	DPTR=DH;						
    P2=DPH;	
	WRB=0;
	WRB=1;
	P2=DPL;						
	WRB=0;
	WRB=1;
	CS_MAIN =1;	
}

void main_W_com_data( int com1,dat1)
{
   main_Write_COM(com1);
   main_Write_DATA(dat1);
}


void address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
{
    main_W_com_data(0x0020,x1);//设置X坐标位置
    main_W_com_data(0x0021,y1);//设置Y坐标位置
    main_W_com_data(0x0050,x1);   //开始X
	main_W_com_data(0x0052,y1);	  //开始Y
    main_W_com_data(0x0051,x2);  //结束X
	main_W_com_data(0x0053,y2);  //结束Y
    main_Write_COM(0x0022);
}

void main_init(void)
{

    RES=1;
    delayms(5);	
	RES=0;
	delayms(10);
	RES=1;
	delayms(20);


//************* Start Initial Sequence **********//
main_Write_COM(0x00E5); main_Write_DATA(0x78F0); // set SRAM internal timing
main_Write_COM(0x0001); main_Write_DATA(0x0100); // set SS and SM bit
main_Write_COM(0x0002); main_Write_DATA(0x0700); // set 1 line inversion
main_Write_COM(0x0003); main_Write_DATA(0x1030); // set GRAM write direction and BGR=1.
main_Write_COM(0x0004); main_Write_DATA(0x0000); // Resize register
main_Write_COM(0x0008); main_Write_DATA(0x0207); // set the back porch and front porch
main_Write_COM(0x0009); main_Write_DATA(0x0000); // set non-display area refresh cycle ISC[3:0]
main_Write_COM(0x000A); main_Write_DATA(0x0000); // FMARK function
main_Write_COM(0x000C); main_Write_DATA(0x0000); // RGB interface setting
main_Write_COM(0x000D); main_Write_DATA(0x0000); // Frame marker Position
main_Write_COM(0x000F); main_Write_DATA(0x0000); // RGB interface polarity
//*************Power On sequence ****************//
main_Write_COM(0x0010); main_Write_DATA(0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
main_Write_COM(0x0011); main_Write_DATA(0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
main_Write_COM(0x0012); main_Write_DATA(0x0000); // VREG1OUT voltage
main_Write_COM(0x0013); main_Write_DATA(0x0000); // VDV[4:0] for VCOM amplitude
main_Write_COM(0x0007); main_Write_DATA(0x0001);
delayms(200); // Dis-charge capacitor power voltage
main_Write_COM(0x0010); main_Write_DATA(0x1090); // 1490//SAP, BT[3:0], AP, DSTB, SLP, STB
main_Write_COM(0x0011); main_Write_DATA(0x0227); // DC1[2:0], DC0[2:0], VC[2:0]
delayms(50); // Delay 50ms
main_Write_COM(0x0012); main_Write_DATA(0x001F); //001C// Internal reference voltage= Vci;
delayms(50); // Delay 50ms
main_Write_COM(0x0013); main_Write_DATA(0x1500); //0x1000//1400   Set VDV[4:0] for VCOM amplitude  1A00
main_Write_COM(0x0029); main_Write_DATA(0x0027); //0x0012 //001a  Set VCM[5:0] for VCOMH  //0x0025  0034
main_Write_COM(0x002B); main_Write_DATA(0x000D); // Set Frame Rate   000C
delayms(50); // Delay 50ms
main_Write_COM(0x0020); main_Write_DATA(0x0000); // GRAM horizontal Address
main_Write_COM(0x0021); main_Write_DATA(0x0000); // GRAM Vertical Address
// ----------- Adjust the Gamma Curve ----------//
main_Write_COM(0x0030); main_Write_DATA(0x0000);
main_Write_COM(0x0031); main_Write_DATA(0x0707);
main_Write_COM(0x0032); main_Write_DATA(0x0307);
main_Write_COM(0x0035); main_Write_DATA(0x0200);
main_Write_COM(0x0036); main_Write_DATA(0x0008);//0207
main_Write_COM(0x0037); main_Write_DATA(0x0004);//0306
main_Write_COM(0x0038); main_Write_DATA(0x0000);//0102
main_Write_COM(0x0039); main_Write_DATA(0x0707);//0707
main_Write_COM(0x003C); main_Write_DATA(0x0002);//0702
main_Write_COM(0x003D); main_Write_DATA(0x1D04);//1604

//------------------ Set GRAM area ---------------//
main_Write_COM(0x0050); main_Write_DATA(0x0000); // Horizontal GRAM Start Address
main_Write_COM(0x0051); main_Write_DATA(0x00EF); // Horizontal GRAM End Address
main_Write_COM(0x0052); main_Write_DATA(0x0000); // Vertical GRAM Start Address
main_Write_COM(0x0053); main_Write_DATA(0x013F); // Vertical GRAM Start Address
main_Write_COM(0x0060); main_Write_DATA(0xA700); // Gate Scan Line
main_Write_COM(0x0061); main_Write_DATA(0x0001); // NDL,VLE, REV
main_Write_COM(0x006A); main_Write_DATA(0x0000); // set scrolling line
//-------------- Partial Display Control ---------//
main_Write_COM(0x0080); main_Write_DATA(0x0000);
main_Write_COM(0x0081); main_Write_DATA(0x0000);
main_Write_COM(0x0082); main_Write_DATA(0x0000);
main_Write_COM(0x0083); main_Write_DATA(0x0000);
main_Write_COM(0x0084); main_Write_DATA(0x0000);
main_Write_COM(0x0085); main_Write_DATA(0x0000);
//-------------- Panel Control -------------------//
main_Write_COM(0x0090); main_Write_DATA(0x0010);
main_Write_COM(0x0092); main_Write_DATA(0x0600);
main_Write_COM(0x0007); main_Write_DATA(0x0133); // 262K color and display ON

}

void DispOneColor(unsigned int color)
{
    int i,j;
	address_set(0,0,240,320);
    for(i=0;i<320;i++)
	 {
	  for (j=0;j<240;j++)
	   	{
         main_Write_DATA(color);
	    }
	  }
}void set_window(void)
{
  main_Write_COM(0x0050); main_Write_DATA(0x0000); // Horizontal GRAM Start Address
  main_Write_COM(0x0051); main_Write_DATA(0x00EF); // Horizontal GRAM End Address
  main_Write_COM(0x0052); main_Write_DATA(0x0000); // Vertical GRAM Start Address
  main_Write_COM(0x0053); main_Write_DATA(0x013F); // Vertical GRAM Start Address
}

void display_pic()
{
  unsigned int data i=0,j=0,k=0;
 unsigned int data color=0;
 set_window();
 main_Write_COM(0x0022); 
 for(i=0;i<1920;i++) //读取76800个点的颜色数据
 {
   FAT32_Read_File(&FileInfo,(unsigned long)i*120+54,120,file_buf);
  for(j=0;j<40;j++)
  {	
   color=COLOR(file_buf[2+3*j],file_buf[1+3*j],file_buf[0+3*j]);
  //  color = (unsigned int)file_buf[k*2+1]<<8|(unsigned int)file_buf[k*2];
  main_Write_DATA(color);
 // UART_Put_Num(file_buf[i]);
  }
 }
 UART_Send_Str("图像显示完毕\n");
// FAT32_File_Close(&FileInfo); 
 UART_Send_Str("文件已关闭\n");
}

⌨️ 快捷键说明

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