Exemple #1
0
void st7567_init(void)
{
	u8 i,j;
	spi_init();

	ST_RST = 0;
	delay_ms(2);
	ST_RST = 1;
	delay_ms(100);
	
	ST_CSB = 0;
	
//	spi_write_com(0xe2);	 //Soft rest
//	spi_write_com(0xae);	  	//显示	
	
	spi_write_com(0xa2);	 //SET LCD bias(A2-1/9bias; A3-1/7bias)
	spi_write_com(0x25);	   //SET INTERNAL REGULATOR RESDASTOR RATIO(100B)-POR
	//对比度调节(0-0x3f / 0-63)
	spi_write_com(0x81);			//前缀
	spi_write_com(0x1a);	   // SET CONTRAST CONTROL REGISTER(00,0000H-11,1111H)
	//打开电源
	spi_write_com(0x2f);	   //SET POWER CONTROL REGISTER (ALL INTERNAL)
	//设置扫描方向
	spi_write_com(0xA0);			//设置seg方向,seg0->seg131
	spi_write_com(0xC8);			//设置COM方向,0xc0=com0->com63 0xc8=com63->com0

	spi_write_com(0xA6);		//取消反显
	spi_write_com(0xA4);		//取消全显
//	spi_write_com(0xA6+1);		//反显
//  spi_write_com(0xA4+1);		//全显

	spi_write_com(0x40);	//设置起始行 0-63
//	spi_write_com(0xB0);		//设置页地址 0-8
//	
//	spi_write_com(0x10);		//列地址高四位
//	spi_write_com(0);					//列地址低四位

//	clear_screen(0xff);	

	for(i=0;i<8;i++)
	{
		spi_write_com(0xb0+i);
	  spi_write_com(0x10);
		spi_write_com(0x00);
		for(j=0;j<128;j++)
		{
			lcd_write_dat(0);
		}
	 }
	
	spi_write_com(0xaf);	  	//开显示	
}
Exemple #2
0
void clear_screen(u8 xx)
{
	u8 i,j;
	for(i=0;i<8;i++)
	{
		spi_write_com(0xb0+i);
	  spi_write_com(0x10);
		spi_write_com(0x00);
		for(j=0;j<128;j++)
		{
			lcd_write_dat(xx);
		}
	 }

}
Exemple #3
0
void draw_pic(u8 *p_picture)
{
	u8 i,j;
	
	for(i=0;i<8;i++)	//8页
	{
		spi_write_com(0xb0+i);
	  spi_write_com(0x10);
		spi_write_com(0x00);
		for(j=0;j<128;j++)
		{
			lcd_write_dat(*p_picture++);
		}
	 }
}
/* writes both a command and data value to the lcd */
static void lcd_write(uint8_t cmd, uint8_t data)
{
    lcd_write_cmd(cmd);
    lcd_write_dat(data);
}