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

📄 main1.c

📁 arm7驱动液晶屏显示图片
💻 C
📖 第 1 页 / 共 3 页
字号:
  LCM12864_WriteCMD(LCM12864_DISP_ON);

  LCM12864_LEDK = 1;
//LCM12864_LEDK = 0;

}

/********************************************************************************************
* 函数名称:LCM12864_Fill_Screen()
* 功    能:向LCM12864填充数据
* 入口参数:LCM12864_FillData   要向LCM12864填充的字节数据
* 出口参数:无
* 说    明:此函数会设置显示起始行为0,且会自动选中左半屏,即CS1有效。
*********************************************************************************************/
void LCM12864_Fill_Screen(uint8 LCM12864_FillData)
{
  uint8 x,y;

  IO0SET=LCM12864_CS1;
  IO0SET=LCM12864_CS2;                   // 选中左半屏及右半屏
  LCM12864_WriteCMD(LCM12864_START_ROW+0);             // 设置显示起始行为0
  for(x=0;x<8;x++)
 {
   LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+x);   // 设置页地址
   LCM12864_WriteCMD(LCM12864_COL_START_ADDR);//    // 设置列地址
     for(y=0;y<64;y++) LCM12864_WriteData(LCM12864_FillData);
  }
  IO0CLR=LCM12864_CS2;                                    // 不选中右半屏
}

/********************************************************************************************
* 函数名称:LCM12864_Clear_Screen()
* 功    能:LCM12864清屏
* 入口参数:无
* 出口参数:无
*********************************************************************************************/
void LCM12864_Clear_Screen(void)
{
  LCM12864_Fill_Screen(0x00);
}

/********************************************************************************************
* 函数名称:LCM12864_Disp_Bitmap_12864()
* 功    能:显示128*64图片
* 入口参数:bitmap_12864         128*64位图数据
* 出口参数:无
*********************************************************************************************/
void LCM12864_Disp_Bitmap_12864(uint8 code *bitmap_12864)
{
  uint8 j,k;

  for(k=0;k<8;k++)
    {
     IO0SET=LCM12864_CS1;
     IO0CLR=LCM12864_CS2;
     LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+k);
     LCM12864_WriteCMD(LCM12864_COL_START_ADDR+0);
     for(j=0;j<64;j++) LCM12864_WriteData(bitmap_12864[k*128+j]);

     IO0CLR=LCM12864_CS1;
     IO0SET=LCM12864_CS2;
     LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+k);
     LCM12864_WriteCMD(LCM12864_COL_START_ADDR+0);
     for(j=64;j<128;j++) LCM12864_WriteData(bitmap_12864[k*128+j]);
  }
}

/********************************************************************************************
* 函数名称:LCM12864_Disp_Chinese_16_16()
* 功    能:在LCM12864的指定点上显示16*16点阵汉字
* 入口参数:LCM12864_page     LCM12864的页地址(0~7)
*           LCM12864_col      LCM12864的列地址(0~63)
*           Chinese_16_16     16*16点阵汉字字模(纵向取模,字节倒序)
* 出口参数:无
*********************************************************************************************/
void LCM12864_Disp_Chinese_16_16(uint8 LCM12864_page,uint8 LCM12864_col, uint8 code *Chinese_16_16)
{
  uint8 j=0,i=0;
  for(j=0;j<2;j++)
 {
   LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+LCM12864_page+j);
   LCM12864_WriteCMD(LCM12864_COL_START_ADDR+LCM12864_col);
   for(i=0;i<16;i++) LCM12864_WriteData(Chinese_16_16[16*j+i]);
 }
}

/********************************************************************************************
* 函数名称:LCM12864_Disp_Char_8_16()
* 功    能:在LCM12864的指定点上显示8*16字符或数字
* 入口参数:LCM12864_page     LCM12864的页地址(0~7)
*           LCM12864_col      LCM12864的列地址(0~63)
*           Char_8_16         8*16点阵字符或数字字模(纵向取模,字节倒序)
* 出口参数:无
*********************************************************************************************/
void LCM12864_Disp_Char_8_16(uint8 LCM12864_page,uint8 LCM12864_col, uint8 code *Char_8_16)
{
  uint8 j=0,i=0;
  for(j=0;j<2;j++)
    {
   LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+LCM12864_page+j);
   LCM12864_WriteCMD(LCM12864_COL_START_ADDR+LCM12864_col);
   for(i=0;i<8;i++) LCM12864_WriteData(Char_8_16[8*j+i]);
 }
}

/********************************************************************************************
* 函数名称:LCM12864_Frame()
* 功    能:在LCM12864上显示最大尺寸的边框
* 入口参数:无
* 出口参数:无
*********************************************************************************************/
void LCM12864_Frame(void)
{
  uint8 i;
  IO0SET=LCM12864_CS1; 
  IO0SET=LCM12864_CS2;
  LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+0);
  LCM12864_WriteCMD(LCM12864_COL_START_ADDR+0);
  for(i=0;i<64;i++) LCM12864_WriteData(0x01);
  
  LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+7);
  LCM12864_WriteCMD(LCM12864_COL_START_ADDR+0);
  
  for(i=0;i<64;i++) LCM12864_WriteData(0x80);

  for(i=0;i<8;i++)
 {
   IO0CLR=LCM12864_CS1; 
   IO0SET=LCM12864_CS2;
   LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+i);
   LCM12864_WriteCMD(LCM12864_COL_START_ADDR+63);
   LCM12864_WriteData(0xff);
   IO0SET=LCM12864_CS1; 
   IO0CLR=LCM12864_CS2;
   LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+i);
   LCM12864_WriteCMD(LCM12864_COL_START_ADDR+0);
   LCM12864_WriteData(0xff);
 }
}

/********************************************************************************************
* 函数名称:main()
* 功    能:LCM12864液晶模块驱动演示。
*********************************************************************************************/    
void main (void)                
{
  while(1)
      {
        LCM12864_Init();                         // LCM12864初始化

        /* 显示开机画面,约3秒后清屏 */
  /*====================================*/
  LCM12864_Disp_Bitmap_12864(ARMSKY_logo);
        Delay(3000);
        LCM12864_Clear_Screen();
        /*====================================*/

        LCM12864_Frame();                        // 在LCM12864上显示最大边框

  /* 逐字显示"欢迎使用" */
  /*====================================*/
  IO0SET=LCM12864_CS1; 
  IO0CLR=LCM12864_CS2;
  LCM12864_Disp_Chinese_16_16(1,32,huan1); 
  Delay(300);
  LCM12864_Disp_Chinese_16_16(1,48,ying2); 
  Delay(300);
  IO0CLR=LCM12864_CS1; 
  IO0SET=LCM12864_CS2;
  LCM12864_Disp_Chinese_16_16(1,0,shi3);   
  Delay(300);
  LCM12864_Disp_Chinese_16_16(1,16,yong4); 
  Delay(300);
  /*====================================*/
  /* 逐字显示"ARMSKY-51Easy" */
  /*====================================*/
  IO0SET=LCM12864_CS1; 
  IO0CLR=LCM12864_CS2;
  LCM12864_Disp_Char_8_16(3,8,char_A);       
  Delay(300);
  LCM12864_Disp_Char_8_16(3,16,char_R);      
  Delay(300);
  LCM12864_Disp_Char_8_16(3,24,char_M);       
  Delay(300);
  LCM12864_Disp_Char_8_16(3,32,char_S);      
  Delay(300);
  LCM12864_Disp_Char_8_16(3,40,char_K);       
  Delay(300);
  LCM12864_Disp_Char_8_16(3,48,char_Y);      
  Delay(300);
  LCM12864_Disp_Char_8_16(3,56,char_shortline);       
  Delay(300);
  IO0CLR=LCM12864_CS1; 
  IO0SET=LCM12864_CS2;
  LCM12864_Disp_Char_8_16(3,2,char_5);       
  Delay(300);
  LCM12864_Disp_Char_8_16(3,10,char_1);      
  Delay(300);
  LCM12864_Disp_Char_8_16(3,18,char_E);       
  Delay(300);
  LCM12864_Disp_Char_8_16(3,26,char_a_);      
  Delay(300);
  LCM12864_Disp_Char_8_16(3,34,char_s_);       
  Delay(300);
  LCM12864_Disp_Char_8_16(3,42,char_y_);      
  Delay(300);
        /*====================================*/

  /* 逐字显示"http://www.armsky.net/" */
  /*====================================*/
  IO0SET=LCM12864_CS1; 
  IO0CLR=LCM12864_CS2;
  LCM12864_Disp_Char_8_16(5,8,char_w_);       
  Delay(300);
  LCM12864_Disp_Char_8_16(5,16,char_w_);      
  Delay(300);
  LCM12864_Disp_Char_8_16(5,24,char_w_);       
  Delay(300);
  LCM12864_Disp_Char_8_16(5,32,char_dot);      
  Delay(300);
  LCM12864_Disp_Char_8_16(5,40,char_a_);       
  Delay(300);
  LCM12864_Disp_Char_8_16(5,48,char_r_);      
  Delay(300);
  LCM12864_Disp_Char_8_16(5,56,char_m_);       
  Delay(300);
  IO0CLR=LCM12864_CS1;
  IO0SET=LCM12864_CS2;
  LCM12864_Disp_Char_8_16(5,0,char_s_);       
  Delay(300);
  LCM12864_Disp_Char_8_16(5,8,char_k_);      
  Delay(300);
  LCM12864_Disp_Char_8_16(5,16,char_y_);       
  Delay(300);
  LCM12864_Disp_Char_8_16(5,24,char_dot);      
  Delay(300);
  LCM12864_Disp_Char_8_16(5,32,char_n_);       
  Delay(300);
  LCM12864_Disp_Char_8_16(5,40,char_e_);      
  Delay(300);
  LCM12864_Disp_Char_8_16(5,48,char_t_);      
  Delay(3000);
        /*====================================*/
  }
}

⌨️ 快捷键说明

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