⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avrforili9320.c

📁 avr对ILI9320 240*320的屏幕。可以直接驱动~~!
💻 C
📖 第 1 页 / 共 2 页
字号:
        LCD_WR_REG(0x85,0x0000); 
        LCD_WR_REG(0x90,0x0010); 
        LCD_WR_REG(0x92,0x0000); 
        LCD_WR_REG(0x93,0x0003); 
        LCD_WR_REG(0x95,0x0110); 
        LCD_WR_REG(0x97,0x0000); 
        LCD_WR_REG(0x98,0x0000); 

        //power setting function 
        LCD_WR_REG(0x10,0x0000); 
        LCD_WR_REG(0x11,0x0000); 
        LCD_WR_REG(0x12,0x0000); 
        LCD_WR_REG(0x13,0x0000); 
        //_delay_loop_2 (10000); 
         
        LCD_WR_REG(0x10,0x17b0); 
        LCD_WR_REG(0x11,0x0004); 
        //_delay_loop_2 (10000); 
         
        LCD_WR_REG(0x12,0x013e); 
        //_delay_loop_2 (10000); 
         
        LCD_WR_REG(0x13,0x1f00); 
        LCD_WR_REG(0x29,0x000f); 
        _delay_loop_2 (0xffff);         //非常重要,不能少 
         
        LCD_WR_REG(0x20,0x0000); 
        LCD_WR_REG(0x21,0x0000); 

        //initializing function 2 

        LCD_WR_REG(0x30,0x0204); 
        LCD_WR_REG(0x31,0x0001); 
        LCD_WR_REG(0x32,0x0000); 
        LCD_WR_REG(0x35,0x0206); 
        LCD_WR_REG(0x36,0x0600); 
        LCD_WR_REG(0x37,0x0500); 
        LCD_WR_REG(0x38,0x0505); 
        LCD_WR_REG(0x39,0x0407); 
        LCD_WR_REG(0x3c,0x0500); 
        LCD_WR_REG(0x3d,0x0503); 

        //display on 
        LCD_WR_REG(0x07,0x0173); 
} 

void LCD_WR_REG(uchar index,uint val) 
 { 
        CS_L; 
        RS_L; 
         
        DATA_L=index; 
        DATA_H=0; 
         
        WR_L; 
        //nop; 
        //nop; 
        WR_H; 
        RS_H; 
        DATA_L=(uchar)val; 
        DATA_H=(uchar)(val>>8); 
         
        WR_L; 
        //nop; 
        //nop; 
        WR_H; 
        CS_H; 
 } 

void LCD_WR_Start() 
{ 
        CS_L; 
        RS_L; 
         
        DATA_L = 0x22; 
        DATA_H = 0x00; 
        WR_L; 
        nop; 
        nop; 
        WR_H; 
        RS_H; 
} 

void LCD_WR_Data(uint val) 
{ 
        DATA_L = (uchar)val; 
        DATA_H = (uchar)(val>>8); 
        WR_L; 
        //nop; 
        //nop; 
        WR_H; 
} 

void LCD_WR_End() 
{ 
        CS_H; 
} 

void LCD_test() 
{ 
        uint temp,num,cl; 
        uchar n; 
         
        LCD_WR_REG(0x20,0);        //0-239 
        LCD_WR_REG(0x21,0);        //0-319 
         
        LCD_WR_Start(); 
        for(n=0;n<8;n++) 
         { 
            temp=color[n]; 
                for(num=40*240;num>0;num--) 
                  LCD_WR_Data(temp); 
         } 
        LCD_WR_End(); 
         
/*        cl=0x0000; 
        LCD_WR_REG(0x20,0);        //0-239 
        LCD_WR_REG(0x21,0);        //0-319 
        LCD_WR_Start(); 
        for(num=0;num<1320;num++) 
        { 
            for(temp=0;temp<240;temp++) 
                { 
                LCD_WR_Data(cl); 
                } 
                cl=cl+60; 
        } 
        LCD_WR_End();*/ 
} 

void LCD_test2() 
{ 
        uint temp,num; 
        uint n; 
         
        LCD_WR_REG(0x20,0);        //0-239 
        LCD_WR_REG(0x21,0);        //0-319 
         
        LCD_WR_Start(); 
        for(n=0;n<40*240;n++) 
        { 
    LCD_WR_Data(0xf800); 
        } 
        LCD_WR_End(); 
         
   LCD_WR_REG(0x20,100);        //0-239  
   LCD_WR_REG(0x21,100);        //0-319  
   LCD_WR_REG(0x50,100);        //定义好16*16方形的起始和末尾地址  
   LCD_WR_REG(0x51,115);  
   LCD_WR_REG(0x52,100);  
   LCD_WR_REG(0x53,131); 
   LCD_WR_Start(); 
        for(n=0;n<32*16;n++) 
        { 
    LCD_WR_Data(0xf800); 

        } 
        LCD_WR_End(); 
} 

void num_dis(uint startX, uint startY, uchar *pic,uint color,uint bcolor)          //96*48 
{ 
    uint n,t,k; 
        uchar x,z,y; 
         
    LCD_WR_REG(0x20,startX);        //0-239  
    LCD_WR_REG(0x21,startY);        //0-319  
        LCD_WR_REG(0x50,startX); 
        LCD_WR_REG(0x51,startX+47); 
        LCD_WR_REG(0x52,startY); 
        LCD_WR_REG(0x53,startY+95); 
        LCD_WR_Start(); 
    for(n=96;n>0;n--) 
        { 
         t=n-1; 
         t=t*6; 
         for(k=t;k<t+6;k++) 
         { 
          y=0x80; 
          for(z=0;z<8;z++) 
          { 
            x=pgm_read_byte(pic+k)&y; 
            if (x==0)  
                 LCD_WR_Data(bcolor);  
              else  
                 LCD_WR_Data(color); 
            y=y/2; 
          } 
         } 
        } 
        LCD_WR_End(); 
} 

void chr_dis(uint startX, uint startY, uchar *pic,uint color,uint bcolor)          //32*16 
{ 
    uint n,t,k; 
        uchar x,z,y; 
         
    LCD_WR_REG(0x20,startX);        //0-239  
    LCD_WR_REG(0x21,startY);        //0-319  
        LCD_WR_REG(0x50,startX); 
        LCD_WR_REG(0x51,startX+15); 
        LCD_WR_REG(0x52,startY); 
        LCD_WR_REG(0x53,startY+31); 
        LCD_WR_Start(); 
    for(n=32;n>0;n--) 
        { 
         t=n-1; 
         t=t*2; 
         y=0x80; 
         for(z=0;z<8;z++) 
         { 
           x=pgm_read_byte(pic+t)&y; 
           if (x==0)  
                LCD_WR_Data(bcolor);  
             else  
                LCD_WR_Data(color); 
           y=y/2; 
         } 
     t=t+1; 
         y=0x80; 
         for(z=0;z<8;z++) 
         { 
         x=pgm_read_byte(pic+t)&y; 
         if (x==0)   
                LCD_WR_Data(bcolor);  
             else  
                LCD_WR_Data(color);  
         y=y/2; 
         } 
        } 
     LCD_WR_End(); 
} 





void LCD_DrawPicture(uint startX, uint startY, uint *pic) 
{ 
        unsigned int i; 
        LCD_WR_REG(0x20,startX);        //0-239  
    LCD_WR_REG(0x21,startY);        //0-319  
        LCD_WR_REG(0x50,startX); 
        LCD_WR_REG(0x51,startX+135); 
        LCD_WR_REG(0x52,startY); 
        LCD_WR_REG(0x53,startY+101); 
        LCD_WR_Start(); 
        for(i=0;i<136*10;i++) 
        { 
        LCD_WR_Data(pgm_read_word(pic++)); 
        } 
    LCD_WR_End(); 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -