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

参考链接:

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

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

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

  • 屏幕的第一行全宽字符:
  •   对应的垂直地址Y是0~15,即0x80-0x8f,水平地址X是0~7,0x80-0x87
  • 屏幕的第二行全宽字符:
  •   对应的垂直地址Y是16~31,即0x90-0x9f,水平地址X是0~7,0x80-0x87
  • 屏幕的第三行全宽字符:
  •   对应的垂直地址Y是0~15,即0x80-0x8f,水平地址X是8~15,0x88-0x8f
  • 屏幕的第四行全宽字符:
  •   对应的垂直地址Y是16~31,即0x90-0x9f,水平地址X是8~15,0x88-0x8f

设定扩展指令,确定地址,写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,还是各干个的吧。

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

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值