1) 지식 창고는 본인이 작성한 콘텐츠(팁/노하우/리소스/강좌 등)을 무료 혹은 가상화폐인 납포인트를 통해 공유하는 공간입니다.
2) 본인이 작성한 콘텐츠에 대해서만 지식 창고에 등록할 수 있으며, 저작권에 위배되는 콘텐츠는 사전경고 없이 삭제될 수 있습니다.
3) 콘텐츠 구매 및 첨부파일 다운로드는 회원그룹 '연구원' 이상 가능하오니, 경험치를 쌓아 진급한 후에 이용 부탁드립니다.
4) 무료 콘텐츠의 본문은 구매절차 없이 즉시 이용할 수 있으며, 판매 납포인트가 있는 콘텐츠는 구매 후 이용할 수 있습니다.
5) 콘텐츠 판매에 따른 납포인트 수익은 지정한 비율(50%)에 따라 판매자에게 지급하며, 납포인트 수익을 통해 진급을 빨리할 수 있습니다.
6) 구매 후 평가를 하면 구매 납포인트의 20%를 돌려 드립니다.
판매자 | 양치기광녀 | 판매 납포인트 | 무료 | 평점 | 0점 / 총 0명 참여 |
---|
1. 8051 내부 구조
1.중앙 연산 처리 장치 (CPU)
CPU는 9051의 머리로서 사용자의 프로그램을 읽어서 그 명령을 해독하고 실행하는 장소이다. CPU의 구성요소로는 8비트의 논리 연산장치(ALU) 및 그것에 붙어있는 각종 레지스터, A, B 레지스터, PSW, SP, 10비트 프로그램 카운터(PC), 데이터 포인터 등이 있다.
(1) 명령 디코더 (CU : Control Unit) 혹은 명령 해독기
CPU의 명령 디코더는 각 명령을 해독하여, 실제로 그 명령을 실행해서 완료할 때까지 필요한 CPU 내부 신호를 만들어서, 주어진 기능을 완료시키는 부분이다. 이와같이 CPU 내부 신호에는 소스 및 목적지 오퍼런드를 제어하는 신호와 산술논리 연산장치의 동작을 제어하는 신호 등이 있다.
(2) 프로그램 카운터(PC : Program Counter)
프로그램 카운터는 프로그램 메모리에 저장되어 있는 명령의 실행순서를 정하는 10비트 레지스터이며, 실행시킬 명령이 기억되어 있는 어드레스를 가리키고 있다. 프로그램 카운터는 점프/콜 등의 명령을 사용해서 변경시킬 수 있다.
(3) ALU (Arithmetic Logic Unit)
ALU는 그 이름이 의미하듯이 8비트의 변수에 대해서 산술 및 논리 연산을 하는 곳이다. ALU는 다음과 같은 기능을 갖고 있다.
(a) 캐리없는 덧셈, 캐리있는 덧셈/뺄셈
(b) 8비트/10비트 인크리먼ㅌ, 8비트 디그리먼트
(c) BCD(Binary Coded Decimal) 10진 조정
(d) 곱셈/나눗셈
(e) AND, OR EX-NOR, 로테이트
(f) 바이트 컴플리먼트(1의 보수), 비트 컴플리먼트
(g) 니블(nibble)단위 데이터 교환 및 바이트 단위의 데이터 교환
(h) 조건 브랜치 등의 판단 등이 있다.
8051의 중요한 특징의 하나로서, ALU에서 비트 처리 능력이 있다는 것이다. 즉, ALU는 8비트 데이터뿐만이 아니라, 1비트도 똑같이 취급할 수 있다. 8비트 레지스터내의 각 비트를 각각 셋, 리셋 또는 보수, 전송, 테스트 등의 논리연산까지도 똑같이 할 수 있다.
(4) 어큐물레이터 (Accumulator)
8051에서 가장 많이 사용하는 레지스터 중의 하나인 어큐물레이터는 다음과 같이 사용한다.
(a) 덧셈/뺄셈, 곱셈/나눗셈 등의 산술연산 명령 등에서, 명령실행에 필요한 1개의 오퍼런드를 입력
하기도 하고, 또 명령실행이 끝나면, 그 결과를 기억하고 있게되는 데에도 사용한다.
(b) 논리, 연산, 명령 등의 오퍼런드로도 사용한다.
(c) 데이터 참조 등에서 테이블 번지의 옵셋(offset)으로 사용한다.
(d) 외부 확장 데이터 RAM과 데이터 전송에도 사용한다.
(e) 프로그램 메모리에서 데이터를 읽을 때도 사용한다.
(f) 로테이트, 패리티 계산, 제로 테스트 등의 명령 등에서도 사용한다.
(5) PSW (Program State Word)
많은 명령 등은 스테터 플래그에 직접 또는 간접적으로 영향을 주기도 하고, 또 경우에 따라서는 영향을 받기도 한다. 이런 플래그를 갖고 있는 레지스터를 프로그램 스테터스 워드 (PSW)라 부른다.
(a) 캐리 플래그(C-플래그) : 덧셈/뺄셈 및 로테이트 명령을 1 바이트 이상 확장해서 실행할 경우에
사용한다. 또 불 대수 처리에 불 연산용의 어큐물레이터로 사용할 때는 1비트 논리 연산 및 비트
처리에도 사용된다.
(b) 오버플로 플래그(OV-플래그) : 부호 있는 정수연산에서, 오버플로가 검출하면 셋되어, 2의 보수연
산을 할 수 있다.
(c) 패리티 플래그 (P-플래그) : 한 명령을 실행한 후, 어큐물레이터의 데이터에서 1의 개수가 짝수면
리셋되고 홀수면 셋된다.
(d) RS0, RS1 : 레지스터 뱅크 비트라 부르며, 8051에 있는 4개의 뱅크 중에서 현재 사용중인 뱅크를
가리키게 된다. 이 RS0, RS1 비트는 CPU가 하드웨어로 제어하는 것이 아니고, 레지스터 뱅크를
선택할 경우 소프트웨어로 결정하는 것이다
자료 출처: http://www.jungtaemin.com/study.html?PHPSESSID=5d9ce605a6274b90aee7bcf9346d0ae4