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

📄 lcd.h

📁 12864
💻 H
字号:
#define Disp_On  0x3f      // 显示开指令 //
#define Disp_Off 0x3e      // 显示关指令 //
#define Col_Add  0x40      // 定位到第0列指令 //
#define Page_Add 0xb8      // 定位到第0页指令 //
#define Start_Line 0xc0     // 定位从DDROM中的第0行开始往屏幕上显示 //
/*******************************************************************************************/
sbit RST = P2^0;    // 复位端 //
sbit E   = P2^1;    // 使能端 //
sbit RW  = P2^2;    // 读写控制端 //
sbit RS  = P2^3;    // 数据或指令寄存器选择端 //
sbit CS1 = P2^4;    // 左屏使能 //
sbit CS2 = P2^5;    // 右屏使能 //

/*-------------------延时子程序-----------------------------*/
void delay(unsigned int t)
 {
  unsigned int i,j;
  for(i=0;i<t;i++)
  for(j=0;j<10;j++)
   ;
 }

/*-------------------------写命令到LCD------------------------------*/
void write_command(unsigned char cmdcode)
 {
  RS = 0;
  RW = 0;
  P0 = cmdcode;
  delay(0);
  E = 1;
  delay(0);
  E = 0;
 }

/*-------------------------写数据到LCD----------------------------*/

void write_data(unsigned char Dispdata)
 {
  RS = 1;
  RW = 0;
  P0 = Dispdata;
  delay(0);
  E = 1;
  delay(0);
  E = 0;
 }

/*-------------------------读LCD数据----------------------------*/
/*
unsigned char read_data()
 {
  unsigned char tmpin;
  RS = 1;
  RW = 1;
  delay(0);
  E = 1;
  delay(0);
  E = 0;

  tmpin = P0;

  return tmpin;
 }
*/




/*------------------------清显示屏--------------------------------*/
void Clr_Scr()
 {
  unsigned char j,k;
  CS2=1;CS1=0;             // 清左半屏 //
   {
    write_command(Page_Add+0);
    write_command(Col_Add+0);
    for(k=0;k<4;k++)             
     {
      write_command(Page_Add+0);
      for(j=0;j<64;j++)
	  write_data(0x00);
     }
 for(k=0;k<4;k++)               // 清左下半屏 //
     {
      write_command(Page_Add+2);
      for(j=0;j<64;j++)
	  write_data(0x00);
     }
 for(k=0;k<4;k++)               // 清左下半屏 //
     {
      write_command(Page_Add+4);
      for(j=0;j<64;j++)
	  write_data(0x00);
     }
 for(k=0;k<4;k++)               // 清左下半屏 //
     {
      write_command(Page_Add+6);
      for(j=0;j<64;j++)
	  write_data(0x00);
     }
   }
  CS2=0;CS1=1;                     // 清右半屏 //
   {
    write_command(Page_Add+0);
    write_command(Col_Add+0);

       for(k=0;k<4;k++)             
     {
      write_command(Page_Add+0);
      for(j=0;j<64;j++)
	  write_data(0x00);
     }
 for(k=0;k<4;k++)               // 清左下半屏 //
     {
      write_command(Page_Add+2);
      for(j=0;j<64;j++)
	  write_data(0x00);
     }
 for(k=0;k<4;k++)               // 清左下半屏 //
     {
      write_command(Page_Add+4);
      for(j=0;j<64;j++)
	  write_data(0x00);
     }
 for(k=0;k<4;k++)               // 清左下半屏 //
     {
      write_command(Page_Add+6);
      for(j=0;j<64;j++)
	  write_data(0x00);
     }
   }
 }
/*------------------显示12864图片---------------------------*/
void Disp_Img(unsigned char code *img)
 {
  unsigned char j,k;
  for(k=0;k<8;k++)
   {
    CS2=1;
	CS1=0;
	delay(10);
    write_command(Page_Add+k);
    write_command(Col_Add+0);
    for(j=0;j<64;j++) 
	 write_data(img[k*128+j]);
    CS2=0;
	CS1=1;
    delay(10);
    write_command(Page_Add+k);
    write_command(Col_Add+0);
    for(j=64;j<128;j++) 
	 write_data(img[k*128+j]);
   }
 }


/*---------------------指定位置显示数字8*16-----------------------*/

void sz_disp16(unsigned char pag,unsigned char col, unsigned char code *szk)
 {
  unsigned char j=0,i=0;
  for(j=0;j<2;j++)
   {
    write_command(Page_Add+pag+j);
    write_command(Col_Add+col);
    for(i=0;i<8;i++) 
	 write_data(szk[8*j+i]);
   }
 }

/*---------------------指定位置显示汉字16*16-----------------------*/

void hz_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
 {
  unsigned char j=0,i=0;
  for(j=0;j<2;j++)
   {
    write_command(Page_Add+pag+j);
    write_command(Col_Add+col);
    for(i=0;i<16;i++) 
	 write_data(hzk[16*j+i]);
   }
 }


/*------------------初始化LCD屏--------------------------*/
void init_lcd()
 {
  RST=0;
  delay(100);
  RST=1;
  delay(100);

  CS2=1;
  CS1=1;

  delay(100);
  write_command(Disp_Off);
  write_command(Page_Add+0);
  write_command(Start_Line+0);
  write_command(Col_Add+0);
  write_command(Disp_On);
 }

 
/*-----------------------------状态判断于提示------------------------*/
/*void State(void)
 {
  CS1=1;CS2=0;
  if(KT==1)
   { hz_disp16(1,32,tiao);
	  hz_disp16(1,48,shi2);}
  else
   { hz_disp16(1,32,kongbai2);
	  hz_disp16(1,48,kongbai2); }
 }
 */

⌨️ 快捷键说明

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