内容发布更新时间 : 2024/11/15 12:31:26星期一 下面是文章的全部内容请认真阅读。
______________________________________________________________________________________________________________
wr_lcd(comm,0x30); //但因为是分块,要有个for(i=0;i<2;i++)的循环。
if(cpl_sign==1) // 图片反选 {
wr_lcd(dat,~menu_pic[menu_num][j*4+i*2]); //写入一字节
wr_lcd(dat,~menu_pic[menu_num][j*4+i*2+1]); //再写入一字节 }
else // 正常显示 {
wr_lcd(dat,menu_pic[menu_num][j*4+i*2]);
wr_lcd(dat,menu_pic[menu_num][j*4+
精品资料
______________________________________________________________________________________________________________
i*2+1]); } }
y++; //垂直地址要由软件设定自动加1
if(y==32&&menu_num<3)
{x+=8;y=0;} // 上下屏切换。0/1/2三幅图Y坐标由16加了
} //16行,跳入下半屏,水平坐标X变成0X80+08,垂直坐标变成0X80+00 wr_lcd(comm,0x36); }
精品资料
______________________________________________________________________________________________________________
分
块
图
形
(旁边还未处理)待续……
精品资料
______________________________________________________________________________________________________________
一、ST7920控制IC的LCD12864实现反白显示
从使用手册上可知,扩展指令里的0x03+行号即可实现反白对应行。但是ST7920 控制器的128×64 点阵液晶其实原理上等同256×32 点阵,第三行对应的DDRAM 地址紧接第一行;第四行对应的DDRAM 地址紧接第二行。所以128×64 点阵的液晶执行反白功能时实用意义不大,因为用户对第一行执行反白显示操作时,第三行必然也反白显示;第二行反白,第四行也必然反白。
其实还是有办法做到单行反白的,解决
精品资料
______________________________________________________________________________________________________________
方法就是混用图形显示和字符显示。其理论支持在于:在ST7920中,字符显示的DDRAM和图形的GDRAM是相互独立的,而最后显示到液晶上的结果,是两个RAM中数据的异或。
具体来说:假如某个点上,绘图RAM的没有绘图(数据为0),而字符RAM上有点阵(数据为1),那么异或的结果就是1,也就是说正常显示字符;当字符上RAM没有点阵的时候,异或的结果是0,自然也就不显示了。假如该点上绘图RAM绘图了(数据为1),当字符RAM上有点阵(数据为1时),异或的结果为0,效果就是反白显示;如果字符RAM没有点阵(数据为0时),异或结果为1,效果就是显示绘图
精品资料