Anh nam ơi, có một đoạn code thế này, em đọc nhưng chưa hiểu hết được, anh có thể giải thích cho em kỹ hơn không ?
// Function: LCD_CMD
// Description: Send command to LCD
// Input: Command code
// Output: None
//
//************************************************** *************************//
void LCD_CMD(unsigned char CMD)
{
// LCDdelayms(1);
unsigned char TempData;
LCD_RS = 0; //Dat che do xuat lenh
TempData = LCD_DATA & 0xFFF0; //Lay trang thai hien thoi cua LCD_DATA
LCD_DATA = TempData | (CMD>>4); //Xuat 4 bit cao
LCD_EN = 1; ShortDelay(); LCD_EN = 0; //Xung Enable
TempData = LCD_DATA & 0xFFF0; //Lay trang thai hien thoi cua LCD_DATA
LCD_DATA = TempData| (CMD & 0x0F); //Xuat 4 bit thap
LCD_EN = 1; ShortDelay(); LCD_EN = 0; //Xung Enable
}
//************************* End of LCD_CMD *********************************//
//************************************************** *************************//
//
// Function: LCD_DATA
// Description: Send data to LCD
// Input: Command code
// Output: None
//
//************************************************** *************************//
void LCD_DAT(unsigned char DATA)
{
unsigned char TempData;
// LCDdelayms(1);
LCD_RS = 1; //Dat che do xuat du lieu
TempData = LCD_DATA & 0xFFF0; //Lay trang thai hien thoi cua LCD_DATA
LCD_DATA = TempData | (DATA >> 4); //Xuat 4 bit cao
LCD_EN = 1; ShortDelay(); LCD_EN = 0; //Xung Enable
TempData = LCD_DATA & 0xFFF0; //Lay trang thai hien thoi cua LCD_DATA
LCD_DATA = TempData | (DATA & 0x0F); //Xuat 4 bit thap
LCD_EN = 1; ShortDelay(); LCD_EN = 0; //Xung Enable
}
Cám ơn anh nhiều !
|