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

📄 lcd12864.c

📁 12864LCD显示图形.........[C语言]
💻 C
字号:
//12864LCD display image
//all swich set OFF

 #include<pic.h>
// __CONFIG(0x1832);        
 

#define  rs  RA5                   
#define  rw  RA4                  
#define  e   RA3                  
#define  psb RA2                  
#define  rst RA0                  
#define  nop()  asm("nop")         

const unsigned char TAB1[ ]={
  0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
  0X18,0XFC,0XB7,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XE0,0X00,0X00,

  0X1E,0X7F,0X0C,0X00,0X00,0X07,0XFF,0XFF,0X80,0X00,0X0F,0XF8,0X7F,0XE0,0X03,0XC0,
  0X1F,0XE7,0X80,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X7F,0XE1,0XFF,0XE0,0X0C,0X60,
  0X1F,0X9B,0XE0,0X00,0X01,0XFF,0XFF,0XFF,0XF0,0X01,0X80,0X07,0XFF,0XE0,0X0C,0X60,
  0X1F,0XCF,0XE0,0X00,0X1F,0XFF,0XFF,0XFF,0XF8,0X01,0X00,0X1F,0XFF,0XE0,0X0C,0X60,
  0X13,0XE4,0XF0,0X00,0X7F,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0XFF,0X0E,0X20,0X0C,0X60,
  0X10,0XF0,0XF0,0X00,0XFF,0XFE,0XFF,0XFF,0XFF,0X00,0X00,0XF8,0X0E,0X20,0X0C,0X60,
  0X1C,0X7C,0X38,0X01,0XEF,0XF4,0X0F,0XFF,0XFF,0X80,0X00,0X00,0X7F,0XE0,0X0C,0X60,
  0X1F,0X1E,0X08,0X03,0X9F,0XC0,0X00,0XFE,0XFF,0XC0,0X00,0X07,0XFF,0XE0,0X0D,0X60,
  0X1F,0X03,0X80,0X07,0X27,0X80,0X00,0X3F,0X3F,0XE0,0X00,0X7F,0XFF,0XE0,0X0D,0XE0,
  0X1E,0XE0,0XC0,0X06,0X4F,0X00,0X00,0X3F,0XBF,0XF0,0X00,0XFE,0X1C,0X20,0X07,0XC0,
  0X1F,0XF0,0X20,0X0E,0X4E,0X00,0X00,0X1F,0XCF,0XF8,0X00,0X00,0X7F,0XA0,0X00,0XC0,
  0X1F,0XFE,0X00,0X0C,0X9C,0X00,0X00,0X0F,0XFF,0XF8,0X00,0X00,0X7F,0XE0,0X00,0XE0,

  0X1F,0XFF,0X80,0X1D,0XF8,0X00,0X00,0X0F,0XF3,0XFC,0X00,0X3F,0X8E,0XE0,0X00,0X00,
  0X1E,0X03,0X00,0X1F,0X78,0X00,0X00,0X07,0XC7,0XFC,0X00,0X0F,0X7F,0XA0,0X00,0X00,

  0X1F,0X80,0X00,0X1B,0XF0,0X00,0X00,0X09,0XCF,0XFC,0X00,0X00,0X0F,0XE0,0X0F,0X00,
  0X1F,0XFE,0X00,0X19,0XF0,0X00,0X00,0X07,0XC9,0XFE,0X00,0X07,0X1F,0XE0,0X06,0X00,
  0X1F,0XFF,0XC0,0X0F,0XE0,0X00,0X00,0X03,0XC1,0XFE,0X00,0XFF,0XFF,0XE0,0X06,0X00,
  0X1F,0XC0,0X40,0X0F,0XC0,0X00,0X00,0X03,0XE7,0XFE,0X00,0X9F,0XFF,0X20,0X06,0X00,
  0X1F,0X00,0X00,0X0F,0XC0,0X00,0X00,0X07,0XE7,0XFC,0X00,0X0B,0XCF,0X20,0X06,0X00,
  0X1F,0X78,0X00,0X0F,0XC0,0X00,0X00,0X07,0XE7,0XFC,0X00,0X00,0X0F,0XE0,0X06,0X00,
  0X1F,0XFF,0X80,0X07,0XF0,0X00,0X00,0X03,0XEF,0XFC,0X00,0X00,0X3F,0XE0,0X06,0X00,
  0X13,0XFF,0XE0,0X07,0XFE,0X01,0XE0,0X01,0XCF,0XFC,0X00,0X00,0X3F,0XE0,0X06,0X60,
  0X1F,0XFC,0X00,0X07,0XE3,0X03,0XF8,0X06,0XDF,0XFC,0X00,0X1F,0XFE,0X60,0X06,0X60,
  0X1F,0X80,0X00,0X03,0X80,0X80,0XC0,0X01,0XFF,0XF8,0X00,0X0F,0X3F,0XE0,0X0F,0XE0,

  0X1C,0X00,0X00,0X01,0X80,0X41,0XC0,0X06,0XFF,0XF8,0X00,0X00,0XF3,0XE0,0X00,0X00,
  0X13,0XFC,0X00,0X03,0XFC,0X41,0XFC,0X03,0X7F,0XF0,0X00,0X00,0X0F,0XE0,0X00,0X00,

  0X1F,0XFF,0X00,0X03,0XFE,0X40,0XFF,0X00,0XFF,0XF0,0X00,0X07,0XFF,0XE0,0X07,0XC0,
  0X1F,0XC0,0X00,0X02,0XF0,0X40,0XE1,0X00,0X78,0XF0,0X00,0X3C,0XFC,0X20,0X0C,0X60,
  0X1E,0X00,0X00,0X02,0XC0,0XC0,0X60,0X00,0XF3,0X70,0X00,0X03,0XFF,0XE0,0X00,0X60,
  0X10,0X00,0X00,0X02,0X00,0X80,0X60,0X00,0X67,0X30,0X00,0X00,0X7F,0XE0,0X00,0XC0,
  0X17,0XFF,0X00,0X03,0X01,0X80,0X30,0X00,0XFC,0XB0,0X00,0X3F,0XCF,0XE0,0X01,0X80,
  0X1F,0XFA,0X00,0X03,0X03,0X80,0X18,0X01,0XFC,0X70,0X00,0X3C,0X8F,0XE0,0X03,0X00,
  0X1F,0XB0,0X00,0X03,0X0F,0X00,0X0C,0X02,0XFE,0X30,0X00,0X0D,0X3F,0X60,0X06,0X00,
  0X1F,0X00,0X00,0X03,0X0F,0X00,0X04,0X05,0XEE,0X30,0X00,0X03,0XDF,0X20,0X0C,0X00,
  0X1C,0X00,0X00,0X02,0X01,0X06,0X00,0X07,0XE3,0X30,0X01,0X00,0XDF,0XE0,0X0C,0X60,
  0X10,0X1E,0X00,0X03,0X03,0X03,0X80,0X07,0XF1,0X30,0X00,0XE0,0X33,0XE0,0X0F,0XE0,

  0X1F,0XEC,0X00,0X02,0X03,0X01,0XE0,0X09,0XF0,0X60,0X00,0X3C,0X8E,0X60,0X00,0X00,
  0X1F,0X30,0X00,0X03,0X03,0X9D,0X30,0X13,0XFC,0X60,0X00,0X1F,0X3F,0XA0,0X00,0X00,

  0X1F,0XC1,0X8C,0X02,0X81,0XF3,0X10,0X0F,0XF0,0XC0,0X03,0X87,0XC7,0XE0,0X03,0X80,
  0X1A,0X06,0X30,0X03,0X03,0X80,0X08,0X13,0XE0,0XC0,0X00,0XE3,0XF1,0XE0,0X06,0XC0,
  0X1C,0X1C,0X40,0X01,0X82,0X00,0X04,0X0F,0XE1,0X80,0X00,0X78,0XFE,0X60,0X0C,0X60,
  0X13,0XF8,0X80,0X01,0X46,0X00,0X00,0X07,0XE3,0X00,0X00,0X3E,0X7F,0XE0,0X0C,0X60,
  0X1F,0X63,0X00,0X01,0X8C,0X00,0X00,0X07,0XFE,0X00,0X00,0X0F,0X9F,0XE0,0X0D,0X60,
  0X1F,0X8E,0X04,0X01,0X47,0XEE,0X00,0X07,0XFE,0X00,0X00,0X87,0XEF,0XE0,0X0D,0X60,
  0X1E,0X3C,0X1C,0X00,0XA7,0XFF,0X8C,0X03,0XF8,0X00,0X00,0XC1,0XFF,0XE0,0X0C,0X60,
  0X1F,0X78,0X38,0X00,0XC3,0X93,0X8E,0X07,0XF0,0X00,0X00,0X78,0X7F,0XE0,0X0C,0X60,
  0X1F,0XF1,0X60,0X00,0XE3,0X80,0X06,0X07,0XF0,0X00,0X00,0X3A,0X1F,0XE0,0X06,0XC0,
  0X1F,0XE1,0X40,0X00,0X13,0XC8,0X00,0X0B,0XF0,0X00,0X00,0X1E,0X13,0XE0,0X03,0X80,

  0X17,0X8F,0X84,0X00,0X61,0XF8,0X00,0X17,0XF0,0X00,0X00,0X0F,0XB0,0XE0,0X00,0X00,
  0X1F,0X1E,0X29,0X80,0X33,0X00,0X00,0X0F,0XFC,0X00,0X00,0X43,0XFD,0X60,0X00,0X00,

  0X1E,0X7C,0X73,0X00,0X3A,0X10,0X00,0X0F,0XF4,0X00,0X00,0X21,0XFF,0XA0,0X03,0X80,
  0X15,0XF8,0XE3,0X00,0X1E,0X18,0X00,0X1F,0XF6,0X00,0X00,0X18,0XFF,0XE0,0X06,0XC0,
  0X1B,0XE1,0X86,0X00,0X1E,0X00,0X00,0X3F,0XE6,0X00,0X03,0X0E,0X7F,0XE0,0X0C,0X60,
  0X1F,0XC7,0X8C,0X00,0X1E,0X00,0X00,0X7F,0XE7,0X00,0X03,0X85,0X1B,0XE0,0X0C,0X60,
  0X1F,0X0F,0X39,0X20,0X07,0X00,0X01,0XFF,0XCF,0X00,0X01,0XC3,0XCD,0XE0,0X0D,0X60,
  0X1E,0X3E,0X73,0X40,0X03,0X80,0X0F,0XFF,0X9F,0X80,0X00,0XF1,0XF0,0X60,0X0D,0X60,
  0X18,0X7C,0XF6,0X20,0X01,0XE0,0X3F,0XFE,0X3F,0XE0,0X00,0X78,0XFE,0X60,0X0C,0X60,
  0X11,0XFB,0XE6,0X40,0X01,0XFF,0XFF,0XFC,0X7F,0XFC,0X08,0X3C,0X7F,0XE0,0X0C,0X60,
  0X1F,0XF7,0XFE,0X40,0X02,0XFF,0XFF,0XF9,0XFF,0XFF,0X00,0X0F,0X3F,0XE0,0X06,0XC0,
  0X1F,0XFF,0XFC,0X88,0X06,0XFF,0XFD,0XF3,0XFF,0XFF,0XC1,0X8F,0X9F,0XE0,0X03,0X80,

  0X1F,0XFF,0XB9,0X38,0X0E,0XFE,0X71,0XE7,0XFF,0XFF,0XE8,0XC3,0XEF,0XE0,0X00,0X00,
  0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,
};
 unsigned int lcd_x;               
 unsigned int lcd_y;               
  bit busy;                         

void init();                        
void lcd_init();                  
void clear_p();                    
void han_wr2a();                  
//void han_wr2b();                   
//void han_wr2c();                    
//void han_wr2d();                  
void wr_zb();                       
//void flash();                     
void qushu();      
void send_d(unsigned char x);      
void send_i(unsigned char x);      
void chk_busy();                   
void delay();                      
void delay1();                      

//-------------------------------------------
void main()
{
       init();                  
       lcd_init();                 
       clear_p();                  
       han_wr2a();                  
       while(1);
}

//-------------------------------------------
void init()
{
  TRISA=0X00;                      
  TRISD=0X00;                      
  ADCON1=0X06;                     
}

//-------------------------------------------
void lcd_init()
{
  rst=0;                           
  delay();                          
  rst=1;                            
  nop();        
  psb=1;                           
  send_i(0x30);                    
  send_i(0x01);                    
  send_i(0x06);                    
  send_i(0xc0);                    
}

//-------------------------------------------
void han_wr2a()
{
 qushu();
}

//-------------------------------------------
void wr_zb()
{
  send_i(0x34);
  send_i(lcd_y);
  send_i(lcd_x);
  send_i(0x30);
}

//-------------------------------------------
void clear_p()
{
  send_i(0x1);                  
  send_i(0x34);              
  send_i(0x30);             
}

//------------------------------------------
void qushu()
{
  int i,j,k,temp,temp1;                      
  temp=0;
  lcd_x=0x80;
  for(i=2;i>0;i--)         
     {  
       lcd_y=0x80;
       for(j=0x20;j>0;j--)
          {
             wr_zb();
             for(k=0x10;k>0;k--)
                {  
                   temp1=TAB1[temp];
                   send_d(temp1);
                   temp++;
                }
             lcd_y++;
             send_i(0x36);
             send_i(0x30);
          }
        send_i(0x36);
        send_i(0x30);
        lcd_x=0X88;
     }
}

//-------------------------------------------
void send_d(unsigned char x)
{
   chk_busy();                 
   rs=1;                     
   rw=0;                      
   PORTD=x;                    
   e=1;                      
   nop();
   nop();
   nop();                       
   e=0;                       
}

//--------------------------------------------
void send_i(unsigned char x)
{
   chk_busy();                 
   rs=0;                       
   rw=0;                       
   PORTD=x;                    
   e=1;                        
   nop();
   nop();
   nop();
   e=0;                         
}

//-------------------------------------------
void chk_busy()
{  
   busy=1;                     
   TRISD=0XFF;                  
   rs=0;                        
   rw=1;                        
   while(busy)                  
      {
         nop();
         nop();
         nop();
         e=1;                   
         nop();
         nop();
         nop();
         if(!RD7) busy=0;      
         nop();
         nop();
         nop();
         e=0;                   
      }
   e=0;                         
   TRISD=0X00;                 
 }

//-------------------------------------------
void delay()
{
    int i;
    for(i=0;i<5000;i++)
       {;}
}

//-------------------------------------------
void delay1()
{
    int i;
    for(i=0;i<10;i++)
      {
        delay();              
      }
} 

⌨️ 快捷键说明

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