12864液晶显示图片原理(完整版) 下载本文

______________________________________________________________________________________________________________

{ //再写入两字节数据到GDRAM。这里是这样进行的:i=0时,j=0,1时,写入两字节到垂直(0X80+00)水平(0X80+00)这格(D15~D0)里;然后X坐标地址自增1,地址变为垂直(0X80+00)水平(0X80+01)这格,在j=2,3时写入两字节,………一直到垂直(0X80+00)水平(0X80+07)这格,在j=14,15时写入两字节,此时循环for(j=0;j<16;j++)结束跳出,刚好第一行128位写完数据;然后i++,开始写第二行… write_data(*adder); adder++; } }

精品资料

______________________________________________________________________________________________________________

//*******显示下半屏内容设置 for(i=0;i<32;i++) // {

write_com(0x80 + i); //SET 垂直地址 下半屏的垂直地址中上半屏一样是0X80+Y(Y:00~1F)

write_com(0x88); //SET 水平地址 下半屏的水平地址是从0X80+08=0X88开始的

for(j=0;j<16;j++) {

write_data(*adder); adder++; }

精品资料

______________________________________________________________________________________________________________

} }

形: ……

(2)分块图形显示 程序:

void anti_nor_pic (uchar cpl_sign,uchar menu_num) {

精品资料

______________________________________________________________________________________________________________

uchar i,j,x,y;

x=menu_num*3; // 计算图片显示坐标,由坐标图知图片0/1/2/3/4/5的X坐标分别

if(x>6) x--; //为0X80+(00,03, 06,08,0B,0E)

if(menu_num<3) y=16; //0、1、2号图片Y坐标起始为0X80+16(上半屏从上往下第16行)

else y=8; //3、4、5号图片Y坐标起始为0X80+8(下半屏从上往下第8行)

if(cpl_sign==1)

display_cnasc(0x82,4,menu_cn[menu_num]);

精品资料

______________________________________________________________________________________________________________

for(j=0;j<24;j++) //图片32*24(宽*高),即有24行 {

for(i=0;i<2;i++) //一张图片在X方向上占两个单位(一个单位即16位两字节)在写

{ //完一个单位后要向下一个单位写,因为这里不是全屏显示,要设定

wr_lcd(comm,0x34); //关闭绘图显示功能

wr_lcd(comm,0x80+y); //垂直地址 wr_lcd(comm,0x80+x+i); //水平地址,事实上这里i可以不要,因为水平地址会自动加1,

精品资料