Exemple #1
0
void LCD_WriteInt (uint dat,uchar comm)       //写一个16进制数据和一个命令
{
  	uchar datl,dath;
  	datl=dat;
  	dath=dat>>8;
  	LCD_Data(datl);
  	LCD_Data(dath);
  	LCD_Comm(comm);
}
Exemple #2
0
void LCD_WriteCol (char txt[20], int row, int col)
{
	unsigned char address_d = 0;

	switch(row)
	{
		case 0:
			address_d = 0x80;
			break;

		case 1:
			address_d = 0xC0;
			break;

		case 2:
			address_d = 0x94;
			break;

		case 3:
			address_d = 0xD4;
			break;
	}
	address_d = address_d + col;

	// Envia o endereço inicial do LCD como instrução
	LCD_Inst(address_d);

	// Envia todos os caracteres da string de entrada
	while(*txt) LCD_Data(*txt++);
}
Exemple #3
0
//This function writes string on LCD display
void LCD_String(unsigned char *data)
{
 while(*data)
 {
  LCD_Data(*data);
  data++;
 } 
}  
Exemple #4
0
//This function displays any data upto 5 digits. It also requires row and column address
void LCD_Print(unsigned char Row, char Col,unsigned int Val, unsigned int Digits)
{
 unsigned char Flag=0;
 unsigned int Temp,Mi,Th,Hu,Te,Un=0;

 if(Row==0 || Col==0)
 {
  LCD_Home();
 }
 else
 {
  LCD_Cursor(Row,Col);
 }
 if(Digits==5 || Flag==1)
 {
  Mi=Val/10000+48;
  LCD_Data(Mi);
  Flag=1;
 }
 if(Digits==4 || Flag==1)
 {
  Temp = Val/1000;
  Th = (Temp % 10) + 48;
  LCD_Data(Th);
  Flag=1;
 }
 if(Digits==3 || Flag==1)
 {
  Temp = Val/100;
  Hu = (Temp%10) + 48;
  LCD_Data(Hu);
  Flag=1;
 }
 if(Digits==2 || Flag==1)
 {
  Temp = Val/10;
  Te = (Temp%10) + 48;
  LCD_Data(Te);
  Flag=1;
 }
 if(Digits==1 || Flag==1)
 {
  Un = (Val%10) + 48;
  LCD_Data(Un);
 }
 if(Digits>5)
 {
  LCD_Data('E');
 }
	
}
Exemple #5
0
// (主に)文字列を連続送信します。
void LCD_Puts(char8 *s)
{
	while(*s) {
		LCD_Data((uint8)*s++);
	}
}
Exemple #6
0
void LCD_Write2 (uchar datl,uchar dath,uchar comm)  //写两个数据和一个命令
{
  	LCD_Data(datl);
  	LCD_Data(dath);
  	LCD_Comm(comm);
}
Exemple #7
0
/*------------写命令或数据到LCD--------------*/
void LCD_Write1 (uchar dat,uchar comm)       //写一个数据和一个命令
{
  	LCD_Data(dat);
  	LCD_Comm(comm);
}