LCD에 문자를 출력하기 위해서는 폰트를 만들어야 한다. 폰트에 기본적으로 알파벳은 들어가 있다. 알파벳은 출력하고자 하는 알파벳을 LCD위치만 설정한다면,
CG ROM에서 폰트를 찾아 화면(LCD)에 출력된다.CG ROM에는 기본문자(아스키코드 알파벳, 도형, 일본어, 기타 등....)가 있어서 LCD에 출력이 가능하다.
하지만, 한글은 없다. 그래서 한글 폰트를 만들어야 한다.
폰트를 새로정의 하는 부분은 CGRAM에서 관장한다.
우리가 쓰는 LCD에 해당하는 도트(.)은 가로5칸, 세로7카인 5*7이다.
7 6 5 4 3 2 1 0
위 그림은 '소'을 찍어내기 위한 도트 LCD모듈에서의 CG RAM adress부분.
제일 윗줄에는 아무것도 나태내지 않기 때문에 전부 0이다. 2번째 부분부터
도트를 찍는데 2번 자리에 1이 들어간다. 나머지는 모두 0이다.
0x04= 0000 0100이기 때문에 밑에 소스에 각 비트에 해당하는 번호를
넣었다.
unsigned char font[] = {0x00, 0x04,.........,}
처음부터 8개까지 위의 그림의 '소'에 해당하는 CG RAM adress의 도트이다.
LCD에 찍힐 때는
*
* *
*
*
*****
이런식으로 화면에 나온다.
LCD_Cmd_WRITE함수는 예전에 만들어 놓았던 명령을 내리는 함수이다. 인자인 0x40은 Set CGram adress이다. 즉, CGram adress로 인자로 받아서, CGRAM에
지정할 문자를 받을 준비를 한다(???)
for(i=0; i<64;i=i+1)
{
LCD_Data_WRITE(font[i]);
}
이 부분을 반복문을 돌려서 font[]배열에 있는 헥사값들을 LCD_Data_WRITE()에 넣어서, 데이터를 입력한다.LCD_Data_WRITE는 실제 데이터를 입력하는 함수이다.
아래는 main()함수와 DD RAM adress
커서의 위치를 설정하는 부분이다. 커서를 해당주소에 위치시키는 것.
여기서 0x80은 첫 번째행 맨 앞에 주소.
이 주소에 커서를 위치시켜서 사용하는 문자를 쓴다. 커서를 변경하고 싶으면,
위의 그림에 보이는 DD RAM ADRESS표를 참고하여 해당 주소만큼 0x80에
더하여 커서를 위치시키면 된다.
'임베디드 > Arm2567SAM' 카테고리의 다른 글
4월 17일 LCD문자입력함수 만들기 (0) | 2013.05.30 |
---|---|
4월 16일 CMD_Write와 DATA_write함수 만들기 (0) | 2013.05.28 |
5월 23일 ULTRA 2. (0) | 2013.05.24 |
5월 23일 ultra1(진행중) (0) | 2013.05.23 |
5월 22일 소스 define방법 (0) | 2013.05.22 |