8051 마이크로 컨트롤러 및 구조 및 프로그래밍의 인터럽트

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





가장 강력하고 중요한 기능은 8051 마이크로 컨트롤러 . 대부분의 실시간 프로세스에서 특정 조건을 적절하게 처리하려면 실제 작업을 잠시 중단하고 필요한 조치를 취한 다음 기본 작업으로 돌아 가야합니다. 이러한 유형의 프로그램을 실행하려면 인터럽트가 필요합니다. 프로세서가 각 장치를 순차적으로 확인하고 더 많은 프로세서 시간을 소비하면서 서비스가 필요한지 여부를 확인해야하는 폴링 방식과 완전히 다릅니다.

8051 마이크로 컨트롤러의 인터럽트

8051 마이크로 컨트롤러의 인터럽트



8051 마이크로 컨트롤러의 인터럽트는 인터페이스 장치 또는 내장 장치의 정기적 인 상태 확인을 줄이기 위해 더 바람직합니다. 인터럽트는 주 프로그램을 일시적으로 중단하고 제어를 특수 코드 섹션으로 전달하고 이벤트 관련 기능을 실행하고 중단 된 주 프로그램 흐름을 다시 시작하는 이벤트입니다.


인터럽트는 소프트웨어 및 하드웨어, 마스크 가능 및 마스크 불가능, 고정 및 벡터 인터럽트 등과 같은 다양한 유형입니다. 인터럽트가 발생하면 ISR (Interrupt Service Routine)이 나타나고 프로세서에 인터럽트에 대한 적절한 조치를 취하도록 지시하고 ISR 실행 후 컨트롤러는 메인 프로그램으로 점프합니다.



8051 마이크로 컨트롤러의 인터럽트 유형

8051 마이크로 컨트롤러는 기본 프로그램이 정상 실행에서 중단되도록하는 다섯 가지 이벤트를 인식 할 수 있습니다. 8051에서 이러한 5 가지 인터럽트 소스는 다음과 같습니다.

  1. 타이머 0 오버플로 인터럽트-TF0
  2. 타이머 1 오버플로 인터럽트-TF1
  3. 외부 하드웨어 인터럽트-INT0
  4. 외부 하드웨어 인터럽트-INT1
  5. 직렬 통신 인터럽트-RI / TI

타이머 및 직렬 인터럽트는 마이크로 컨트롤러에 의해 내부적으로 생성되는 반면 외부 인터럽트는 추가 인터페이스 장치 또는 마이크로 컨트롤러에 외부 적으로 연결된 스위치. 이러한 외부 인터럽트는 에지 트리거 또는 레벨 트리거 될 수 있습니다. 인터럽트가 발생하면 마이크로 컨트롤러는 인터럽트 서비스 루틴을 실행하여 메모리 위치가 인터럽트를 활성화하는 인터럽트와 일치하도록합니다. 메모리 위치에 해당하는 인터럽트는 아래 인터럽트 벡터 표에 나와 있습니다.

인터럽트 벡터 테이블

인터럽트 벡터 테이블

8051 마이크로 컨트롤러의 인터럽트 구조

'RESET'시 모든 인터럽트가 비활성화되므로 이러한 모든 인터럽트는 소프트웨어에 의해 활성화되어야합니다. 이 다섯 가지 인터럽트 모두에서 누군가 또는 모두 활성화되면 그림과 같이 해당 인터럽트 플래그가 설정됩니다. 이러한 모든 인터럽트는 IE (Interrupt Enabled) 인 일부 특수 기능 레지스터에서 비트별로 설정하거나 지울 수 있으며 이는 차례로 IP 인터럽트 우선 순위 레지스터에 의해 실행되는 우선 순위에 따라 달라집니다.


8051 마이크로 컨트롤러의 인터럽트 구조

8051 마이크로 컨트롤러의 인터럽트 구조

IE (Interrupt Enable) 레지스터 : 이 레지스터는 인터럽트 활성화 및 비활성화를 담당합니다. EA는 인터럽트를 활성화하기 위해 1로 설정해야하는 비트 주소 지정이 가능한 레지스터입니다. 이 레지스터의 해당 비트는 타이머, 외부 및 직렬 입력과 같은 특정 인터럽트를 활성화합니다. 아래 IE 레지스터에서 1에 해당하는 비트는 인터럽트를 활성화하고 0은 인터럽트를 비활성화합니다.

IE (Interrupt Enable) 레지스터

IE (Interrupt Enable) 레지스터

인터럽트 우선 순위 레지스터 (IP) : 그림과 같이 IP (인터럽트 우선 순위) 레지스터에서 해당 비트를 설정하거나 지워서 인터럽트의 우선 순위 수준을 변경할 수도 있습니다. 이는 낮은 우선 순위 인터럽트가 높은 우선 순위 인터럽트를 인터럽트 할 수있게하지만 다른 낮은 우선 순위 인터럽트에 의한 인터럽트를 금지합니다. 마찬가지로 우선 순위가 높은 인터럽트는 중단 될 수 없습니다. 이러한 인터럽트 우선 순위가 프로그래밍되지 않은 경우 마이크로 컨트롤러는 사전 정의 된 방식으로 실행되며 순서는 INT0, TF0, INT1, TF1 및 SI입니다.

IP 등록

IP 등록

TCON 등록 : 위의 두 레지스터 외에도 TCON 레지스터는 그림과 같이 8051 마이크로 컨트롤러에 대한 외부 인터럽트 유형을 지정합니다. 에지 또는 레벨 트리거 여부에 관계없이 두 개의 외부 인터럽트는이 레지스터에 의해 세트로 지정되거나 적절한 비트에 의해 삭제됩니다. 또한 비트 주소 지정이 가능한 레지스터이기도합니다.

TCON 등록

TCON 등록

8051의 인터럽트 프로그래밍

1. 타이머 인터럽트 프로그래밍

타이머 0 및 타이머 1 인터럽트는 타이머 레지스터 비트 TF0 및 TF1에 의해 생성됩니다. 이러한 인터럽트 C 코드로 프로그래밍 포함 :

  • TMOD 레지스터 및 작동 모드를 구성하여 타이머를 선택합니다.
  • 적절한 모드에 대해 TLx 및 THx의 초기 값을 선택하고로드합니다.
  • IE 레지스터 및 해당 타이머 비트를 활성화합니다.
  • 타이머를 시작하기 위해 타이머 실행 비트를 설정합니다.
  • 필요한 시간에 대한 타이머의 서브 루틴을 작성하고 서브 루틴의 끝에서 타이머 값 TRx를 지 웁니다.
타이머 인터럽트 프로그래밍

타이머 인터럽트 프로그래밍

2. 외부 하드웨어 인터럽트 프로그래밍

8051 마이크로 컨트롤러는 앞에서 설명한 것처럼 INT0 및 INT1의 두 가지 외부 하드웨어 인터럽트로 구성됩니다. 이는 핀 3.2 및 핀 3.3에서 활성화됩니다. 이들은 에지 트리거 또는 레벨 트리거 일 수 있습니다. 레벨 트리거링에서 핀 3.2의 로우는 인터럽트를 활성화하고 핀 3.2에서 하이에서 로우로의 전환은 에지 트리거 인터럽트를 활성화합니다. 이 에지 트리거링 또는 레벨 트리거링은 위에서 논의한 TCON 레지스터에 의해 결정됩니다. 그만큼 8051의 프로그래밍 절차 다음과 같다:

  • IE 레지스터에서 해당 비트의 외부 인터럽트를 활성화합니다.
  • 레벨 트리거 인 경우이 인터럽트에 적합한 서브 루틴을 작성하거나 INT0 또는 INT1이든 상관없이 에지 트리거 인터럽트에 해당하는 TCON 레지스터 비트를 활성화하십시오.
외부 하드웨어 인터럽트 프로그래밍

외부 하드웨어 인터럽트 프로그래밍

3. 직렬 통신 인터럽트 프로그래밍

직렬 통신 인터럽트는 데이터를 보내거나받을 필요가있을 때 나타납니다. TI (Transfer Interrupt) 및 RI (Receiver Interrupt) 플래그 모두에 대해 하나의 인터럽트 비트가 설정되므로 인터럽트 서비스 루틴은 실제 인터럽트를 알기 위해 이러한 플래그를 검사해야합니다.

이 두 플래그 (RI 및 TI)의 논리적 OR 연산으로 인해이 인터럽트가 발생하며 이는 소프트웨어에서만 지워집니다. 여기서는 특수 레지스터 SCON이 제어에 사용됩니다. 통신 해당 비트를 활성화하여 작동합니다.

  • 직렬 인터럽트를 활성화하기위한 IE 레지스터 구성
  • 작업 수신 또는 전송을위한 SCON 레지스터 구성
  • 적절한 기능으로이 인터럽트에 대한 서브 루틴을 작성하고이 루틴에서 TI 또는 RI 플래그를 지 웁니다.
직렬 인터럽트 프로그래밍

직렬 인터럽트 프로그래밍

이것은 8051 마이크로 컨트롤러의 인터럽트, 유형, 구조 및 프로그래밍에 관한 것입니다. 이 기사에서 좋은 정보를 받았기를 바랍니다. 또한 실시간 구현을 위해 아래 댓글 섹션에서 우리에게 쓸 수 있습니다. 마이크로 컨트롤러 프로젝트 더 나은 실무 경험을 위해 도움을 드릴 수 있습니다.

사진 크레딧