1 / 55

2.1 8051 Family 의 개요 2.1 8051 의 외부 Pin 기능과 내부 기능 2.3 8051 Memory 구조 2.4 8051 Timing

2 장 8051 의 구조. 2.1 8051 Family 의 개요 2.1 8051 의 외부 Pin 기능과 내부 기능 2.3 8051 Memory 구조 2.4 8051 Timing. 2.1 8051 Family 의 개요. 1. 8051 의 주요 특징. 8051 Family 의 Hardware 구조 4K 바이트의 내부 프로그램 메모리 (ROM) 128 바이트의 내부 데이터 메모리 (RAM) 8 비트 단위의 4 개의 입출력 포트

hall
Download Presentation

2.1 8051 Family 의 개요 2.1 8051 의 외부 Pin 기능과 내부 기능 2.3 8051 Memory 구조 2.4 8051 Timing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2장 8051의 구조 2.1 8051 Family의 개요 2.1 8051의 외부 Pin 기능과 내부 기능 2.3 8051 Memory 구조 2.4 8051 Timing

  2. 2.1 8051 Family의 개요 1. 8051의 주요 특징 • 8051 Family의 Hardware 구조 • 4K 바이트의 내부 프로그램 메모리(ROM) • 128 바이트의 내부 데이터 메모리(RAM) • 8비트 단위의 4개의 입출력 포트 • 4개의 동작모드로 사용 가능한 2개의 16비트 타이머/ 카운터 • 전 이중(full duplex) UART(Universal Asynchronous Receiver & Transmitter) • 5개의 인터럽트 중 2개의 인터럽트 우선 순위 레벨 제어 • Clock Oscillator 내장 • 64KB의 프로그램 영역 • 64KB의 데이터 메모리 영역 • 제어응용에 적합한 8비트 원칩 마이크로프로세서 • 광범위한 비트 로직 부울 프로세스 능력 (강력한 비트 제어)

  3. 8051의 특징

  4. 이름 ROM없음 EPROM FLASH ROM Size RAM Size 16 bit Timer 비고 8051 8051AH 8052AH 8031 8031AH 8032AH 8751 8751H 8752BH - 89C51 89C52 4KB 4KB 8KB 128B 128B 256B 2 2 3 CHMOS형의 8051에는 POWER Down Mode가 있음. 2. 8051 Family 8051을 Core로 하는 Micro Controller 들을 일컫는다. • 8051 : 내부에 Masking Type의 ROM을 내장한 프로세서. • Mask ROM type, OTP(One-Time Programming) type이 현재 출시되고 있음. • 8031 : Chip 내부에 ROM을 내장하고 있지 않다. • 8751 : EPROM type의 ROM을 내장 • 89C51 : Flash Memory type ROM 내장, 전기적으로 Erase, Write (Atmel사 제품)

  5. 표 2.2 Philips사에서 출시되는 8051 Family ….

  6. 표 2.3 Atmel사에서 출시되는 8051 Family

  7. 그림 2.1 8051 핀 배치도

  8. 2.2 8051의 외부 핀 기능과 내부 기능

  9. 1. 8051 외부 핀 기능 • 포트(Port) 0 (P0.0 - P0.7) :중복된 기능을 가지는 포트 • 외부 ROM 혹은 RAM과 데이터 전송 시 하위 어드레스와 데이터 버스로 사용 • 외부에 메모리를 Interface 하지 않을 때에는 범용 I/O포트로 사용 • EPROM write시에는 데이터 버스로 사용된다. • 포트(Port) 1 (P1.0 - P1.7) : • 내부 Pull-up이 되어 있는 8 비트 양방향 입출력 단자 • 사용자가 기능을 지정하여 사용 가능한 범용 포트(Port)이다. • EPROM에 프로그램을 쓸 경우에는 어드레스 버스 A0 -A7으로 사용된다. • 포트(Port) 2 (P2.0 - P2.7) :중복된 기능을 가지는 포트 • 외부 ROM과 데이터를 전송할 때에는 상위 어드레스(A8 -A15) Port로 사용 • 외부에 메모리를 Interface하지 않았을 때에는 범용 I/O포트로써 제공

  10. 포트(Port) 3 (P3.0 - P3.7) :중복된 기능을 갖는 포트 • 내부 풀 업(Pull-up)을 갖는 8비트 양방향 입출력 단자(범용 I/O) • 다른 목적을 가지는 다중기능 표 2.4 포트 3의 다중 기능

  11. RESET : Master Reset 입력으로 Active HIGH 신호 • 최소 두 개의 Machine Cycle동안 High 상태가 유지될 때 유효. • ALE/ PROG (Address Latch Enable output/ PROGram pulse input ) • 외부 Memory와 Interface할 때 하위 어드레스를 Latch하는데 사용되는 신호 • EPROM을 프로그램 하는 동안에 프로그램 펄스( /PROG )가 입력된다. • /PSEN (Program Strobe ENable) • 외부 ROM에서 Data를 읽을 때 출력되는Active LOW의 Strobe 신호 • 외부 ROM의 OE(Output Enable) Pin에 연결된다.

  12. /EA/Vpp (External Access enable /Vpeak- peak) • /EA : 외부 프로그램 메모리 선택 신호 • /EA=0 :000H~0FFFH(4KB) 영역을 외부 ROM에서 사용(외부 ROM만 사용) • /EA=1 : 000H~0FFFH 영역을 내부 ROM 영역에서 사용 • Vpp : EPROM에 프로그램을 하는 동안 프로그램 전압을 입력하는 전원 입력 단자 • XTAL1, XTAL2 : 클럭 입력 단자 • Vcc, GND :전원입력 및 전원 ground 단자

  13. 2. 8051 내부 기능

  14. ⑴ 프로그램 카운터 (PC) • ROM에 저장되어 있는 명령어의 실행 순서를 정해주는 16bit Register • 실행하고자 하는 명령이 들어있는 메모리의 번지를 가리킨다. • PC는 Reset 된 후의 값은 0000h가 된다. • 점프/ 콜 등의 명령으로 그 값이 변화될 수 있다. • 그 이외에는 명령어의 수행 크기만큼자동으로 증가한다. • ⑵ ALU (Arithmetic and Logic Unit ) • 8비트 산술 및 논리 연산을 하는 곳이다. • - Carry 없는 덧셈, Carry 있는 덧셈/ 뺄셈 처리 연산 • - +1증가, - 1감소 연산 • - 곱셈/ 나눗셈 연산 • - AND, OR, XOR, Rotate 연산 • - 보수화 연산 • - Nibble단위의 Data 교환 연산 • 조건 Branch 처리

  15. ⑶ 어큐뮬레이터(ACC : Accumulator ) • - 산술논리 연산에서 연산자로 사용된다. • - 테이블 참조 명령에서 테이블 번지의 옵셋으로 사용. • - 외부 데이터 메모리와 데이터 전송에 사용. • 프로그램 메모리에서 데이터를 읽을 때 사용 • - A로도 표기한다. 가장 많이 사용되는 레지스터이다.

  16. 그림 2.3 8051의 내부 블록도

  17. 2.3 8051 Memory 구조 1. Program과 Data Memory의 구조 /PSEN : ROM Access /RD, /WR : RAM Access

  18. 2. Program Memory (ROM) • 전체 64KByte까지 사용이 가능하다. • 외부, 내부 ROM의 선택은 /EA(External Access) Pin으로 한다. • 외부 프로그램 메모리를Access 하는 명령어는 MOVC /EA=0 :000H~0FFFH(4KB) 영역을 외부 ROM에서 사용(외부 ROM만 사용) /EA=1 : 000H~0FFFH 영역을 내부 ROM 영역에서 사용

  19. 3. Data Memory (RAM) (1) 8051의 외부 데이터 메모리 • 64[Kbyte]의 공간을 Access 가능 • 외부 데이터 메모리를 Access하기 위해 사용되는 명령어 : MOVX • 외부 데이터 메모리를 Access하면 H/W적으로 /RD, /WR 신호가 발생

  20. (2) 8051의 내부 데이터 메모리 • 데이터 RAM 영역 : 128 Byte(00H~7FH) • SFR (Special Function Register)영역 : 128 Byte (80H~0FFH) • MOV 명령에 의해서 Access가 가능하다.

  21. 내부 메모리의 하위 128 Byte(00H~0FH)의 구조 Register Bank 4개

  22. Register Bank - REG. Bank : R0-R7 - REG. Bank 의 선택 : PSW(상태레지스터)의 뱅크선택 비트를 변경에 의해 선택 가능. - REG. Bank 의 Access : 직접 에드레싱 모드와 레지스터 어드레싱 모드

  23. 비트 지정 가능(Bit-addressable) 영역 비트 지정 방법 : 00H - 7FH 또는 20.1H - 2F.7H로 비트 주소 지정

  24. 범용의 기억 장소 - 30H- 7FH까지는 범용의 RAM으로 사용 - 직접, 간접 Addressing Mode로 Access 가능 MOV A, 5FH ; 직접 어드레싱 모드 MOV R0, #5FH ; MOV A, @R0 ; 간접 어드레싱 모드

  25. < 참고 > 8051 명령의 주소 지정 방식 (Addressing Mode) 8051의 데이터 이동 법칙 MOV <목적지>, <소스> 니모닉오퍼랜드 ① 직접 주소 지정 방식(Addressing Mode) 8비트로 오퍼랜드의 번지(address)를 직접 지정하는 방식 내부 데이터 메모리의 하위 128바이트나 SFR을 Access하는데 사용된다. MOV A, direct ; (Acc) ← (address) MOV direct, A ; (address) ← (Acc)

  26. ② 간접 주소 지정 방식(Addressing Mode) Operand의 주소를 저장하고 있는 Reg.를 이용하여 Operand를 간접적으로 지정 내부 또는 외부 데이터 메모리를 액세스하는데 사용된다. 간접 주소 지정방식에는 Register는 R0 또는 R1만을 사용 가능하다. 기호 @를 R0, R1앞에 나타내어 간접 주소 지정임을 표시 MOV @Rn, #data ; ((Rn)) ← data ( n = 0 or 1) MOV @Rn, direct ; ((Rn)) ← (direct address) 예) MOV R0, #5FH MOV A, @R0

  27. ③ 레지스터 주소 지정 방식(Addressing Mode) R0-R7을 포함하는 레지스터 Bank를 액세스하는 방식 오퍼랜드를 표시하는 추가적인 Byte를 사용하지 않으므로 기계어 코드가 짧아 진다는 장점 MOV A, Rn ; (Acc)←(Rn), (n=0 ~ 7) MOV Rn, A ; (Rn)←(Acc) ④ 즉치(Immediate) 주소 지정 방식(Addressing Mode) 오퍼랜드가 명령어 코드 중에 상수 값으로 표시되는 방식 오퍼랜드는DPTR을 제외하고는 항상 8비트이다. 명령에 사용되는 즉치 데이터의 앞에는 반드시 #기호를 사용한다. MOV A, #data ; (ACC) ← data

  28. 특수기능 레지스터(Special Function Register) 8051의 내부 RAM 80H~F로(128바이트)까지에 위치하고 있는 21개의 Register. - 이 위치를 직접번지 지정으로 액세스 하면 데이터 메모리 대신 SFR이 액세스 됨 • 구성 • Port Latch및 주변기기의 상태 및 • 제어를 담당하는 Register • P0,P1,P2,P3, PCON,TCON….. • 소프트웨어 제어연산용 Register • ACC, B, DPTR, PSW, SP

  29. 특수기능 레지스터(Special Function Register)

  30. ① B Register - 8 bit의 범용 레지스터 ACC와 조합해서 곱셈과 나눗셈 연산에 사용. ② Stack Pointer(SP) - 8 bit 레지스터 현재 스택(Stack)의 가장 윗 부분 데이터의 주소를 가리킨다. Stack의 동작 푸싱(pushing ) : 데이터를 넣는 동작 데이터를 쓰기 전에 스택 포인터(SP)를 증가시킴. 팝핑(popping ) : Stack 에서 데이터를 제거 데이터를 읽고 SP를 감소시킨다. 스택은 내부 데이터 메모리(내부 RAM)의 어디나 존재할 수 있음. Reset 후에 07H로 초기화되어08H번지에서 시작 Stack의 번지 초기화 명령(60H 번지로 스택 포인터 위치 설정하기) MOV SP, #5FH

  31. ③ PSW(Program Status Word) CPU의 연산 처리결과를 나타내는 레지스터로 주소는 D0H이다.

  32. ④ DPTR(Data Pointer Register) • 16Bit의 Register이다. • DPH, DPL로 나누어서 8Bit로도 사용이 가능하다. • 외부 데이터 메모리(RAM)와 데이터를 주고 받을 때 Address Pointer로 사용 • 내부 기능 제어용 레지스터 • Timer/Counter • TH1, TL1, TH0, TL0, TMOD, TCON • Serial Port • SBUF, SCON, PCON • Interrupt Control • IE, IP • I/O Port Control • P0, P1, P2, P3

  33. 2.4 8051 타이밍

  34. Machine Cycle : CPU가 한 개의 명령어를 처리하는데 소요되는 주기 • 1 machine cycle : 6 상태, 12 Clock 으로 구성 • 12[MHz] X-tal을 사용할 경우 1Machine Cycle은 1[usec.] 소요.

  35. 1Byte 1Cycle 명령인 경우(예, INC A) S1에서 명령을 Fetch S4에서 다음 명령의 OP Code를 읽지만, 무시 다음 Cycle의 S1에서 똑같은 OP Code를 읽기 때문.

  36. 2Byte 1Cycle 명령인 경우 (예, ADD A, #data) S1에서 OP Code Fetch, S4에서 Operand를 읽어서 명령을 처리한다.

  37. 1Byte 2Cycle 명령인 경우 ( 예, INC DPTR ) S1에서 OP Code를 Fetch, S4와 다음 Cycle의 S1,S4에서 Dummy Read.

  38. 1Byte 2Cycle 명령인 경우에서 MOVX 명령의 경우 외부 데이터 메모리만 Access하는 명령이다. 다음의 OP Code의 읽기가 가능하다.

  39. 2. 외부 메모리 액세스 타이밍 • 외부 프로그램 메모리(ROM)와의 인터페이스 • ROM의 Hardware적 Access 신호 : /PSEN

  40. 외부 데이터 메모리(RAM)와의 인터페이스 RAM의 Hardware적 Access 신호 : /RD, /WR

  41. 외부 RAM의 읽기 타이밍도

  42. 외부 RAM의 쓰기 타이밍도

  43. 산술 연산 명령어

  44. 논리 연산 명령어

  45. 데이터 이동 명령어

  46. 부울대수 처리 명령어

  47. 서브루틴 / 분기 명령어(1)

  48. 서브루틴 / 분기 명령어(2)

  49. ; ARITH1.ASM(덧셈) ORG 4000H MOV PSW, #08H ; BANK 1 선택 ; MOV R0, #20H ; R0 값 설정 MOV R1, #30H ; R1 값 설정 ; MOV A, R0 ; A <- R0 ADD A, R1 ; A <- A + R1 MOV R3, A ; R3 <- A ; MOV A, #0H ; A <- 0 ADDC A, #0H ; A <- A + 0 + CY MOV R2, A ; R2 <- A ; MOV PSW, #0H ; BANK 0 선택 JMP 0057H ; 모니터 프로그램으로 ; END

More Related