마이크로 컨트롤러-8051 인터럽트
인터럽트는 주 프로그램을 일시적으로 중단하고 제어를 외부 소스로 전달하고 작업을 실행하는 이벤트입니다. 그런 다음 중지 된 주 프로그램으로 제어를 전달합니다.
8051에는 INT0, TFO, INT1, TF1, RI / TI의 5 가지 인터럽트 신호가 있습니다. 각 인터럽트는 IE 레지스터의 비트를 설정하여 활성화 또는 비활성화 할 수 있으며 전체 인터럽트 시스템은 동일한 레지스터의 EA 비트를 삭제하여 비활성화 할 수 있습니다.
IE (Interrupt Enable) 레지스터
이 레지스터는 인터럽트 활성화 및 비활성화를 담당합니다. EA 레지스터는 인터럽트를 활성화하려면 1로 설정되고 인터럽트를 비활성화하려면 0으로 설정됩니다. 다음 그림은 비트 시퀀스와 의미를 보여줍니다.
EA | IE.7 | 모든 인터럽트를 비활성화합니다. EA = 0이면 인터럽트가 인식되지 않고 EA = 1은 인터럽트를 개별적으로 활성화합니다. |
- | IE.6 | 향후 사용을 위해 예약되었습니다. |
- | IE.5 | 향후 사용을 위해 예약되었습니다. |
ES | IE.4 | 직렬 포트 인터럽트를 활성화 / 비활성화합니다. |
ET1 | IE.3 | timer1 오버플로 인터럽트를 활성화 / 비활성화합니다. |
EX1 | IE.2 | 외부 인터럽트 1을 활성화 / 비활성화합니다. |
ET0 | IE.1 | timer0 오버플로 인터럽트를 활성화 / 비활성화합니다. |
EX0 | IE.0 | 외부 인터럽트 0을 활성화 / 비활성화합니다. |
IP (Interrupt Priority) 레지스터
다음 그림과 같이 IP (인터럽트 우선 순위) 레지스터에서 해당 비트를 변경하여 인터럽트의 우선 순위 수준을 변경할 수 있습니다.
낮은 우선 순위 인터럽트는 높은 우선 순위 인터럽트에 의해서만 인터럽트 될 수 있으며 다른 낮은 우선 순위 인터럽트에 의해 인터럽트되지 않습니다.
서로 다른 우선 순위 레벨의 두 인터럽트가 동시에 수신되면 더 높은 우선 순위 레벨의 요청이 제공됩니다.
동일한 우선 순위 수준의 요청이 동시에 수신되는 경우 내부 폴링 시퀀스에 따라 처리 할 요청이 결정됩니다.
- | IP.6 | 향후 사용을 위해 예약되었습니다. |
- | IP.5 | 향후 사용을 위해 예약되었습니다. |
추신 | IP.4 | 직렬 포트 인터럽트 우선 순위 수준을 정의합니다. |
PT1 | IP.3 | 1 우선 순위의 타이머 인터럽트를 정의합니다. |
PX1 | IP.2 | 외부 인터럽트 우선 순위 레벨을 정의합니다. |
PT0 | IP.1 | timer0 인터럽트 우선 순위 레벨을 정의합니다. |
PX0 | IP.0 | 0 우선 순위 레벨의 외부 인터럽트를 정의합니다. |
TCON 등록
TCON 레지스터는 마이크로 컨트롤러에 대한 외부 인터럽트 유형을 지정합니다.