본문 바로가기

Computer/0x08 하드웨어

마이크로프로세서 3화 8051 메모리 구조

마이크로프로세서 3화 8051 메모리 구조 




[ 8051 메모리 구조 개요 ]



내부 데이터 RAM 128 바이트 (00H-7FH)


내장 특수 기능 레지스터 128 바이트 (80H-FFH)


내부 프로그램 메모리 4K 바이트 (0000H~0FFFH)


외부확장 프로그램 메모리 60K / 64K 바이트

(1000H/0000H~FFFFH)


외부 프로그래 메모리 4K 바이트

(0000H ~ 0FFFH)







[ 내부 데이터 메모리 ]


비트 어드레스 영역

: 비트 단위의 연산이 가능하기 떄문에 칩 내 , 외부의 상태 값을 

비트 단위로 저장하거나 연산할 경우 사용하는 영역 



사용자 데이터 메모리 영역 :


- 사용자 임의로 사용할 수 있는 영역

- 데이터 메모리용이나 스택영역으로 사용

- reset 되면 SP 가 07H가 되므로 사용자가 스택을 지정하려면

다른곳으로 지정해야 함 



Accumulator(ACC)

: 어큐뮬레이터는 8비트로 구성된 레지스터로 ALU의 입력 데이터 및 연산

결과를 저장

I/O 포트와 메모리와의 데이터 전송에 사용


B레지스터:

8비트 범용 레지스터이며, Acc 와 조랍해서 *,/ 연산에 사용






OV : Overflow Flag, 부호 있는 수의 덧셈/뺄셈에서 2의 보수 수치 범위를 넘으면 Set

P: Parity Flag , ACC 의 내용중 1의 개수가 홀수면 Set, 짝수면 Reset 


RS1: Register Bank Selection Flag 1

PSO: Register Bank Selection Flag 0 



스택 포인터 (SP, Stack Pointer)

: 8비트 길이의 스택 포인터로서 스택을 가리키는데 사용


데이터 포인터 레지스터(Data Pointer Register)

: 16비트, 8비트 단위로 상위(DPH), 하위 (DPL)로 나누어질 수 있음

외부 데이터 메모리와 데이터 전송 시 어드레스 포인터로 사용


포트 0 , 포트 1, 포트 2, 포트 3 (P0, P1, P2 , P3)

: 4개의 병렬 입출력 포트 P0, P1, P2, P3 의 래치 




타이머용 레지스터:


8H 번지에서 8DH 번지까지 내장되어 있는 레지스터 (TH0, TL0, TH1, TL1, TCON 과 TMOD 가 

이에 속하며, 두 개의 16비트 타이머 / 카운터를 사용하는데 필요


- T2CON, RCAP2L , RCAP2H , TH@ ,TL2 등은 8052에만 있으며 이들은 타이머 / 카운터 2를 사용할 떄 필요



직렬포트용 레지스터:


직렬포트를 제어할 떄 사용되는 SCON 과 보드레이트를 제어 하는데 사용되는 PCON(Power Control Register)

, 그리고 송수신 버퍼로 사용되는 SBUF(Serial Data Buffer) 등이 포함



인터럽트 관련 레지스터 :


8051에는 외부 인터럽트 2개 , 타이머 / 카운터 인터럽트 2개 , 직렬포트 인터럽트 1개등 총 5개의

인터럽트 소스가 있음





프로그램 메모리


[ 외부 프로그램 메모리 리드(read) 사이클 타이밍도 ]


명령어 리드 사이클 : ALE 신호의 출력으로 시작(1) => 외부에는 ALE 신호의 하강 에지(2) 에서

버스에 출력되어 있는 주소를 래치가능(3)


이후 주소정보는 버스 상에서 없어지게 되고 버스는 하이 임피던스 상태(4) 가 됨 -> 프로그램 메모리

읽기 제어신호 PSEN가 출력되어서 프로그램 메모리가 선택됨(5)=> 따라서 명령어 출력이 확정(6)

되면 CPU는 PSEN 신호를 거둬들이고(7) => 메모리는 선택되지 않은 상태(8)가 되어 버스는 다시 플로팅(Floating) 됨




[ 외부 데이터 메모리 라이트(write) 사이클 타이밍도 ]


ALE 신호가 출력 되면서 시작 (1) => 외부에는 ALE 신호의 하강에지(2) => 시점에서 버스에 출력되어 있는

주소를 래치 시킴(3) => 이후 버스는 하이 임피던스 상태(4)가 됨 => 데이터 메모리 제어의 신호가 출력되고 

데이터 메모리가 선택됨 (5) => 데이터 메모리에 있는 데이터가 출력되고 (6) , 신호는 high 레벨로 돌아감(7)

=> 버스는 다시 플로팅(floating) 상태가 됨(8)




Flash Rom Type 최초설계


*회로도의 기본요소


[ 부품의 명칭 또는 종류 ] - 어떠한 부품들을 사용하는가?


[ 사용하고 있는 부품의 정수 ] - 부품의 정수는 얼마인가?


[ 부품 사이의 접속 관계 ] - 각 부품들은 어떻게 연결 되었나?



[ 정리하기 ]


1. 8051 메모리 구조는 내부 데이터 메모리, 프로그램 메모리, 외부 데이터 메모리를 구조로 구성된다.

2. 회로도의 기본 규칙은 회로도의 기본 요소, 접속과 교차, 회로도에서 사용하는 기본단위, 전원과

그라운드, 회로도에 표시 하지 않는 것 등이 있다.

3. 커패시터의 사용방법은 커패시터의 주요용도, 커패시터의 종류,커패시터 용량, 바이패스 커패시터를

이해한다.