8051 인터럽트 인터페이스

55
8051 인인인인 인인인인인 인인인 인인인 인인인인인인인 인인인

description

8051 인터럽트 인터페이스. 순천향 대학교 정보기술공학부 이상정. 인터럽트 개념. CPU 내부 또는 외부의 요구에 의해서 정상적인 프로그램의 실행 순서를 변경하여 보다 시급한 작업 ( 인터럽트서비스 루틴 ) 을 먼저 수행한 후에 다시 원래의 프로그램으로 복귀하는 것 인터럽트는 주변장치의 서비스 요청에 CPU 가 가장 빠르게 대응할 수 있는 방법 . 주변장치측으로 부터의 발생 시기를 예측하기 어려운 비동기적인 일 (event, 사건 ) 을 CPU 가 빠르게 처리 . - PowerPoint PPT Presentation

Transcript of 8051 인터럽트 인터페이스

Page 1: 8051 인터럽트 인터페이스

8051 인터럽트 인터페이스

순천향 대학교 정보기술공학부

이상정

Page 2: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 2

마이크로프로세서

8051 인터럽트 인터페이스

인터럽트 개념 CPU 내부 또는 외부의 요구에 의해서 정상적인

프로그램의 실행 순서를 변경하여 보다 시급한 작업 ( 인터럽트서비스 루틴 ) 을 먼저 수행한 후에 다시 원래의 프로그램으로 복귀하는 것• 인터럽트는 주변장치의 서비스 요청에 CPU 가 가장

빠르게 대응할 수 있는 방법 .• 주변장치측으로 부터의 발생 시기를 예측하기 어려운

비동기적인 일 (event, 사건 ) 을 CPU 가 빠르게 처리 .• 서로 비동기적으로 동작하는 CPU( 매우 고속으로

동작 ) 와 주변장치 ( 비교적 저속으로 동작 ) 사이에서 효율적으로 일을 수행하는 중요한 수단 .

Page 3: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 3

마이크로프로세서

8051 인터럽트 인터페이스

인터럽트 개념

Page 4: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 4

마이크로프로세서

8051 인터럽트 인터페이스

인터럽트의 종류 인터럽트 발생 원인에 따른 분류

• 하드웨어 인터럽트• 내부 인터럽트• 외부 인터럽트

• 소프트웨어 인터럽트 인터럽트 발생시 마이크로프로세서의 반응 방식에

따른 분류• 차단 가능 인터럽트 (maskable interrupt)• 차단 불가능 인터럽트 (non-maskable interrupt)

인터럽트를 요구한 외부 하드웨어를 확인하는 방법에 따른 분류• 조사형 인터럽트 (polled interrupt)• 벡터형 인터럽트 (vectored interrupt)

Page 5: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 5

마이크로프로세서

8051 인터럽트 인터페이스

인터럽트의 우선순위 제어 인터럽트 우선순위 (priority) 제어의 필요성

• 2 개 이상의 주변장치가 동시에 신호를 보내 인터럽트를 요청하는 경우

• 하 나 의 인 터 럽 트 가 서 비 스 되 고 있 는 동 안 에 또 다 른 인터럽트가 요청되는 경우

조사형 인터럽트의 경우• CPU 가 각 주변장치를 소프트웨어적으로 차례로 폴링하는

순서에 의하여 인터럽트의 우선순위가 결정• 필요할 때마다 소프트웨어를 수정하여 손쉽게 우선순위를

변경하는 것이 가능 인터럽트 제어기를 사용하는 벡터형 인터럽트의 경우

• 하드웨어 인터럽트 인터페이스가 우선순위 결정• 인터럽트 마스크 레지스터 또는 인터럽트 허용 레지스터를

가지고 있어서 인터럽트 허용 여부를 설정• 인터럽트 우선순위 제어 레지스터로 우선순위를 지정

Page 6: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 6

마이크로프로세서

8051 인터럽트 인터페이스

인터럽트의 처리 과정

Page 7: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 7

마이크로프로세서

8051 인터럽트 인터페이스

80C32 에서의 인터럽트 종류

80C32 에서는 8 가지의 인터럽트 소스와 6가지의 인터럽트 벡터

이 모든 인터럽트들은 SFR 의 레지스터에 인터럽트 요청 사실을 표시하는 플랙 비트를 가지고 있다 . • 따라서 , 인터럽트가 허용되지 않은 상태에서도 이

비트들을 폴링 (polling) 하면 인터럽트 요청 사실을 확인할 수 있고 , 이 비트들을 소프트웨어적으로 세트시킴으로써 인위적으로 인터럽트를 발생시킬 수도 있다 .

Page 8: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 8

마이크로프로세서

8051 인터럽트 인터페이스

80C32 에서의 인터럽트 종류

Page 9: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 9

마이크로프로세서

8051 인터럽트 인터페이스

80C32 에서의 인터럽트 종류

Page 10: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 10

마이크로프로세서

8051 인터럽트 인터페이스

외부 인터럽트 INT0’ INT1’

TCON(Timer CONtrol) 레지스터로 제어

Page 11: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 11

마이크로프로세서

8051 인터럽트 인터페이스

TCON 레지스터

TCON 레지스터 • IT0 IT1 = 0 이면 레벨 트리거 (level trigger) 설정• IT0 IT1= 1 이면 하강 에지 (falling edge) 에 의한

에지 트리거 (edge trigger) 방식• 인터럽트 에지 플랙 IE0 및 IE1 은 인터럽트가

발생되면 세트되고 해당 인터럽트 서비스 루틴이 호출되어 처리가 시작되면 자동으로 클리어

• 레벨 트리거인 경우에는 IE0 IE1 에 영향을 주지 않음

• SFR 88H 번지에 매핑되어 비트 단위 제어 가능

Page 12: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 12

마이크로프로세서

8051 인터럽트 인터페이스

TCON 레지스터

예• CLR TCON.0 ; level trigger for INT0

CLR IT0• SETB TCON.0 ; edge trigger for

INT0SETB IT0

• CLR TCON.2 ; level trigger for INT1CLR IT1

• SETB TCON.2 ; edge trigger for INT1SETB IT1

Page 13: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 13

마이크로프로세서

8051 인터럽트 인터페이스

인터럽트의 샘플링 및 허용

80C32 에서 모든 인터럽트 플랙은 각 머신 사 이 클 의 S5P2(p.56) 에 서 한 차 례 씩 샘플링된다 .• 다만 , 예외적으로 타이머 2 의 TF2 플랙만은 각

머신 사이클의 S2P2 에서 샘플링

검출된 인터럽트의 허용 여부는 IE(Interrupt Enable) 레지스터로 설정• 각 인터럽트는 비트 0-5 를 사용하여 개별적으로

허용 여부를 설정• 비 트 7 인 EA(Enable All) 비 트 를 사 용 하 여

전체적으로 허용 여부를 설정한

Page 14: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 14

마이크로프로세서

8051 인터럽트 인터페이스

IE(Interrupt Enable) 레지스터

Page 15: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 15

마이크로프로세서

8051 인터럽트 인터페이스

IE 레지스터

SFR A8 번지에 매핑되어 비트 단위 제어 가능 예

• 어떤 인터럽트도 허용하지 않음CLR EA ; CLR IE.7

• 외부 인터럽트 0(INT0) 및 직렬포트 인터럽트 허용SETB EA ; SETB IE.7SETB EX0 ; SETB IE.0SETB ES ; SETB IE.4

MOV IE, #10010001B

Page 16: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 16

마이크로프로세서

8051 인터럽트 인터페이스

인터럽트의 우선순위 제어

80C32 에서는 인터럽트 우선순위 제어 레지스터 IP(Interrupt Priority Register) 와 IPH(Interrupt Priority High Register)를 사용하여 4 단계의 인터럽트 우선순위 레벨을 설정

Page 17: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 17

마이크로프로세서

8051 인터럽트 인터페이스

인터럽트의 우선순위 제어

낮은 레벨로 설정된 인터럽트가 처리되고 있는 동안에 이보다 높은 레벨의 인터럽트가 발생할 수 있다 .

그 러 나 , 현 재 처 리 되 고 있 는 것 과 동 일 한 우선순위 레벨의 인터럽트나 이보다 낮은 레벨의 인터럽트는 발생될 수 없다 .

서로 다른 우선순위 레벨을 가지는 인터럽트들이 2 개 이상 동시에 요청되면 가장 높은 순위의 인터럽트가 먼저 허용되어 처리된다 .

Page 18: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 18

마이크로프로세서

8051 인터럽트 인터페이스

IP 레지스터

• SFR 주소 B8H 로 비트 단위 처리 가능

Page 19: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 19

마이크로프로세서

8051 인터럽트 인터페이스

IPH 레지스터

• SFR 주소 B7H 로 비트 단위로 처리 안됨

Page 20: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 20

마이크로프로세서

8051 인터럽트 인터페이스

Page 21: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 21

마이크로프로세서

8051 인터럽트 인터페이스

IP, IPH 레지스터

예• INT0 레벨 3 우선순위 세트

SETB PX0MOV 0B7H, #1 // SETB PX0H

• INT1 레벨 2 우선순위 세트 CLR PX1MOV 0B7H, #4 // SETB PX1H

Page 22: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 22

마이크로프로세서

8051 인터럽트 인터페이스

1. INT0 인터럽트 프로그램 예

외부 인터럽트 소스 INT0 에 하강에지의 인터럽트를 가할 때 마다 병렬포트 P0 값이 반전되고 메모리 30H 번지의 내용이 증가하는 프로그램

시뮬레이터에서 내부 주변장치 제어 방법• Peripherals 메뉴• 서브메뉴

InterruptsI/O-Ports -> Port 0,1,2,3Serial Timer -> Timer 0, 1, 2

Page 23: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 23

마이크로프로세서

8051 인터럽트 인터페이스

1. INT0 인터럽트 프로그램 예

시뮬레이션에서 외부 인터럽트 인가 방법• INT0 외부 핀은 병렬포트 3 의 2 번째 비트 (P3.2)

에 연결• INT1 외부 핀은 병렬포트 3 의 3 번째 비트 (P3.3)

에 연결• 따라서 메뉴에서 병렬포트 3 을 선택하여 해당

비트의 값을 세팅하면 인터럽트 효과

Page 24: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 24

마이크로프로세서

8051 인터럽트 인터페이스

1. INT0 인터럽트 프로그램 예 인터럽트 허용 및 우선순위 , 에지트리거

• 인터럽트 허용IE 레지스터의 IE.7(EA) 와 IE.0 세트

• 인터럽트 우선순위IP, IPH 레지스터의 비트 0 을 1 로 세트하여 최고의 우선순위 부여 (IPH 레지스터는 비트 단위 세트 안됨 )

• TCON 의 비트 0 세트하여 에지 트리리거 동작 세트

SETB IP.0 ; set highest interrupt priorityMOV 0B7H, #1 ; IPH bit 0 set, cannot set a bitSETB EA ; enable global bit IE.7SETB IE.0 ; enable interupt for INT0SETB TCON.0 ; edge trigger for INT0

Page 25: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 25

마이크로프로세서

8051 인터럽트 인터페이스

1. INT0 인터럽트 프로그램 예CSEG AT 8000H

; Initialize interrupt control for INT0SETB IP.0 ; set highest interrupt priorityMOV 0B7H, #1 ; IPH bit 0 set, cannot set a bitSETB EA ; enable global bit IE.7SETB IE.0 ; enable interupt for INT0SETB TCON.0 ; edge trigger for INT0

; initial output of LED dataMOV P0, #0CLR 30H

Page 26: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 26

마이크로프로세서

8051 인터럽트 인터페이스

1. INT0 인터럽트 프로그램 예; main routin

LOOP: JMP LOOP ; infinite loop

; interrupt service routine, ; toggle P0, Increment 30HINT0_ISR: XRL P0,#0FFH

INC 30HRETI

CSEG AT 0003H ; INT0 interrupt vectoring from 0003H

JMP INT0_ISREND

Page 27: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 27

마이크로프로세서

8051 인터럽트 인터페이스

Page 28: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 28

마이크로프로세서

8051 인터럽트 인터페이스

Page 29: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 29

마이크로프로세서

8051 인터럽트 인터페이스

Page 30: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 30

마이크로프로세서

8051 인터럽트 인터페이스

Page 31: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 31

마이크로프로세서

8051 인터럽트 인터페이스

Page 32: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 32

마이크로프로세서

8051 인터럽트 인터페이스

Page 33: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 33

마이크로프로세서

8051 인터럽트 인터페이스

Page 34: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 34

마이크로프로세서

8051 인터럽트 인터페이스

Page 35: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 35

마이크로프로세서

8051 인터럽트 인터페이스

Page 36: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 36

마이크로프로세서

8051 인터럽트 인터페이스

Page 37: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 37

마이크로프로세서

8051 인터럽트 인터페이스

Page 38: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 38

마이크로프로세서

8051 인터럽트 인터페이스

Page 39: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 39

마이크로프로세서

8051 인터럽트 인터페이스

Page 40: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 40

마이크로프로세서

8051 인터럽트 인터페이스

Page 41: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 41

마이크로프로세서

8051 인터럽트 인터페이스

Page 42: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 42

마이크로프로세서

8051 인터럽트 인터페이스

Page 43: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 43

마이크로프로세서

8051 인터럽트 인터페이스

C51 인터럽트 서비스 루틴 함수 인터럽트 서비스 루틴 함수

void function_name(void) [interrupt n][using n] { ………….}• 인수나 리턴값은 지정할 수 없음• interrupt n 으로 벡터번호 지정• using n 으로 레지스터 뱅크 지정

예unsigned int cnt, sec;void timer0(void) interrupt 1 using 2 { if (++cnt == 4000) { sec++; cnt = 0; }}

Page 44: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 44

마이크로프로세서

8051 인터럽트 인터페이스

2. INT0 인터럽트 C 프로그램 예

외부 인터럽트 소스 INT0 에 하강에지의 인터럽트를 가할 때 마다 병렬포트 P0 값이 반전되고 메모리 30H 번지의 내용이 증가하는 C 프로그램

REG52.H 파일에 SFR 등이 정의

Page 45: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 45

마이크로프로세서

8051 인터럽트 인터페이스

2. INT0 인터럽트 C 프로그램 예#include <REG52.H>

sfr IPH = 0xB7; /* define IPH register */unsigned char count _at_ 0x30;

void extint0(void) interrupt 0{ P0 ^= 0xff; /* toggle parallel port 0 */ ++count; /* increment M[30H] */}

Page 46: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 46

마이크로프로세서

8051 인터럽트 인터페이스

2. INT0 인터럽트 C 프로그램 예main(){ /* set highest interrupt priority 3 */ IP = 1; IPH = 1; /* interrupt enable */ IE = 0x81; /* INT0 edge trigger */ TCON = 1; /* initialize memory, parallel port */ count = 0; P0 = 0; /* infinite loop */ while (1) ;}

Page 47: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 47

마이크로프로세서

8051 인터럽트 인터페이스

Page 48: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 48

마이크로프로세서

8051 인터럽트 인터페이스

Page 49: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 49

마이크로프로세서

8051 인터럽트 인터페이스

Page 50: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 50

마이크로프로세서

8051 인터럽트 인터페이스

Page 51: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 51

마이크로프로세서

8051 인터럽트 인터페이스

Page 52: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 52

마이크로프로세서

8051 인터럽트 인터페이스

Page 53: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 53

마이크로프로세서

8051 인터럽트 인터페이스

Page 54: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 54

마이크로프로세서

8051 인터럽트 인터페이스

Page 55: 8051 인터럽트 인터페이스

순천향대학교 정보기술공학부 이 상 정 55

마이크로프로세서

8051 인터럽트 인터페이스

프로그램 과제

프로그램 1,2 를 수행하여라 외부 인터럽트 소스 INT1 에 하강에지로

인터럽트를 가할 때 마다 병렬포트 P1 의 값과 메모리 50H 번지의 값이 증가하는 어셈블리와 C 프로그램을 각각 작성하라 ( 단 , 인터럽트의 우선순위는 2 로 둔다 ).