로그인회원등록 내글장바구니주문조회현재접속자
 상품 검색








 게시판 검색





 
 
회원등록 비번분실


온라인 입금계좌
ㆍ기업은행
ㆍ219-043192-01-028
ㆍ이건영

      거래은행 바로가기
 
 SX, MPU Applications
SX, MPU 자료실
작성자 leeky        
작성일 2006/04/06
첨부#2 lcd_16x4_shot.jpg (0KB) (Down:16)
Link#1 psr.asp (Down:21)
ㆍ추천: 0  ㆍ조회: 5099   
  문자표시 LCD 모듈의 사용방법

문자표시 LCD 모듈의 사용방법 및 프로그램에 대한 설명입니다.
참고로 규격은 Powertip의 1602를 기준으로 하였습니다.

- LCD 모듈의 핀 배열 (20x4 까지는 모두 이 배열임)
(주의: 40자 4줄 LCD의 E신호는 E1, E2의 2개로 분리되어 있다) 
 

1번: VSS (LCD 전원 +5V)
2번: VO (명암조절 0~5V =0V 일때 최대)
3번: VDD (LCD 전원 0V)
4번: RS ( 1 =데이터, 0 =코멘드(Function) )
5번: R/W (1 =읽기, 0 =쓰기)
6번: E (대기/래치), (0 =대기, 1=래치, 래치된 후에 즉시 리셋한다)

7번: DB0 (최하위 데이터 비트쵷)(4 비트 모드에서는 DB0~DB3은 사용하지 않는다, 접지시키지 않음)
8번: DB1
9번: DB2
10번: DB3
11번: DB4
12번: DB5
13번: DB6
14번: DB7 (최상위 데이터 비트)(4비트 모드에서는 상위 4비트만 사용한다, 상위니블 우선전송)

15번: 배경조명(Backlight) LED A(+) =저항을 통하여 전원에 연결.
16번: 배경조명(Backlight) LED K(-) =접지시킴.

내부리셋으로 초기화 됩니다.
HD44780은 리셋으로 자동적으로 초기화 됩니다.
내장된 리셋회로에 전원이 공급되면
다음의 초기화를 실행합니다.
VDD가 4.5V를 넘으면 10ms동안 BF(busy flag)는 초기화가 끝날 때까지 1로 유지된다.

기능설정
DL=1 : 8 비트 전송모드 (리셋되면 8비트 모드로 된다)
DL=0 : 4 비트 전송모드 (4비트 모드는 4비트 데이터로 4비트 모드를 설정해야 한다)
F=1: 8x8 도트문자 (사용자 문자 =CGROM)
F=0: 5x7 도트문자 (내장폰트 =CGRAM) (리셋된 모드)
N=1: 2 줄을 표시
N=0: 1 줄만 표시

표시제어
D=0 : 표시지움 C=0: 커서지움
B=0 : 커서깜박임 중지

순서모드 설정 (글씨를 표시한 다음, 자동으로 하는작동)
1/D= 1 : +1(증가 =자동으로 우로 1칸 이동)
1/D= 0 : +1(감소 =자동으로 좌로 1칸 이동)
S=0 : 문자위치 자동이동 없음

- 초기화 명령
만일 전원조건을 만족하고 내부리셋이 작동하지 않으면, 초기화를 다시 할 필요가 없다.

- LCD 모듈의 초기화 순서
전원이 4.5V 이상으로 인가된 후에, 15ms이상 대기한다음 초기모드로 된다.
리셋된 후의 초기모드는 8비트 전송모드이다.
초기모드에서 BF는 작동하지 않으며, Function으로 초기화 되어야 작동한다. 
  
- LCD 모듈의 명암(contrast) 조절
외부 명암(contrast)조절은 그림과 같습니다.
단전원 일때는 위의 그림의 회로를 사용, 양전원 일때는 아래 그림의 회로를 사용합니다.
만일 명암조절이 필요하지 않다면 Vo를 접지시키면 됩니다.(명암이 최대로 세팅됩니다.)
 

- 4 비트 모드 전송 예
만일 I/O 포트들이 부족하다면 4비트 전송모드를 사용합니다.
이때 BF의 점검은 2번이 필요하지 않습니다.
E는 연속으로 상위4비트를 보내고 1번, 이어서 하위 4비트를 보내고 1번의 펄스를 주어야 한다.
E펄스는 low(대기상태) ->high-> low가 한펄스로 된다. 
  

- 특징
문자 LCD는 8 비트와 4 비트의 인터페이스 방식을 모두 가지고 있습니다.
192 바이트의 문자(alpahnumeric), 기호(symbols)와 특수문자(special characters)를
내장된 CGROM(문자롬)에 의해서 문자를 ASCII코드 만으로 표시할 수 있습니다.
사용자문자는 8 바이트가 1문자로 CGRAM에 넣고 ASCII값 00~0F 만으로 표시할수 있습니다.

DDRAM에 CGROM의 폰트값(대부분 ASCII코드와 일치)을 써 넣으면 문자가 표시되며,
그러므로 DDRAM은 LCD의 표시 위치이다, 단 메모리가 연속되 않고 줄 마다 틀리다.  

내장폰트가 들어 있는 CGROM은 다음과 같다.
CGROM의 0x00~0x0F는 DDRAM의 문자코드 16개이며,
CGROM의 0x10~0x7F은 일반 ASCII 문자이다,
CGROM의 0x80~0xFF은 특수 ASCII 문자이다.

DDRAM은 사용자문자 메모리(CGRAM)이다.
이영역은 8바이트 단위로 0x00~0x0F의 16개 CGROM에 대응한다,
CGRAM에는 사용자 문자를 8바이트 단위로 써 넣는다.
(0x00~0x07은 DDRAM의 첫번째 문자 영역, 0x08~0x0F는 DDRAM의 두첫번째 문자 영역,)

- 제어기능
표시지움 : Cear display
커서 홈 : Cursor at home
커서 켜기/끄기 : On/Off cursor
커서 깜박임 : Blink character
표시이동 : Shift display
커서이동 : Shift cursor
표시문자 읽기/쓰기 Read/write display data
기타 : 경량, 단전원 +5V 구동, 저소비 전력

- 4비트 모드
4비트 모드는 2사이클의 전송이 필요합니다. 8비트 모드는 한번에 8비트로 전송합니다.
데이터(제어, 내장문자, 사용자문자)전송은 DB4에서 DB7까지의 4비트를 사용합니다.
(DB0에서 DB3은 사용하지 않습니다.- 접지시키면 작동이 느려집니다.)
4비트 모드는 데이터를 4 비씩 2번에 전송합니다.
(상위 4비트는 먼저전송, 하위 4 비트는 나중에 전송)

- 문자표시 LCD모듈에 내장된 문자의 모양(EB,WB)
 

- 어떻게 CGR 메모리에 특수문자를 넣는지 C코드의 예를 보여준다.
ASCII코드 00과 01로 간단하게 LCD화면에 사용자 문자를 표시한다.
사용자문자의 패턴은 CGRAM의 0x00과 0x01에 먼저 써넣는다.
ASCII 00은 나무(tree)이고 01은 온도 'C(degree) 이다.

가장먼저 상수로 배열변수를 정의한다, (여기서는 2개의 사용자 폰트를 정의한다)
const char tree[8] ={0x04,0x0e,0x0e,0x1f,0x1f,0x04,0x04,0x04};
const char degree[8] ={0x1c,0x14,0x01c,0x00,0x00,0x00,0x00,0x00};

- 다음은 LCD제어용 Function(모드설정) 코드이다.
/*표시지움 및 어드레스 리셋*/
#define clear_display 0x01

/*화면소거 및 커서 홈(LCD 좌측 상단을 홈이라 한다)*/
#define cursor_home 0x02

/*커서 홈(화면소거 없음)*/
#define entry_mode 0x06

/*쓰기후에 커서를 좌로 한칸이동(역방향 쓰기모드)*/
#define write_dec 0x05

/*쓰기후에 커서를 우로 한칸이동(순방향 쓰기모드)*/
#define write_inc 0x06

/*표시끄기, 커서끄기, 커서 깜박이지 않음*/
#define display_off 0x08

/*표시켜기, 커서끄기, 커서 깜박이지 않음*/
#define display_on 0x0c

/*표시켜기, 커서켜기, 커서 깜박이지 않음*/
#define cursor_on 0x0E

/*표시켜기, 커서켜기,커서 깜박임*/
#define blink_on 0x0F

/*8 비트모드*/
#define function 0x38

/* 사용자 문자영역 0x00 */
#define cg_ram_base 0x40

/* 표시영역 0x00 */
#define dd_ram 0x80

/* 기본 주소는 4개의 줄로 나누어진다 (DDRAM의 주소는 표시줄의 좌측 첫재 자리이다)*/
#define lcd_line1 0x80 // 1번줄
#define lcd_line2 0xC0 // 2번줄 (2줄짜리 LCD는 여기까지 이다)
#define lcd_line3 0x94 // 3번줄
#define lcd_line4 0xD4 // 4번줄 (4줄짜리 LCD는 여기까지 이다)

#define tree_text 0x00 /* 사용자문자 ascii 00 (나무) */
#define degree_text 0x01 /* 사용자문자 ascii 01(온도) */

// 표시문자 쓰기함수
void write_data(char text)
{
OUTPUT_HIGH(LCD_RS);/* RS pin set high for data */
delay_us(1);/* delay 1000us*/
PORTD=text; /* Put data on 8 bit port */
delay_us(1);/* delay 1us*/
OUTPUT_LOW(LCD_E);/* E pin brought low*/
delay_us(100); /* delay 1us*/
OUTPUT_HIGH(LCD_E);/* E pin brought high*/
delay_us(1);/* delay 1us*/
}

// 제어명령 쓰기함수
void write_command(char command)
{
OUTPUT_LOW(LCD_RS); /* RS pin set low for command*/
delay_us(1); /* delay 1000us*/
PORTD=command; /* Put data on 8 bit port*/
delay_us(1); /* delay 1us*/
OUTPUT_LOW(LCD_E);/* E pin brought low*/
delay_us(100); /* delay 1us*/
OUTPUT_HIGH(LCD_E);/* E pin brought high*/
Delay_us(1); /* delay 1us*/
}

/******************************************************************/
// 사용자문자 나무모양 쓰기함수
// 메모리는 CG RAM으로 00번지에 넣는다*/
void write_cgr_tree()
{
char i =0;
/* send command ($40) to set CGR RAM at 0x00 */
write_command(cg_ram_base);
/* Now write the 8 data bytes to LCDs CGR address 0x00*/
while (i<8)
  {write_data(tree[i++]);}
}

/***********************************************************************/
// 사용자문자 온도('C) 저장함수
// LCD의 CGRAM에 써넣는다 + 8바이트(사용자문자 1자분) */
void write_cgr_degree()
{
char i =0;
/* CGRAM에 쓰기모드 전송 ($40) + 8 바이트 at 0x01 */
write_command(cg_ram_base + 8);
/* 8개의 바이트데이터를 CGRAM 0x00에 전송 */
while (i<8)
  {write_data(degree[i++]);}
}

// 사용자문자 온도('C) 쓰기함수
void tree_to_LCD{
/* Write the character generated tree on line 2, column 16 */
write_command(line2+16); /* Point to line 2, column 16 */
write_data(0x00);
}

AVRTOOLS™
   
윗글 절연 RS232C 회로
아래글 Bin2Hex.exe
    N         제목    글쓴이 작성일 조회 추천
48 SXB 무료 Basic 컴파일러 SX18/20/28 avrtools™ 2008/12/03 (수) 1687 0
47 SX28 IR-Remote Signal Analyzer avrtools™ 2016/01/22 (금) 651 0
46 삼성 안드로이드폰 GT-i5700 무선 오실로스코프 avrtools™ 2011/09/10 (토) 3031 10
45 SX28 Clock Timer 소스 avrtools™ 2008/12/03 (수) 1965 0
44 SX28 Scanning a 4x4 Keypad 소스 avrtools™ 2008/12/03 (수) 2059 0
43 SX28 Thermometer 소스 avrtools™ 2008/12/03 (수) 1764 0
42 SX28 Serial LCD 소스 avrtools™ 2008/12/03 (수) 1728 0
41 SX28 Digital Dice 소스 avrtools™ 2008/12/03 (수) 1597 0
40 IDE51-C 8051 C컴파일러 (사용제한 없음) avrtools™ 2008/12/03 (수) 2556 0
39 uc51 검파일러 8K 무료버전 avrtools™ 2008/12/03 (수) 1798 0
38 SXC Demo avrtools™ 2008/12/02 (화) 1506 0
37 SxSim (UBICOM의 SASM 어셈블러를 지원) avrtools™ 2008/12/02 (화) 1761 0
36 SXkey52.exe SX48, SX52 전용 소프트 avrtools™ 2008/12/02 (화) 1544 0
35 SX 칩 프로그래머/인서킷 에뮬레이터 SXKey v3.0 avrtools™ 2008/12/02 (화) 1513 0
34 Serial port keyboard stuffer avrtools™ 2008/11/09 (일) 2307 0
33 IBM AT Keyboard의 Hexa 값 leeky 2007/11/12 (월) 2253 0
32 PC 소프트웨어 오실로스코프 avrtools™ 2008/10/07 (화) 2652 0
31 저항 읽는 방법과 저항 소프트웨어 avrtools™ 2008/09/26 (금) 2518 0
30 BMP to LCD avrtools™ 2008/09/22 (월) 2301 0
29 SX18/20/28용 무료 베이직 SXB V3.1 leeky 2006/03/03 (금) 3628 22
28 절연 RS232C 회로 avrtools™ 2008/08/29 (금) 2772 0
27 문자표시 LCD 모듈의 사용방법 leeky 2006/04/06 (목) 5099 0
26 Bin2Hex.exe leeky 2007/11/12 (월) 2704 0
25 LPT Port Tester leeky 2007/11/12 (월) 2671 0
24 PC 프린터 포트의 사용법 leeky 2007/11/12 (월) 2932 0
23 병렬포트(LPT1) 시험 소프트웨어 leeky 2007/11/12 (월) 2537 0
22 SX 칩 4비트 LCD 소스 leeky 2006/02/20 (월) 2957 30
21 SxSim (UBICOM의 SASM 어셈블러를 지원) leeky 2006/02/13 (월) 2375 27
20 SXkey52.exe leeky 2006/02/13 (월) 2155 28
19 SX 프로그래머/에뮬레이터 SXKey v3.0 leeky 2006/02/13 (월) 2346 24
18 SXC Demo Version leeky 2006/03/16 (목) 2230 27
17 SX52 웹서버 + 겜보이 카메라 leeky 2006/03/16 (목) 2427 5
16 CMUcam2 (Cam + 5 Servo) leeky 2006/03/16 (목) 2959 3
15 CMUcam Vision Sensor KIT with SX28 leeky 2006/03/16 (목) 3227 4
14 SX52 이더넷 평가기판의 소스 (iSX 소프트) leeky 2006/03/16 (목) 3134 1
13 SX52-이더넷 평가기판 (하드웨어) leeky 2006/03/16 (목) 2522 1
12 SX52 MMC(메모리카드) WAV화일 녹음과 재생 leeky 2006/03/16 (목) 3119 5
11 SX28 USB 분석장치 (SX-Atpapch) leeky 2006/03/16 (목) 2852 5
10 SX color TV 게임기 leeky 2006/03/16 (목) 3072 4
9 SX28 Serial to TV leeky 2006/03/16 (목) 2700 3
8 SX18 영상(NTSC) 동기검출 leeky 2006/03/16 (목) 2292 2
7 SX28 디지털 스코프 leeky 2006/03/16 (목) 2666 3
6 SX28 500KHz DDS 신호발생기 leeky 2006/03/16 (목) 2820 0
5 SX Morse Code Keyer avrtools 2006/03/16 (목) 2050 2
4 SX28 Video OSD Module leeky 2006/03/16 (목) 3000 0
3 1.2MHz/2.4GHz Exciter leeky 2006/02/25 (토) 2361 0
2 16F84 G3RUH 9600BPS Modem leeky 2006/02/25 (토) 2455 2
1 16F84 Morse Decoder leeky 2006/02/25 (토) 3340 1
1

바구니 : 0
 보관함 : 0
오늘뷰 : 0
HOME   |   회사소개   |   제휴안내   |   회사위치   |   서비스이용 약관   |   개인정보 보호정책   |   사이트맵
17015 경기도 용인시 기흥구 동백중앙로16번길 16-25, 508호. 전화 : 031-282-3310
사업자 등록번호 : 697-47-00075 / 대표 : 이건영 / 업태 : 제조업 / 종목 : LED조명, LED전원, 제어장치.
개인정보 관리책임자 : 홈페이지 관리자 . Copyright ⓒ2016 아크레즈 (ACLEDS INC.)
HOME TOP PREVNEXT 0 0 0