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

📄 lcd.h

📁 显示128*64LCD,并显示 模数时间和日期
💻 H
字号:
#define DataPort P0
sbit   CS1=P2^7;
sbit   CS2=P2^6;
sbit   DI=P2^5;
sbit   R_W=P2^4;
sbit   E=P2^3;

//写显示数据
void write_data(uchar dat)						     
{   
  DI=1;
  R_W=0;
  DataPort=dat;
  E=1;
  E=0;
}

//发送指令
void send_data(uchar dat)
{  
  DI=0;
  R_W=0;
  DataPort=dat;
  E=1;
  E=0;
}
//显示开关
void display_onoff(uchar onoff)
{
  onoff&=0x3f;
  onoff|=0x3e;
  send_data(onoff);
}
/*//设置起始行地址(0-63)
void set_start_line(uchar start_line)
{
  start_line|=0xc0;
  send_data(start_line);
}*/
//设置行地址(0-7)
void set_line(uchar line)
{
  line&=0xbf;
  line|=0xb8;
  send_data(line);
}
//设置列地址(0-63)
void set_column(uchar column)
{
  column&=0x7f;
  column|=0x40;
  send_data(column);
}
//选择半屏
void select_screem(uchar screem)
{
  switch(screem)
    { case 0:
		 CS1=0;
		 CS2=0;
		 break;
     case 1:
	     CS1=1;
		 CS2=0;
		 break;
	case 2:
	     CS1=0;
		 CS2=1;
		 break;
    case 3:
	     CS1=1;
		 CS2=1;
		 break;
	default:
	     break;
	}
}
//clear screem
void clear_screem(uchar screem)
{ uchar i,j;
  select_screem(screem);
  for(i=0;i<8;i++)
  {
     set_line(i);
	 for(j=0;j<64;j++)
	   { set_column(j);
	     write_data(0x00);
	   } 
  }

}
//显示8*8点阵单元
void show_unit(uchar line,uchar column,uchar * address)
{
  uchar i;
  if(column<64)
  {
    select_screem(1);
    set_line(line);
	set_column(column);
	for(i=0;i<8;i++)
	   {
	     if(column+i>63)
		    {
			 select_screem(2);
			 set_column(column-64+i);
			 write_data(*(address+i));
			}
		  else
		    { write_data(*(address+i));}
	   }
  }

 else
 { 
  select_screem(2);
  column-=64;
  set_line(line);
  set_column(column);
	for(i=0;i<8;i++)
	   {
	     if(column+i>63)
		    {
			 select_screem(1);
			 set_column(column-64+i);
			 write_data(*(address+i));
			}
		  else
		    { write_data(*(address+i));	}
	   } 
 }
}
//显示16*8点阵字符
void show_number(uchar line	,uchar column,uchar num)
{  uchar * address;
   address=&number[num][0];
   show_unit(line,column,address);
   show_unit(line+1,column,address+8);
}
//显示16*16点阵汉字
void show_china(uchar line	,uchar column,uchar num)
{  
   uchar * address;
   address=&china[num][0];
   show_unit(line,column,address);
   show_unit(line,column+8,address+8);
   show_unit(line+1,column,address+16);
   show_unit(line+1,column+8,address+24);
}
void Init_LCD(void)
{
  uchar i=2000; //延时
    while(i--);
  display_onoff(1);
  clear_screem(1);
  clear_screem(2);
  //set_start_line(1);
  //show_number(0,0,0);
}

⌨️ 快捷键说明

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