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); }
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++); }
//This function writes string on LCD display void LCD_String(unsigned char *data) { while(*data) { LCD_Data(*data); data++; } }
//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'); } }
// (主に)文字列を連続送信します。 void LCD_Puts(char8 *s) { while(*s) { LCD_Data((uint8)*s++); } }
void LCD_Write2 (uchar datl,uchar dath,uchar comm) //写两个数据和一个命令 { LCD_Data(datl); LCD_Data(dath); LCD_Comm(comm); }
/*------------写命令或数据到LCD--------------*/ void LCD_Write1 (uchar dat,uchar comm) //写一个数据和一个命令 { LCD_Data(dat); LCD_Comm(comm); }