Upload
ringo
View
148
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
Hanbat National University prof. Song Myoung Gyu
1
8051 System 8051 System 구조구조
정보통신•컴퓨터 공학부 송명규
Hanbat National University prof. Song Myoung Gyu
2
8051 특징 [1]
마이크로프로세서 마이크로콘트롤러
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 소자의 파워 절약모드 ( 아이들 모드 , 파워다운 모드 )
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
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
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 기능내장
Hanbat National University prof. Song Myoung Gyu
7
MCS-51 시리즈 종류 [2]
Atmel 사에서 출시되는 8051 시리즈
Hanbat National University prof. Song Myoung Gyu
8
MCS-51 시리즈 종류 [3]
Philps 사에서 출시되는 8051 시리즈
Hanbat National University prof. Song Myoung Gyu
9
8051 DIP-Package Pin 신호
Hanbat National University prof. Song Myoung Gyu
10
기능별 8051 DIP-Package Pin 신호
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
Hanbat National University prof. Song Myoung Gyu
12
8051 외부 Pin 기능 [2]
Hanbat National University prof. Song Myoung Gyu
13
8051 외부 Pin 기능 [3]
Hanbat National University prof. Song Myoung Gyu
14
8051 Package 종류
Hanbat National University prof. Song Myoung Gyu
15
8051 Block Diagram [1]
Hanbat National University prof. Song Myoung Gyu
16
8051 Block Diagram [2]
Hanbat National University prof. Song Myoung Gyu
17
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
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 레지스터와 연결동작
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 와 조합하여
동작한다 . 일반 범용 레지스터로도 사용 된다 .
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) 메모리에만 위치할수 있고 다운 카운터 한다 .
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 신호 발생
Hanbat National University prof. Song Myoung Gyu
23
8051 주요 레지스터 [5] PSW (Program Status Word) Register [1]
Hanbat National University prof. Song Myoung Gyu
24
8051 주요 레지스터 [6] PSW (Program Status Word) Register [2]
Hanbat National University prof. Song Myoung Gyu
25
8051 주요 레지스터 [7] PSW (Program Status Word) Register [3]
Hanbat National University prof. Song Myoung Gyu
26
SFR(Special Function Register)특수기능 레지스터 [1]
Hanbat National University prof. Song Myoung Gyu
27
SFR(Special Function Register)특수기능 레지스터 [2]
Hanbat National University prof. Song Myoung Gyu
28
SFR(Special Function Register)특수기능 레지스터 [3]
Hanbat National University prof. Song Myoung Gyu
29
SFR(Special Function Register)특수기능 레지스터 [4]
Hanbat National University prof. Song Myoung Gyu
30
SFR(Special Function Register)특수기능 레지스터 [5]
Hanbat National University prof. Song Myoung Gyu
31
SFR(Special Function Register)특수기능 레지스터 [6]
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 번지에 저장
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
Hanbat National University prof. Song Myoung Gyu
34
SFR(Special Function Register)특수기능 레지스터 [9]
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)
Hanbat National University prof. Song Myoung Gyu
36
8051 Memory MAP 1. 메모리 구조 [2]
Hanbat National University prof. Song Myoung Gyu
37
8051 Memory MAP 1. 메모리 구조 [3]
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
내부
Hanbat National University prof. Song Myoung Gyu
39
8051 Memory MAP 2. 프로그램 메모리 [2]
8051 프로그램 메모리 8052 프로그램 메모리
Hanbat National University prof. Song Myoung Gyu
40
8051 Memory MAP 2. 프로그램 메모리 [3]
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 신호 와 연계됨
Hanbat National University prof. Song Myoung Gyu
42
8051 Memory MAP 3. Internal Data 메모리 구조 [1]
Hanbat National University prof. Song Myoung Gyu
43
8051 Memory MAP 3. Internal Data 메모리 구조 [2]
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
Hanbat National University prof. Song Myoung Gyu
45
8051 Memory MAP 3. Internal Data 메모리 구조 [4]
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)
Hanbat National University prof. Song Myoung Gyu
47
8051 Memory MAP 3. Internal Data 메모리 구조 [6]
8051 데이타메모리 8052 데이타메모리
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;
Hanbat National University prof. Song Myoung Gyu
49
8051 Memory MAP 5. Bit Addressable 영역 [1]
Hanbat National University prof. Song Myoung Gyu
50
8051 Memory MAP 5. Bit Addressable 영역 [2]
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){ }
Hanbat National University prof. Song Myoung Gyu
52
8051 Memory MAP 6. Register Banks [1]
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
Hanbat National University prof. Song Myoung Gyu
54
8051 Memory MAP 6. Register Banks [3]
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
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 에서 사용
Hanbat National University prof. Song Myoung Gyu
57
8051 Memory MAP 6. Register Banks [6]
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 선택
Hanbat National University prof. Song Myoung Gyu
59
8051 Memory MAP 7. Extern Memory Interface [1]
Hanbat National University prof. Song Myoung Gyu
60
8051 Memory MAP 7. Extern Memory Interface [2]
Hanbat National University prof. Song Myoung Gyu
61
8051 Memory MAP 8. Extern Program Memory [1]
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 사용않함
프로그램메모리 프로그램메모리
Hanbat National University prof. Song Myoung Gyu
63
8051 Memory MAP 8. Extern Program Memory [3]
프로그램 메모리타이밍챠트
Hanbat National University prof. Song Myoung Gyu
64
8051 Memory MAP 8. Extern Program Memory [4]
명령어 읽기타이밍챠트
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
Hanbat National University prof. Song Myoung Gyu
66
8051 Memory MAP 9. Extern Data Memory [1]
Hanbat National University prof. Song Myoung Gyu
67
8051 Memory MAP 9. Extern Data Memory [2]
Hanbat National University prof. Song Myoung Gyu
68
8051 Memory MAP 9. Extern Data Memory [3]
외부 데이터 메모리 쓰기타이밍챠트
Hanbat National University prof. Song Myoung Gyu
69
8051 Memory MAP 9. Extern Data Memory [4]
외부 데이터 메모리 읽기타이밍챠트
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);
Hanbat National University prof. Song Myoung Gyu
71
8051 메모리 인터페이스 샘플 회로도 [1]
Hanbat National University prof. Song Myoung Gyu
72
8051 메모리 인터페이스 샘플 회로도 [2]
0
fc
48
1
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
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