Exemplo n.º 1
0
/**************************************************************************************************
 * @fn      HalLcd_HW_Init
 *
 * @brief   Initilize HW LCD Driver.
 *
 * @param   None
 *
 * @return  None
 **************************************************************************************************/
void HalLcd_HW_Init(void)
{
    /* Initialize LCD IO lines */
    halLcd_ConfigIO();

    /* Initialize SPI */
    halLcd_ConfigSPI();

    HalLcd_HW_Control(0xaf);    //开显示
    HalLcd_HW_Control(0x40);    //显示起始行为0
    HalLcd_HW_Control(0xa0);    //RAM列地址与列驱动同顺序
    HalLcd_HW_Control(0xa6);    //正向显示
    HalLcd_HW_Control(0xa4);    //显示全亮功能关闭
    HalLcd_HW_Control(0xa2);    //LCD偏压比1/9
    HalLcd_HW_Control(0xc8);    //行驱动方向为反向
    HalLcd_HW_Control(0x2f);    //启用内部LCD驱动电源
    HalLcd_HW_Control(0xf8);    //升压电路设置指令代码
    HalLcd_HW_Control(0x00);    //倍压设置为4X
    
    
    HalLcd_HW_SetContrast(0x68);//set contrast 对比度
 
    
    /* Clear the display */
    HalLcd_HW_Clear();

}
Exemplo n.º 2
0
/*
作用    设置LCD 文本显示的其实行和列
参数1   line,范围:0~7,即能够显示的行为1~8行,也就是lcd手册里提到的page
参数2   col,范围:0~127,即lcd的总列数,显示的起始位置可以设置到每一列
*/
void set_ddram_line_col(uint8 line,uint8 col)
{

  uint8 page,coll,coll_l,coll_h;
  page = line;
  coll = col;
  coll_h = coll>>4;
  coll_l = coll&0x0f;
  HalLcd_HW_Control(0xB0+page);
  HalLcd_HW_WaitUs(15); // 15 us
  HalLcd_HW_Control(0x10+coll_h);
  HalLcd_HW_WaitUs(15); // 15 us
  HalLcd_HW_Control(0x00+coll_l);
  HalLcd_HW_WaitUs(15); // 15 us
}
Exemplo n.º 3
0
/**************************************************************************************************
 * @fn          HalLcd_HW_SetContrast
 *
 * @brief       Set display contrast
 *
 * @param       uint8 value - contrast value
 *
 * @return      none
 **************************************************************************************************/
void HalLcd_HW_SetContrast(uint8 value)
{
    HalLcd_HW_Control(CONTRAST_CTRL_REGISTER);    
    HalLcd_HW_Control(value);   
}
Exemplo n.º 4
0
/* 30/8/2010 ++ by feibit */
void SET_DDRAM_ADDR(uint8 x, uint8 y)
{
	HalLcd_HW_Control(y|0xb0);
	HalLcd_HW_Control((x >> 4)|0x10);
	HalLcd_HW_Control(x&0x0f);
}
Exemplo n.º 5
0
/**************************************************************************************************
初始化,已根据lcd12864手册更改
 **************************************************************************************************/
void HalLcd_HW_Init(void)
{
  /* Initialize LCD IO lines */
  halLcd_ConfigIO();

  /* Initialize SPI */
  halLcd_ConfigSPI();

	HalLcd_HW_Control(0xe2);	//软复位
	HalLcd_HW_WaitUs(15000); // 15 us
	HalLcd_HW_Control(0x2c);	//升压步聚1
	HalLcd_HW_WaitUs(15); // 15 us
	HalLcd_HW_Control(0x2e);	//升压步聚2
	HalLcd_HW_WaitUs(15); // 15 us
	HalLcd_HW_Control(0x2f);	//升压步聚3
	HalLcd_HW_WaitUs(150); // 15 us
	HalLcd_HW_Control(0x23);	//粗调对比度,可设置范围0x20~0x27
	HalLcd_HW_WaitUs(15); // 15 us
	HalLcd_HW_Control(0x81);	//微调对比度
	HalLcd_HW_WaitUs(15); // 15 us
	HalLcd_HW_Control(0x28);	//0x1a,微调对比度的值,可设置范围0x00~0x3f
	HalLcd_HW_WaitUs(15); // 15 us
	
	HalLcd_HW_Control(0xa2);	// 1/9偏压比(bias)
	HalLcd_HW_WaitUs(15); // 15 us
	HalLcd_HW_Control(0xa0);	//行扫描顺序:从上到下
	HalLcd_HW_WaitUs(15); // 15 us
	HalLcd_HW_Control(0xc8);	//列扫描顺序:从左到右
	HalLcd_HW_WaitUs(15); // 15 us
	HalLcd_HW_Control(0x40);	//起始行:第一行开始
	HalLcd_HW_WaitUs(15); // 15 us
	HalLcd_HW_Control(0xaf);	//打开显示
	HalLcd_HW_WaitUs(15); // 15 us
    HalLcd_HW_Control(0xa4);	
	HalLcd_HW_WaitUs(15); // 15 us
        
	HalLcd_HW_Clear();
        //display_string_5x7(1,1,"abcdefghijklmnopqrstuvwxyz");
        //display_string_5x7(8,1,"uvwxyz0123456789");
        //while(1);


}