74
Hanbat National University prof. Song Myoung Gy u 1 8051 System 8051 System 구구 구구 구구구구•구구구 구구구 구구구

8051 System 구조

  • Upload
    ringo

  • View
    141

  • Download
    1

Embed Size (px)

DESCRIPTION

8051 System 구조. 정보통신 • 컴퓨터 공학부 송명규. 8051 특징 [1]. 마이크로콘트롤러. 마이크로프로세서. 8051 특징 [2]. 8051 특징 벡터 방식의 인터럽트 수행 = RESET = 0000H bit 단위의 연산 (Boolean) 과 제어기능 우수 = IO Port Bit 제어가능 8bit 단위의 4 개의 I/O port = P0 – P3 = 32Bit i/o 네 가지 모드를 가진 2 개의 16bit Timer / Counter = T0, T1 - PowerPoint PPT Presentation

Citation preview

Page 1: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

1

8051 System 8051 System 구조구조

정보통신•컴퓨터 공학부 송명규

Page 2: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

2

8051 특징 [1]

마이크로프로세서 마이크로콘트롤러

Page 3: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

3

8051 특징 [2]

8051 특징 벡터 방식의 인터럽트 수행 = RESET = 0000H bit 단위의 연산 (Boolean) 과 제어기능 우수 = IO Port Bit 제어가능 8bit 단위의 4 개의 I/O port = P0 – P3 = 32Bit i/o 네 가지 모드를 가진 2 개의 16bit Timer / Counter = T0, T1 Program-memory / Data-memory 각각 64K 까지 확장가능 내부 128 bytes of on-chip Data RAM = 0000 – 007FH 비트조작 및 연산 , 전송가능 내부 16 Byte 메모리 내장 = 128 Bit = 20-2FH 다중 ( 전이중 ) 모드로 사용할 수 있는 고속 serial port = SCON 레지스터 우선순위 설정이 가능한 5 개의 interrupt = IP 레지스터 파워 절약 모드 (idle mode / power-down mode) = PCON 레지스터 내부 4k byte 의 Flash ROM 프로그램 메모리 = 0000 – 0FFFH EA Pin 전환에 의한 완침 마이컴 및 외부 메모리 인터페이싱 1 개의 16 bit 간접번지 지정용 어드레스 포인터 레지스터 내장 = DPTR CMOS 소자의 파워 절약모드 ( 아이들 모드 , 파워다운 모드 )

Page 4: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

4

8052 특징 [3]

8052 특징 ( 앞 Page 의 특징 + 다음과 같은 특징이 있다 .)

3 개의 16bit Timer / Counter = T2 추가됨 256 bytes of on-chip Data RAM = 0000 – 00FFH 우선순위 설정이 가능한 6 개의 interrupt = T2 내부 8k byte 의 프레쉬 ROM 프로그램 메모리 내장 = 0000 – 1FFFH SFR( 특수기능레지스터 ) 영역을 간접번지로 지정하여 Data RAM 사용 UART 비 동기식 시리얼 통신 속도를 T2 를 사용하여 발생 시킬수 있다 . Timer/counter 2 에는 캡처 기능 추가 T2 는 주로 USART 시리얼통신 전송속도 발생기로 주로 사용됨

최근에 출시된 80S51 CPU 는 SPI 방식의 ISP 기능이 추가되어 있다 예 ) 89S51,89S52,89S4051,89S2051,AT89C51AC2,ED2,RB2,CC01,CC02

Page 5: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

5

8051(2) 만의 독특한 특징 8051(2) 만의 독특한 특징 = MCS-51 특징

SFR( 특수기능레지스터 ) 영역을 간접번지로 지정하여 Data RAM 사용 Program-memory / Data-memory 각각 64K 까지 확장가능 비트조작 및 연산 , 전송가능 내부 16 Byte 메모리 내장 = 128 Bit = 20-2FH

어드레스 예제 보기 = 이해 안 되면 암기 해요 . 0000 – 000F = 16 Byte, 0000 – 001F = 32 Byte 0000 - 00FF = 256 Byte, 0000 – 03FF = 1K Byte = 1024 Byte 0400 – 07FF = 1K Byte, 0000 – 07FF = 2K Byte = 2048 Byte 0800 – 0FFF = 2K Byte, 0000 – 0FFF = 4k Byte = 4096 Byte 0000 – 1FFF = 8K Byte, 0000 - 3FFF = 16K Byte 4000 – 7FFF = 16K Byte, 0000 – 7FFF = 32K Byte 8000 – BFFF = 16K Byte, C000 – FFFF = 16K Byte 8000 – FFFF = 32K Byte, 0000 – FFFF = 64K Byte 10000 – 1FFFF = 64K Byte, 00000 – 1FFFF = 128K Byte 00000 – 7FFFF = 512K Byte, 00000 – FFFFF = 1M Byte

Page 6: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

6

MCS-51 시리즈 종류 [1]

8051(2) = 마스크 Type CPU 80C31(2) = 내장된 Flash 메모리 없음 , 외부 메모리 전용 CPU 87C51(2) = EP-ROM 메모리 내장된 CPU = 자외선 소거 후 다시 사용 됨 89C51(2) = Flash 메모리 내장된 CPU, 프로그램 시 ROM Write 장비 필요 89S51(2) = ISP 프로그램밍 기능이 있는 Flash 메모리 내장된 CPU, SPI 기능내장

Page 7: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

7

MCS-51 시리즈 종류 [2]

Atmel 사에서 출시되는 8051 시리즈

Page 8: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

8

MCS-51 시리즈 종류 [3]

Philps 사에서 출시되는 8051 시리즈

Page 9: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

9

8051 DIP-Package Pin 신호

Page 10: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

10

기능별 8051 DIP-Package Pin 신호

Page 11: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

11

8051 외부 Pin 기능 [1]U?

8051

EA/VP31

X119

X218

RESET9

INT012

INT113

T014

T115

P1.01

P1.12

P1.23

P1.34

P1.45

P1.56

P1.67

P1.78

P0.039

P0.138

P0.237

P0.336

P0.435

P0.534

P0.633

P0.732

P2.021

P2.122

P2.223

P2.324

P2.425

P2.526

P2.627

P2.728

RD17

WR16

PSEN29

ALE/P30

TXD11

RXD10

Pin 기 능RxD 시리얼 입력 포트TxD 시리얼 출력 포트INT0 외부 인터럽트 0

INT1 외부 인터럽트 1

T0 타이머 0 외부 입력T1 타이머 1 외부 입력WR 외부 데이터 메모리 출력 스트로브

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

RESET 시스템 리셋

ALE/PROG Address Latch Enable

PSEN Program Strobe ENable

EA/Vpp External Access Enable

XTAL 1,2 반전된 발진 증폭기에 대한 입력 , 출력P0~3 입출력 포트A0~A15 Address Bus

D0~D7 Data Bus

Page 12: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

12

8051 외부 Pin 기능 [2]

Page 13: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

13

8051 외부 Pin 기능 [3]

Page 14: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

14

8051 Package 종류

Page 15: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

15

8051 Block Diagram [1]

Page 16: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

16

8051 Block Diagram [2]

Page 17: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

17

8051 System 전체 내부 구조

Page 18: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

18

8052 System 전체 내부 구조

CPU

RAM

128 Byte

ROM

Program

4K Byte

I/O Port

Timer 0

Serial PortOSC

Interrupt Control

External Interrupt

Timer 1

Timer 2

Bus Control

TxD RxDP0 P2 P1 P3

Address/DataALE EA

PSEN

Timer/Counter8K Byte256 Byte

Page 19: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

19

8051 주요 레지스터 [1]

CPU PC (Program Counter)

16bit Register = 다음에 수행할 명령어 번지수를 가리키는 어드레스 포인터

ALU (Arithmetic Logic Unit) = 누산기 8bit 논리연산 캐리 없는 덧셈 , 캐리 있는 덧셈 / 뺄셈 8bit / 16bit increment, 8bit decrement BCD(Binary Coded Decimal) 10 진 조정 곱셈 / 나눗셈 AND, OR, XOR, rotate Byte/Bit complement Nibble 단위의 데이터 교환 Bit 단위 (Boolean) 처리기능 조건 점프의 판단기능 연산 결과값 저장 및 연산상테 반영 = PSW 레지스터와 연결동작

Page 20: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

20

8051 주요 레지스터 [2] Make CPU Internal signal

Instruction Fetch -> Instruction Decoding ==(6 분주 ) -> Execute(6 분주 )

인스트럭션 디코더 (Instruction Decoder) = IR 프로그램 메모리로부터 읽은 머신코드를 해석하여 명령어에 해당하는 동작이

가능하도록 ALU 나 버스 컨트롤러와 같은 내장된 처리모듈을 제어하는 신호발생

A Register (Accumulator) = ACC 8 Bit 레지스터로 산술 , 논리연산과 관련하여 ALU 의 입력이나 출력 데이터를

리드하거나 라이트할 때 데이터 버스 입출력의 매개역할을 담당하는 저장 장소로 사용되며 외부로 데이터를 출력하거나 외부로부터 데이터를 입력할 경우 반드시

ACC 레지스터를 경유해야 된다 . 일반 범용 레지스터로도 사용 된다 .

B Register (Temporary Register) 8 Bit 레지스터로 곱하기 , 나누기 연산시 사용되는 레지스터로 ACC 와 조합하여

동작한다 . 일반 범용 레지스터로도 사용 된다 .

Page 21: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

21

8051 주요 레지스터 [3]

DPTR(Data Pointer Register) 16 Bit 데이터 포인터 레지스터로서 외부 데이터 메모리로부터 데이터를 읽거나

쓸 때 외부 메모리의 어드레스 지정 포인터로 사용된다 . 주로 간접번지 지정 방식에서 외부 메모리 읽기 / 쓰기 시에 어드레스 포인터로

사용되고 일반 범용 레지스터로도 사용 된다 .(MOVC, MOVX 명령사용 )

SP(Stack Pointer) 8 Bit 레지스터로서 C 언어로 말하면 보통 로컬 (Local)변수나 함수 호출시

되돌아올 어드레스를 저장하는 스택을 가리키는 어드레스 포인터로 사용되며 PC와 연계되어 동작 한다 . 즉 서브루틴 ( 서브함수 ) 호출이나 인터럽트 발생시에 다음에 수행할 번지를 스텍에 PUSH 하며 이때 어드레스는 -2 감소하고

호출 종료후에는 복귀할 주소를 POP 하는데 이때 어드레스는 +2 증가하여 메인루틴에서 호출전 다음번지 프로그램을 자동으로 실행 한다 . PUSH, POP 명령어가 준비되어 있으며 SP 는 Stack 레지스터의 최상위 번지를

가리키며 Stack 은 내부 데이터 (Data) 메모리에만 위치할수 있고 다운 카운터 한다 .

Page 22: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

22

8051 주요 레지스터 [4] Stack

Stack 은 SFR 외의 영역에 임의의 위치에 설정 가능 Reset 에 의해 SP=0x07 로 0x08 부터 사용 MOV SP,#60 명령으로 메모리 위치 변경이 가능 C 에서는 내부적으로 처리 LIFO 방식으로 어드레스가 적제 됨 보통 내부 128 Byte(0000 – 007F) 의 최상위 메모리 번지에 설정된다 .

버스 컨트롤러 (Bus Controller) 인스트럭션 디코더의 제어신호와 시스템 클록에 동기하여 메모리 제어신호를

발생시키는 역할을 한다 . 주요 메모리 제어 신호로는 RD, WR, ALE, PSEN, D0 – D7, A0 – A15등이며 EA핀

신호도 관련된다 . - 프로그램 메모리 ROM 리드 시 : MOVC , CODE, CONST, = PSEN 신호 발생 - 외부 데이터 메모리 RAM 엑세스 시 : MOVX, XDATA, PDATA = WR 신호 발생

Page 23: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

23

8051 주요 레지스터 [5] PSW (Program Status Word) Register [1]

Page 24: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

24

8051 주요 레지스터 [6] PSW (Program Status Word) Register [2]

Page 25: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

25

8051 주요 레지스터 [7] PSW (Program Status Word) Register [3]

Page 26: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

26

SFR(Special Function Register)특수기능 레지스터 [1]

Page 27: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

27

SFR(Special Function Register)특수기능 레지스터 [2]

Page 28: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

28

SFR(Special Function Register)특수기능 레지스터 [3]

Page 29: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

29

SFR(Special Function Register)특수기능 레지스터 [4]

Page 30: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

30

SFR(Special Function Register)특수기능 레지스터 [5]

Page 31: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

31

SFR(Special Function Register)특수기능 레지스터 [6]

Page 32: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

32

SFR(Special Function Register)특수기능 레지스터 [7]

시리얼 포트 , 인터럽트 , 타이머 /카운트 등 주변기기 상태정보나 제어값을 설정 및 읽어 CPU 에 내장된 주변기기를 제어하는 제어용 레지스터로서 플립플롭으로 구성된 바이트 단위의 레스지터 이다 . 일부 제어용 제지스터는

Bit 단위로도 접근할수 있으며 내부 어드레스 상위 128 Byte(0080-00FF) 번지에 매핑되어 있다 . 직접번지 지정방식으로만 엑세스 가능하며 8052 에서는 이 영역을 간접번지 지정 방식으로 엑세스하여 유저용 내부 RAM으로도 사용할수 있다 이 때 변수 선언은 C 언어 확장 키워드 “ IDATA”로 선언해야 한다 . 어셈블리 언어에서는 8 Bit 내부 간접번지 어드레스 포인터

@R0, @R1 를 사용하여 접근할수 있다 . (8052 에서만 사용할수 있음 ) - C 언어 사용 예 idata unsigned char k, j = 0; k = 5; // 간접번지 , 8052만 적용 sfr IE = 0xa8; // 직접번지 SFR 영역 = 잘 사용안함 = 해더화일로 대체 - 어셈블리 사용 예 mov r0,#85h ; 0085 번지 SET mov a, @r0 ; 0085 번지 내용을 a 레지스터로 읽어들림 mov @r0, a ; a 레지스터 내용을 0085 번지에 저장

Page 33: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

33

SFR(Special Function Register)특수기능 레지스터 [8]

내부 RAM 0x80 ~ 0xFF 에 할당 = 직접번지 지정 방식으로만 접근 가능

CPU 동작과 관련된 레지스터 = A, B, PSW, SP, DPTR 포트 (Port) : P0, P1, P2, P3 Interrupt : IP, IE Power Control : PCON Timer : TCON,TMOD,TL0, TL1, TH0,TH1 Serial 통신 : SCON, SBUF

주변 칩과 내장 주변기기 연계성 = 참고용 - UART = 8251(1ch), 8250(2ch) - Timer/Count = 8253(1M), 8254(4M) - 외부인터럽트 = 8259 - I/O Port = 8255

Page 34: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

34

SFR(Special Function Register)특수기능 레지스터 [9]

Page 35: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

35

8051 Memory MAP 1. 메모리 구조 [1]

- 64K Byte 프로그램 메모리 (Program Memory, CODE) - 64K Byte 외부 데이터 메모리 (External Data Memory, XDATA) - 256 Byte 내부 데이터 메모리 (Internal Data Memory, 8052,

IDATA) - 128 Byte 내부 데이터 메모리 (Internal Data Memory, 8051,

DATA)

Page 36: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

36

8051 Memory MAP 1. 메모리 구조 [2]

Page 37: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

37

8051 Memory MAP 1. 메모리 구조 [3]

Page 38: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

38

8051 Memory MAP 2. 프로그램 메모리 [1]

InternalROM

External ROM64K

0000

0FFF1000

FFFF

Program Memory

EA=0EA=1

4K(8051)

60K

0000

0FFF

EA = 0

64K Byte 외부

EA = 1

60K Byte 외부

4K Byte

내부

Page 39: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

39

8051 Memory MAP 2. 프로그램 메모리 [2]

8051 프로그램 메모리 8052 프로그램 메모리

Page 40: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

40

8051 Memory MAP 2. 프로그램 메모리 [3]

Page 41: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

41

8051 Memory MAP 2. 프로그램 메모리 [4]

8051 : 내부 4K Byte 내장 = 0000 - 0FFFH 8052 : 냬부 8K Byte 내장 = 000 – 1FFFH 외부에 최대 64K Byte 까지 인터페이스 할수 있다 . EA Pin(31 번 ) 에 의해 외부 및 내부 Program Memory 를 선택가능 C 언어 Key 워드 = code, const = PSEN 신호 와 연계됨

Page 42: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

42

8051 Memory MAP 3. Internal Data 메모리 구조 [1]

Page 43: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

43

8051 Memory MAP 3. Internal Data 메모리 구조 [2]

Page 44: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

44

8051 Memory MAP 3. Internal Data 메모리 구조 [3]

7F

302F

201F

17

100F

0708

18

00

80

FF

Bank 0(R0~R7)

Bank 1(R0~R7)

Bank 2(R0~R7)

Bank 3(R0~R7)

Bit unitProcessing

area

User DataMemory area

SpecialFunctionRegister(SFR)

External RAM64K

0000

FFFF

Data Memory

64K

Page 45: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

45

8051 Memory MAP 3. Internal Data 메모리 구조 [4]

Page 46: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

46

8051 Memory MAP 3. Internal Data 메모리 구조 [5]

Internal Memory 내부 Data 메모리는 일반 Data RAM 영역, SFR 영역으로 구분 하위 128 Byte(00-7Fh) = 직접(data) 및 간접(idata) 번지로 호출 상위 128 Byte(80-FFh) = 8052에만 있음, 직접(data)번지 = SFR 영역 간접(idata)번지 = 유저 RAM영역 8051 = 하위 128 Byte만 있음 8052 = 하위 128 Byte + 상위 128 Byte 가 있음 Data 저장 및 Stack 영역으로 사용 Stack = Stack point (SP) 는리셋되면 07h = 뱅크 1영역에 위치 30 – 7Fh는 사용자 RAM영역 = 직 ,간접번지 지정가능, 사용자 Stack 위치 Common Variable Area (User Data Area = 30 – 7Fh) Special Function Register (SFR = 80 - FFh) Bit unit processing variable area = 20 – 2Fh C언어 Key 워드 = DATA(직접 00-7Fh), IDATA(간접 80-FFh, 0852)

Page 47: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

47

8051 Memory MAP 3. Internal Data 메모리 구조 [6]

8051 데이타메모리 8052 데이타메모리

Page 48: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

48

8051 Memory MAP 4. 사용자 Data 영역

사용자 데이터 영역 사용자가 정의하여 사용하는 일반 메모리 0x30~0x7FH 메모리 영역에 위치 C 에서 char, int 등의 일반 변수를 선언하면 이 영역에 할당 스텍 레지스터 영역도 포함 된다 . (보통 최상위 번지에 위치 ) C 언어 Key 워드 : DATA, IDATA 영역 스크래치 패드 (Scratch Pad) 영역 이라고도 한다 .

data char song; song = ‘A’; data int smg; smg= 200; idata char k = 5;

Page 49: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

49

8051 Memory MAP 5. Bit Addressable 영역 [1]

Page 50: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

50

8051 Memory MAP 5. Bit Addressable 영역 [2]

Page 51: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

51

8051 Memory MAP 5. Bit Addressable 영역 [3]

내부 RAM 0x20~0x2F 16바이트 각 비트별로변수 선언 가능 16x8=128 개의 비트변수 선언 가능 비트 번호 0x00~0x7F 로 선언

C 에서 선언과 사용 - bit keyst; - 0 과 1 의 boolean 상태 bit save, cy; save = (P1^4) ^ (P1^5); - 포트 1 의 4 와 5 핀의 상태를 XOR 한다 cy = (P1^4 & P1^5) | (save & P1^6); bit key_flag = 0; key_flag = (~(key_flag); BDATA char key_buf; key_buf = 0x77; bit key_chk_flag = key_buf^0; key_chk_flag = 1; if(key_ 촤 _flag){ }

Page 52: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

52

8051 Memory MAP 6. Register Banks [1]

Page 53: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

53

8051 Memory MAP 6. Register Banks [2]

00

01

02

03

04

05

06

07

R0

R1

R2

R3

R4

R5

R6

R7

08

09

0A

0B

0C

0D

0E

0F

R0

R1

R2

R3

R4

R5

R6

R7

10

11

12

13

14

15

16

17

R0

R1

R2

R3

R4

R5

R6

R7

18

19

1A

1B

1C

1D

1E

1F

R0

R1

R2

R3

R4

R5

R6

R7

bank 0 bank 1 bank 2 bank 3

RS[1:0]=00 RS[1:0]=01 RS[1:0]=10 RS[1:0]=11

PWS 의 RS1:RS0 에 의해 뱅크가 할당되면 레지스터 R0~R7 은 해당 뱅크로 주소 값이 설정 된다 .

R0 : 00 R0 : 08 R0 : 10 R0 : 18

Page 54: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

54

8051 Memory MAP 6. Register Banks [3]

Page 55: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

55

8051 Memory MAP 6. Register Banks [4]

00

01

02

R0

R1

R2

. . .

08

09

0A

R0

R1

R2

. . .

10

11

12

R0

R1

R2

. . .

18

19

1A

R0

R1

R2

. . .

bank 0 bank 1 bank 2 bank 3

34

D3

03

13

C3

4D

22

A5

B5

30

44

B5

RS[1:0]=00 RS[1:0]=01 RS[1:0]=10 RS[1:0]=11PSW

34 13 22 30R0

11 22 33 44A

34 13 22 30A

Before

After

Page 56: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

56

8051 Memory MAP 6. Register Banks [5]

인터럽트가 발생하면 인터럽트 서비스 루틴에서 사용하는 모든 레지스터를 스택에 대피 해야 하는데 , 뱅크를 변경하면 기존의 뱅크 R0~R7 의 레지스터 값은 유지되고 다른 뱅크에 값이 변경 된다

00

01

02

R0

R1

R2

. . .

08

09

0A

R0

R1

R2

. . .

뱅크 0 뱅크 1

34

D3

03

13

C3

4D

• A,B,PSW 스택에 대피• ISR 의 시작에서 뱅크 변경

ISR 에서 사용

Page 57: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

57

8051 Memory MAP 6. Register Banks [6]

Page 58: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

58

8051 Memory MAP 6. Register Banks [7]

CPU Common Register = 00 – 1FH R0~R7 Common register 4 bank

8 개의 일반 데이터 저장용 레지스터 4 개의 뱅크로 구성 기억장치에 주소지정으로 접근이 가능 CPU 의 임시 기억장치의 역할 수행 순수 DATA만 저장 가능 A Register 와 직접 자료교환 가능 뱅크 설정은 PSW 의 RS1:RS0 bit 를 설정하면 , 이 R0~R7 은 해당 메모리에 할당 된다 . MOV PSW,#18H, PSW = 0x18; // 뱅크 3 선택 SETB RS1 CLR RS0 // 뱅크 2 선택 sfr PSW = 0xd0; sbit RS1 = PSW^4; sbit RS0 = PSW^3; RS1 = 1; RS0 = 0; //뱅크 2 선택

Page 59: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

59

8051 Memory MAP 7. Extern Memory Interface [1]

Page 60: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

60

8051 Memory MAP 7. Extern Memory Interface [2]

Page 61: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

61

8051 Memory MAP 8. Extern Program Memory [1]

Page 62: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

62

8051 Memory MAP 8. Extern Program Memory [2]

8051 은 내부 4K 바이트 ROM 0x0000~0x0FFF 8051 은 내부 8K 바이트 ROM 0x0000-0x1FFF 외부 프로그램 메모리 가능 (64K 바이트 ) 내부 ROM 과 외부 ROM 이 있을 경우 내부의 4K 바이트 ROM 을 선택 가능

내부 ROM사용

외부 ROM60K

0000

0FFF1000

FFFFEA=1 EA=0

4K(8051)

내부 ROM 사용않함

외부 ROM64K

0000

0FFF1000

FFFF

4K(8051)

0000

0FFF

외부 ROM4K 사용않함

프로그램메모리 프로그램메모리

Page 63: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

63

8051 Memory MAP 8. Extern Program Memory [3]

프로그램 메모리타이밍챠트

Page 64: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

64

8051 Memory MAP 8. Extern Program Memory [4]

명령어 읽기타이밍챠트

Page 65: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

65

8051 Memory MAP 8. Extern Program Memory [5]

외부 프로그램 메모리 확장 ( 외부 ROM) 64K 바이트 까지 확장 가능한 프로그램 메모리 내부 4K 바이트는 EA 핀으로 제어

EA=0 : 전 영역을 외부 ROM으로 0x0000~0xFFFF

EA=1 : 8051 = 내부 ROM(0x0000~0x0FFF)+ 외부 ROM(0x1000-0xFFFF) 8052 = 내부 ROM(0x0000~0x1FFF)+ 외부 ROM(0x2000-0xFFFF) 외부 ROM 리드시 PSEN 신호 출력 C 언어 Key 워드 : CODE, CONST

asm : MOV A, #90h MOV DPTR, #3000h MOVC A, @A+DPTR

Page 66: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

66

8051 Memory MAP 9. Extern Data Memory [1]

Page 67: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

67

8051 Memory MAP 9. Extern Data Memory [2]

Page 68: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

68

8051 Memory MAP 9. Extern Data Memory [3]

외부 데이터 메모리 쓰기타이밍챠트

Page 69: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

69

8051 Memory MAP 9. Extern Data Memory [4]

외부 데이터 메모리 읽기타이밍챠트

Page 70: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

70

8051 Memory MAP 9. Extern Data Memory [5]

외부 데이터 메모리 ( 외부 RAM) 내부 데이터 메모리와 별도로 64K 바이트 까지 확장 가능 별도의 명령에 의해 외부 Data Access C 언어 Key 워드 : XDATA(0000-ffff), PDATA(0000-00ff)

MOVX A, @DPTRMOVX @DPTR, ARD, WR 신호 출력

#define SELECT (*(unsigned char*)(0x1fc48)) SELECT = 0x9e;

#define ADDR (*(unsigned char xdata *)(0x12000)) ADDR = 0x31;

C = *((char xdata *) 0x17000);

Page 71: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

71

8051 메모리 인터페이스 샘플 회로도 [1]

Page 72: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

72

8051 메모리 인터페이스 샘플 회로도 [2]

0

fc

48

1

Page 73: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

73

8051 메모리 인터페이스 샘플 회로도 [3]

U7F74HC14

1312

D1

+C2010uF

12

D81N4148

12

S7

PB

12

+5V

R2110K

12

A[0..15] A[0..15]A[0..15]

D0

A12

A10

A14

+5V

A11

A15

A9

D1

RA44.7K

123456789

¹Ç·Î ¹«´Ü º¹À縦 ±ÝÇÔ.

º» µµ¸éÀº ¹Ì°Ç ÀÇ·á±âÀÇ ÀÚ»êÀÌ

A13

A8

D[0..7] D[0..7] D[0..7]

D2

HY-7000

+5V

C18104

12

A6

A4

A2

D3

+5V

A3

A1

A7

RA54.7K

123456789

A5

A0

D4

C24104

12

+5V

D5

2003

D6

MAIN CPU CONTROL

D7

A0A1

+5V

RA34.7K

123456789

A0A1A2A3

U8

28C256

A010

A19

A28

A37

A46

A55

A64

A73

A825

A924

A1021

A1123

A122

A1326

A141

CE20

OE22

WE27

D011

D112

D213

D315

D416

D517

D618

D719

VC

C28

GN

D14

62256A4A5A6A7

A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14

$0400 - 7FFFH

DATA RAM

BACKUP ROM

$8000 - EFFFH

WRRD

A0A1A2

C19104

12

A3A4A5A6A7

RAM_CS

A8A9A10A11

ROM_CS

A12A13A14

IO_EN

U9

74HC573

D12

D23

D34

D45

D56

D67

D78

D89

C11

OC

1

Q119

Q218

Q317

Q416

Q515

Q614

Q713

Q812

VC

C20

GN

D10

RDWR

RA24.7K

123456789 RD

T0

WRKEY_IN

+5V

TXD

PRGBZ

RXD

A9A10

A8A8A9A9A10A10A11A11

A11

A12A12A13A13A14A14A15A15

A12A13

01 / 04

A14

D0D1D2D3

A15

D4D5D6D7

D0D1EXT_IO

D2D3

+5V

D4D5D6D7

CX104

12

U10

74HC245

A12

A23

A34

A45

A56

A67

A78

A89

G19

DIR1

B118

B217

B316

B415

B514

B613

B712

B811

VC

C20

GN

D10

PULSE_COUNT

INT1

¼Û ¸í±Ô

¹öÀü 1-0

ÀÛ¼º

³¯Â¥

. .

½ÂÀÎ

¼³°è

. .

°³Àοë¿Â¿ ±â

. . Ç°¹ø

±âÁ¾

ALE

ºÎ¼ ̧í

Ç°¸í

¹Ì°Ç Á¾ÇÕ¿¬±¸¼Ò 7 of 1

REV.NOMAIN CPU CONTROL

°Ëµµ

Q_VIN

Day

ȸ·Î ¹øÈ£

°³¹ß¿ë

½ÂÀÎ

IO_D0

¸ðµ¨¸í

IO_D1

¼³ º¯ ³»¿ª

IO_D2IO_D3IO_D4

KEY_IN

IO_D5

U12

62256

A010

A19

A28

A37

A46

A55

A64

A73

A825

A924

A1021

A1123

A122

A1326

A141

CE20

OE22

WE27

D011

D112

D213

D315

D416

D517

D618

D719

VC

C28

GN

D14

IO_D6IO_D7

T0

RESET

D0D1

TXDRXD

D2D3D4D5D6

28C256

D7

RET

BZP4_0

C21104

1 2

C2230PF

12

C2330PF

12

+5V

Y124MHZ

1 2

J3

JMPER

S11

S22

S33

PRG

AD_VREF

D0

+5V

D1

D0

D2

D1D0

D2

D2

D3

D4

D4D3

D3

D5

D5

D6

D4D5

D7

D6D7

PROGRAM MODE

D6D7

U11

T89C51-AC2-PLCC-44

VAG

ND

1

VAREF2

P1.0/AN0/T23

P1.1/AN1/T2EX4

P1.2/AN2/ECI5

P1.3/AN3/CEX06

P1.4/AN4/CEX17

P1.5/AN5/CEX28

P1.6/AN6/CEX39

P1.7/AN7/CEX410

EA11

P3.0/RXD12

P3.1/TXD13

P3.2/INT014

P3.3/INT115

P3.4/T016

P3.5/T117

P3.6/WR18

P3.7/RD19

P4.020

P4.121

P2.7/A1522P2.6/A1423P2.5/A1324P2.4/A1225P2.3/A1126P2.2/A1027P2.1/A928P2.0/A829

P0.0/AD030

P0.1/AD131

P0.2/AD232

P0.3/AD333

P0.4/AD434

P0.5/AD535

P0.6/AD636

P0.7/AD737

PSEN38ALE39

XTA

L240

XTA

L141

VCC42

VS

S43

RESET44

UP_KEYDN_KEY

°³¹ß¿ëº¸µå

RL_KEYRR_KEY

SET_KEYMODE_KEY

Page 74: 8051 System  구조

Hanbat National University prof. Song Myoung Gyu

74

8051 메모리 인터페이스 샘플 회로도 [4]

BACK-UP ROM

DATA RAM

27C256

U2A

74HC08

12

3

T89C51CC01-PLCC-44

A2

$0400 - 7FFFH

27C256

LCD_D3

$0400 - 7FFFH

C3104

12

27C256

A3

C522PF

12

$8000 - FFFFH

LCD_D4

$0400 - 7FFFH

LCD_D5

A4

CODE ROM

28C256, 6225628C256

DATA RAM

$8000 - FFFFH

U7

T89C51-PLCC-44

VAG

ND

1

VAREF2

P1.0/AN0/T23

P1.1/AN1/T2EX4

P1.2/AN2/ECI5

P1.3/AN3/CEX06

P1.4/AN4/CEX17

P1.5/AN5/CEX28

P1.6/AN6/CEX39

P1.7/AN7/CEX410

EA11

P3.0/RXD12

P3.1/TXD13

P3.2/INT014

P3.3/INT115

P3.4/T016

P3.5/T117

P3.6/WR18

P3.7/RD19

P4.020

P4.121

P2.7/A1522P2.6/A1423P2.5/A1324P2.4/A1225P2.3/A1126P2.2/A1027P2.1/A928P2.0/A829

P0.0/AD030

P0.1/AD131

P0.2/AD232

P0.3/AD333

P0.4/AD434

P0.5/AD535

P0.6/AD636

P0.7/AD737

PSEN38ALE39

XTA

L240

XTA

L141

VCC42

VS

S43

RESET44

SYSTEM MEMORY

LCD_D6

28C256

A[0..15] A[0..15] A[0..15]

A5

D0

62256

D1

D3D4

D2

62256

D5

D7D6

A15

CODE + DATA<BANK>

LCD_D7

D[0..7]D[0..7] D[0..7]

C622PF

12

A6

$8000 - FFFFH

A10

D0

28C256,62256

D1

BANK CS

D2D3

A7

D4D5

D7D6

A8

+C110uF

12

D11N4148

12

A9

S1

PB

12

+5V

R110K

12

A8

RA24.7K

123456789

+5V

A9

A10

A10A11A12A13A14A15

J2JMPER

S11

S22

S33A14

+5V

A11A12

A0A1

A16A15

A2

A13

A18A17

A3A4A5A6A7

A14

RD

PSEN

J3JMPER

S11

S22

S33

J7

JMPER

S11S22S33

RD

J4

JMPER

S11S22S33

U5A74LS14

12

D0D1

PSEN

RD

D2D3D4D5D6D7

+5V

A4A3A2

A5

A7

A1A0

RA14.7K

123456789

+5V

A6

J8JMPER S

11

S2

2S

33

A12

R44.7K

12

+5V

PSEN

A9

A13

RA34.7K

123456789

A10

A14

A11

+5V

A15

A8

J1

JMPER

S11

S22

S33

+5V

A15

RAM_CS

+5V

RAM_CSWRRD

LCD_D0LCD_D1

LCD_D3LCD_D4

LCD_D2

LCD_D6LCD_D7

LCD_D5

LCD_CS

A18A17A16

LCD_RSRAM_CS

RDWR

PROGRAM MODE

A0

TXD

A1A2A3A4A5A6

CN1

HEADER 16

12345678910111213141516

A7A8A9A10

R310

12

+5V

EA

A11

RXD

C2104

12

+5V

A12

U3

29C040A

CE22

OE24

WE31

I/O013

I/O114

I/O215

A012

A111

A210

A39

A48

A57

A66

A75

A827

A926

A1023

A1125

A124

A1328

A1429

I/O317

I/O418

I/O519

I/O620

I/O721

A153

A162

A1730

A181

J6JMPER

S11

S22

S33

A13

A0A1A2A3A4A5

R21K

A6

U4

74HC573

D12

D23

D34

D45

D56

D67

D78

D89

C11 OC

1

Q119

Q218

Q317

Q416

Q515

Q614

Q713

Q812

VC

C20

GN

D10 A7

+5V

A8A9A10A11A12A13A14

A0A1A2

+5V

LCD_CS

LCD_RS

A3A4A5A6A7A8

WRRD

A9A10A11A12A13A14

¹Ç·Î ¹«´Ü º¹À縦 ±ÝÇÔ.

º» µµ¸éÀº ¹Ì°Ç ÀÇ·á±âÀÇ ÀÚ»êÀÌ

A4

ÀÛ ¼º

ºÎ¼ ̧í

¼³ °è

R0.1

REV.NO

DIM-CONMAIN

2 of 1¹øÈ£

U5B74LS14

34

Size

½Â ÀÎ

[ ¼ ½Ä MGF-0420 / R0 ]

ȸ·Î³¯ Â¥

Day¼Û¸í±Ô

½Â ÀÎ

ÇÁ·Î

°Ë µµ

¹öÀü

2005¸ðµ¨¸í

ȸ·Î. .

À̸§

01 / 11Á§Æ®

°³ÀÎ¿ë ¿Â¿ ±â

MG-XXXXMAIN - CPU

A0

±â Á¾

¹Ì°Ç Á¾ÇÕ ¿¬±¸¼Ò . .

¼³ º¯ ³» ¿ª

. .

°³¹ß¿ë

D0D1

A15

D2D3D4D5D6D7

D0D1

U6

28C256

A010

A19

A28

A37

A46

A55

A64

A73

A825

A924

A1021

A1123

A122

A1326

A141

CE20

OE22

WE27

D011

D112

D213

D315

D416

D517

D618

D719

VC

C28

GN

D14

U1

27C256

A010

A19

A28

A37

A46

A55

A64

A73

A825

A924

A1021

A1123

A122

A1326

A1427

CE20

OE22

VPP1

O011

O112

O213

O315

O416

O517

O618

O719

VCC28

GN

D14

D2D3D4

U8

62256

A010

A19

A28

A37

A46

A55

A64

A73

A825

A924

A1021

A1123

A122

A1326

A141 CE

20

OE22

WE27

D011

D112

D213

D315

D416

D517

D618

D719

VC

C28

GN

D14

D5D6D7

D0D1D2D3D4D5D6D7

D0D1D2D3D4D5D6

U9A74HC32

1

23

D7

LCD_D0

+5V

J5

JMPER

S1

1S

22

S3

3

U5C74LS14

56

C4 104

12

A14 WR

C7104

12

$0000 - 7FFFH

Y124MHZ

1 2

RAM_CSWR

$0000 - 7FFFH

T89C51AC2-PLCC-44

$0000 - 7FFFH

CODE : $0000 - 7FFFH

LCD_D1

D3

D0

D2

D4

D1

D7D6

D5

28C256

A1

$0400 - 7FFFH

62256

BACK ROM, DATA RAM

CODE : $0000 - 7FFFH

LCD_D2