Exemple #1
0
//*******************************************
//*函数名称:void LCD_Init(void)	*
//*函数功能:并行初始化LCD					*
//*形式参数:无								*
//*形参说明:无								*
//*返回参数:无								*
//*使用说明:无								*
//*******************************************
void LCD_Init(void)
{
	LCD_CTRL_OUT();
#if PARALLEL == 1
	#ifdef LCD_RST
		LCD_RST_LOW();
		_delay_ms(10);
	  	LCD_RST_HIGH();	//RST = 1;					//复位后拉高,停止复位
	#endif
	#ifdef LCD_PSB
	  	LCD_PSB_HIGH();	//PSB = 1;					//选择并行传输模式	
	#endif
#else
	#ifdef LCD_RST
		LCD_RST_LOW();
		_delay_ms(100);
	  	LCD_RST_HIGH();	//RST = 1;					//复位后拉高,停止复位
	#endif
	#ifdef LCD_PSB
	  	LCD_PSB_LOW();	//PSB = 0;					//选择串并行传输模式	
	#endif
#endif	//#if PARALLEL == 1


  	LCD_Write(LCD_COMMAND,LCD_BASIC_FUNCTION); //基本指令动作   
  	LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);  	//清屏,地址指针指向00H
  	LCD_Write(LCD_COMMAND,0x06);  		    //光标的移动方向
  	LCD_Write(LCD_COMMAND,0x0C);  			//开显示,关游标

}
Exemple #2
0
void lcd_init(void)
{    
    LCD_Config();

    LCD_BACKLIGHT_OFF();    

    lcd_delay(2);

    LCD_RST_LOW();
    lcd_delay(2);
    LCD_RST_HIGH();
    lcd_delay(2);

    lcd_write_cmd(0xe2); /*软复位*/
    lcd_delay(2);
    lcd_write_cmd(0x2c); /*升压步聚1*/
    lcd_delay(2);
    lcd_write_cmd(0x2e); /*升压步聚2*/
    lcd_delay(2);
    lcd_write_cmd(0x2f); /*升压步聚3*/
    lcd_delay(2);
    lcd_write_cmd(0x25); /*粗调对比度,可设置范围0x20~0x27*/
    lcd_write_cmd(0x81); /*微调对比度*/
    lcd_write_cmd(0x16); /*微调对比度的值,可设置范围0x00~0x3f*/
    lcd_write_cmd(0xa2); /*1/9 偏压比(bias)*/
    lcd_write_cmd(0xc8); /*行扫描顺序:从上到下*/
    lcd_write_cmd(0xa0); /*列扫描顺序:从左到右*/ 
    lcd_write_cmd(0x40); /*起始行:从第一行开始*/
    lcd_write_cmd(0xaf); /*开显示*/

    lcd_delay(2);

    lcd_clr_scr();
}
Exemple #3
0
void lcd_init(void) {

  spi_setting_t spi_settings;
  spi_settings.endianness = SPI_MSB_FIRST;
  spi_settings.bus_mode = SPI_BUSMODE_MASTER;
  spi_settings.trans_mode = SPI_MODE_0;
  spi_settings.clock_rate = SPI_CLOCKDIV_4;
  spi_settings.double_clock =  SPI_DBLCLK_ENABLE;
  spi_init(&spi_settings); // spi clk ~ 4 MHz

  LCD_PORT_INIT();
  LCD_CE_ACTIVATE();
  LCD_RST_HIGH();
  LCD_DC_COMM();

  LCD_RST_LOW();
  _delay_ms(5); // delay required for RST procedure
  LCD_RST_HIGH();
  //_delay_ms(10); // delay required for RST procedure
  lcd_command(UC1701_SET_SEG_DIR | UC1701_SET_SEG_DIR_MIRROR);  // reverse seg drivers
  lcd_command(UC1701_SET_COM_DIR | UC1701_SET_COM_DIR_NORM);
  lcd_command(UC1701_SET_ALL_PX | UC1701_SET_ALL_OFF);
  lcd_command(UC1701_SET_INV_DISP | UC1701_SET_INV_DISP_OFF);
  _delay_ms(120);
  lcd_command(UC1701_SET_BIAS_RATIO | UC1701_SET_BIAS_1_9); // set bias ratio
  lcd_command(UC1701_SET_POWER_CTRL | UC1701_SET_POWER_BOOST_ON | UC1701_SET_POWER_REG_ON | UC1701_SET_POWER_FOLL_ON);
  lcd_command(UC1701_SET_EL_VOL_1); // set contrast (2-part command)
  lcd_command(UC1701_SET_EL_VOL_2 | (UC1701_SET_EL_VOL_MASK & ((uint8_t)LCD_CONTRAST))); // set contrast [0..63]
  lcd_command(UC1701_SET_ADV_PROG_1);
  lcd_command(UC1701_SET_ADV_PROG_2 | UC1701_ADV_PROG_TEMPCO_1);
  lcd_command(UC1701_SET_DISP_EN | UC1701_SET_DISP_EN_ON);  // enable display
}
Exemple #4
0
/***************************************************************************************************
 * @fn      lcd_init
 *
 * @brief   LCD设备初始化
 * @param   NULL
 * @return  null
 ***************************************************************************************************/  
void lcd_init(void)
{
	lcd_regist();

	
	//背光开启
	GPIO_SetBits(LCD_BL_PORT, LCD_BL_PIN);
	GPIO_SetBits(LCD_BLW_PORT, LCD_BLW_PIN);
	
	//LCD RST
	LCD_RST_LOW();	
	delay_ms(1);
	LCD_RST_HIGH();
	delay_ms(300);

	//LCD 寄存器
	lcd_cmd_write(0x2F);   //Internal pump control
	delay_ms(20);
	lcd_cmd_write(0x24);   //Temperature compensation
	lcd_cmd_write(0xE9);   //set bias=1/10
	lcd_cmd_write(0x81);   //Set Vop
	lcd_cmd_write(160+25);
	lcd_cmd_write(0xA2);   //set line rate:28KLPS
	lcd_cmd_write(0x28);   //set pannel loading
	lcd_cmd_write(0x40);   //scroll line LSB
	lcd_cmd_write(0x50);   //SCROLL LINE MSB
//	lcd_cmd_write(0x89);   //ram address control
	lcd_cmd_write(0x8B);   //ram address control, PAGE increment first
	lcd_cmd_write(0xC0);   //LCD mapping control
//	lcd_cmd_write(0x04);   //MX=0,MY=1
	lcd_cmd_write(0x01);   //MX=0,MY=0,MSF=1
	lcd_cmd_write(0xD0);   //DISPLAY PATTERN = 16-SCALE GRAY
	lcd_cmd_write(0xF1);   //SET COM end
	lcd_cmd_write(0x3F);   //64

	lcd_cmd_write(0xF8);   //Set Window Program inside.

	lcd_cmd_write(0xF5);   //starting row address of RAM program window.PAGE1
	lcd_cmd_write(0x00);
	lcd_cmd_write(0xF7);   //end row address of RAM program window.PAGE32
	lcd_cmd_write(0x1F);
	lcd_cmd_write(0xF4);   //start column address of RAM program window.
	lcd_cmd_write(0x00);
//	lcd_cmd_write(0xEF);
	lcd_cmd_write(0xF6);   //end column address of RAM program window.SEG212
	lcd_cmd_write(0xD3);
//	lcd_cmd_write(0x1B);

	lcd_cmd_write(0xAF);	//dc2=1, IC into exit SLEEP MODE, dc3=1 gray=ON, dc4=1 Green Enhanc mode disabled
  	delay_ms(20);      //needed for internal DC-DC converter startup
  	printf("lcd init over! @ %s,%s,%d\r\n", __FILE__, __func__, __LINE__);
}
Exemple #5
0
void lcdInit()
{
  LCD_BL_Config();
  LCD_Hardware_Init();
  
  LCD_RST_HIGH();
  Delay(5);

  LCD_RST_LOW();
  Delay(120); //11ms

  LCD_RST_HIGH();
  Delay(2500);
 
  AspiCmd(0xE2);
  Delay(2500);
  LCD_Init();
  Delay(120);

  LCD_Init();
  Delay(120);
  AspiCmd(0xAF);	//dc2=1, IC into exit SLEEP MODE, dc3=1 gray=ON, dc4=1 Green Enhanc mode disabled
}
int ili9163_init(spi_bus_t bus, uint32_t cs)
{
    uint32_t ret;
    device.csn = cs;
    device.config.baudrate = 50*1000*1000;
    device.config.data_width = 8;
    device.config.mode = SPI_MODE_0 | SPI_MASTER | SPI_MSB;
    ret = spi_bus_attach_device(bus, &device);
    if(ret)
    {
        return ret;
    }
    else
    {
        ret = spi_config(&device);
    }
    GPIO_QuickInit(RST_PORT, RST_PIN, kGPIO_Mode_OPP);
    GPIO_QuickInit(RS_PORT, RS_PIN, kGPIO_Mode_OPP);
	LCD_RST_LOW();    
    DelayMs(1);
	LCD_RST_HIGH();    
	DelayMs(1);
	LCD_COM(0x11);       		  	//关闭睡眠,振荡器工作
	DelayMs(1);
	
	LCD_COM(0x3a);       		  	//每次传送16位数据(VIPF3-0=0101),每个像素16位(IFPF2-0=101)
	LCD_DATA(0x55);						
 
	LCD_COM(0x26);       		  	
	LCD_DATA(0x04);

	LCD_COM(0xf2);              		//Driver Output Control(1)
	LCD_DATA(0x01);
	
	LCD_COM(0xe0);              		//Driver Output Control(1)
	LCD_DATA(0x3f);
	LCD_DATA(0x25);
	LCD_DATA(0x1c);
	LCD_DATA(0x1e);
	LCD_DATA(0x20);
	LCD_DATA(0x12);
	LCD_DATA(0x2a);
	LCD_DATA(0x90);
	LCD_DATA(0x24);
	LCD_DATA(0x11);
	LCD_DATA(0x00);
	LCD_DATA(0x00);
	LCD_DATA(0x00);
	LCD_DATA(0x00);
	LCD_DATA(0x00);
	 
	LCD_COM(0xe1);              //Driver Output Control(1)
	LCD_DATA(0x20);
	LCD_DATA(0x20);
	LCD_DATA(0x20);
	LCD_DATA(0x20);
	LCD_DATA(0x05);
	LCD_DATA(0x00);
	LCD_DATA(0x15);
	LCD_DATA(0xa7);
	LCD_DATA(0x3d);
	LCD_DATA(0x18);
	LCD_DATA(0x25);
	LCD_DATA(0x2a);
	LCD_DATA(0x2b);
	LCD_DATA(0x2b);  
	LCD_DATA(0x3a);  
	
	LCD_COM(0xb1);              	//设置屏幕刷新频率
	LCD_DATA(0x08);				   	//DIVA=8
	LCD_DATA(0x08);				   	//VPA =8,约90Hz
						 
	LCD_COM(0xb4);              	//LCD Driveing control
	LCD_DATA(0x07);				  	//NLA=1,NLB=1,NLC=1
 
 
	LCD_COM(0xc0);              //LCD Driveing control
	LCD_DATA(0x0a);
	LCD_DATA(0x02);
		
	LCD_COM(0xc1);              //LCD Driveing control
	LCD_DATA(0x02);

	LCD_COM(0xc5);              //LCD Driveing control
	LCD_DATA(0x4f);
	LCD_DATA(0x5a);

	LCD_COM(0xc7);              //LCD Driveing control
	LCD_DATA(0x40);
	
	LCD_COM(0x2a);              	//配置MCU可操作的LCD内部RAM横坐标起始、结束参数
	LCD_DATA(0x00);				   	//横坐标起始地址0x0000
	LCD_DATA(0x00);					
	LCD_DATA(0x00);				   	//横坐标结束地址0x007f(127)
	LCD_DATA(0x7f);
 
	LCD_COM(0x2b);              	//配置MCU可操作的LCD内部RAM纵坐标起始结束参数
	LCD_DATA(0x00);				   	//纵坐标起始地址0x0000
	LCD_DATA(0x00);
	LCD_DATA(0x00);				  	//纵坐标结束地址0x009f(159)
	LCD_DATA(0x9f);

	LCD_COM(0x36);              	//配置MPU和DDRAM对应关系
	LCD_DATA(0xc0);					//MX=1,MY=1

	LCD_COM(0xb7);              	//LCD Driveing control
	LCD_DATA(0x00);				   	//CRL=0
	 
	LCD_COM(0x29);   		  	//开启屏幕显示
	LCD_COM(0x2c);   			//设置为LCD接收数据/命令模式
	ili9163_clear(0x0000);
    return 0;
}