EZ-8051+%EB%AA%A8%EB%93%88_2

Download Report

Transcript EZ-8051+%EB%AA%A8%EB%93%88_2

EZ-8051 Board를 이용한 E-Board의 제어
시스템 구성
Serial Cable
Ez-80196/Ez-8051
Micro Controller Board
그림 - 타겟 보드 외형
• Ez-8051 Board의 I/O 영역은 7000h ~ 8000h번지까지
할당
• E-Board의 I/O Map은 Base Address + 0Fh번지까지 할
당
• Ez-8051 Board에서 E-Board의 Base Address는
7000h번지이고 700Fh번지까지 접근하여 제어
E-Board 타겟 보드의 I/O Map
표 - E-Board I/O Address Offset
Ez-51
Memory Map
Ez-8051 Board 에서 응용보드 제어
• Ez-8051 Board와 같이 마이크로 프로제서로 제어할 경
우
– 프로그램은 PC에서 작성
– 컴파일 하여 만들어진 Hex파일을 마이컴 보드에 시리
얼로 전송
– 보드에서 실행하여 제어
– Easy Tech는 이러한 환경을 보다 쉽게 구성하기 위해
Ez-CPU라는 Ez-Micro Processor Board용 통합 환경
제공
– Ez-CPU는 8051의 프로그램을 작성하고 컴파일 하여
시리얼 포트로 전송
Ez-CPU 설치 및 사용법
• Ez-CPU를 설치하고 실행한 다음 CPU의 환경 설정
– '컴파일‘->’환경설정‘을 클릭
– ‘Terminal' 텝에서 시리얼 포트 설정
• Ez-8051 Bios V1.5 에서 통신 속도는 57600Bps로
설정
– 시리얼 포트 설정이 끝났다면 ’CPU'텝에서 CPU에 맞
는 컴파일 배치화일 설정
• 배치화일은 컴파일러에 따라 틀려지는데 Ez-CPU
를 설치한 디렉토리(C:\EasyTech\EzCPU\)에
Easy Tech제품의 각종 CPU와 OS에 따른 컴파일
배치화일이 존재
• 작업환경이 Win2000이고 CPU가 Ez-8051 Board
이면 'CC51NT.BAT'를 선택
그림 - Ez-CPU 환경설정(CPU) 화면
Ez-CPU의 설치가 끝나고 정상적인 시리얼 포트의 설정이 되었다면
Ez-8051 Board의 리셋키를 누르면 터미널 창에 다음과 같은 메시지가 전송
그림 - Ez-CPU 리셋 화면
• 컴파일이 완료 되면 ‘컴파일’메뉴의 ‘업로드’를 클릭 하여
컴파일된 Hex파일을 선택하고 전송
• 전송이 완료 되면 터미널 창에 아래와 같은 ‘OK’ 메세지가
나타난다.
• 실행은 직접 'G'명령을 입력 하거나 '실행‘버턴으로 실행
Ez8051 보드 상의 제어 예제
•
•
•
•
•
•
; [EBoard 3.0]
;
; LEDSHOW.SRC : 8051 CPU
Board Test Program 0
;
; Testing LEDs on CPU Board
;
•
org
8000h
•
•
mov a, #7fh
mov
r0, #20h
•
•
•
•
•
•
loop1:
mov p1, a
mov r5, #1
call delay
rr a
cjne a, #0feh, loop1
•
•
•
•
•
•
•
•
•
•
loop2:
mov
mov
call
rl a
cjne
djnz
mov
mov
ret
•
•
•
•
•
•
•
delay:
mov
dl1: mov
dl2: djnz
djnz
djnz
ret
•
end
p1, a
r5, #1
delay
a, #7fh, loop2
r0, loop1
a, #0ffh
p1, a
r6, #200
r7, #100
r7, dl2
r6, dl1
r5, delay
Ez-8051Board로 E-Board 프로그램 할 때
기본 사항
• 8051은 프로그램 메모리와 데이터 메모리가 각각 분리되
어 독립적인 명령어로 접근 가능
• Ez-8051Board의 I/O영역은 7000h-8000h번지까지의 데
이터 메모리에 할당
• 이 I/O영영의 접근을 위해서는 반드시 MOVX 명령어를 사
용
• E-Board의 I/O영역에 데이터를 출력하려면 16비트 이상
의 어드레스 이므로 MOVX @DTPR, A를 사용
• 입력은 MOVX A, @DTPR를 사용
• EBOARD_LED
EQU 7005h
•
MOV A, #FFh
• MOV DTPR, #EOBARD_LED
• MOVX @DTPR, A
EASY-51 COMMAND
• ECPU - Terminal Window에서 직접 사용할 수 있으며, 지원하는 명
령어
– 화면 지움 명령(CLS)
– 비교 명령(COMP)
– 데이터 덤프 명령(DUMP)
– 데이터 입력 명령(ENTER)
– 데이터 채우기 명령(FILL)
– 프로그램 실행 명령(GO)
– 도움말 명령(HELP)
– 포트 상태 읽기 명령(IN)
– 프로그램 전송 명령(LOAD)
– 데이터 이동 명령(MOVE)
– 포트 쓰기 명령(OUT)
– 찾기 명령(SEARCH)
– 디스어셈블리 명령(UASM)
비교 명령(COMP) : COMP 시작번지 종료번지 비교
번지
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
...>C 8000 800F 8010󰎠
8000(32768) D4 FF 8010(32784)
8001(32769) EA FF 8011(32785)
8002(32770) BD FF 8012(32786)
8003(32771) DB FF 8013(32787)
8004(32772) 8E FF 8014(32788)
8005(32773) E3 FF 8015(32789)
8006(32774) 03 FF 8016(32790)
8007(32775) 60 FF 8017(32791)
8008(32776) FF FF 8018(32792)
8009(32777) FF FF 8019(32793)
800A(32778) FF FF 801A(32794)
800B(32779) FF FF 801B(32795)
800C(32780) FF FF 801C(32796)
800D(32781) FF FF 801D(32797)
800E(32782) FF FF 801E(32798)
800F(32783) FF FF 801F(32799)
데이터 덤프 명령(DUMP) : D [시작번지 [종료번
지]]
• D 0A080 0A0FF󰎠
• A080(41088):FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF ................
• A090(41104):FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF ................
• A0A0(41120):FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF ................
• A0B0(41136):FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF ................
• A0C0(41152):FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF ................
• A0D0(41168):FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF ................
데이터 입력 명령(ENTER) : E 시작번지
• 시작번지는 데이터를 변경하고자 하는 메모리 영역의 시
작번지입니다. 입력상태에서 변경할 수 있는 데이터의
종류는 숫자와 문자열을 입력할 수 있으며, 다수의 입력
도 허용하며 종료하기 위해서는 아무런 입력없이 “엔터”
입력
– E 0A080󰎠
– A080(41088) 12.12 34 +10 +15 "Welcome to
EasyTech."
– A098(41112) FF
•
•
•
•
; [EBoard 3.0]
;
; E3_51_1 : 8051 CPU Board
Test Program 1
;
; Testing LEDs on CPU Board
with EBoard 3.0
;
•
•
•
•
ADC0
ADC1
ADC2
ADC3
•
•
•
•
•
•
•
•
•
•
PPI_PA equ 7004h
PPI_PB equ 7005h
PPI_PC equ 7006h
PPI_CWR equ 7007h
•
•
•
•
•
•
equ 7000h
equ 7001h
equ 7002h
equ 7003h
DAC_PA equ 7008h
DAC_PB equ 7009h
DAC_PC equ 700ah
DAC_CWR equ 700bh
PIT_CH0 equ 700ch
PIT_CH1 equ 700dh
PIT_CH2 equ 700eh
PIT_CWR equ 700fh
•
•
•
•
•
org
8000h
start:
mov a, #88h
mov dptr, #PPI_CWR
movx @dptr, a
•
•
•
mov
a, #80h
mov dptr, #DAC_CWR
movx @dptr, a
•
•
•
•
•
•
•
•
•
•
•
mov a, #0ffh
mov dptr, #PPI_PA
movx @dptr, a
•
•
•
•
•
•
mov
r0, #08
mov a, #80h
loop1:
cpl a
mov
cpl a
mov
p1, a
dptr, #PPI_PB
movx @dptr, a
mov r5, #04
call delay
rr a
cjne a, #01h, loop1
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
loop2:
cpl a
mov
p1, a
cpl a
mov
dptr, #PPI_PB
movx @dptr, a
mov r5, #02
call delay
rl a
cjne a, #80h, loop2
dec r0
cjne r0, #0, loop1
mov a, #0h
mov dptr, #PPI_PB
movx @dptr, a
mov a, #0ffh
mov p1, a
ret
delay:
mov
r6, #100
dl1: mov
r7, #200
dl2: djnz r7, dl2
djnz r6, dl1
djnz r5, delay
ret
end