9
1 8051 & C Programming 2. 8051 시스템 구조 28051 시스템 구조 1. 8051 시스템 구조

8051 & C Programming - suwon.ac.krcslee/uproc/2-1_MCUstruc2.pdf · 5 8051 메모리구조 6. 8051 메모리구조1 Program Memory : 프로그램(머신코드, 명령어)과고정값(Constant)이저장되는메모리

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

1

8051 & C Programming

제2편. 8051 시스템 구조

제2편 8051 시스템 구조

제1장. 8051 시스템 구조

2

1. 8051 계열

제조되는 8051 디바이스들

2. 표준 8051의 핀 배열

표준 8051의핀 배열

3

3. 8051 코어 내부 구성

8051 코어 내부구성

8051 Logic Symbol

4

4. 8051 내부 설명1

ALU(Arithmetic Logic Unit) :연산회로가 내장된 모듈로서 입력된 Reg.1과 Reg.2의 덧셈 뺄셈 곱셈나눗셈 및 로직 연산 기능 등을 담당

인스트럭션 디코더(Instruction Decoder) :프로그램 메모리로부터 읽은 머신코드 (Machine Code, OP Code, 명령어)를 해석하여 명령어에 해당하는 동작이 가능하도록, ALU나 버스 컨트롤러와같은 내장된 처리모듈을 제어하는 신호를 만들어 내는 역할을 담당

어큐뮬레이터(Accumulator) : 외부로부터 읽은 데이터나 외부에 쓰려는 데이터를 저장하는 매개역할용도로 사용하며 ALU의 입력이나 연산 결과 값을 저장하는용도로도 사용된다. 외부로의 데이터 전송이나 외부로부터 내부로의 데이터 전송은반드시 어큐뮬레이터를 경유하게 됨.

5. 8051 내부 설명2

버스 컨트롤러(Bus Controller) :인스트럭션 디코더의 제어신호와 시스템 클럭에 동기하여 메모리 제어신호를 발생시키는 역할을 담당

SFR(Special Function Register) :내장된 시리얼포트, 인터럽트, 타이머/카운터 등 주변기기의 상태정보나제어 값을 갖는 로직으로서, 프립프롭(Flip-Flop)으로 구성된 바이트 단위의 레지스터. SFR은 내부 어드레스에 메핑(Mapping)되어 있음

5

8051 메모리구조

6. 8051 메모리 구조1

Program Memory : 프로그램(머신코드, 명령어)과 고정값(Constant)이 저장되는 메모리공간으로서 64KBytes의 크기를 가질 수 있다.

XDATA(External Data Memory) :프로그램이 사용하는 데이터를 임시로 저장하는메모리로서 사용자가칩 외부에 직접 인터페이스하여 사용할 수 있는 메모리 공간이며 최대64KBytes의 크기를 가질 수 있다.

IDATA(Indirect Addressable Internal Data Memory) :인 다이렉트 어드레싱 모드(Indirect Addressing Mode)로 엑세스할 수있는 내부 데이터 메모리 공간으로 8051 계열은 0~127번지이며 8052계열은 0~255번지가 내부 데이터 메모리 영역이 된다.

DATA(Direct Addressable Internal Data Memory) :다이렉트 어드레싱 모드로 엑세스할 수 있는 메모리 공간으로 80518052 계열 모두 0~127번지의 내부 데이터 메모리 영역과 SFR 영역이여기에 포함된다.

7. 8051 메모리 구조2

6

8. 8051 내부 메모리 구조

9. 8051 SFR의 내부 어드레스

회색 부분: 비트 어드레싱, 즉 비트별 엑세스가 가능한 레지스터(Bit Addressable Register) 영역* : 8052 계열의 타이머/카운터2 관련 레지스터

7

10. 비트 엑세스 가능한 SFR 구조

회색부분: 8052계열의 타이머/카운터2 관련 레지스터 비트

PSW(Program Status Word) :8비트 레지스터로서 산술연산 명령의 실행 결과의 상태를저장하거나범용레지스터 R0~R7을 내부 데이터 메모리 0H~1FH번지의 어느 뱅크에메핑할 것인지를 선택하는 용도로 사용

ACC(Accumulator) :8비트 레지스터로서 산술, 논리연산과 관련하여 ALU의 입력이나 출력데이터를 저장하는 용도로 사용되거나 외부 데이터메모리(XDATA)로부터데이터를 리드(Read)하거나 라이트(Write) 할 때 데이터 버스 입출력의매개 역할을 담당하는 저장 장소로 사용된다. 즉 외부로 데이터를 라이트하거나 외부로부터 리드할 경우 꼭 어큐뮬레이터를 경유하게 된다.

B :8비트 레지스터로서 곱하기, 나누기 연산 시 사용되는 레지스터이다.ACC와 조합으로 동작한다.

11. SFR(레지스터) 설명1

8

DPTR(Data Pointer Register) :16비트의 데이터 포인터 레지스터로서 외부 데이터메모리로부터 데이터를읽거나 쓸 때 외부 메모리의 어드레스 지정 포인터로 사용

SP(Stack Pointer) :8비트 레지스터로서 C언어로 말하면 보통 로컬(Local)변수나 함수호출 시되돌아올 어드레스를 저장하는 스택을 가리키는 어드레스 포인터이다. 참고로 8051은 내부 데이터 메모리(IDATA)에만 스택을 지정할 수 있다.

PC(Program Counter) :SFR 영역에 메핑된 레지스터는 아니나 8051 코어에 내장된 16비트 레지스터로서 다음에 실행할 명령이 저장된 프로그램 메모리의어드레스를가리키는 어드레스 포인터로서 사용된다.

12. SFR(레지스터) 설명2

8051 리셋 시 SFR이갖는기본 값

13. SFR의 리셋(reset) 값

9

14. 8051 기본 내장 주변기기

범용입출력(I/O) 포트 :범용 디지털 입출력을 위한 포트로서 래치(Latch)로 구성되어 있다.보통 외부에 인터페이스된 주변장치 제어나 주변장치로부터데이터를입력 받고자 하는 경우 입출력 포트를 사용한다.

시리얼포트 :다른 디바이스나 장치와의 데이터 통신을 위한 주변기기로서 동기 및 비동기 통신이 가능하며 보통은 비동기용 RS-232, RS-422, RS-485 통신에사용된다.

타이머/카운터 :주기적인 외부 상태제어나 칩 외부의 이벤트 발생에 대한 모니터링을 위한용도로 사용하며 시리얼 포트의 통신 클럭을 제공하기도한다.

인터럽트컨트롤러 :이벤트 발생에 대한 효율적인 처리방법을 제공하는 것으로 외부 인터럽트타이머/카운터 인터럽트, 시리얼 인터럽트의 제어를 담당한다.