void Lcd_Init(void) { //调用一次这些函数,免得编译的时候提示警告 LCD_CS =1; if(LCD_CS==0) { LCD_WR_REG_DATA(0,0); LCD_ShowString(0,0," "); LCD_ShowNum(0,0,0,0); LCD_Show2Num(0,0,0,0); LCD_DrawPoint_big(0,0); LCD_DrawRectangle(0,0,0,0); Draw_Circle(0,0,0); } LCD_REST=0; delayms(20); LCD_REST=1; delayms(20); LCD_CS =0; //打开片选使能 LCD_WR_REG(0xCB); LCD_WR_DATA8(0x39); LCD_WR_DATA8(0x2C); LCD_WR_DATA8(0x00); LCD_WR_DATA8(0x34); LCD_WR_DATA8(0x02); LCD_WR_REG(0xCF); LCD_WR_DATA8(0x00); LCD_WR_DATA8(0XC1); LCD_WR_DATA8(0X30); LCD_WR_REG(0xE8); LCD_WR_DATA8(0x85); LCD_WR_DATA8(0x00); LCD_WR_DATA8(0x78); LCD_WR_REG(0xEA); LCD_WR_DATA8(0x00); LCD_WR_DATA8(0x00); LCD_WR_REG(0xED); LCD_WR_DATA8(0x64); LCD_WR_DATA8(0x03); LCD_WR_DATA8(0X12); LCD_WR_DATA8(0X81); LCD_WR_REG(0xF7); LCD_WR_DATA8(0x20); LCD_WR_REG(0xC0); //Power control LCD_WR_DATA8(0x23); //VRH[5:0] LCD_WR_REG(0xC1); //Power control LCD_WR_DATA8(0x10); //SAP[2:0];BT[3:0] LCD_WR_REG(0xC5); //VCM control LCD_WR_DATA8(0x3e); //对比度调节 LCD_WR_DATA8(0x28); LCD_WR_REG(0xC7); //VCM control2 LCD_WR_DATA8(0x86); //-- LCD_WR_REG(0x36); // Memory Access Control LCD_WR_DATA8(0x48); // //48 68竖屏//28 E8 横屏 LCD_WR_REG(0x3A); LCD_WR_DATA8(0x55); LCD_WR_REG(0xB1); LCD_WR_DATA8(0x00); LCD_WR_DATA8(0x18); LCD_WR_REG(0xB6); // Display Function Control LCD_WR_DATA8(0x08); LCD_WR_DATA8(0x82); LCD_WR_DATA8(0x27); LCD_WR_REG(0xF2); // 3Gamma Function Disable LCD_WR_DATA8(0x00); LCD_WR_REG(0x26); //Gamma curve selected LCD_WR_DATA8(0x01); LCD_WR_REG(0xE0); //Set Gamma LCD_WR_DATA8(0x0F); LCD_WR_DATA8(0x31); LCD_WR_DATA8(0x2B); LCD_WR_DATA8(0x0C); LCD_WR_DATA8(0x0E); LCD_WR_DATA8(0x08); LCD_WR_DATA8(0x4E); LCD_WR_DATA8(0xF1); LCD_WR_DATA8(0x37); LCD_WR_DATA8(0x07); LCD_WR_DATA8(0x10); LCD_WR_DATA8(0x03); LCD_WR_DATA8(0x0E); LCD_WR_DATA8(0x09); LCD_WR_DATA8(0x00); LCD_WR_REG(0XE1); //Set Gamma LCD_WR_DATA8(0x00); LCD_WR_DATA8(0x0E); LCD_WR_DATA8(0x14); LCD_WR_DATA8(0x03); LCD_WR_DATA8(0x11); LCD_WR_DATA8(0x07); LCD_WR_DATA8(0x31); LCD_WR_DATA8(0xC1); LCD_WR_DATA8(0x48); LCD_WR_DATA8(0x08); LCD_WR_DATA8(0x0F); LCD_WR_DATA8(0x0C); LCD_WR_DATA8(0x31); LCD_WR_DATA8(0x36); LCD_WR_DATA8(0x0F); LCD_WR_REG(0x2A); LCD_WR_DATA8(0x00); LCD_WR_DATA8(0x00); LCD_WR_DATA8(0x00); LCD_WR_DATA8(0xEF); LCD_WR_REG(0x2B); LCD_WR_DATA8(0x00); LCD_WR_DATA8(0x00); LCD_WR_DATA8(0x01); LCD_WR_DATA8(0x3F); LCD_WR_REG(0x11); //Exit Sleep delayms(120); LCD_WR_REG(0x29); //Display on LCD_WR_REG(0x2c); }
void LCD_Init(void) { P3OUT|=(BIT1+BIT2+BIT3+BIT6+BIT7); P4OUT=0xFF; P2OUT=0xFF; P1OUT|=BIT2; P3DIR|=(BIT1+BIT2+BIT3+BIT6+BIT7); P4DIR=0xFF; P2DIR=0xFF; P1DIR|=BIT2; P1OUT|=BIT2; SET_LCD_CS; if(GET_LCD_CS==0) { LCD_WR_REG_DATA(0,0); LCD_ShowString(0,0," "); LCD_ShowNum(0,0,0,0); LCD_Show2Num(0,0,0,0); LCD_DrawPoint_big(0,0); LCD_DrawRectangle(0,0,0,0); Draw_Circle(0,0,0); } SET_LCD_REST; delay_ms(5); CLR_LCD_REST; delay_ms(5); SET_LCD_REST; SET_LCD_CS; SET_LCD_RD; SET_LCD_WR; delay_ms(5); CLR_LCD_CS ; //打开片选使能 LCD_WR_REG(0x00E2); //PLL multiplier, set PLL clock to 120M LCD_WR_DATA(0x002d); //N=0x36 for 6.5M, 0x23 for 10M crystal LCD_WR_DATA(0x0002); LCD_WR_DATA(0x0004); LCD_WR_REG(0x00E0); // PLL enable LCD_WR_DATA(0x0001); delay_ms(1); LCD_WR_REG(0x00E0); LCD_WR_DATA(0x0003); delay_ms(5); LCD_WR_REG(0x0001); // software reset delay_ms(5); LCD_WR_REG(0x00E6); //PLL setting for PCLK, depends on resolution LCD_WR_DATA(0x0000); LCD_WR_DATA(0x00ff); LCD_WR_DATA(0x00be); LCD_WR_REG(0x00B0); //LCD SPECIFICATION LCD_WR_DATA(0x0020); LCD_WR_DATA(0x0000); LCD_WR_DATA((HDP>>8)&0X00FF); //Set HDP LCD_WR_DATA(HDP&0X00FF); LCD_WR_DATA((VDP>>8)&0X00FF); //Set VDP LCD_WR_DATA(VDP&0X00FF); LCD_WR_DATA(0x0000); delay_ms(5); LCD_WR_REG(0x00B4); //HSYNC LCD_WR_DATA((HT>>8)&0X00FF); //Set HT LCD_WR_DATA(HT&0X00FF); LCD_WR_DATA((HPS>>8)&0X00FF); //Set HPS LCD_WR_DATA(HPS&0X00FF); LCD_WR_DATA(HPW); //Set HPW LCD_WR_DATA((LPS>>8)&0X00FF); //SetLPS LCD_WR_DATA(LPS&0X00FF); LCD_WR_DATA(0x0000); LCD_WR_REG(0x00B6); //VSYNC LCD_WR_DATA((VT>>8)&0X00FF); //Set VT LCD_WR_DATA(VT&0X00FF); LCD_WR_DATA((VPS>>8)&0X00FF); //Set VPS LCD_WR_DATA(VPS&0X00FF); LCD_WR_DATA(VPW); //Set VPW LCD_WR_DATA((FPS>>8)&0X00FF); //Set FPS LCD_WR_DATA(FPS&0X00FF); LCD_WR_REG(0x0036); //rotation LCD_WR_DATA(0x0000); LCD_WR_REG(0x00F0); //pixel data interface LCD_WR_DATA(0x0003); delay_ms(5); LCD_WR_REG(0x0029); //display on LCD_WR_REG(0x00BE); //set PWM for B/L LCD_WR_DATA(0x0006); LCD_WR_DATA(0x00f0); LCD_WR_DATA(0x0001); LCD_WR_DATA(0x00f0); LCD_WR_DATA(0x0000); LCD_WR_DATA(0x0000); LCD_WR_REG(0x00d0); LCD_WR_DATA(0x000d); //----------LCD RESET---GPIO0-------------------// LCD_WR_REG(0x00B8); LCD_WR_DATA(0x0000); //GPIO3=input, GPIO[2:0]=output LCD_WR_DATA(0x0001); //GPIO0 normal LCD_WR_REG(0x00BA); LCD_WR_DATA(0x0000); }