8051 마이크로 컨트롤러에서 사용되는 다양한 유형의 레지스터

문제를 제거하기 위해 도구를 사용해보십시오





레지스터는 마이크로 컨트롤러 및 프로세서 데이터를 수집하고 저장하는 빠른 방법을 제공합니다. 더하기, 빼기 등을 수행하여 컨트롤러 또는 프로세서로 데이터를 조작하려면 메모리에서 직접 수행 할 수 없지만 데이터를 처리하고 저장하려면 레지스터가 필요합니다. 마이크로 컨트롤러에는 그 안에서 작동하는 내용이나 명령에 따라 분류 할 수있는 여러 유형의 레지스터가 포함되어 있습니다.

8051 마이크로 컨트롤러의 다양한 유형의 레지스터

레지스터




레지스터는 덧셈과 곱셈과 같은 다양한 연산을 수행하는 데 사용되는 소량의 데이터를 저장하고 결과 데이터를 메인 메모리에로드 할 수있는 CPU의 작은 장소입니다. 레지스터에는 데이터가 저장 될 메모리 위치의 주소가 포함됩니다. 레지스터의 크기는 최신 컨트롤러 . 예를 들어 64 비트 레지스터의 경우 CPU는 두 개의 32 비트 숫자를 더하려고 시도하고 64 비트 결과를 제공합니다.

레지스터 유형

8051 마이크로 컨트롤러에는 주로 두 가지 유형의 레지스터가 있습니다.



  • 범용 레지스터 (바이트 주소 지정 가능 레지스터)
  • 특수 기능 레지스터 (비트 주소 지정 가능 레지스터)
8051 RAM 메모리

8051 RAM 메모리

그만큼 8051 마이크로 컨트롤러 256 바이트의 RAM으로 구성되며, 이는 범용 128 바이트와 SFR (특수 기능 레지스터) 메모리 용 128 바이트의 두 가지 방식으로 나뉩니다. 범용으로 사용되는 메모리를 RAM이라고하며 SFR에 사용되는 메모리에는 Accumulator,‘B’레지스터, 타이머 또는 카운터와 같은 주변기기 관련 레지스터와 인터럽트 관련 레지스터가 모두 포함되어 있습니다.

범용 레지스터

범용 메모리

범용 메모리

범용 메모리는 8051 마이크로 컨트롤러의 RAM이라고하며 뱅크, 비트 주소 지정 가능 영역 및 스크래치 패드 영역과 같은 3 개 영역으로 나뉩니다. 뱅크에는 R0-R7과 같은 다른 범용 레지스터가 포함되어 있으며 이러한 모든 레지스터는 1 바이트의 데이터 만 저장하거나 제거하는 바이트 주소 지정 가능 레지스터입니다.


은행 및 레지스터

B0, B1, B2 및 B3은 뱅크를 나타내며 각 뱅크에는‘R0’에서‘R7’까지 8 개의 범용 레지스터가 있습니다. 이러한 모든 레지스터는 바이트 주소 지정이 가능합니다. 범용 레지스터간에 범용 레지스터로의 데이터 전송은 불가능합니다. 이 뱅크는 PSW (Program Status Word) 레지스터에 의해 선택됩니다.

범용 레지스터

범용 레지스터

PSW (프로그램 상태 워드) 레지스터

PSW 레지스터는 비트 및 바이트 주소 지정이 가능한 레지스터입니다. 이 레지스터는 컨트롤러에서 수행되는 작업의 상태를 반영합니다. PSW 레지스터는 아래와 같이 RS1 및 RS0에 의해 뱅크 선택을 결정합니다. PSW의 물리적 주소는 D0h에서 시작하고 개별 비트는 D0h에서 D7h까지 액세스됩니다.

PSW 레지스터

PSW 레지스터

캐리 플래그 (C) : 캐리 플래그의 주소는 D7입니다. 이 캐리 플래그는 비트가 7 번째 위치에서 생성 될 때 영향을받습니다.
C = 0 인 경우 캐리 리셋
C = 1 캐리 세트

캐리 플래그

캐리 플래그

보조 플래그 (AC) : 보조 캐리의 주소는 D5입니다. 이 보조 캐리는 3 번째 위치에서 4 번째 위치로 비트가 생성 될 때 영향을받습니다.
AC = 0 보조가 재설정 됨
AC = 1 보조가 설정 됨

보조 캐리 (AC)

보조 캐리 (AC)

오버플로 플래그 (OV) : 오버플로 플래그의 주소는 D2입니다. 6 번째 위치에서 7 번째 위치로 비트가 생성되면 오버플로 플래그가 영향을받습니다.

OV = 0 오버플로 플래그 재설정
OV = 1 오버플로 플래그 세트

오버플로 플래그

오버플로 플래그

패리티 플래그 (P) : 패리티 플래그의 주소는 D0입니다. 산술 연산을 수행하는 동안 결과가 1이면 패리티 플래그가 설정되고 그렇지 않으면 재설정됩니다.
RS1 및 RS0
PSW 레지스터의 비트 인 RS1 및 RS0은 RAM에서 다른 메모리 위치 (bank0 ~ bank4)를 선택하는 데 사용됩니다.

은행 선택 레지스터

은행 선택 레지스터

다음은이 레지스터를 사용하는 예입니다.

다음 예제는 어셈블리 레벨 프로그램을 사용하여 두 개의 숫자를 더한 다음 Bank1 레지스터에 최종 값을 저장하는 방법을 보여줍니다.

조직 0000h
MOV PSW, # 00h
MOV A, 15
A, 20 추가
MOV 00h, A
종료

bank0 레지스터 R0-R5에서 6 개의 자연수를 이동하는 어셈블리 프로그램

Org 0000h (시작 주소 선언)
MOV PSW, # 00h (bank0 메모리 열기)
MOV r0, # 00h (bank0 메모리의 시작 주소)
MOV r1, # 01h
MOV r2, # 02h
MOV r2, # 03h
MOV r3, # 04h
MOV r4, # 05h
종료

뱅크 1 레지스터 R0-R7에서 6 개의 자연수를 이동하는 어셈블리 프로그램

Org 0000h (시작 주소 선언)
MOV PSW, # 08h (bank1 메모리 열기)
MOV r0, 00h (뱅크 1 메모리로 값 전송)
MOV r1, 02h
MOV r2, 02h
MOV r2, 03h
MOV r3, 04h
MOV r4, 05h
MOV r5, 06h
MOV r6, 07h
MOV r7, 08h
종료

특수 기능 레지스터 (SFR)

특수 기능 레지스터는 상위 RAM입니다. 8051 마이크로 컨트롤러에서 . 이러한 레지스터에는 P0, P1, P2, P3, 타이머 또는 카운터, 직렬 포트 및 인터럽트 관련 레지스터와 같은 모든 주변 관련 레지스터가 포함됩니다. SFR 메모리 주소는 80h에서 FFh까지 시작됩니다. SFR 레지스터는 비트 주소 레지스터와 바이트 주소 레지스터로 구현됩니다.

특수 기능 레지스터 (SFR)


특수 기능 레지스터 (SFR)

누산기, B 레지스터, Po, P1, P2, P3, IE 레지스터는 비트 주소 지정 가능 레지스터이고 나머지는 모두 바이트 주소 지정 가능 레지스터입니다.

어큐뮬레이터

ACC 또는 A라고도 알려진 누산기는 누산기의 주소로 바이트 주소 지정이 가능한 레지스터 일뿐만 아니라 비트입니다. 비트 주소 지정 가능 레지스터를 사용하려는 경우 레지스터의 단일 비트 (E0)를 사용하고 8 비트 누산기의 바이트 주소 지정 가능 레지스터를 사용할 수 있습니다. 누산기는 대부분의 산술 및 논리 연산의 결과를 보유합니다.

누산기 레지스터

누산기 레지스터

누산기와 함께 사용되는 빼기를위한 어셈블리 프로그램

조직 0000h
MOV R0, # 09h
MOV A, # 03h (1 바이트 데이터)
SUBB A, 01h (1 바이트 데이터)
종료

B- 등록

B 레지스터는 비트 및 바이트 주소 지정이 가능한 레지스터입니다. 물리적 주소 F0h로 1 비트 또는 모든 8 비트에 액세스 할 수 있습니다. 비트 1에 액세스한다고 가정하면 f1을 사용해야합니다. B 레지스터는 곱셈과 나눗셈 연산에만 사용됩니다.

B- 등록

B- 등록

B-Register와 함께 사용되는 곱셈을위한 어셈블리 프로그램

조직 0000h
MOV A, # 09h
MOV B, # 03h
MUL A, B (A에 저장된 최종 값)
종료
B-Register와 함께 사용되는 Division 조립 프로그램
조직 0000h
MOV A, # 09h
MOV B, # 03h
DIC A, B (A에 저장된 최종 값)
종료

포트 레지스터

8051 마이크로 컨트롤러는 4 개의 입력 및 출력 포트 (P0, P1, P2 및 P3) 또는 32 개의 I / O 핀으로 구성됩니다. 각 핀은 트랜지스터로 설계 및 P 레지스터. 그만큼 핀 구성 레지스터의 논리 상태에 의존하는 마이크로 컨트롤러에게는 매우 중요합니다. 1 또는 출력 0에 의해 주어진 입력으로서의 핀 구성은 로직 상태에 따라 다릅니다. 로직 1이 P 레지스터의 비트에 적용되면 출력 트랜지스터는 입력 핀 역할을하는 적절한 핀을 끕니다.

8051의 포트 레지스터

8051의 포트 레지스터

Port0의 LED를 토글하는 어셈블리 프로그램

ORG 0000h
반환 : MOV P0, # 00h
ACALL DEL1
MOV P0, # 0FF
ACALL DEL1
SJMP 반환
DEL1 : MOV R2, # 200
프랑스 : DJNZ R0, # 230
DJNZ R2, DEL
권리
종료

카운터 및 레지스터

많은 마이크로 컨트롤러는 하나 이상의 타이머 및 카운터 . 타이머는 귀중한 시간 지연을 생성하는 데 사용되며 타이머의 소스는 수정 발진기입니다. 카운터는 외부 이벤트의 수를 계산하는 데 사용됩니다. 객관적인 카운터 , 카운터 소스는 카운터 핀에 적용되는 외부 펄스입니다.

8051 마이크로 컨트롤러는 2 개의 16 비트 타이머와 타이머 0 및 타이머 1과 같은 카운터로 구성됩니다. 두 타이머는 모두 하위 바이트가 TL에 저장되고 상위 바이트가 TH에 저장되는 16 비트 레지스터로 구성됩니다. 타이머는 카운터뿐만 아니라 카운터에 대한 클럭 펄스의 소스에 따라 달라지는 타이밍 작업에도 사용할 수 있습니다.

8051 마이크로 컨트롤러의 카운터 및 타이머에는 두 개의 특수 기능 레지스터가 있습니다. TMOD (타이머 모드 레지스터) 및 TCON (타이머 제어 레지스터) , 타이머 및 카운터를 활성화하고 구성하는 데 사용됩니다.

시프트 레지스터의 유형

시프트 레지스터는 주로 디지털 데이터 저장에 사용되는 일종의 순차 논리 회로입니다. 시프트 레지스터는 한 비트의 데이터 만 저장하는 비트 주소 지정 가능 레지스터입니다. 시프트 레지스터는 하나의 플립 플롭의 출력이 다음 플립 플롭의 입력이되도록 체인으로 연결된 플립 플롭 그룹 인 플립 플롭으로 구성됩니다.

모든 플립 플롭은 D 플립 플랩에 의해 구현되는 클럭 신호에 의해 구동됩니다. 시프트 레지스터는 주로 직렬 통신 .

이들은 4 가지 유형으로 분류됩니다.

  • 직렬 입력 직렬 출력 (SISO)
  • 직렬 병렬 출력 (SIPO)
  • 직렬 출력 병렬 (PISO)
  • 병렬 출력 병렬 출력 (PIPO)
D- 플립 플롭 레지스터

D- 플립 플롭 레지스터

이들은 모두 8051 마이크로 컨트롤러에있는 서로 다른 유형의 레지스터입니다. 각 레지스터에 적합한 프로그램과 함께 관련 콘텐츠가 성공적으로 제공 되었기를 바랍니다. 또한 여러 다른 레지스터의 코딩을 아는 데 도움이 필요하면 아래에 주석을 달아 문의 할 수 있습니다.

사진 크레딧 :