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

📄 led1602.h

📁 电子琴设计 其中包含乐普编辑
💻 H
字号:

#ifndef __led1602_h
#define __led1602_h

#define uchar unsigned char
#define uint unsigned int

//定义接口
#define LCD_dat P0

sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;

void LcdWriteCommand( uchar CMD,uchar AttribC );
void delay(uchar j)
{
  uchar n;
  for(j;j>0;j--)
  {for(n=248;n>0;n--){}     //delay500us
  }
}
void delay5ms()
{
  unsigned int i;
 for (i=0;i<1000;i++)
 ;
}

/*delay1()  //按键防止连续显示
  {
    int i,j,k;
      for(i=0;i<20;i++)
  	     for(j=0;j<20;j++)
		  for(k=0;k<100;k++);
  }	*/
/*void delay_nms(unsigned int n)      
{
    unsigned int i=0,j=0;
    for (i=n;i>0;i--)
     for (j=0;j<1140;j++);  
} */

//发送命令
void writecommand(char command)
 {
  
   RS=0;//选择命令寄存器
   RW=0;//选择写
   E=1;//读写禁止
   delay(2);   
   P0=command;
   delay5ms();
   E=0;//读写允许
 }
//发送数据
void writedata(char dat)
 {
   RS=1;//择数据寄存器
   RW=0;//选择写
   E=1;//允许读写操作
   delay(2); 
   P0=dat;
   delay5ms();
   E=0;//不允许读写操作
   
 }
//设置显示的坐标成功
void setXY(char x,char y)  //发送一个地址
 {
  char address;
  if(y==0)
    address=0x80+x;//选择第 0 行  
 if(y==1)
    address=0xc0+x;//选择第 1 行
  writecommand(address);
 }
//显示一个数据成功
/*void writechar(char x,char y,char dat)
 {
  setXY(x,y);   ///在某一个地址写
  writedata(dat);  //写一个数
 } */ 
//显示一个字符串 已成功
void writestring(char x,char y,char *string)  //用指针写一个字符串
 {
  setXY(x,y);
  while(*string)
       {
	    P0=*string;
		writedata(*string);
		string++;
	   }
  
 }

//初始化
void init(void)
 {
 
  delay(20);
  writecommand(0x38);//8位数据,2行显示
  writecommand(0x08);//关闭显示
  writecommand(0x01);//清屏 清屏和光标归位需要较长的时间
  delay5ms();
  writecommand(0x06); //光标移动设置既光标右移一格地址计数器AC加1
  writecommand(0x0f);//设置光标闪  0x0c是设置光标不闪  0x0f为光标闪
 }

/* void LocateXY( char posx,char posy) 
{

   uchar temp;

	temp = posx & 0xf;
	posy &= 0x1;
	if ( posy )temp |= 0x40;
	temp |= 0x80;
	LcdWriteCommand(temp,0);
} */
#endif

⌨️ 快捷键说明

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