마하전자기술연구소 LOGO

제품검색 고객센터053-604-2355
기술자료실

Home > 기술자료실 기술자료실

제 목 3. 액정 표시기용 C언어 라이브러리
첨부파일


PIC16F87x용 액정 표시기 C라이브러리

【개요】

PIC16F87x 시리즈에 액정 표시기를 접속해, C언어로 이것을 취급하는 경우에 필요
되는, 액정 표시기 제어 라이브러리의 설명입니다.

여기서 취급하는 액정 표시기는 SEIKO제의 SC1602BSLB 인가 SC1602BS*B입니다.
잘 사용되는 시리즈로, 16 문자×2행의 영숫자, 가나 문자를 표시할 수 있습니다.
소비 전류도 매우 적기 때문에(다만 백 라이트 없음) PIC의 표시기로서는
안성맞춤의 것입니다.

상세한 것에 대하여는,별페이지 (을)를 참조해 주세요.


【제어 회로】

여기서 소개하는 액정 표시기와 PIC와의 접속 회로는 밑그림으로 합니다. 밑그림에서는 여분
회로를 포함되어 있습니다만, D2의 액정 표시기와 PIC란, 포토 D를 통해 접속
하고 있습니다.
이외의 접속의 경우에는, 프로그램중에서 핀의 지정 변경이 필요합니다.



【제어 라이브러리】

액정 표시기 제어용 라이브러리(lcd_lib.c)에는, 아래와 같은 함수를 포함하고 있습니다.

(1) 초기화 함수 lcd_init()
   PIC의 전원 투입 후에 실행해야 할 초기화의 함수입니다. 파라미터는 있어
   선.
(2) 커멘드 출력 함수 lcd_cmd(cmd)
   액정 표시기의 제어를 행하기 위한 1바이트의 커멘드를 출력하는 함수
   파라미터로서 아래와 같이 제어 커멘드를 사용합니다.

【Control Command의 일람표】
 Commnad     DB7 6 5 4 3 2 1 0    설명   
Clear Display     0 0 0 0 0 0 0 1  전소거, Cursor는 Home에
Cursor At Home    0 0 0 0 0 0 1 *  표시 내용은 변화 없음.
Entry Mode Set    0 0 0 0 0 1 I/D S  I/D=Increment/Decrement
                        S=With Display Shift
Display On/Off    0 0 0 0 1 D C B  D=Display C=Cursor B=Blink
Cursor/Dislay Shift 0 0 0 1 S/C R/L * *  S/C=Display/Cursor
                        R/L=Right/Left
Function Set     0 0 1 DL N F * *  DL=8/4Bit N=2/1Line
                        F=Large/Small
CGRAM Address Set  0 1  CCRAM Address   Character Generator RAM
DDRAM Address Set  1 L  DDRAM Address   Display RAM L=Line
Busy Flag/Adrs Read BF  Address       BF=Busy Flag

(3) 문자 표시 함수 lcd_data(string)
   string로서 건네주는 캐릭터 라인을 표시합니다. 표시 위치는 현재 위치로부터됩니다
   의로, 위치를 변경하는 경우에는, 상기 커멘드로 제어합니다.

(4) 화면 소거 함수 lcd_clear()
   단순하게 전화면을 소거해 커서 위치를 좌상단으로 합니다.


  ★ 액정 표시 제어용 라이브러리 3(다운로드해 사용해 주세요)

【라이브러리의 사용법】

(1) 기본적인 사용법
 사용법은, 프로그램의 최초로, #include 함수로 lcd_lib.c를 인클루드 해 링크
 합니다.
 그 후는 최초로 lcd_init() 함수를 사용해 초기화를 하면, 나머지는 자유롭게 사용할 수 있습니다.

 실제의 사용예에서의 main 함수내에서의 정의 설정예입니다.

   //////// link LCD library
   #include


(2) 핀의 정의 지정 방법

 액정 표시기용으로서 사용하는 입출력 포토를 라이브러리의 최초로 정의하고 있습니다.
 사용하는 포토를 변경할 경우에는 여기를 고쳐 씁니다. 아래와 같이가 정의 부분입니다.

////// port define to port D
#byte port = 8   //port D
#define set_tris_x set_tris_d
#define rs  PIN_D0
#define rw  PIN_D1
#define stb PIN_D2

 (a) 데이타 버스 port
   몇개의 입출력 포토의 상위 4비트를 사용합니다. 상위에 고정이 되어
   있습니다. (표준은 포토 D입니다)
 (b) 제어 신호
   3개의 제어 신호가 필요합니다만, 각각을#define 함수로 지정합니다.
   필요한 3개의 신호는 rs, rw, stb 의 3종입니다. 입출력 포토는 데이터
   버스와 같은 포토를 사용합니다.
 (c) TRIS 레지스터의 지정
   set_tris_x 의 x를 고쳐 씁니다.

【편리한 사용법】

(1) 액정 표시기에 캐릭터 라인을 표시하는 경우
  lcd_data(string) 함수의 「string」에는 캐릭터 라인을 직접 지정할 수가 있습니다
 
   lcd_data("abcdefghijklmnop");
   lcd_data("MESSAGE002");

(2) 액정 표시기 데이터 표시 함수”lcd_data( )”를 print문의 대상으로 할 수가 있습니다.
  이것을 사용하면(자), 수치등의 출력 포맷을 자유롭게 할 수 있기 때문에, 표시의
  부분의 프로그램을 매우 편하게 짤 수가 있습니다.
  액정 표시기를 출력 대상으로 하는 기본적인 printf문의 포맷은 아래와 같이로 합니다.

    printf( lcd_data, string, [value] );
  
  구체적인 예에서는, 아래와 같이 사용합니다.
   ≪예 1≫
    long  data;
    int   ch;
    printf(lcd_data, "CH=%1U %4LX", ch, data);
  
   
≪예 2≫
    float analog;
    int  ch;
    printf(lcd_data, "CH=%1U %1. 3f Volt", ch, analog/512);

목록보기

www.1chip.com, www.1chip.co.kr
www.micom114.com
자료실바로가기

대구광역시 북구 산격2동 1629 산업용재관 10동 13호 (2층) / Tel. 053-604-2355 / Fax. 053-383-2354 / E-mail. maha@paran.com