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 |