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