void main(void)
{
LCD_init();
LCD_String(" System Control "); // 첫번째 라인에 출력
Command(LINE2);
LCD_String(" Suwon ATmega128 "); // 두번째 라인에 출력
while(1);
}//end main
// LCD 초기화
void LCD_init(void){
DDRD = 0xff; // port D
PORTD &= 0xfb; // E = 0
delay_ms(15);
Command(0x20);
delay_ms(5);
Command(0x20);
delay_us(100);
Command(0x20);
Command(FUNCSET);
Command(DISPON);
Command(ALLCLR);
Command(ENTMODE);
}//endLCD_init
// 문자열 출력 함수
void LCD_String(char flash str[]){
char flash *pStr = 0;
pStr = str;
while(*pStr) Data(*pStr++);
}//endLCD_String
// 인스트럭션 쓰기 함수
void Command(unsigned char byte){
Busy();
// 인스트럭션 상위 바이트
PORTD = ( byte & 0xf0 ); // 데이터
PORTD &= 0xfe; // RS = 0, 명령어
PORTD &= 0xfd; // RW = 0, write
delay_us(1);
PORTD |= 0x04; // E = 1, LCD 동작
delay_us(1);
PORTD &= 0xfb; // E = 0