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

📄 lcd.h

📁 LPC2132驱动128*64点阵液晶
💻 H
字号:
//*************************************************************

#define	CLR_LCD_DI		IOCLR1=(1<<18);  //P1.18
#define	SET_LCD_DI		IOSET1=(1<<18);
#define	CLR_LCD_E		IOCLR1=(1<<19);  //P1.19
#define	SET_LCD_E		IOSET1=(1<<19);
#define	CLR_LCD_CS1		IOCLR1=(1<<28);  //P1.28
#define	SET_LCD_CS1		IOSET1=(1<<28);
#define	CLR_LCD_CS2		IOCLR1=(1<<29);  //P1.29
#define	SET_LCD_CS2		IOSET1=(1<<29);

//****************************************************************

void DelayNS (U32 dly)          //延时10mS?
{ 
  U32 i;
  for(;dly>0;dly--)
     for(i=0;i<50;i++);
 }
 
 
void LCD_sendcommand (U32 m_s, U32 command)   //写指令子程序
 {
   if(m_s&1)            //左半屏
      { 
       CLR_LCD_E 
       CLR_LCD_DI
       SET_LCD_CS1
       CLR_LCD_CS2       
       IOCLR1=(0xFF<<20);
       IOSET1=(command<<20);
       DelayNS(1);
       SET_LCD_E
       DelayNS(1);
       CLR_LCD_E
      }
      
    if(m_s&2)            //右半屏
      {         
       CLR_LCD_E
       CLR_LCD_DI
       SET_LCD_CS2
       CLR_LCD_CS1	
       IOCLR1=(0xFF<<20);
       IOSET1=(command<<20); 
       DelayNS(1);
       SET_LCD_E
       DelayNS(1);
       CLR_LCD_E
      }
       
       DelayNS(3);
  }
  
  
  void LCD_senddata(U32 m_s, U32 command)          //写数据子程序
  {     
    if(m_s&1)        //左半屏
      {
       CLR_LCD_E     
       SET_LCD_DI
       SET_LCD_CS1
       CLR_LCD_CS2	
       IOCLR1=(0xFF<<20);
       IOSET1=((command&0xff)<<20);
       DelayNS(1);
       SET_LCD_E
       DelayNS(1);
       CLR_LCD_E
      }
      
    if(m_s&2)            //右半屏
      {  
       CLR_LCD_E
       SET_LCD_DI
       SET_LCD_CS2
       CLR_LCD_CS1	      
       IOCLR1=(0xFF<<20);
       IOSET1=((command&0xff)<<20);
       DelayNS(1);
       SET_LCD_E
       DelayNS(1);
       CLR_LCD_E
      }
       DelayNS(3);
  }
  
  void LCD_setXaddr(U32 m_s, U32 x)
  {
    LCD_sendcommand(m_s,0xB8+x);
  }
  
  void LCD_setYaddr(U32 m_s, U32 y)
  {
    LCD_sendcommand(m_s,0x40+y);
  }

  
  void LCD_clean(void)
  {
    U32 row,i;
    for(row=0;row<8;row++)
    {
      LCD_sendcommand(3,0xB8+row);
      LCD_sendcommand(3,0x40);
      for(i=64;i>0;i--)
        {  LCD_senddata(3,0x00);
          DelayNS(1);
        }
    }
   }
   
   
   void LCD_show_word(U8 n,U8 i,U8 j)
  {
     U32 x,y,p;
        p=0;
        
      for(y=j;y<j+16;y++)
      {
        for(x=i;x<i+2;x++)
         {   
    	     if(y<64){
               LCD_setXaddr(1,x);
               LCD_setYaddr(1,y);
   			   LCD_senddata(1,LCD_word[n][p]); 
             }
             
            if(y>=64){
               LCD_setXaddr(2,x);
  		       LCD_setYaddr(2,y-64);
  	           LCD_senddata(2,LCD_word[n][p]);
  	          }
               p++;
         }
      }
     } 
    
   
  void LCD_show_time(U8 n,U8 i,U8 j)
  {
     U32 x,y,p;
        p=0;
        
      for(y=j;y<j+8;y++)
      {
        for(x=i;x<i+2;x++)
         {   
    	     if(y<64){
               LCD_setXaddr(1,x);
               LCD_setYaddr(1,y);
   			   LCD_senddata(1,LCD_word[n][p]); 
             }
             
            if(y>=64){
               LCD_setXaddr(2,x);
  		       LCD_setYaddr(2,y-64);
  	           LCD_senddata(2,LCD_word[n][p]);
  	          }
               p++;
         }
      }
     } 
  void LCD_show_timefy(U8 n,U8 i,U8 j)
  { 
     U8 x,y,p;
        p=0;
        
      for(y=j;y<j+8;y++)
      {
        for(x=i;x<i+2;x++)
         { 
    	     if(y<64){
               LCD_setXaddr(1,x);
               LCD_setYaddr(1,y);
   			   LCD_senddata(1,~LCD_word[n][p]); 
             }
             
             if(y>=64){
               LCD_setXaddr(2,x);
  		       LCD_setYaddr(2,y-64);
  	           LCD_senddata(2,~LCD_word[n][p]);
  	          }
            p++;
         }
      }
     } 

⌨️ 快捷键说明

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