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

📄 lcd.c

📁 手机开发 MTK平台 LCD屏幕驱动源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
			SET_LCD_CMD_PARAMETER(0,LCD_CMD, (0x0007 >> 8));
		  SET_LCD_CMD_PARAMETER(1,LCD_CMD, (0x0007 & 0x00FF));
			SET_LCD_CMD_PARAMETER(2,LCD_DATA, (0x0037 >> 8));
			SET_LCD_CMD_PARAMETER(3,LCD_DATA, (0x0037 & 0x00FF));
			LCD_SEND_DMA_CMD(4);
			LCD_Delay(40);
*/
		//abc end			
		#elif (defined(LCD_9BIT_MODE))
		#elif (defined(LCD_16BIT_MODE))
		//ananzwp modified 080123 for zm24D
		//ananzwp modified 080125 for zm24D
		//*************Power On sequence ****************//
       command(0x10, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
       command(0x11, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
       command(0x12, 0x0000); // VREG1OUT voltage
       command(0x13, 0x0000); // VDV[4:0] for VCOM amplitude
       delay(10); // Dis-charge capacitor power voltage
       command(0x10, 0x1490); // SAP, BT[3:0], AP, DSTB, SLP, STB
       command(0x11, 0x0227); // DC1[2:0], DC0[2:0], VC[2:0]0037
       delay(5); // Delay 50ms
       command(0x12, 0x009C); // VREG1OUT voltage//013a
       delay(5); // Delay 50ms
       command(0x13, 0x0A00); // VDV[4:0] for VCOM amplitude CPT2.8 0x16-->CPT2.4 0x1a00//1600
       command(0x2b, 0x000d);//////
       delay(5);
       command(0x29, 0x0001); // VCM[4:0] for VCOMH
       //delay(10);
       command(0x07, 0x0133); // 262K color and display ON
		//return;
		#if 0
		//ananzwp start
		#if 0
		
		//LCD_CtrlWrite_ST7787(0x10);		// SLPIN
	   // Delay(100);
	    LCD_CtrlWrite_ST7787(0x11); 		// SLPOUT:Sleep out & booster on
	    Delay(100);
		Delay(100);

	    LCD_CtrlWrite_ST7787(0xB1);	   	// FRMCTR1:
	    LCD_DataWrite_ST7787(0x20);	   
	    LCD_DataWrite_ST7787(0x02);	   
	    LCD_DataWrite_ST7787(0x02);	   	

	    //LCD_CtrlWrite_ST7787(0xBC);		// ???	
	    Delay(80);

	    LCD_CtrlWrite_ST7787(0xC2);		// PWCTR3:( in normal)
	    LCD_DataWrite_ST7787(0x01);		
	    LCD_DataWrite_ST7787(0xD4);		
	    LCD_DataWrite_ST7787(0x85);					  
	    LCD_DataWrite_ST7787(0x00);		
	    LCD_DataWrite_ST7787(0x00);		
	    Delay(100);

	    LCD_CtrlWrite_ST7787(0xC3);		// PWCTR4:(in Idle mode ) 
	    LCD_DataWrite_ST7787(0x01);		// Amount of Current in Operational Amplifier = [APB(2:0)=1]
	    LCD_DataWrite_ST7787(0x22);		// [STEP1B_SEL(4:0)=0,-,STEP2B_SEL(3:0)=0]
	    LCD_DataWrite_ST7787(0x01);		// [-,-,-,-,-,STEP4B_SEL(3:0)=0]
	    LCD_DataWrite_ST7787(0x00);		// [-,STEP1BP_SEL(3:0)=0,-,STEP2BP_SEL(3:0)=0]
	    LCD_DataWrite_ST7787(0x00);		// [-,-,-,-,-,STEP4BP_SEL(3:0)=0]		

	    Delay(120);

	    //LCD_CtrlWrite_ST7787(0xF2);		// 
	    //LCD_DataWrite_ST7787(0x80);
	    //Delay(50);

	    LCD_CtrlWrite_ST7787(0xF4);		// Setting ARBIT_2
	    LCD_DataWrite_ST7787(0xFF);		// [arb2_wr_sel(3:0)or men_scrd_sel(2:0),arb2_rd_sel(3:0)or men_wr_sel(2:0)]
	    LCD_DataWrite_ST7787(0x3F);		// [ramwrn_sel,arb0_sel,arb2_st_sel(1:0),arb2_wrgap_sel(3:0)]

	    LCD_CtrlWrite_ST7787(0xF5);		// PARAtin DISP
	    LCD_DataWrite_ST7787(0x10);		// [PDM1,PDM0,oe_del_sel1,oe_del_sel0,eqpw1,eqpw0,-,-]	

	    LCD_CtrlWrite_ST7787(0xFB);		// Vcom & Source EQ setting (1 PARAMETER)
	    LCD_DataWrite_ST7787(0x7F);		// Vcom_porsel,Vcom_mul_mode,SV_mode,Vcom_mid2_sel(1:0),Vcom_mid1_sel(1:0)]

		Delay(50);


	    LCD_CtrlWrite_ST7787(0xC5);		// VMCTR1: Setting VcomH(MTP block)
	    LCD_DataWrite_ST7787(0x28);		// VMH_R: VCOMH(6:0) ,default:28); , 
	    LCD_DataWrite_ST7787(0x28);		// VMH_COLOR8M(6:0): VCOMH ,default:28H
	    Delay(150);

	    LCD_CtrlWrite_ST7787(0xC6);		// VMCTR2: Setting VcomAC
	    LCD_DataWrite_ST7787(0x20);		// VCOMAC voltage control 14H=5V , 06H=4.3V 
	    LCD_DataWrite_ST7787(0x00);		// VCOMAC voltage control in idle mode :default: 0
	    Delay(120);
		Delay(200);


	    LCD_CtrlWrite_ST7787(0xC0);		// PWCTR1: Setting GVDD & Vci1 
	    LCD_DataWrite_ST7787(0x00);		// VRH[4:0]==>GVDD
	    Delay(120);

	    LCD_CtrlWrite_ST7787(0xB6);		// DISSET5: DISPLAY FUNCTION SET
	    LCD_DataWrite_ST7787(0x02);		 		
	    LCD_DataWrite_ST7787(0x04);		 	
		Delay(50);

	    LCD_CtrlWrite_ST7787(0xBC);		// INVON:DISPLAY INVERSE
		Delay(60);

	    LCD_CtrlWrite_ST7787(0x2A);		// COLMOD		
	    LCD_DataWrite_ST7787(0x00);		// 65K	
	    LCD_DataWrite_ST7787(0x00);
	    LCD_DataWrite_ST7787(0x00);
	    LCD_DataWrite_ST7787(0xEF);
	    Delay(60);	

	    //LCD_CtrlWrite_ST7787(0x20);		// INVON:DISPLAY INVERSE	
		
	    LCD_CtrlWrite_ST7787(0x3A);		// Memory data access control 
	    LCD_DataWrite_ST7787(0x05);

	    Delay(80);
	    LCD_CtrlWrite_ST7787(0x2B);		// COLMOD		
	    LCD_DataWrite_ST7787(0x00);		// 65K	
	    LCD_DataWrite_ST7787(0x00);
	    LCD_DataWrite_ST7787(0x01);
	    LCD_DataWrite_ST7787(0x3F);
	    Delay(200);	

	
	    //LCD_CtrlWrite_ST7787(0x36);		// Memory data access control 
	    //	LCD_DataWrite_ST7787(0x00);

	     LCD_CtrlWrite_ST7787(0x29);		// DISPLAY ON
	
	    Delay(20);

	    LCD_CtrlWrite_ST7787(0xB4);		// COLMOD		
	    LCD_DataWrite_ST7787(0x04);		// 65K	
	    //LCD_DataWrite_ST7787(0x00);
	    //LCD_DataWrite_ST7787(0x00);
	    //LCD_DataWrite_ST7787(0xEF);
	    Delay(100);	

	    //LCD_CtrlWrite_ST7787(0x29);		// DISPLAY ON
	
	   // Delay(80);

	   // LCD_ClearAll_ST7787(0x0000);
		
		#else

#if (defined(daonuo))
		    //Delay(200);
		        LCD_CtrlWrite_ST7787(0x0010);
				LCD_DataWrite_ST7787(0x0000); // SAP, BT[3:0], AP, DSTB, SLP
				
				LCD_CtrlWrite_ST7787(0x0011);
				LCD_DataWrite_ST7787(0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
				
				LCD_CtrlWrite_ST7787(0x0012);
				LCD_DataWrite_ST7787(0x0000); // VREG1OUT voltage
				
				LCD_CtrlWrite_ST7787(0x0013);
				LCD_DataWrite_ST7787(0x0000); // VDV[4:0] for VCOM amplitude
				Delay(200); // Dis-charge capacitor power voltage
				
				LCD_CtrlWrite_ST7787(0x0010);
				LCD_DataWrite_ST7787(0x17B0);	
				Delay(20);
				
				LCD_CtrlWrite_ST7787(0x0011);
				LCD_DataWrite_ST7787(0x0037); 
				
				LCD_CtrlWrite_ST7787(0x0012);
				LCD_DataWrite_ST7787(0x0137); 
				Delay(60);	
				
				LCD_CtrlWrite_ST7787(0x0013);
				LCD_DataWrite_ST7787(0x1C00);
				Delay(50);
				
				LCD_CtrlWrite_ST7787(0x0029);
				LCD_DataWrite_ST7787(0x000E); // R29h=0x0008 at VCI=3.3V VCM[4:0] for VCOMH
				Delay(50);
				
				LCD_CtrlWrite_ST7787(0x0007);
				LCD_DataWrite_ST7787(0x0137); // 262K color and display ON
#elif (defined(ili9320))
				LCD_CtrlWrite_ST7787(0x0010);
				LCD_DataWrite_ST7787(0x0000); // SAP, BT[3:0], AP, DSTB, SLP
				
				LCD_CtrlWrite_ST7787(0x0011);
				LCD_DataWrite_ST7787(0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
				
				LCD_CtrlWrite_ST7787(0x0012);
				LCD_DataWrite_ST7787(0x0000); // VREG1OUT voltage
				
				LCD_CtrlWrite_ST7787(0x0013);
				LCD_DataWrite_ST7787(0x0000); // VDV[4:0] for VCOM amplitude
				Delay(200); // Dis-charge capacitor power voltage
				
				LCD_CtrlWrite_ST7787(0x0010);
				LCD_DataWrite_ST7787(0x17B0);	
				Delay(20);
				
				LCD_CtrlWrite_ST7787(0x0011);
				LCD_DataWrite_ST7787(0x0037); 
				
				LCD_CtrlWrite_ST7787(0x0012);
				LCD_DataWrite_ST7787(0x0137); 
				Delay(60);	
				
				LCD_CtrlWrite_ST7787(0x0013);
				LCD_DataWrite_ST7787(0x1C00);
				Delay(50);
				
				LCD_CtrlWrite_ST7787(0x0029);
				LCD_DataWrite_ST7787(0x000E); // R29h=0x0008 at VCI=3.3V VCM[4:0] for VCOMH
				Delay(50);
				
				LCD_CtrlWrite_ST7787(0x0007);
				LCD_DataWrite_ST7787(0x0137); //
#elif (defined(tianma))||(defined(yaxin))||(defined(cpt28))||(defined(linda))
				LCD_Init_ST7787(0, 0);
#elif defined(HX8347)
				//return ;
				LCD_CtrlWrite_ST7787(0x0019);	
	            LCD_DataWrite_ST7787(0x0049);
				Delay(50);
				LCD_CtrlWrite_ST7787(0x001B);	
	            LCD_DataWrite_ST7787(0x0008);
				LCD_CtrlWrite_ST7787(0x0020);	
	            LCD_DataWrite_ST7787(0x0040);
				LCD_CtrlWrite_ST7787(0x001D);	
	            LCD_DataWrite_ST7787(0x0007);
				LCD_CtrlWrite_ST7787(0x001E);	
	            LCD_DataWrite_ST7787(0x0000);
				LCD_CtrlWrite_ST7787(0x001F);	
	            LCD_DataWrite_ST7787(0x0004);
				LCD_CtrlWrite_ST7787(0x0044);	
	            LCD_DataWrite_ST7787(0x004D);
				LCD_CtrlWrite_ST7787(0x0045);	
	            LCD_DataWrite_ST7787(0x0011);
				Delay(50);
				LCD_CtrlWrite_ST7787(0x001C);	
	            LCD_DataWrite_ST7787(0x0004);
				Delay(80);
				LCD_CtrlWrite_ST7787(0x001B);	
	            LCD_DataWrite_ST7787(0x0018);
                Delay(80);
				LCD_CtrlWrite_ST7787(0x001B);	
	            LCD_DataWrite_ST7787(0x0010);
				Delay(60);
				LCD_CtrlWrite_ST7787(0x0043);	
	            LCD_DataWrite_ST7787(0x0080);
				Delay(80);
				LCD_CtrlWrite_ST7787(0x0090);	
	            LCD_DataWrite_ST7787(0x007F);
				Delay(50);
				LCD_CtrlWrite_ST7787(0x0026);	
	            LCD_DataWrite_ST7787(0x0004);
				Delay(50);
				LCD_CtrlWrite_ST7787(0x0026);	
	            LCD_DataWrite_ST7787(0x0024);
				LCD_CtrlWrite_ST7787(0x0026);	
	            LCD_DataWrite_ST7787(0x002C);
				Delay(50);
				LCD_CtrlWrite_ST7787(0x0026);	
	            LCD_DataWrite_ST7787(0x003C);
				
				
				
#endif
		
           // LCD_Init_ST7787(0, 0);
			//Delay(200);
		#endif
		#endif
		#elif (defined(LCD_18BIT_MODE))
			SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0012&0xFF00)<<2)|((0x0012&0xFF)<<1));
			SET_LCD_CMD_PARAMETER(1,LCD_DATA,((lcd_power_ctrl_shadow3&0xFF00)<<2)|((lcd_power_ctrl_shadow3&0xFF)<<1));
			SET_LCD_CMD_PARAMETER(2,LCD_CMD,((0x0013&0xFF00)<<2)|((0x0013&0xFF)<<1));
			SET_LCD_CMD_PARAMETER(3,LCD_DATA,((lcd_power_ctrl_shadow4&0xFF00)<<2)|((lcd_power_ctrl_shadow4&0xFF)<<1));
			SET_LCD_CMD_PARAMETER(4,LCD_CMD,((0x0010&0xFF00)<<2)|((0x0010&0xFF)<<1));
			SET_LCD_CMD_PARAMETER(5,LCD_DATA,((lcd_power_ctrl_shadow1&0xFF00)<<2)|((lcd_power_ctrl_shadow1&0xFF)<<1));
			LCD_SEND_DMA_CMD(6);

			SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0007&0xFF00)<<2)|((0x0007&0xFF)<<1));
			SET_LCD_CMD_PARAMETER(1,LCD_DATA,((0x0005&0xFF00)<<2)|((0x0005&0xFF)<<1));
			LCD_SEND_DMA_CMD(2);
			LCD_Delay(0x1000);
			SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0007&0xFF00)<<2)|((0x0007&0xFF)<<1));
			SET_LCD_CMD_PARAMETER(1,LCD_DATA,((0x0025&0xFF00)<<2)|((0x0025&0xFF)<<1));
			LCD_SEND_DMA_CMD(2);
			SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0007&0xFF00)<<2)|((0x0007&0xFF)<<1));
			SET_LCD_CMD_PARAMETER(1,LCD_DATA,((0x0027&0xFF00)<<2)|((0x0027&0xFF)<<1));
			LCD_SEND_DMA_CMD(2);
			LCD_Delay(0x1000);
			SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0007&0xFF00)<<2)|((0x0007&0xFF)<<1));
			SET_LCD_CMD_PARAMETER(1,LCD_DATA,((0x0037&0xFF00)<<2)|((0x0037&0xFF)<<1));
			LCD_SEND_DMA_CMD(2);
			LCD_Delay(0x1000);
		#endif
	#else
		LCD_CtrlWrite_ST7787(0x0010);
		LCD_DataWrite_ST7787(lcd_power_ctrl_shadow1);
		LCD_CtrlWrite_ST7787(0x0012);
		LCD_DataWrite_ST7787(lcd_power_ctrl_shadow3);
		LCD_CtrlWrite_ST7787(0x0013);
		LCD_DataWrite_ST7787(lcd_power_ctrl_shadow4);
		LCD_CtrlWrite_ST7787(0x0007);
		LCD_DataWrite_ST7787(0x0005);
		LCD_Delay(0x1000);
		LCD_CtrlWrite_ST7787(0x0007);
		LCD_DataWrite_ST7787(0x0025);
		LCD_CtrlWrite_ST7787(0x0007);
		LCD_DataWrite_ST7787(0x0027);
		LCD_Delay(0x1000);
		LCD_CtrlWrite_ST7787(0x0007);
		LCD_DataWrite_ST7787(0x0037);
		LCD_Delay(0x1000);
	#endif
}

void LCD_Partial_On_ST7787(kal_uint16 start_page,kal_uint16 end_page)
{
         return;		//abc
	#if (defined(LCD_CMD_DMA_MODE))
		#if (defined(LCD_8BIT_MODE))
			SET_LCD_CMD_PARAMETER(0,LCD_CMD, (0x0007 >> 8));
			SET_LCD_CMD_PARAMETER(1,LCD_CMD, (0x0007 & 0x00FF));
			SET_LCD_CMD_PARAMETER(2,LCD_DATA, (0x003F & 0x00FF));
			SET_LCD_CMD_PARAMETER(3,LCD_DATA, (0x003F & 0x00FF));
			SET_LCD_CMD_PARAMETER(4,LCD_CMD, (0x0042 >> 8));
			SET_LCD_CMD_PARAMETER(5,LCD_CMD, (0x0042 & 0x00FF));
			SET_LCD_CMD_PARAMETER(6,LCD_DATA, (end_page & 0x00FF));
			SET_LCD_CMD_PARAMETER(7,LCD_DATA, (start_page & 0x00FF));
			LCD_SEND_DMA_CMD(8);
		#elif (defined(LCD_9BIT_MODE))
		#elif (defined(LCD_16BIT_MODE))
			LCD_set_reg(0x0007, 0x003f);
			SET_LCD_CMD_PARAMETER(0,LCD_CMD,(0x0042&0xFF00) | (0x0042&0xFF));
			SET_LCD_CMD_PARAMETER(1,LCD_DATA,((end_page&0xFF)<<8)|(start_page&0xFF));
			LCD_SEND_DMA_CMD(2);
		#elif (defined(LCD_18BIT_MODE))
		LCD_CtrlWrite_ST7787(0x0007);
		LCD_DataWrite_ST7787(0x003f);
        SET_LCD_CMD_PARAMETER(0,LCD_CMD,((0x0042&0xFF00)<<2)|((0x0042&0xFF)<<1));
		SET_LCD_CMD_PARAMETER(1,LCD_DATA,((end_page&0xFF)<<10)|((start_page&0xFF)<<1));
		LCD_SEND_DMA_CMD(2);
		#endif
	#else
    	LCD_set_reg(0x0007, 0x003f);
    	LCD_set_reg(0x0042, (start_page & 0xFF) | ((end_page & 0xFF) << 8));
	#endif
}

⌨️ 快捷键说明

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