1、0x00,0x00,0x00,0xC1,0x01,0xC1,0x00,0xC1,0x41,0xC1,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x07,0x00,0x07,0x04,0x07,0x00,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x15,0x1F,0x00,0x1F,0x11,0x1F,0x00,0xFF,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x54,0x5C,0x00,0x7C,0x44,0x7C,0x00,0xFF,
2、0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0xF0,0x10,0xF0,0x00,0xFF,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
3、0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
4、0x00,0x00,0x00,0x7C,0x44,0x7C,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x7D,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x75,0x55,0x5D,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x55,0x55,0x7D,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1D,0x11,0x7D,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x5D,0x55,0x75,0x01,
5、0x01,0x01,0x01,0x01,0x01,0x01,0x7D,0x55,0x75,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x05,0x7D,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x7D,0x55,0x7D,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1D,0x15,0x7D,0x01,0x01,0x01,0x01,0x01,0x01,0x7D,0x01,0x7D,0x45,0x7D,0x01,0x01,0x01,0x01,0x01,0x01,0x7D,0x01,0x01,0x7D,
6、0x01,0x01,0x01,0x01,;voiddelay(uintk);/延时voidhua_zuobiao(void);/画坐标voidwcode(ucharcom,ucharcs1,ucharcs2);/写指令voidwdata(ucharda,ucharcs1,ucharcs2);/写数据voidset_startline(uchari);/起始行voidset_adr(ucharx,uchary);/页值设置,起始列值函数voidclear(void);/clear清屏voidiniti_LCD(void);/初始化LCDsbitRST=P30;sbitCS2=P35;sbitCS
7、1=P34;sbitRS=P31;sbitRW=P33;sbitE=P32;voidbusy() /状态检查,LCD是否忙 P2=0X00; RS=0; RW=1; E=1; while(P2&0X80);/结果为真则一直执行空操作,也就是说P0&0X80为0则结束循环 E=0;voidiniti_LCD(void)/初始化LCD wcode(0x3e,1,1);/显示开/0x3e关 set_startline(0);/起始行第0行voidset_startline(uchari)/起始行。11A5A4A3A2A1A0共有64行 /液晶显示器的最底层为第0行i=0xc0+i;/此算法为把最顶层
8、做为第一层wcode(i,1,1);voidset_adr(ucharx,uchary)/页值设置,起始列值函数 x=x+0xb8;/行/页地址设置。10111A2A1A0DDRAM的8行为一页,A0A2为页码,LCD为64行8页 y=y+0x40;/列地址设置。01A5A4A3A2A1A0两半屏分别有64列,A0A5送入列地址计数器,/作为列(Y)地址指针。每读写一次其自动加一,指向下一列DDRAM单元 wcode(x,0,0); wcode(y,0,0);voiddelay(uintk)/延时 while(k-);voidwcode(ucharcom,ucharcs1,ucharcs2)/
9、写指令 busy(); CS1=cs1; CS2=cs2; RW=0; P2=com; delay(5);voidwdata(ucharda,ucharcs1,ucharcs2)/写数据 RS=1; P2=da;voidclear(void)/clear清屏 uchari,loop; for(i=0;i8;i+)/循环页写0/ set_adr(i,0);/页码/行 for(loop=0;loop64;loop+)wdata(0x00,1,1);/列/左右屏幕同时写/ voidhua_zuobiao(void)/画坐标 uchari,j; for(j=0;jj+)/页码 set_adr(j,0); for(i=1;=64;i+) wdata(zuobiaoi+j*128,0,1); wdata(zuobiao63+i+j*128,1,0); voidmain(void) uchardp,x,y=12;/x页y列,y=12表示从第12列开始 initi_LCD(); while(1) if(y64) set_adr(x,y); wdata(shuzidp,1,0); else set_adr(x,y-63); wdata(shuzidp,0,1); y+;/列 if(y=128)y=12;/ clear(); hua_zuobiao();/画坐标图