본문 바로가기
Embedded 실습/AT91SAM7S256

Character LCD에 데이터/명령어 입력하기(Write)

by 중동콜링 2013. 4. 15.

arm칩과 character lcd를 연결해보겠다.

우선 캐릭터 lcd의 data sheet를 다운받는다.

모델명(16216D-4-B102A)으로 구글에서 검색해보니 쉽게 다운이 가능했다.

캐릭터lcd.pdf


위의 표는 해당 모델의 각 핀의 역할에 대해서 서술한 것이다.

1~3번과 15, 16번 핀은 전원과 관련된 핀이고,

4~6번은 데이터 입출력 컨트롤을 할 수 있는 핀이다.

7~14번은 데이터 전송 버스 핀이다.


전원핀은 VCC GND에 맞춰서 연결해주면 되고, 데이터 버스 핀(7~14)는 한번에 8 bit씩 전송가능한 데이터 전송 경로이다.

이 중 데이터를 전송할것인지 수신할것인지를 컨트롤 할 수 있는 4, 5, 6번 핀이 가장 중요하다.


이제 4, 5, 6번핀의 사용법을 알려주는 TIMING DIAGRAM을 살펴보자.

아래 표는 WRITE명을 수행할 때의 다이어그램이다.

위의 표는 가로축은 시간을 표시하고 세로축은 HIGH냐 LOW냐를 알려준다.

① : 모두 대기 상태로 HIGH와 LOW상태가 같이 혼재하는 것은 쓰레기값이 들어가 있는것을 표현한다.

② : RS - H와 L이 교차하는 상태(데이터 OR 명령어)는 둘 중하나를 선택하는 중이라는 표시다.

     R/W - H가 하강하고 있는데 R/W에서 LOW상태는 데이터 입력(WRITE)이다. 

지금 이 표는 WRITE명령을 수행할 때의 다이어그램이므로 LOW로 하강하는 상태를 보여준다.  

③ : RS - 이미 Data 인지 Instruction 인지 선택한 상태이다.

 R/W - WRITE모드인 LOW로 지정되어있다.

 E - Data가 전송할 수 있도록 Low에서 High로 변화중이다.

④ : E - Data가 전송될 수 있는 상태로 세팅되었다.

 DB0~7 - 데이터 버스에 전송할 데이터를 준비 중이다.

⑤ : DB0~7 - 데이터 버스를 통하여 열심히 전송 중이다.

⑥ : E - 데이터 전송을 마무리 짓기 위해 Low로 하강 중.

 DB0~7 - 계속 유효한 데이터를 전송 중.

⑦ 모두 원상태로 복귀중인 모습이다.

위의 ①~⑦번 상태가 데이터 전송의 한 싸이클을 나타낸다.

데이터를 전송할 때 마다 이와같은 과정을 반복하게 된다.


핀의 신호가 바뀌는 순서를 정리하자면 

① 4번 RS핀이 데이터인지 명령어인지 선택하고 5번 R/W핀이 WRITE 상태로 바뀐다.

② 6번 E핀이 데이터가 전송 가능하도록 Low에서 High로 바뀐다.

③ 7~14번 DB핀이 데이터를 전송한다.  

의 순서를 거치게 된다.


LCD에 원하는 대로 데이터를 쓰려면(Write) 위와 같은 순서를 지켜

프로그래밍을 해야 하는 것이다.