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

📄 lcd.c

📁 MSP430平台下的19264液晶的驱动程序
💻 C
字号:
#include  <msp430x14x.h>
#include  "lcd.h"

void  delay(unsigned int i)
{
  unsigned  int j;
  for(j =0;j<i;j++);
}

//      液晶初始化
void  LCD_initial(void)
{
  LCD_DATA_OUT  = 0X00;
  LCD_DATA_DIR  = 0XFF;
  
  LCD_COM_OUT = 0XFF;
  LCD_COM_DIR = 0XFE;           //  P1.0是给SD卡用的,输入
  
  LCD_COM_OUT &= ~LCD_RESET;
  delay(5);
  
  LCD_COM_OUT |=  LCD_E;
  delay(5);
  
  LCD_COM_OUT &=  ~LCD_E;
  delay(5);
  
  LCD_COM_OUT |=  LCD_RESET;
  delay(5);
  
  LCD_COM_OUT = 0XFF;
  
  LCD_COMMAND_WRITE(DISPLAY_ON,1);
  LCD_COMMAND_WRITE(DISPLAY_ON,2);
  LCD_COMMAND_WRITE(DISPLAY_ON,3);
  LCD_COMMAND_WRITE(SET_SHOW,1);
  LCD_COMMAND_WRITE(SET_SHOW,2);
  LCD_COMMAND_WRITE(SET_SHOW,3);

  LCD_COMMAND_WRITE(DISPLAY_ON,1);
  LCD_COMMAND_WRITE(DISPLAY_ON,2);
  LCD_COMMAND_WRITE(DISPLAY_ON,3);
}

//      写数据
void  LCD_DATA_WRITE(unsigned char  data,unsigned char  CSx)
{
  LCD_COM_OUT = 0XFF;
  LCD_DATA_OUT=0X00;
  LCD_COM_DIR = 0XFF;
  LCD_DATA_DIR  = 0XFF;
  LCD_COM_OUT &=  ~LCD_E;                           //    E   =0
  switch  (CSx)
  {
    case  1 : LCD_COM_OUT &=  ~LCD_CS1;break;       //    left    =0
    case  2 : LCD_COM_OUT &=  ~LCD_CS2;break;       //    middle  =0
    case  3 : LCD_COM_OUT &=  ~LCD_CS3;break;       //    right   =0
  }
  LCD_COM_OUT &=  ~LCD_RW;                          //    RW  =0
  LCD_COM_OUT |=  LCD_DI;                           //    DI  =1
  LCD_COM_OUT |=  LCD_E;                            //    E   =1
  LCD_DATA_OUT  = data;                             //    sending data
//  delay(1);
  LCD_COM_OUT &=  ~LCD_E;                           //    E   =0
  LCD_COM_OUT = LCD_DI+LCD_RW+LCD_RESET+LCD_CS1+LCD_CS2+LCD_CS3;
  LCD_DATA_OUT  = 0X00;
}

//      写指令
void  LCD_COMMAND_WRITE(unsigned  char command,unsigned  char CSx)
{
  LCD_COM_OUT = 0XFF;
  LCD_DATA_OUT  = 0X00;
  LCD_COM_DIR = 0XFF;
  LCD_DATA_DIR  = 0XFF;
  LCD_COM_OUT &=  ~LCD_E;                           //    E   =0
  switch  (CSx)
  {
    case  1 : LCD_COM_OUT &=  ~LCD_CS1;break;       //    left    =0
    case  2 : LCD_COM_OUT &=  ~LCD_CS2;break;       //    middle  =0
    case  3 : LCD_COM_OUT &=  ~LCD_CS3;break;       //    right   =0
  }
  LCD_COM_OUT &=  ~LCD_RW;                          //    RW  =0
  LCD_COM_OUT &=  ~LCD_DI;                          //    DI  =0
  LCD_COM_OUT |=  LCD_E;                            //    E   =1
  LCD_DATA_OUT  = command;                          //    sending data
//  delay(1);
  LCD_COM_OUT &=  ~LCD_E;                           //    E   =0
  LCD_COM_OUT = LCD_DI+LCD_RW+LCD_RESET+LCD_CS1+LCD_CS2+LCD_CS3;
  LCD_DATA_OUT  = 0X00;
}

//        全屏幕清除
void  LCD_clear(void)
{
  unsigned  char  i,j,k;
  for(k=1;k<4;k++)
  {
    for(i=0;i<8;i++)
    {
      for(j=0;j<64;j++)
      {
        LCD_COMMAND_WRITE(SET_X|i,k);
        LCD_COMMAND_WRITE(SET_Y|j,k);
        LCD_DATA_WRITE(0x00,k);
      }
    }
  }
}

//      显示
//          
void  LCD_set(void)
{
  unsigned  char  i,j,k;
  for(k=1;k<4;k++)
  {
    for(i=0;i<8;i++)
    {
      for(j=0;j<64;j++)
      {
        LCD_COMMAND_WRITE(SET_X|i,k);
        LCD_COMMAND_WRITE(SET_Y|j,k);
        LCD_DATA_WRITE(0XFF,k);
        delay(1000);
        
      }
    }
  }
}

⌨️ 快捷键说明

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