//*************************************************************** // //***** Focus LCDs ***** //***** LCDs Made Simple ***** //***** www.FocusLCDs.com ***** // //*************************************************************** // //NOTE:VCI=3.3V //********************************************** void write_command(unsigned int i) { cs=0; rd=1; rs=0; P2=i>>8; P0=i; rw=0; rw=1; cs=1; } //****************16位数据************************* void write_data(unsigned int i) { cs=0; rd=1; rs=1; P2=i>>8; P0=i; rw=0;; rw=1; cs=1; } //********************16位送显示Display data***************************** void write_data1(byte data_h,data_l) { cs=0; rs=1; rd=1; P2=data_h; P0=data_l; rw=0; rw=1; cs=1; } //**********************8位指令*************************************** void write_command(unsigned int i) { cs=0; rd=1; rs=0; P2=i; rw=0; rw=1; cs=1; } //*******************8位数据************************** void write_data(unsigned int i) { cs=0; rd=1; rs=1; P2=i>>8; P2=i; rw=0;; rw=1; cs=1; } /*************************8位送显示数据********************** void write_data1(byte data_h,data_l) { cs=0; rs=1; rd=1; P2=data_h; rw=0; rw=1; P2=data_l; rw=0; rw=1; cs=1; } /*************************************************/ void initi(void) { res=1; delay(1); res=0; delay(10); res=1; delay(120); //************************************************************ write_command(0xb2); write_data(0x0c); write_data(0x0c); write_data(0x00); write_data(0x33); write_data(0x33); write_command(0xb7); write_data(0x35); write_command(0x3A); write_data(0x55); write_command(0x36); write_data(0x00); write_command(0xbb); write_data(0x2A);//VCOM write_command(0xc3); write_data(0x0A);//GVDD write_command(0xc4); write_data(0x20); write_command(0xc6); write_data(0x0f); write_command(0xd0); write_data(0xa4); write_data(0xa2); write_command(0xe0); write_data(0xd0); write_data(0x00); write_data(0x02); write_data(0x07); write_data(0x0a); write_data(0x28); write_data(0x32); write_data(0x44); write_data(0x42); write_data(0x06); write_data(0x0e); write_data(0x12); write_data(0x14); write_data(0x17); write_command(0xe1); write_data(0xd0); write_data(0x00); write_data(0x02); write_data(0x07); write_data(0x0a); write_data(0x28); write_data(0x31); write_data(0x54); write_data(0x47); write_data(0x0e); write_data(0x1c); write_data(0x17); write_data(0x1b); write_data(0x1e); write_command(0x2A); //Frame rate control write_data(0x00); write_data(0x00); write_data(0x00); write_data(0xEF); write_command(0x2B); //Display function control write_data(0x00); write_data(0x00); write_data(0x01); write_data(0x3F); write_command(0x11); //Exit Sleep delay(120); write_command(0x29); //display on write_command(0x2c); } //********************************************************************************************* void EnterSleep (void) { write_command(0x28); delay(20); write_command(0x10); } //********************************************************* void ExitSleep (void) { write_command(0x11); delay(120); write_command(0x29); } //*****************窗口地址************************************ void LCD_Window_Set(int x0,int y0,int x1,int y1) { LCD_Cmd_wr(0x2a); LCD_para_wr(x0>>8); LCD_para_wr(x0); LCD_para_wr(x1>>8); LCD_para_wr(x1); LCD_Cmd_wr(0x2b); LCD_para_wr(y0>>8); LCD_para_wr(y0); LCD_para_wr(y1>>8); LCD_para_wr(y1); LCD_Cmd_wr(0x2c); }