CPU의 구성

    1) 8Bit ONE CHIP MICRO-PROCESSOR
    2) HMOS 기술 이용, 5V 단일 전원
    3) 4096(4K)Byte의 내부 프로그램 메모리 (ROM) 내장

    (1) 8051 : Mask ROM
    (2) 8751 : EPROM 형태로 되어있어 사용자가 프로그램을 써넣고 지울 수 있다
    (3) 8031 : 자체 ROM이 없어 모든 명령을 외부 메모리로부터 제공 받는다
    (4) 8951 : EEPROM 형태로 되어있어 사용자가 프로그램을 써넣고 지울 수 있다.
    4) 128Byte의 내부 데이터 메모리 (RAM) 와 128Byte의 특수 기능 레지스터 내장
    (1) 4개의 Register Bank
    (2) 128bit의 bit flag (직접 Addressing 가능)
    (3) 128Byte의 특수 기능 레지스터 (SFR : Special Function Register)

    5) 외부 프로그램 메모리와 데이터 메모리를 각각 64Kbyte까지 확장 가능
    ※ 단 프로그램 메모리의 하위 4Kbyte는 자체 내장
    (1) 프로그램 메모리 : Read Only
    - EA = 0 (ON) : 외부 메모리만 사용
    - EA = 1 (OFF) : 내부 메모리 (4Kbyte : 0h∼0FFFh) + 외부메모리 (60Kbyte : 1000∼FFFFh)
    (2) 데이터 메모리 : Read / Write
    - 64Kbyte까지 직접 Addressing 가능
    6) 4개의 8bit 입출력 포트 내장
    7) 2개의 16bit 타이머/카운터
    8) 데이터 통신용 송수신 포트 (시리얼 포트) 내장
    9) 4개의 인터럽트

    ※ SFR의 명칭과 해당 어드레스

 

F8









FF

F0

B








F7

E8









EF

E0

ACC








E7

D8









DF

D0

PSW








D7

C8









CF

C0









C7

B8

IP








BF

B0

P3








B7

A8

IE








AF

A0

P2








A7

98

SCON

SBUF







9F

90

P1








97

88

TCON

TMOD

TL0

TL1

TH0

TH1



8F

80

P0

SP

DPL

DPH




PCON

87


 

기    호

명                          칭

주    소

ACC

Accmulator

0E0h

B

B Register

0F0h

PSW

Program Status Word

0D0h

SP

Stack Pointer

81h

DPTR

Data Pointer Register


DPL

Low Byte

82h

DPH

High Byte

83h

P0

Port 0

80h

P1

Port 1

90h

P2

Port 2

0A0h

P3

Port 3

0B0h

IP

Interrupt Priority Control

0B8h

IE

Interrupt Enable Control

0A8h

TMOD

Timer/Counter Mode Control

89h

TCON

Timer/Counter Control

88h

TH0

Timer/Counter 0 High Byte

8Ch

TL0

Timer/Counter 0 Low Byte

8Ah

TH1

Timer/Counter 1 High Byte

8Dh

TL1

Timer/Counter 1 Low Byte

8Bh

SCON

Serial Control

98h

SBUF

Serial Data Buffer

99h

PCON

Power Control

87h


    ◈ ACC(ACCmulator) : 8비트 레지스터로 산술, 논리 연산의 중심이 된다.
    ◈ B register : 어큐뮬레이터와 조합해서 ×, &, / 등에 사용된다.
    ◈ DPTR(Data Pointer Register) : 16비트 길이를 갖고 있으며, 8비트 단위로 상위(DPH), 하위(DPL)로 나누어질 수 있다. 이 레지스터는 외부 데이터 메모리와 데이터 전송시 어드레스 포인터로서 사용되며, 프로그램 메모리 (ROM)에서 정수 연산 혹은 어큐물레이터와 조합해서 테이블 분기로 사용된다.
    ◈ PSW(Program Status Word) : 8비트 레지스터로 마이크로 프로세서의 상태를 나타내거나, 조정할 때 사용된다.
    ◈ SP(Stack Pointer) : 스택의 위치를 가르키는데 사용되며, 초기 값은 07H이고 시작은 08H부터 된다. 나머지 레지스터 뱅크를 사용하기 위해서는 이 위치를 다른 곳 (예를들어 30H∼7FH)으로 옮기는 것이 일반적이다.

    ※ PSW (Program Status Word)

 

CY

AC

F0

RS1

RS0

OV

P


    ⑴ CY : Carry Flag, 덧셈/뺄셈 명령에서 최상위 비트에서 캐리/바로우가 생기면 set
    ⑵ AC : Aux Carry Flag, 뎃셈/뺄셈 연산에서 3비트째의 캐리/바로우가 생기면 set
    ⑶ F0 : General Flag
    ⑷ RS1 : Register Bank Selection Flag 1
    ⑸ RS0 : Register Bank Selection Flag 0

 

RS1

RS2

선택된 뱅크

0

0

뱅크 0 (리셋 후 초기값)

0

1

뱅크 1

1

0

뱅크 2

1

1

뱅크 3


    ⑹ OV : Overflow Flag, 부호있는 수의 뎃셈/뺄셈에서 2의 보수 수치 범위를 넘으면 set
    ⑺ ― : 미지정 Flag
    ⑻ P : Parity Flag, ACC의 내용중 1의 개수가 홀수면 set, 짝수면 reset

 

㉡  CPU의 구조

핀 이름

내                                               용

RxD

시리얼 입력 포트

TxD

시리얼 출력 포트

INT0

외부 인터럽트 0

INT1

외부 인터럽트 1

T0

타이머 0 외부 입력

T1

타이머 1 외부 입력

WR

외부 데이터 메모리 출력 스트로브 (Strobe)

RD

외부 데이터 메모리 입력 스트로브

RESET

시스템 리셋

ALE/PROG

Address Latch Enable : 외부 기억 소자를 처리하는 동안 하위 번지 레치

PSEN

Program Strobe Enable : 외부 프로그램 메모리에 대해 리드하기 위한 신호

EA/Vpp

External Access Enable : 외부 프로그램 메모리를 사용 가능

XTAL 1, 2

반전된 발진 증폭기에 대한 입력, 출력

P0∼P3

입출력 포트

A0∼A15

어드레스(주소 지정) 버스

D0∼D7

데이터 버스