260 likes | 448 Views
EZ-8051 Board 를 이용한 E-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 N D
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-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의 리셋키를 누르면 터미널 창에 다음과 같은 메시지가 전송
컴파일이 완료 되면 ‘컴파일’메뉴의 ‘업로드’를 클릭 하여 컴파일된 Hex파일을 선택하고 전송 • 전송이 완료 되면 터미널 창에 아래와 같은 ‘OK’메세지가 나타난다. • 실행은 직접 'G'명령을 입력 하거나 '실행‘버턴으로 실행
Ez8051 보드 상의 제어 예제 • loop2: • mov p1, a • mov r5, #1 • call delay • rl a • cjne a, #7fh, loop2 • djnz r0, loop1 • mov a, #0ffh • mov p1, a • ret • delay: • mov r6, #200 • dl1: mov r7, #100 • dl2: djnz r7, dl2 • djnz r6, dl1 • djnz r5, delay • ret • end • ; [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
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_LEDEQU7005h • 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
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 • 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 p1, a • cpl a • mov dptr, #PPI_PB • movx @dptr, a • mov r5, #04 • call delay • rr a • cjne a, #01h, loop1 • ; [EBoard 3.0] • ; • ; E3_51_1 : 8051 CPU Board Test Program 1 • ; • ; Testing LEDs on CPU Board with EBoard 3.0 • ; • ADC0 equ 7000h • ADC1 equ 7001h • ADC2 equ 7002h • ADC3 equ 7003h • PPI_PA equ 7004h • PPI_PB equ 7005h • PPI_PC equ 7006h • PPI_CWR equ 7007h • 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