• 검색 결과가 없습니다.

프로그램 작성 및 사용법

문서에서 MR.PIC (페이지 34-39)

1. 프로젝트 파일 작성

여기서는 처음 프로그램을 작성하는 순서대로 설명을 하므로 따라해 보시기 바랍니다. 프로그램을 작성하기 위해서는 프로젝트 파일을 먼저 작성해야 합니다. 앞에서 잠깐 언급 했듯이 프로젝트 파일은 단순히 에뮬레이션에 필요한 작업 정보를 저장하는 용도로 사용되는 정보 파일로 생각하시면 됩니다. 우선 File Æ New Project 를 선택합니다. 그러면 다음과 같이 프로젝트 파일이 나타납니다.

<그림5.1-1> 새 프로젝트 파일 생성

Project 파일에는 다음과 같은 내용을 선택하게 되어 있습니다.

Device : 현재 개발 할 칩

Me Type : 장비 안에 내장 된 에뮬레이션 칩의 종류(ME -Chip)로 다음과 같은 타입이 있고 디바이스에 따라 다음과 같이 정해져 있습니다.

주의: ME-Chip Type은 현재 개발 중인 칩의 타입을 묻는 것이 아니라 MR.PIC 장비 안에서 에뮬레이션 되는 칩의 종류를 묻는 것으로 이 설정이 잘못 되었을 경우 기본적인 동작이 되지 않습니다.

현재 사용 중인 ME-Chip의 종류가 어떤 타입인지 모르는 경우 MR.PIC 장비의 케이스를 열고 “ What’ s Me type” 을 클릭하면 다음과 같이 MR.PIC 내부의 상태를 볼 수 있는데 ME-Chip이 삽입 되어 있는 상태에 따라

<그림5.1-2> What’ s Me type

◆ Socket 1(PLCC type) : PIC16F877-ME/L

◆ Socket 2(DIP type): PIC16CR84-ME/P, PIC16C558-ME/P, PIC16C622 -ME/P, PIC16C711-ME/P, PIC16C715-ME/P

◆ Socket 3(QFP type) : PIC16C74A-ME, PIC16C77-ME, PIC6F877-ME/PT, PIC12C67X-ME/PT

칩이 장착되어 있을 경우 각각 해당 소켓을 선택하면 됩니다.

주의: PIC16C5X및 PIC12C50X를 선택 시는 디폴트로 설정되어 있기 때문에 Socket을 선택 할 수 없는 상태로 표시됩니다.

2. ME Chip에 따른 지원 가능한 디바이스 리스트

◆ PIC16C74A-ME/PT인 경우 PIC16C74,73,72,65,64,63, 62 를 지원 하며 이 경우 Socket3를 지정하여 사용합니다.

◆ PIC16C77-ME/인 경우 PIC16C77,76,67,66을 지원하며 이 경우:

Socket3를 지정하여 사용합니다.

◆ PIC16F877-ME/PT인 경우 PIC16F877,876,874,873, 872 를 지원 하며 이 경우 Socket3를 지정하여 사용합니다.

◆ PIC12C67X-ME/PT 인 경우 PIC12C672,671을 지원하며 이 경우 Socket3를 지정하여 사용합니다.

◆ PIC16CR84-ME/P 인 경우 PIC16F84,83을 지원하며 이 경우 Socket3 를 지정하여 사용합니다.

◆ PIC16C558-ME/P인 경우 PIC16C554,558을 지원하며 이 경우 Socket2를 지정하여 사용합니다.

◆ PIC16C622-ME/P인 경우 PIC16C622,621,620을 지원하며 이 경우 Socket2를 지정하여 사용합니다.

◆ PIC16C711-ME/P 인 경우 PIC16C711,710을 지원하며 이 경우 Socket2를 지정하여 사용합니다.

-34-MR.PIC-IDE 통합 개발 환경 매뉴얼

◆ PIC16C715-ME/P 인 경우 PIC16C715를 지원하며 이 경우 Socket2를 지정하여 사용합니다.

◆ PIC16F877-ME/L 인 경우 PIC16F877,876,874,873,872를 지원하며 이 경우: Socket 1를 지정하여 사용합니다.

주의: MR.PIC 장비를 구입신지 오래 되신 고객 중 “ What’ s ME type” 의 내용과 다른 도터보드(상판 PCB)가 장착되어 있는 경우는 Socket1로 선택 하십시오.

주의: PIC16C877A, 876A, 874A, 873A는 Analog Comparator module이 2개 있는 칩으로 PIC16F877-ME/PT에서는 지원하지 않습니다.

◆ Comfile : 소스 작성시 사용한 언어 선택

MPASM Assembler : 어셈블러로 작성 된 소스(기본제공) MPLABC C Compiler : MPLABC C로 작성된 소스(옵션) CCS-C PCB Compiler : BASE-LINE 계열을 칩으로

CCS-C로 작성 된 소스(옵션) CCS-C PCM Compiler : MID-RANGE 계열의 칩으로 CCS-C로 작성 된 소스(옵션) HI-TECH C Compiler : HI-TECH C로 작성 된 소스(옵션)

주의: 옵션으로 되어 있는 Compiler들은 별도로 구매 후 설치 되어 있어야 지원 가능합니다.

Clock : 현재는 사용되지 않으므로 아무 값이나 상관 없음 WDT : 에뮬레이션 시 와치독 타이머 사용 여부

On : 에뮬레이션 중 설정 된 와치독 타임 아웃 주기로 MR.PIC장비가 리셋 됨. 그러므로 반드시 소스 코드에서 와치독 타임 아웃 주기 안에 CLRWDT 명령이 수행 되야 MR.PIC 가 정상적으로 동작합니다.

Off : 에뮬레이션 중 와치독 타임 아웃 기능을 사용하지 않음. 이 경우 MRPICPGM 또는 PRO ENGINE-II로 칩을 라이팅 할 때 반드시 휴즈

옵션의 항목이 체크 되어 있지 않은

상태에서 라이팅 되야 칩이 정상 동작합니다.

◆ 프로젝트 파일 작성 예1, 소스파일이 작성되어 있지 않은 상태

Device: PIC16F877 Socket3(QFP type) Compiler : ASM

WDT = Off인 경우 다음과 같이 선택합니다.

File Æ New 를 선택합니다

<그림5.2-1> 프로젝트 파일 옵션 선택

Ok 버튼을 누르면 다음과 같은 빈 화면이 나타나는데 이곳에 아래의 소스를 어셈블리어로 작성한 후 소스작성이 완료되면 메뉴의 File->

Save As… 버튼을 눌러 소스 파일을 저장할 폴더를 선택 하고 소스파일 이름을 지정합니다. 이 예제에서는 C:\MRPICIDE\TEST.

ASM 으로 선택 했습니다. Auto 버튼을 누르면 컴파일(어셈블) 되고 에러가 없으면 다운로드 되고 실행까지 됩니다.

<그림5.2-2> 새 프로젝트 파일 작성

<그림5.2-3> 폴더 지정 및 파일명 지정

에러가 없이 작성된 소스라면 다음과 같이 화면 중앙에 MPASM 어셈블러가 어셈블 하고 에러가 없으면 녹색 바가 끝까지 진행되고 다운로드가 시작 될 것 이고 만약 소스파일에 에러가 있다면 빨강색으로 바뀌고 중간에 어셈블이 정지됩니다.

<그림5.2-4> 소스를 어셈블 중인 화면

<그림5.2-5> 에러가 발생 한 경우 대치 방법

에러가 없을 경우 해당 폴더에 다음과 같은 파일들이 생성됩니다.

TEST.PRJ ,TEST.ASM ,TEST.COD ,TEST.LST ,TEST.HEX ,TEST.$$$ ,TE ST.$$2 ,TEST.ERR

3. MRPIC-IDE 동작 살펴보기

지금까지 제대로 하셨다면 아래와 같은 상태로 되어 있을 것입니다.

우선 MR.PIC-IDE에 대한 자세한 설명을 하기 전에 지금 작성한 프로그램 코드가 MR.PIC-IDE에서 어떻게 동작되는지 알아보고 이 후에 MR.PIC-IDE의 기능에 대한 자세한 설명을 하도록 하겠습니다.

<그림5.3-1> 리셋 버튼을 누른 후 의 상태

Step into 버튼은 한 명령씩 실행하는 기능입니다.

Reset 버튼을 누른 후 파란색의 직사각형(PC:Program Counter 이하 프로그램 카운터로 명명)이 GOTO SIJAK이라는 어셈블리어 명령어에 위치하고 있을 것입니다.(BASE LINE칩의 경우는 Rest Vector가 다르므로 1FFH, 3FFH, 7FFH 중 하나에 놓이게 됩니다.)

1. 이 상태에서 Step into 버튼을 클릭하면 GOTO SIJAK 명령이 실행되어 프로그램 카운터는 0001번지로 이동하게 됩니다. 좌측의 Special Registers 창의 PCL의 값을 보면 이 값도 01로 바뀌었고 빨강색으로 변해 있을 것입니다.

2. 이 번에 실행될 명령은 SIJAK 라벨에 있는 BSF STATUS,5 입니다.

그럼 다시 Step into 버튼을 클릭해 보십시오. 그러면 프로그램 카운터는 0002가 되고 Special Registers 창의 STATUS 값이 빨강색으로 바뀌고 값은 00111XXX로 됩니다.(여기서 XXX는 0또는1이 될 수 있다는 것입니다.) BSF STATUS, 5 명령은 STATUS레지스터의 5번 비트를 Set(1) 시키는 명령으로 이 명령 실행 후 실제로 STATUS, 5 비트가 1로 되어 있습니다.

-36-MR.PIC-IDE 통합 개발 환경 매뉴얼

3. 다음은 MOVLW 00H, MOVWF TRISB를 실행 할 차레입니다. 다시 한 번 Step into를 클릭하면 Special Register의 W 값이 00000000이 되고 다시 한 번 Step into를 클릭하면 TRISB 레지스터의 값이 00000000으로 변경됩니다.

4. 다음은 0004번지가 실행 될 차례입니다. BCF STATUS,5 명령은 STATUS레지스터의 5번 비트를 Clear(0)하는 명령으로 이 명령 실행 후 값이 00011XXX로 변경 됩니다.

5. 다음 실행될 명령은 0005번지의 CLRF BF로 이 명령은 BF레지스터(유저 램 영역의 20H)를 0으로 초기화 합니다. Step into 실행 후 00000000으로 변경 됩니다.

6. 다음 실행될 명령은 0006번지의 CLRF PORTB로 이 명령은 PORTB레지스터(Special Register 영역의 06H)를 0으로 초기화 합니다.

Step into 실행 후 00000000으로 변경 됩니다.

7. 다음은 0007번지가 실행 될 차례입니다. INCF BF는 BF레지스터 값을 1 증가 시키는 명령입니다. Step into 실행 후 값이 00000001이 됩니다.

8. 다음은 0008번지가 실행 될 차례입니다. INCF PORTB는 PORTB레지스터 값을 1 증가 시키는 명령입니다. Step into 실행 후 값이 00000001이 됩니다.

9. 다음은 0009번지가 실행 될 차례입니다. GOTO MAIN_LOOP는 분기 명령으로 프로그램 카운터를 MAIN_LOOP라는 라벨로 이동시킵니다.

라벨은 실행되는 코드가 아니므로 그 밑에 있는 0007번지로 프로그램 카운터가 옮겨갑니다. 이 후 부터는 Step into 버튼을 클릭할 때 마다 프로그램 메모리 번지 0007 ~ 0009 번지를 반복해서 실행하게 되며 BF값과 PORTB값은 INC 명령이 실행 될 때마다 1씩 증가 하게 됩니다.

만약 PORTB에 다음과 같이 LED를 연결하면 출력되는 결과를 볼 수 있습니다.

Run 버튼을 클릭하면 계속해서 동작을 하게 되는데 이때는 속도가 빠르기 때문에 8의 모든 LED가 ON 된 것 처럼 보입니다.

RB3 RB1

VCC

RB5 RB4 RB7

330 * 8 ea

빨강색

VSS RB6

RB2 RB0 VDD

<그림5.3-2> LED 연결 방법

이상으로 MR.PIC-IDE와 MR.PIC의 간단한 동작을 확인해 보았습니다.

이제 에뮬레이터가 대충 어떤 기능을 하는 장비인가를 이해하셨을 것입니다. 다음 장에서는 MR.PIC 장비와 MR.PIC-IDE사용에 관하여 자세히 설명하겠습니다.

◆ 프로젝트 파일 작성 예2, 소스파일이 이미 작성되어 있는 상태 아래의 소스 내용을 텍스트 에디터를 이용하여 그대로 타이핑 하십시오.

<그림5.3-3> C 소스

Device: PIC16F877 Socket3(QFP type)

Compiler : CCS-C PCM compiler WDT = Off인 경우 다음과 같이 선택합니다.

File Æ Open을 선택하고 해당 폴더에서 C:\MRPICIDE\TESTC.C 파일을 더블 클릭하면 새 프로젝트 파일이 나타나면 위와 같이 프로젝트 내용을 설정한 후 OK버튼을 누르면 다음 화면과 같이 이미 작성된 소스가 나타나게 됩니다.

<그림5.3-4> C로 이미 작성된 소스가 있는 경우

<그림5.3-5> CCS-C PCM Compiler가 컴파일 한 결과

소스가 에러 없이 타이핑 되었다면 에러가 발생하지 않고 컴파일이 완료되고 다운로드 된 후 실행 될 것 입니다. 단, 반드시 CCS-C PCM Compiler가 설치되어 있어야 합니다. 앞에서 작성한 TEST.ASM 파일과 TESTC.C 파일은 같은 동작을 하는 프로그램 입니다. 다음에서 이 프로그램과 에뮬레이터의 사용법을 설명 드리겠습니다. 아래의 소스는 어셈블리어로 작성했던 예제와 같은 동작을 하는 CCS-C 코드입니다. 이 화면은 컴파일 상태를 알려주는 화면으로 ROM, RAM, ERROR, WARNING 상태 보여줍니다.

<그림5.3-6> CCS-C로 작성된 프로그램이 동작하는 상태

TEST.ASM을 스텝실행 하면서 확인 했던 것과 똑같이 해보십시오.

CCS-C PCW및 PCWH 의 IDE 사용법은 메뉴얼 및 참고 서적을 참고하시기 바랍니다.

◆ 프로젝트 파일 작성 예3 (HI-TECH C ) Device: PIC16F877

Socket3(QFP type)

Compiler : HITECH- C compiler

WDT = Off인 경우 다음과 같이 선택합니다.

<그림5.3-7> HI-TECH C로 작성시 프로젝트 파일

-38-MR.PIC-IDE 통합 개발 환경 매뉴얼

HI-TECH 사에서 공급되는 PIC컴파일러는 다음과 같이 크게 2가지로 분류 됩니다.

1. PICC : BASE LINE(12비트),MID RANGE(14비트)계열의 PIC16C5X, PIC12C50X, PIC16C6X, 7X, F87X, PIC17CXXX등을 지원하며 DOS용 IDE 환경을 지원하는 컴파일러입니다.

2. PICC-18 : HIGH END(16비트) 계열의 PIC18FXXX계열의 칩만 지원하며 WINDOWS IDE 환경을 지원하는 컴파일러입니다.

주의: MR.PIC에서는 PICC컴파일러만 지원합니다. 이 예제의 경우 PIC16F877계열이므로 HITECH-C Compiler를 선택하면 됩니다.

아래의 소스는 TEST.ASM, TESTC.C와 같은 동작을 하는 HI-TECH C 코드입니다.

<그림5.3-8> HI-TECH C로 작성 된 샘플 소스

<그림5.3-9> 컴파일 된 상태

<그림5.3-10> HI-TECH C로 작성된 프로그램이 동작하는 상태

MRPIC-IDE환경에서 HI-TECH C로 에뮬레이션 할 경우 CCS-C 컴파일러와는 달리 Source Windows창에 어셈블리어 코드가 나타나지 않습니다. 그러므로 어셈블리어에 직접 브레이크 포인터를 설정할 수 없습니다. 따라서 이 경우 앞에서 설명했듯이 MRPICIDE 메뉴 중 Windows-> Screen Setup for C를 선택하면 Source Window 오른쪽에 Code Window 가 나타나는데 이 곳에는 HI-TECH C가 어셈블리어로 컴파일 된 코드가 나타나는데 이곳의 어셈블리어에 브레이크 포인터를 설정할 수 있습니다.

문서에서 MR.PIC (페이지 34-39)

관련 문서