밑에 소스는 16문자*2라인 LCD 에 1라인에는 영어로 WEST SIDE 2라인에는 한글로 가화만사
성이라 표시되면서 왼쪽으로 디스플레이 되는거거든요. 이것을 1라인에는 한글로하고 2라인에는
영어로 해서 2라인이 왼쪽으로 죽~ 갓다가 오른쪽으로 다시 오고 다시 왼쪽으로.. 이렇게 되게
하려고하는데 어디어디를 바꾸면 될까요. 자세하게 설명좀^^;
#include <AT89X51.h> // I/O가 정의 되어 있는 헤더 파일
unsigned char count,anim,animc,flag; // 전역 변수
//LCD로 디스플레이할 문자
code unsigned char msg1[]=" WEST SIDE.. ";
code unsigned char msg2[]=" ";
code unsigned char hangle[]= {0x00,0x1f,0x01,0x01,0x1f,0x10,0x10,0x1f, //ㄱ
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, //ㅏ
0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x1f, //호
0x00,0x1f,0x01,0x02,0x04,0x0a,0x11,0x00, //ㅓ
0x04,0x04,0x1f,0x00,0x0e,0x11,0x11,0x0e, //ㅁ
0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04, //ㄴ
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //ㅅ
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //ㅇ
};
code unsigned char form[]= {'*',0x00,0x01,0x02,0x01,0x03,0x01,0x04,0x05,0x03,0x05,'!','!','!','!','!'
};
// P0.0 ~ P0.7 : 데이터, P2_4=RS, P2_5=RW,P2_6=E
#include "LCD8.h" // LCD 초기설정 루틴이 정의
// 8비트 데이터 메모리로 사용할 경우(MDA-A_D8051 TRAINER)
//#include "LCDM.h" // LCD 초기설정 루틴이 정의
// 타이머1 인터럽트
void T1_int(void) interrupt 3
{
TR1 = 0; // 타이머1 OFF
count--; // count - 1
if(count == 0){ // 0.5초
count = 15; // 카운터 클리어
flag = 1; // 인터럽트 플래그 셋
} // count if문
// 시정수 저장
TH1 = TL1 = 0;
TR1 = 1; // 타이머1 ON
}
// 한글 디스플레이
void HAN_DISP(void)
{
unsigned char i;
// 2라인을 지운다.
COMMAND(0xc0); // 커서 2라인 첫번째
for ( i=0; i <16; i++) CHAR_O(0x20);
// 커서 설정
COMMAND(anim);
// animc 만큼 한글 디스플레이
for (i=0 ;i < animc; i++) CHAR_O(form[i]);
COMMAND(0xd0); // 커서 라인 끝으로
}
// 메인
void main(void)
{
죄송합니다. 자세하게 설명드릴수 없네요.
님이 자세하게 질문을 해주셔야 자세하게 설명을 할 수 있겠죠..
회로도도 없고 소스도 전체가 아니고..
안되는 부분이 무엇인지도 정확히 명시되어 있지 않아 설명드리기가 힘드네요.
설명 난감 ㅎㅎㅎㅎ
실수했네요;; 다시올리도록할게요;;