12864液晶显示图片原理(完整版)

______________________________________________________________________________________________________________

/////////////////////////////////////////////////////////////// //显示汉字 void

dispString

(uchar

X,

Y,uchar

*msg) //X为哪一行,Y为哪一列。msg为汉字 {

if(X==0) X = 0x80; //第一行,汉字显示坐标

else if(X==1) X = 0x90; //第二行 else if(X==2) X = 0x88; //第三行 else X = 0x98; //第四行

Y = X + Y; //Y为1往右移一位

精品资料

______________________________________________________________________________________________________________

write_com(Y); //写入坐标

while (*msg) {

write_data(*msg++); //显示汉字 } }

/////////////////////////////////////////////////////////////// //显示图象

void disppicture(uchar code *adder) {

uint i,j;

//*******显示上半屏内容设置

for(i=0;i<32;i++) // 上半屏32个

精品资料

______________________________________________________________________________________________________________

列地址 {

write_com(0x80 + i); //SET 垂直地址 VERTICAL ADD

write_com(0x80); //SET 平地址 HORIZONTAL ADD for(j=0;j<16;j++) {

write_data(*adder); adder++; } }

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

精品资料

水______________________________________________________________________________________________________________

write_com(0x80 + i); //SET 垂直地址 VERTICAL ADD

write_com(0x88); //SET 水平地址 HORIZONTAL ADD for(j=0;j<16;j++) {

write_data(*adder); adder++; } } }

/////////////////////////////////////////////////////////////// //LCD字库初始化函数

精品资料

______________________________________________________________________________________________________________

void lcdinit_str(void) {

delay(40); //大于40MS的延时程序

PSB=1; //设置为8BIT并口工作模式

delay(1); //延时 reset(); //复位

write_com(0x30); //Extended Function Set :8BIT设置,RE=0: basic instruction set, G=0 :graphic display OFF delay(100); //大于100uS的延时程序

write_com(0x30); //Function

精品资料

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4