★ 텍스트형 LCD모듈에서의 사용자 정의문자
- 지난 글에서 실습해 보았듯이 텍스트형 LCD 모듈에서 글자를 찍을 때 우리는 거의 CG ROM에 저장된 기본
문자 폰트를 이용하여 문자의 코드를 DD RAM에 써주기만 하면 자동으로 CG ROM에서 찾아 화면에 디스플
레이 시켜주었다. (CG ROM의 문자코드는 문자의 아스키코드값과 일치)
이번 글에서는 CG ROM에 정의된 문자 대신 CG RAM을 이용하여 사용자 정의 문자를 지정해보겠다.
★ CG RAM
- 사용자 정의 문자를 지정하는데 사용하는 메모리
- 5x7 도트를 사용하는 경우 초대 8문자까지 정의 가능
- 5x10도트를 사용하는 경우 최대 4문자까지 정의 가능
- 사용자 정의 문자는 0x00~0x0F 영역에 할당되어 있는데 1문자가 2개의 코드 영역을 차지하기 때문에
실제 코드 값은 0x00~0x07(또는 0x08~0x0F)로 사용
★ 텍스트형 LCD 모듈에서의 사용자 정의문자 지정방법
- 위 그림에서 보듯이 문자코드는 하위 3비트만 유효하고 이에 코드 값은 0x00~0x07로 지정해야한다.
- CGRAM Address에서 최상위 2비트는 01이다. 따라서 CGRAM의 첫 시작 주소는 0x40이 된다.
- 예를 들어 문자코드 0x00의 문자폰트를 써넣으려면 먼저 CG RAM의 어드레스 지정명령 0x40을 명령 번지
에 쓰고 다음에 8개의 CGRAM 데이터를 순서대로 Data번지에 쓴다.
(이 때 Entry mode set명령에서 커서를 증가시키는 방향으로 설정했다면 자동으로 1씩 증가되어 8개의 폰트 데이터를 순서대로 써넣을 수 있
다.)
- 문자 폰트 데이터는 도트를 검게 표시하고 싶은 부분의 비트를 1로 하고 공백부분은 0으로 한다.
- 5x8 도트의 경우 마지막 8번째 줄은 커서가 나타나는 위치이므로 실제로는 5x7도트라 생각하고 구성한다.
★ 5x7 도트 문자 폰트 데이터 생성
○ ○ ● ○ ○ 0x04
○ ● ○ ● ○ 0x0A
● ○ ○ ○ ● 0x11
● ○ ○ ○ ● 0x11
● ○ ○ ○ ● 0x11
○ ● ○ ● ○ 0x0A
○ ○ ● ○ ○ 0x04
○ ○ ○ ○ ○ 0x00
|
▶ 영상
-------- 보고서양식 and 폰트 DATA 값 간단히 계산하기 (excel) -------
-------------------------------------------------------------------
'AT91SAM7S256' 카테고리의 다른 글
2013.05.24_while문 반복중에도 DBGU_인터럽트걸기! (0) | 2013.05.24 |
---|---|
2013.05.24_초음파센서_ (0) | 2013.05.24 |
2013.05.15_Timer/Count_인터럽트(수정중) (0) | 2013.05.15 |
2013.05.09_DBGU(응용)_Recv_Char (0) | 2013.05.09 |
2013.05.08_DBGU_문자보내기! (0) | 2013.05.08 |