其他分享
首页 > 其他分享> > ST7920驱动的LCD12864实现单行反白显示

ST7920驱动的LCD12864实现单行反白显示

作者:互联网

参考链接:

ST7920驱动的LCD12864实现单行反白显示 - jqdy - 博客园

12864液晶模块的详细使用_Rainlee随笔记-CSDN博客_12864使用

GDRAM空间有64×256 bit 组成,12864屏幕只使用了上一半的GDRAM内存。

设定扩展指令,确定地址,写2个字节,显示效果是横着写。

测试代码。

void LCD_Graphtest(void)
{
	//LCD_Clearall();
	LCD_ClearGDRAM();

LCD_Row1_highlight();
LCD_WriteCmd(0x36);//开显示
LCD_WriteCmd(0x30);//返回基本指令集

LCD_Row1_highlight_OFF(); 
LCD_Row2_highlight();
LCD_WriteCmd(0x36);//开显示
LCD_WriteCmd(0x30);//返回基本指令集
 
LCD_Row2_highlight_OFF(); 
LCD_Row3_highlight();
LCD_WriteCmd(0x36);//开显示
LCD_WriteCmd(0x30);//返回基本指令集
  
LCD_Row3_highlight_OFF(); 
LCD_Row4_highlight();
LCD_WriteCmd(0x36);//开显示
LCD_WriteCmd(0x30);//返回基本指令集 
    
//LCD_Display_Picture(imagetest);
}

反白与取消。

//第4行反白 
void LCD_Row4_highlight(void)
{	uint8_t i,j;
    for(i=0;i<16;i++)//32表示LCD12864点阵型液晶显示器上半屏32行
 {    
    LCD_WriteCmd(0x34);
	LCD_WriteCmd(0x34);
	LCD_WriteCmd(0x90+i);
    LCD_WriteCmd(0x88);
	for(j=0;j<16;j++)
         {LCD_WriteData(0xff);
         }	
  }  	
}
//第4行反白取消
void LCD_Row4_highlight_OFF(void)
{	uint8_t i,j;
    for(i=0;i<16;i++)
 {    
    LCD_WriteCmd(0x34);
	LCD_WriteCmd(0x34);
	LCD_WriteCmd(0x90+i);
    LCD_WriteCmd(0x88);
	for(j=0;j<16;j++)
    {LCD_WriteData(0x00);
    }	
  } 	
}

LCD12864液晶显示屏串行方式驱动详解_小鱼的马克堂-CSDN博客 该文分析总结:开扩展功能(指令:0x34),往CGROM中写入地址y,x,回到基本指令功能(0x30),写0xFF反白,写0x00清除反白,最后开图形显示(0x36)。我简单试了一下,出现显示乱码。没有细看。觉得还是不要动用基本指令功能(0x30)+写数据了。我觉得DDRAM和GCRAM,还是各干个的吧。

滚动的效果还没有设计,以后再说吧。

标签:WriteCmd,LCD12864,ST7920,地址,LCD,0x30,反白,highlight
来源: https://blog.csdn.net/sjh2100/article/details/121131462