메뉴 바로가기

서브메뉴 바로가기

본문 바로가기

logo

하드웨어 일반 자료실

일반 OK128 에서 LCD 제어 부분

2010.07.08 17:09

WhiteAT 조회 수:11539

// 이 코드를 이해하기 위해서는 회로도를 먼저 보아야 합니다.

// LCD_CONTROL 에서  비트0은 enable 신호이고,
//                                           비트1은 rs 신호이다.
                                       

// Command 를 보냅니다. CLEAR, 좌표 이동 등등

void LCD_command(unsigned char command)  {
  LCD_CONTROL = 0x00;    //0000 0000// 모든 신호 초기화 RS =0, RW=0;
  LCD_DATABUS = command;    // 출력명령, clear 좌표 이동등에 대한 자세한 명령코드
  LCD_CONTROL = 0x01;   // E = 1
  asm volatile(" PUSH  R0 ");   // delay for about 250 ns
  asm volatile(" POP   R0 ");
  LCD_CONTROL = 0x00;    // E = 0
  Delay_us(50);
}


// 텍스트형 엘시디 모듈에서 현재의 커서 위치에 1문자를 표시한다
void LCD_data(unsigned char data) {
  LCD_CONTROL = 0x02;    // RS = 1    데이터를 쓰기위해서
  LCD_DATABUS = data;     // 표시할 데이터 값
  LCD_CONTROL = 0x03;     // RS =1, E=1
  asm volatile(" PUSH  R0 ");   // delay for about 250 ns
  asm volatile(" POP   R0 ");
  LCD_CONTROL = 0x02;    // RS = 1, E=0
  Delay_us(50);
}