architecture_8051_2010

Download Report

Transcript architecture_8051_2010

8051 System 구조 정보통신

컴퓨터 공학부 송명규 Hanbat National University prof. Song Myoung Gyu 1

8051 특징 [1]

마이크로프로세서 마이크로콘트롤러 Hanbat National University prof. Song Myoung Gyu 2

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 소자의 파워 절약모드 (아이들 모드, 파워다운 모드) Hanbat National University prof. Song Myoung Gyu 3

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 Hanbat National University prof. Song Myoung Gyu 4

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

0800

07FF = 1K Byte, 0000

0FFF = 2K Byte, 0000

07FF = 2K Byte = 2048 Byte 0FFF = 4k Byte = 4096 Byte 0000

4000

1FFF = 8K Byte, 0000 - 3FFF = 16K Byte 7FFF = 16K Byte, 0000

7FFF = 32K Byte 8000

8000

BFFF = 16K Byte, C000

FFFF = 32K Byte, 0000

FFFF = 16K Byte FFFF = 64K Byte 10000

00000

1FFFF = 64K Byte, 00000

7FFFF = 512K Byte, 00000

1FFFF = 128K Byte FFFFF = 1M Byte Hanbat National University prof. Song Myoung Gyu 5

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 기능내장 Hanbat National University prof. Song Myoung Gyu 6

MCS-51 시리즈 종류[2]

Atmel 사에서 출시되는 8051 시리즈 Hanbat National University prof. Song Myoung Gyu 7

MCS-51 시리즈 종류[3]

Philps 사에서 출시되는 8051 시리즈 Hanbat National University prof. Song Myoung Gyu 8

8051 DIP-Package Pin 신호

Hanbat National University prof. Song Myoung Gyu 9

기능별 8051 DIP-Package Pin 신호

Hanbat National University prof. Song Myoung Gyu 10

8051 외부 Pin 기능 [1]

31 U?

EA /VP 19 X1 18 X2 9 RE SET 12 13 14 15 INT0 INT1 T0 T1 1 2 3 4 5 6 7 8 P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

8051 P0.0

P0.1

P0.2

P0.3

P0.4

P0.5

P0.6

P0.7

39 38 37 36 35 34 33 32 P2.0

P2.1

P2.2

P2.3

P2.4

P2.5

P2.6

P2.7

21 22 23 24 25 26 27 28 RD WR PS EN ALE /P TX D RX D 17 16 29 30 11 10

Pin

RxD TxD INT0 INT1 T0 T1 WR RD RESET ALE/PROG PSEN EA/Vpp XTAL 1,2 P0~3 A0~A15 D0~D7 기 능 시리얼 입력 포트 시리얼 출력 포트 외부 인터럽트 0 외부 인터럽트 1 타이머 0 외부 입력 타이머 1 외부 입력 외부 데이터 메모리 출력 스트로브 외부 데이터 메모리 입력 스트로브 시스템 리셋 Address Latch Enable Program Strobe ENable External Access Enable 반전된 발진 증폭기에 대한 입력 , 출력 입출력 포트 Address Bus Data Bus Hanbat National University prof. Song Myoung Gyu 11

8051 외부 Pin 기능 [2]

Hanbat National University prof. Song Myoung Gyu 12

8051 외부 Pin 기능 [3]

Hanbat National University prof. Song Myoung Gyu 13

8051 Package 종류

Hanbat National University prof. Song Myoung Gyu 14

8051 Block Diagram [1]

Hanbat National University prof. Song Myoung Gyu 15

8051 Block Diagram [2]

Hanbat National University prof. Song Myoung Gyu 16

8051 System 전체 내부 구조

Hanbat National University prof. Song Myoung Gyu 17

8052 System 전체 내부 구조

External Interrupt Interrupt Control

8K Byte ROM Program 4K Byte 256 Byte

RAM 128 Byte

Timer/Counter

Timer 2 Timer 1 Timer 0 CPU OSC Bus Control

I/O Port

Serial Port P0 P2 P1 P3 ALE EA PSEN Address/Data TxD RxD

Hanbat National University prof. Song Myoung Gyu 18

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 레지스터와 연결동작 Hanbat National University prof. Song Myoung Gyu 19

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와 조합하여 동 작한다. 일반 범용 레지스터로도 사용 된다. Hanbat National University prof. Song Myoung Gyu 20

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) 메모리에만 위치할수 있고 다운 카 운터 한다.

Hanbat National University prof. Song Myoung Gyu 21

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 신호 발생 Hanbat National University prof. Song Myoung Gyu 22

8051 주요 레지스터[5]

PSW (Program Status Word) Register [1] Hanbat National University prof. Song Myoung Gyu 23

8051 주요 레지스터[6]

PSW (Program Status Word) Register [2] Hanbat National University prof. Song Myoung Gyu 24

8051 주요 레지스터[7]

PSW (Program Status Word) Register [3] Hanbat National University prof. Song Myoung Gyu 25

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

Hanbat National University prof. Song Myoung Gyu 26

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

Hanbat National University prof. Song Myoung Gyu 27

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

Hanbat National University prof. Song Myoung Gyu 28

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

Hanbat National University prof. Song Myoung Gyu 29

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

Hanbat National University prof. Song Myoung Gyu 30

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

Hanbat National University prof. Song Myoung Gyu 31

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 번지에 저장 Hanbat National University prof. Song Myoung Gyu 32

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 Hanbat National University prof. Song Myoung Gyu 33

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

Hanbat National University prof. Song Myoung Gyu 34

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) Hanbat National University prof. Song Myoung Gyu 35

8051 Memory MAP

1. 메모리 구조 [2] Hanbat National University prof. Song Myoung Gyu 36

8051 Memory MAP

1. 메모리 구조 [3] Hanbat National University prof. Song Myoung Gyu 37

8051 Memory MAP

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

FFFF External ROM 64K 60K

EA = 1 60K Byte 외부

0FFF 0000 4K(8051) Internal ROM

EA=1 EA=0

Program Memory 1000 0FFF 0000

4K Byte 내부 Hanbat National University prof. Song Myoung Gyu EA = 0 64K Byte 외부 38

8051 Memory MAP

2. 프로그램 메모리 [2] 8051 프로그램 메모리 8052 프로그램 메모리 Hanbat National University prof. Song Myoung Gyu 39

8051 Memory MAP

2. 프로그램 메모리 [3] Hanbat National University prof. Song Myoung Gyu 40

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 신호 와 연계 됨 Hanbat National University prof. Song Myoung Gyu 41

8051 Memory MAP

3. Internal Data 메모리 구조 [1] Hanbat National University prof. Song Myoung Gyu 42

8051 Memory MAP

3. Internal Data 메모리 구조 [2] Hanbat National University prof. Song Myoung Gyu 43

8051 Memory MAP

3. Internal Data 메모리 구조 [3]

FF 80 7F FFFF Special Function Register (SFR) User Data Memory area 30 2F 20 1F 18 17 10 0F 08 07 00 Bit unit Processing area Bank 3 (R0~R7) Bank 2 (R0~R7) Bank 1 (R0~R7) Bank 0 (R0~R7) External RAM 64K 0000 Data Memory

Hanbat National University prof. Song Myoung Gyu

64K

44

8051 Memory MAP

3. Internal Data 메모리 구조 [4] Hanbat National University prof. Song Myoung Gyu 45

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) Hanbat National University prof. Song Myoung Gyu 46

8051 Memory MAP

3. Internal Data 메모리 구조 [6] 8051 데이타 메모리 8052 데이타 메모리 Hanbat National University prof. Song Myoung Gyu 47

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; Hanbat National University prof. Song Myoung Gyu 48

8051 Memory MAP

5. Bit Addressable 영역 [1] Hanbat National University prof. Song Myoung Gyu 49

8051 Memory MAP

5. Bit Addressable 영역 [2] Hanbat National University prof. Song Myoung Gyu 50

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){ } Hanbat National University prof. Song Myoung Gyu 51

8051 Memory MAP

6. Register Banks [1] Hanbat National University prof. Song Myoung Gyu 52

8051 Memory MAP

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

RS[1:0]=00 RS[1:0]=01 RS[1:0]=10 RS[1:0]=11 R7 R6 R5 R4 07 06 05 04 R7 R6 R5 R4 0F 0E 0D 0C R7 R6 R5 R4 17 16 15 14 R3 R2 R1 R0 bank 0

R0 : 00

03 02 01 00 R3 R2 R1 R0 bank 1

R0 : 08

0B 0A 09 08 R3 R2 R1 R0 bank 2

R0 : 10

13 12 11 10

Hanbat National University prof. Song Myoung Gyu

R7 R6 R5 R4 1F 1E 1D 1C R3 R2 R1 R0 bank 3

R0 : 18

1B 1A 19 18

53

8051 Memory MAP

6. Register Banks [3] Hanbat National University prof. Song Myoung Gyu 54

8051 Memory MAP

6. Register Banks [4] After

R2 R1 R0 bank 0 . . .

03 D3 34 02 01 00 R2 R1 R0 bank 1 . . .

4D C3 13 0A 09 08 R2 R1 R0 bank 2 . . .

B5 A5 22 12 11 10 R2 R1 R0 bank 3 . . .

B5 44 30 1A 19 18 PSW

R0 Before A A

RS[1:0]=00

34 11 34

RS[1:0]=01

13 22 13

RS[1:0]=10

22 33 22

RS[1:0]=11

30 44 30 Hanbat National University prof. Song Myoung Gyu 55

8051 Memory MAP

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

R2

뱅크

0 . . .

03 02

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

R2

뱅크

1 . . .

4D 0A R1 R0 D3 34 01 00 R1 R0 C3 13

ISR에서 사용 Hanbat National University prof. Song Myoung Gyu

09 08

56

8051 Memory MAP

6. Register Banks [6] Hanbat National University prof. Song Myoung Gyu 57

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 선택 58

8051 Memory MAP

7. Extern Memory Interface [1] Hanbat National University prof. Song Myoung Gyu 59

8051 Memory MAP

7. Extern Memory Interface [2] Hanbat National University prof. Song Myoung Gyu 60

8051 Memory MAP

8. Extern Program Memory [1] Hanbat National University prof. Song Myoung Gyu 61

8051 Memory MAP

8. Extern Program Memory [2]     8051은 내부 4K 바이트 ROM 0x0000~0x0FFF 8051은 내부 8K 바이트 ROM 0x0000-0x1FFF 외부 프로그램 메모리 가능 (64K 바이트) 내부 ROM과 외부 ROM이 있을 경우 내부의 4K 바이트 ROM을 선택 가능 EA=1

FFFF 4K(8051)

내부

ROM

사용 외부

ROM 60K

외부

ROM 4K

사용 않함

1000 0FFF

EA=0

4K(8051) 0FFF

내부

ROM

사용 않함 외부

ROM 64K 0000 0000

프로그램 메모리 프로그램 메모리 Hanbat National University prof. Song Myoung Gyu

FFFF 1000 0FFF 0000

62

8051 Memory MAP

8. Extern Program Memory [3] 프로그램 메모리 타이밍 챠트 Hanbat National University prof. Song Myoung Gyu 63

8051 Memory MAP

8. Extern Program Memory [4] 명령어 읽기 타이밍 챠트 Hanbat National University prof. Song Myoung Gyu 64

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 Hanbat National University prof. Song Myoung Gyu 65

8051 Memory MAP

9. Extern Data Memory [1] Hanbat National University prof. Song Myoung Gyu 66

8051 Memory MAP

9. Extern Data Memory [2] Hanbat National University prof. Song Myoung Gyu 67

8051 Memory MAP

9. Extern Data Memory [3] 외부 데이터 메모리 쓰기 타이밍 챠트 Hanbat National University prof. Song Myoung Gyu 68

8051 Memory MAP

9. Extern Data Memory [4] 외부 데이터 메모리 읽기 타이밍 챠트 Hanbat National University prof. Song Myoung Gyu 69

8051 Memory MAP

9. Extern Data Memory [5]  외부 데이터 메모리 (외부 RAM)  내부 데이터 메모리와 별도로 64K 바이트 까지 확장 가능  별도의 명령에 의해 외부 Data Access  C언어 Key 워드 : XDATA(0000-ffff), PDATA(0000-00ff)  MOVX A, @DPTR  MOVX @DPTR, A  RD, WR 신호 출력 #define SELECT (*(unsigned char*)(0x 1 fc48 )) SELECT = 0x9e; #define ADDR (*(unsigned char xdata *)(0x 1 2000 )) ADDR = 0x31; C = *((char xdata *) 0x 1 7000 ); Hanbat National University prof. Song Myoung Gyu 70

8051 메모리 인터페이스 샘플 회로도 [1] Hanbat National University prof. Song Myoung Gyu 71

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

fc 48 0 1

Hanbat National University prof. Song Myoung Gyu 72

8051 메모리 인터페이스 샘플 회로도 [3] º» µµ¸éÀº ¹Ì°Ç ÀÇ·á±âÀÇ ÀÚ»êÀÌ ¹Ç·Î ¹«´Ü º¹À縦 ±ÝÇÔ.

+5V +5V R21 10K RA 2 4.7K

6 7 8 9 1 2 3 4 5 T0 BZ PRG RXD TXD KEY _IN WR RD C20 10uF + 2 C22 30PF 1 1 Y 1 24MHZ 2 2 C23 30PF 1 +5V

MAIN CPU CONTROL D[0..7]

+5V

A[0..15] D[0..7] A[0..15] D[0..7]

2 C18 104 1 10 9 8 7 6 5 4 3 25 24 21 23 2 26 1 U8 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A 13 A 14

28C256 62256

CE OE WE D0 D1 D2 D3 D4 D5 D6 D7 11 12 13 15 16 17 18 19 20 22 27 D0 D1 D2 D3 D4 D5 D6 D7

BACKUP ROM A[0..15]

RESET A 9 A 10 A 11 A 12 A 13 A 14 A 15

REV.NO

8051 메모리 인터페이스 샘플 회로도 [4] º» µµ¸éÀº ¹Ì°Ç ÀÇ·á±âÀÇ ÀÚ»êÀÌ ¹Ç·Î ¹«´Ü º¹À縦 ±ÝÇÔ.

RXD TXD R1 10K +5V C1 10uF + U5A 74LS14 LCD_D0 LCD_D1 LCD_D2 LCD_D3 LCD_D4 LCD_D5 LCD_D6 LCD_D7 LCD_CS A 16 A 17 A 18 WR RD LCD_RS RA M_CS

T89C51-PLCC-44 T89C51CC01-PLCC-44 T89C51AC2-PLCC-44 REV.NO

SYSTEM MEMORY

D1 1N4148 S1 PB 2 C5 22PF 1 U7 44 RESET 7 8 9 10 3 4 5 6 P1.0/A N0/T2 P1.1/A N1/T2EX P1.2/A N2/ECI P1.3/A N3/CEX0 P1.4/A N4/CEX1 P1.5/A N5/CEX2 P1.6/A N6/CEX3 P1.7/A N7/CEX4 12 13 14 15 16 17 18 19 20 21 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD P4.0

P4.1

J4 S3 S2 S1 3 2 1 JMPER 1 Y 1 24MHZ 2 2 C6 22PF 1

¼³ º¯ ³» ¿ª [ ¼-½Ä MGF-0420 / R0 ]

+5V RA 2 4.7K

J7 S3 S2 S1 3 2 1 JMPER

³¯ Â¥

EA EA V CC V AREF P0.0/A D0 P0.1/A D1 P0.2/A D2 P0.3/A D3 P0.4/A D4 P0.5/A D5 P0.6/A D6 P0.7/A D7 P2.0/A 8 P2.1/A 9 P2.2/A 10 P2.3/A 11 P2.4/A 12 P2.5/A 13 P2.6/A 14 P2.7/A 15 A LE PSEN 29 28 27 26 25 24 23 22 39 38 11 42 2 30 31 32 33 34 35 36 37 +5V +5V 1 2 3 4 5 6 7 8 9 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7

PROGRAM MODE ÀÛ ¼º Size

+5V D0 D1 D2 D3 D4 D5 D6 D7 +5V R4 4.7K

½Â ÀÎ A4

D0 D1 D2 D3 D4 D5 D6 D7

D[0..7]

PSEN RA 1 4.7K

2 3 4 5 6 7 8 9 U4 D1 D2 D3 D4 D5 D6 D7 D8 1 11 OC C RA 3 4.7K

±â Á¾ ¸ðµ¨¸í ºÎ¼-¸í

+5V 2 C2 104 1 A 8 A 9 A 10 A 11 A 12 A 13 A 14 A 15 1 2 3 4 5 6 7 8 9 74HC573 1 2 3 4 5 6 7 8 9 +5V Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 19 18 17 16 15 14 13 12 +5V A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A 13 A 14 A 15

D[0..7] D[0..7] A[0..15] A[0..15]

A 14

27C256

J5

CODE : $0000 - 7FFFH

A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A 13 WR

28C256 62256

10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

CODE + DATA

U1 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9

27C256 28C256 62256

A 10 A 11 A 12 A 13 A 14 O0 O1 O2 O3 O4 O5 O6 O7 CE V PP 11 12 13 15 16 17 18 19 20 1 D0 D1 D2 D3 D4 D5 D6 D7

$0000 - 7FFFH

OE V CC 22 28 PSEN RD

27C256

1 2 3

28C256, 62256

S1 S2 S3 J3 JMPER C3 104

$0000 - 7FFFH

JMPER

CODE : $0000 - 7FFFH

C4 104 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A 13 A 14

BACK ROM, DATA RAM $8000 - FFFFH BACK-UP ROM

10 9 8 7 6 5 4 3 25 24 21 23 2 26 1 U6 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A 13 A 14 D0 D1 D2 D3 D4 D5 D6 D7

28C256 62256

CE OE WE 11 12 13 15 16 17 18 19 20 22 27

$8000 - FFFFH

C7 104 D0 D1 D2 D3 D4 D5 D6 D7 RD WR +5V A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A 13 A 14 RD WR

DATA RAM $0400 - 7FFFH

10 9 8 7 6 5 4 3 25 24 21 23 2 26 1 22 27 U8 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A 13 A 14 D0 D1 D2 D3 D4 D5 D6 D7

62256 28C256

CE OE WE 11 12 13 15 16 17 18 19 20

DATA RAM $0400 - 7FFFH

J8 JMPER D0 D1 D2 D3 D4 D5 D6 D7

$0400 - 7FFFH

3 RA M_CS

$0000 - 7FFFH

RA M_CS

BANK CS A[0..15]

A 15

CODE ROM

J1 1 2 3 S1 S2 S3 JMPER +5V

27C256

A 14 J2 JMPER 1 2 3 S1 S2 S3

28C256,62256

D0 D1 D2 D3 D4 D5 D6 D7 13 14 15 17 18 19 20 21 U3 I/O0 I/O1 I/O2 I/O3 I/O4 I/O5 I/O6 I/O7 A 10 A 11 A 12 A 13 A 14 A 15 A 16 A 17 A 18 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 OE WE CE 12 11 10 9 8 7 6 5 27 26 23 25 4 28 29 3 2 30 1 24 31 22 29C040A

$8000 - FFFFH

4 U5B 74LS14 3 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A 13 A 14 A 15 WR RA M_CS A 15 U9A 74HC32 2 1

$0400 - 7FFFH

6 U5C 74LS14 5 A 15 A 10

°³ÀÎ¿ë ¿Â¿-±â MG-XXXX ¹Ì°Ç Á¾ÇÕ ¿¬±¸¼Ò ¼³ °è ¼Û¸í±Ô

. .

°Ë µµ

. .

½Â ÀÎ

. .

ȸ·Î À̸§ ÇÁ·Î Á§Æ® ȸ·Î ¹øÈ£

A 16 A 17 A 18

DIM-CONMAIN 2 of 1

LCD_RS LCD_CS LCD_D0 LCD_D1 LCD_D2 LCD_D3 LCD_D4 LCD_D5 LCD_D6 LCD_D7 R3 10 RD +5V +5V

Day ¹öÀü

PSEN RD U2A 74HC08 J6 JMPER 1 2 3 S1 S2 S3 +5V R2 1K CN1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 HEA DER 16

°³¹ß¿ë MAIN - CPU 2005 01 / 11 R0.1

Hanbat National University prof. Song Myoung Gyu 74