
#<함수형>******************************************************
void _TxtLcd_생성(unsigned char  *r생성자,
                 unsigned char   p포트번호,
                 unsigned char   p열크기,
                 unsigned char   p행크기);

#<인수>
'r생성자'
문자 LCD [생성자](반드시 <unsigned char [8]> 의 전역변수 배열로 선언).
'p포트번호'
문자 LCD 를 생성할 맷돌의 포트번호(0 - 2 사이값).
'p열크기'
생성할 문자 LCD 의 열크기(16*2 LCD 인 경우는 16).
'p행크기'
생성할 문자 LCD 의 행크기(16*2 LCD 인 경우는 2).

#<반환값>

#*************************************************************

#<필요함수>

"_Gpio_출력설정_", "_Gpio_출력_" API 도 같이 등록해야 합니다.

#<적용구분>

"맷돌 전용"

#<선언문서>

"_TxtLcd_생성.h"

#<설명>

<문자 LCD> 를 맷돌(G.MTDL.A) 의 지정 포트에 한개 생성합니다.

지원되는 API 는 모두 <4비트 구동> 을 지원하므로 문자 LCD 는 <4비트 구동> 이 지원되는 것이어야 합니다.
따라서, 맷돌(G.MTDL.A) 의 한개포트만 있으면 [문자 LCD] 한개를 제어할수 있으며 맷돌(G.MTDL.A) 에는
총 3개의 포트가 있으므로 최대 3개의 <문자 LCD> 를 완전히 독립적으로 제어할수 있습니다.

모든 API 는 [출력] 으로만 제어하므로 5V 입력이 지원되지 않는 P0.0/P0.1/P0.5 가 있는 P0 포트에도
안전하게 사용가능 합니다.

[문자 LCD] 의 <전원제어> 와 <백라이트> 기능 제어를 위하여 2N3904 NPN TR 을 각각 1개씩 사용해야 하며
기본 적인 회로구성은 제공되는 예제를 참고합니다.

지정 포트에 <문자 LCD> 를 생성하면 모든 초기화가 자동으로 이루어 지며 이후 바로 관련 API 로 제어 가능한
상태가 됩니다.

현재까지 지원가능한 <문자 LCD> 는 최대 <20*4> 까지 가능합니다.

[포트 핀 배치]{---------------------------------------
지정 포트당 핀 배치는 고정돼 있습니다(회로도 참고).
PX.[7:4] : 4비트 DATA.
PX.3     : LCD 전원제어 ON(1)/OFF(0) (2N3904 TR 필요).
PX.2     : 백라이트 ON(1)/OFF(0) (2N3904 TR 필요).
PX.1     : E(래치).
PX.0     : 명령(0)/데이타(1).
}---------------------------------------------------

[주의!!!]{-------------------------------------------------------------------
문자 LCD 가 연결된 맷돌(G.MTDL.A) 포트의 "VCCIO" 는 반드시 "5V" 에 연결해 주어야 합니다.
이는 대부분의 문자 LCD 는 5V 구동이며 <전원제어>, <백라이트제어> 를 위한 2N3904 를 제대로 
동작시키기 위하여 반드시 "VCCIO:5V" 를 사용해 주기 바랍니다.
}---------------------------------------------------------------------------

#<예제>

//[VAR]
//{
    //문자LCD 생성자(전역변수로 선언/반드시 <unsigned char [8]> 로 선언).
    unsigned char  _문자LCD[8];
  
//} 

void main(void)
{ 
  //[생성]{-----------------------------------------------
  //문자 LCD 를 하나 생성합니다(16*2 문자 LCD 인 경우).
  //문자 LCD 기능설정, 초기화 등 모든 처리가 내부적으로 자동 수행되며 
  //이후 문자 LCD 는 바로 사용가능한 상태가 됩니다.
  _TxtLcd_생성(_문자LCD, 0, 16, 2);
  //}----------------------------------------------------
  
  //백라이트 켜기.
  _TxtLcd_백라이트(_문자LCD, 1);
  
  //화면 켜기.
  _TxtLcd_화면켜기끄기(_문자LCD, 1);
  //커서 보이기.
  _TxtLcd_커서켜기끄기(_문자LCD, 1);
  //커서 깜박이기.
  _TxtLcd_커서깜박이기(_문자LCD, 1);
  
  //LCD 화면을 지우고 초기화 합니다.
  _TxtLcd_화면지우기(_문자LCD); 

  //커서를 (0, 0) 위치로 이동 시킵니다.
  _TxtLcd_커서이동(_문자LCD, 0, 0);
  
  //자동 줄바꿈으로 설정합니다.
  _TxtLcd_자동줄바꿈(_문자LCD, 1);
  
  //현재 커서 위치에 지정 문자열을 출력합니다.
  _TxtLcd_문자열(_문자LCD, "http://www.gigyenics.co.kr");
  
  while(1);
        
}




  