일반 OK128 에서 LCD 제어 부분
2010.07.08 17:09
// 이 코드를 이해하기 위해서는 회로도를 먼저 보아야 합니다.
// 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);
}