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

📄 svm12864_lcd.h

📁 Application examples max6675Application examples max6675Application examples max6675
💻 H
字号:
//----------------LCD引脚配置
sbit E=P1^3;   //(SCLK)
sbit RW=P1^4;  //(SID)
sbit RS=P1^5;  //(CS)

//-----------------延时参数
void Delay(unsigned char t)
{unsigned int a;
 while(t--)
  {for(a=1;a<1000;a++);
  }
}

//-----------------写数据
void WriteData(unsigned char DB)
{unsigned char i,temp;
 RS=1;
 RW=1;
 E=0;
 E=1;  //-1
 E=0;
 E=1;  //-2
 E=0;
 E=1; //-3
 E=0;
 E=1; //-4
 E=0;
 E=1; //-5
 E=0;
 RW=0;
 E=1; //-6
 E=0;
 RW=1;
 E=1; //-7
 E=0;
 RW=0;
 E=1; //-8
 E=0;
 temp=DB;
 for(i=0;i<4;i++)
  {temp=temp&0x80;
   if(temp==0x80)
     {RW=1;
	  E=1;
	  E=0;
	 }
    else
	 {RW=0;
	  E=1;
	  E=0;
	 }
   DB=DB<<1;
   temp=DB;
  }

 RW=0;
 E=1;  //-1
 E=0;
 E=1;  //-2
 E=0;
 E=1; //-3
 E=0;
 E=1; //-4
 E=0;

 temp=DB;
 for(i=0;i<4;i++)
  {temp=temp&0x80;
   if(temp==0x80)
     {RW=1;
	  E=1;
	  E=0;
	 }
    else
	 {RW=0;
	  E=1;
	  E=0;
	 }
   DB=DB<<1;
   temp=DB;
  }

 RW=0;
 E=1;  //-1
 E=0;
 E=1;  //-2
 E=0;
 E=1; //-3
 E=0;
 E=1; //-4
 E=0;
 RS=1;
 Delay(1);
}

//--------------------写命名
void WriteCMD(unsigned char DB)
{unsigned char i,temp;
 RS=1;
 RW=1;
 E=0;
 E=1;  //-1
 E=0;
 E=1;  //-2
 E=0;
 E=1; //-3
 E=0;
 E=1; //-4
 E=0;
 E=1; //-5
 E=0;
 RW=0;
 E=1; //-6
 E=0;
 E=1; //-7
 E=0;
 E=1; //-8
 E=0;

 temp=DB;
 for(i=0;i<4;i++)
  {temp=temp&0x80;
   if(temp==0x80)
     {RW=1;
	  E=1;
	  E=0;
	 }
    else
	 {RW=0;
	  E=1;
	  E=0;
	 }
   DB=DB<<1;
   temp=DB;
  }

 RW=0;
 E=1;  //-1
 E=0;
 E=1;  //-2
 E=0;
 E=1; //-3
 E=0;
 E=1; //-4
 E=0;

 temp=DB;
 for(i=0;i<4;i++)
  {temp=temp&0x80;
   if(temp==0x80)
     {RW=1;
	  E=1;
	  E=0;
	 }
    else
	 {RW=0;
	  E=1;
	  E=0;
	 }
   DB=DB<<1;
   temp=DB;
  }

 RW=0;
 E=1;  //-1
 E=0;
 E=1;  //-2
 E=0;
 E=1; //-3
 E=0;
 E=1; //-4
 E=0;
 RS=1;
 Delay(1);

}

/**********************************************
函数名:LCD_AT(unsigned char AC)
功能:定义字显示位置
入口参数:AC (为1,2,3,4)显示行位置
出口参数:无
**********************************************/
void LCD_At(unsigned char AC)
{if(AC==1)
   WriteCMD(0x80); 
 if(AC==2)
   WriteCMD(0x90);
 if(AC==3)
   WriteCMD(0x88);
 if(AC==4)
   WriteCMD(0x98);
}

/*********************************************
函数名:LCD_Ini()
功能:12864初始化
入口参数:无
出口参数:无
*********************************************/
void LCD_Ini()
{Delay(20);
 WriteCMD(0x30);
 Delay(5);
 WriteCMD(0x30);   //function set
 Delay(1);
 WriteCMD(0x08);   //display off
 Delay(1);
 WriteCMD(0x01);   //display clear
 Delay(1);
 WriteCMD(0x03);   //entry mode set
 Delay(1);
 WriteCMD(0x40);   //set AC
 Delay(1);
 WriteCMD(0x0c);   //display on
 Delay(1);
}


/*****************************************
函数名:LCD_Printf(char *GB)
功能:显示中文字符串
入口参数:*GB 字符串指针
出口参数:无
*****************************************/
void LCD_Printf(char *GB)   //显示字符串
{for(;*GB != 0;GB++)
  {WriteData(*GB);
  }
}


/*****************************************
函数名:LCD_To(unsigned char Y,unsigned char X)
功能:字符定位
入口参数:Y,X位置参数,Y行参数,X列参数
出口参数:无
*****************************************/
void LCD_To(unsigned char Y,unsigned char X)  //定位
{unsigned char at;
 if(Y>5) return;
 if(X>9) return;
 if(Y==1) at=0x80+X;
 if(Y==2) at=0x90+X;
 if(Y==3) at=0x88+X;
 if(Y==4) at=0x98+X;
 WriteCMD(at);
  
}


/*****************************************
函数名:LCD_Print(unsigned char Y,unsigned char X,char *TXT)
功能:字符串定位显示
入口参数:Y,X位置参数,Y行参数,X列参数,*TXT显示字符串
出口参数:无
*****************************************/
void LCD_Print(unsigned char Y,unsigned char X,char *TXT)  //定位显示字符串
{LCD_To(Y,X);
 for(;*TXT != 0;TXT++)
  {WriteData(*TXT);
  }
}

⌨️ 快捷键说明

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