728x90

LCD 모듈 제어에 기본적으로 수행되야하는 기능


- IR에 명령 쓰기

- DR에 데이터 쓰기

- 명령 처리 시간을 고려한 시간 지연



LCD 컨트롤러 명령어 표


신호 제어선 정의 예


#define  CLR   0x01      //Clear Display 명령
#define  HOME  0x02      //Return Home 명령 
#define  FNC   0x38      //Function Set 명령
                		 //Data Length = 8bit. 행수 2행


void LCD_PortSetting(void)
{
  DDRC = 0xFF;        //데이터 라인
  DDRD = 0xFF;        //0~2 제어핀 사용
  //D0: RS ,D1: R/W ,D2: EN
}


명령 레지스터에 명령어 쓰기 함수


위의 명령어 표와 같은 명령을 수행할 함수이다. 수행결과는 함수를 호출하는 함수에 반환될 필요가 없다.


void IR_Write(unsigned char Data) { PORTD &= 0xFC; // RS = 0, RW = 0 (Write Enable), 0xFC = 1111 1100) _delay_us(1); // Enable 까지 최소 대기 시간 40ns PORTD |= 0x04; // En _delay_us(1); PORTC = Data; _delay_us(1); PORTD = 0b00000010; // Disable. Read Mode }

PORTD &= 0XFC // PORTD= PORTD & 0XFC



데이터 레지스터에 데이터 쓰기 함수


DDRAM 또는 CGRAM에 데이터를 쓰는 함수로서 사용되는 여러가지 명령어가 제시되어 있다.

void DR_Write(unsigned char Data)
{
  PORTD = 0x01;    //RS = 1, Write Enable
  _delay_us(1);    //Enable 까지 최소 대기 시간 40ns
  PORTD |= 0x04;    //Enable 활성화
  _delay_us(1);    //
  PORTC = Data;    //Data
  _delay_us(1);
  PORTD = 0b00000010;  //Disable, Read Mode  
}













'Study > Embedded' 카테고리의 다른 글

ATMEGA USART-C# App 연동  (0) 2016.12.12
7/21 Atmega128 포트/ win32 api  (0) 2016.07.21
7/5 LCD 제어  (0) 2016.07.05
5/26 업무일지 PC PWM을 이용한 LED 밝기 조절  (0) 2016.05.26
2016-05-19 업무일지-Atmega2560_LCD출력  (0) 2016.05.19

+ Recent posts