微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 我的12864学习笔记_4---几点补充详解

我的12864学习笔记_4---几点补充详解

时间:11-28 来源:互联网 点击:

wr_lcd(comm,0x88);//第二行的水平起始地址为88H

//以后写入数据后,地址计数器(AC)会自动加一

for(k=0;k16;k++)

{

wr_lcd(dat,*ptr++);//写入32*16个图片数据因为一个数据是8位的,所以这一次就相当于写入了8个数据,所以一共为8个32*16模块

//这些16进制数,一共可以控制32*16*8个像素

}

}

wr_lcd(comm,0x36);//打开绘图显示

wr_lcd(comm,0x30);//回到基本指令集

}

最后在说一个简单的函数,拿到液晶时,我们希望检查一下液晶是不是好的,是不是所有的点都是可用的,就要写一个检查液晶的函数。原理很简单,就是把液晶的所有的像素点都点亮,看看有没有坏点就可以了,函数,如下,和写GDRAM,清除GDRAM的函数基本相同,只不过向GDRAM中写入的是全1,点亮所有的像素点,函数如下:

voidcheck_screen(void)//点亮全屏,检查坏点

{

uchari,j,k;

wr_lcd(comm,0x34);//打开扩展指令集操作GDRAM是扩展指令集

i=0x80;

for(j=0;j32;j++)//写入第一行的8个32*16模块

{

wr_lcd(comm,i++);//写入第一行8个32*16模块的垂直起始地址,在写入地址时,要先输入垂直地址,再输入水平地址

wr_lcd(comm,0x80);//第一行水平的起始地址为80H

//以后写入数据后,地址计数器(AC)会自动加一

for(k=0;k16;k++)

{

wr_lcd(dat,0xff);//全部点亮屏幕

//写入32*16个图片数据因为一个数据是8位的,所以这一次就相当于写入了8个数据,所以一共为8个32*16模块

}

}

i=0x80;

for(j=0;j32;j++)//写入第二行的8个32*16模块

{

wr_lcd(comm,i++);//写入第一行8个32*16模块的垂直起始地址,在写入地址时,要先输入垂直地址,再输入水平地址

wr_lcd(comm,0x88);//第二行的水平起始地址为88H

//以后写入数据后,地址计数器(AC)会自动加一

for(k=0;k16;k++)

{

wr_lcd(dat,0xff);//全部点亮屏幕

//写入32*16个图片数据因为一个数据是8位的,所以这一次就相当于写入了8个数据,所以一共为8个32*16模块

}

}

wr_lcd(comm,0x36);//打开绘图显示

wr_lcd(comm,0x30);//回到基本指令集

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top