1 / 13

8051 마이크로컨트롤러 제 6 장 . 인터럽트 (Interrupt)

8051 마이크로컨트롤러 제 6 장 . 인터럽트 (Interrupt). 인터럽트 (Interrupt). 인터럽트 란 ? - 인터럽트 란 , 주프로그램 수행 중에 주프로그램을 일시적으로 중지시키는 조건이나 사건 (event, 비동기적 ) 의 발생을 말함 - 인터럽트 처리 프로그램  ISR(Interrupt Service Routine) or Interrupt handler

Download Presentation

8051 마이크로컨트롤러 제 6 장 . 인터럽트 (Interrupt)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 8051 마이크로컨트롤러 제6장. 인터럽트(Interrupt) 인터럽트(Interrupt) • 인터럽트 란? - 인터럽트 란, 주프로그램 수행 중에 주프로그램을 일시적으로 중지시키는 조건이나 사건(event, 비동기적)의 발생을 말함 - 인터럽트 처리 프로그램  ISR(Interrupt Service Routine) or Interrupt handler - 주프로그램으로 복귀는 “RETI(RETurn from Interrupt)” ISR Time MAIN Program ISR ISR MAIN MAIN MAIN -1-청강문화산업대학 이동통신과

  2. 8051 마이크로컨트롤러 제6장. 인터럽트(Interrupt) IE(Interrupt Enable) - EA : 전역적 인터럽트 가능(“1”)/불가능(“0”) - ET2 : 타이머/카운터 2 인터럽트 가능 (“1”)/불가능(“0”) - (8052) - ES : 시리얼 포트 인터럽트 가능 (“1”)/불가능(“0”) - ET1 : 타이머/카운터 1 인터럽트 가능 (“1”)/불가능(“0”) - EX1 : 외부 1 인터럽트 가능 (“1”)/불가능(“0”) - ET0 : 타이머/카운터 0 인터럽트 가능 (“1”)/불가능(“0”) - EX0 : 외부 0 인터럽트 가능 (“1”)/불가능(“0”) * 비트별 SETB ET1* 전체 MOV IE, #1001000B enable SETB EA enable -2-청강문화산업대학 이동통신과

  3. 8051 마이크로컨트롤러 제6장. 인터럽트(Interrupt) IP(Interrupt Priority) - PT2 : 타이머/카운터 2 인터럽트 우선순위 (“1”) - (8052) - PS : 시리얼 포트 인터럽트 우선순위(“1”) - PT1 : 타이머/카운터 1 인터럽트 우선순위(“1”) - PX1 : 외부 1 인터럽트 우선순위(“1”) - PT0 : 타이머/카운터 0 인터럽트 우선순위(“1”) - PX0 : 외부 0 인터럽트 우선순위(“1”) * 폴링(Polling) 순서 : 외부 0 – T/C 0 - 외부 1 – T/C 1 – Serial – T/C2 IP.4를 “1”로 하면 Serial Port가 가장 우선순위가 높고, 이후 폴링 순서 -3-청강문화산업대학 이동통신과

  4. 8051 마이크로컨트롤러 제6장. 인터럽트(Interrupt) TCON - IE1 : 인터럽트 에지 1 플래그 (외부 인터럽트가 들어오면 하드웨어적으로 “1”, 인터럽트 인지 후 자동 clear) - IT1 : 인터럽트 타입 1 플래그 (외부 인터럽트를 하강에지 or 하위레벨을 소프트웨어적으로 지정) - IE0 : 인터럽트 에지 0 플래그 - IT0 : 인터럽트 타입 0 플래그 -4-청강문화산업대학 이동통신과

  5. 8051 마이크로컨트롤러 제6장. 인터럽트(Interrupt) 인터럽트 구조 -5-청강문화산업대학 이동통신과

  6. 8051 마이크로컨트롤러 제6장. 인터럽트(Interrupt) 인터럽트 처리 • 인터럽트 처리 순서 - 인터럽트가 발생하면 주프로그램 중단  현재 명령어의 수행을 마친다  스택에 PC를 저장한다  인터럽트가 더 이상 받아들여지지 않는다  ISR의 벡터 주소가 PC에 적재된다  ISR이 수행된다  RETI  복귀 • 인터럽트 벡터 - 인터럽트가 받아들여졌을 때 PC에 적재되는 값, ISR의 시작 주소 외부 0 인터럽트 0003H 시리얼 포트 인터럽트 0023H 타이머/카운터 0 인터럽트 000BH 타이머/카운터 2 인터럽트 002BH 외부 1 인터럽트 0013H 시스템 리셋 0000H 타이머/카운터 1 인터럽트 001BH -6-청강문화산업대학 이동통신과

  7. 8051 마이크로컨트롤러 제6장. 인터럽트(Interrupt) 인터럽트 벡터 • 작은/큰 ISR의 처리 - 각각의 인터럽트 벡터 사이에는 8바이트의 코드 공간이 있음. 따라서 ISR이 8바이트 이내이면 이 공간을 사용  예제 6-1 - 하지만 ISR이 8바이트 이상이면 별도 공간을 사용  예제 6-2 * 외부 0, 1, T/C 0, 1은 인터럽트가 발생하면 IE0, IE1, TF0, TF1은 하드웨어에 의해 자동적으로 clear 된다. 하지만 시리얼 포트, T/C2는 안됨 -7-청강문화산업대학 이동통신과

  8. 8051 마이크로컨트롤러 제6장. 인터럽트(Interrupt) 실험(예제 6-1) • T/C 0과 인터럽트를 사용하여 P1.0에서 10KHz 구형파 생성 ORG 8000H JMP MAIN ORG 800BH ; T/C 0의 인터럽트 벡터 T0ISR: CPL P1.0 ;ISR RETI ORG 8030H ; 주프로그램 MAIN: MOV TMOD, #02H MOV TH0, #-50 SETB TR0 MOV IE, #82H JMP $ END -8-청강문화산업대학 이동통신과

  9. 8051 마이크로컨트롤러 제6장. 인터럽트(Interrupt) 실험(예제 6-2) • 핀 P1.4과 핀 P1.0에 7KHz와 500Hz 구형파를 동시에 발생할 수 있도록 인터럽트를 사용하여 프로그램을 작성 - 12MHz 사용 - 7KHz 반주기(T/2)는 –71us  T/C 0(모드2), TH0 : -71 - 500Hz 반주기(T/2)는 –1000us  T/C 1(모드1), TH1/TL1 : -1000 -9-청강문화산업대학 이동통신과

  10. 8051 마이크로컨트롤러 제6장. 인터럽트(Interrupt) 실험(예제 6-2) ORG 8000H JMP MAIN ; ORG 800BH T0ISR: CPL P1.4 JMP T0ISR RETI ORG 801BH ; JMP T1ISR T1ISR: CLR TR1 ORG 8030H MOV TH1, #HIGH(-1000) MAIN: MOV TMOD, #12H MOV TL1, #LOW(-1000) MOV TH0, #-71 SETB TR1 SETB TR0 CPL P1.0 SETB TF1 RETI MOV IE, #8AH ; JMP $ END -10-청강문화산업대학 이동통신과

  11. 8051 마이크로컨트롤러 제6장. 인터럽트(Interrupt) 실험(예제 6-5) • INT0에 고-저 트랜지션 신호가 올 때마다 핀 P1.0에서 10초 동안 400Hz 펄스를 낼 수 있도록 인터럽트를 사용한 시스템을 설계 - 12MHz 사용 - 10초 10초 = 200  50,000us 200은 R7에, 50,000us는 T/C 0 (모드1), TH0/TL0 : -50000 - 400Hz 반주기(T/2)는 –1250us  T/C 1(모드1), TH1/TL1 : -1250 -11-청강문화산업대학 이동통신과

  12. 8051 마이크로컨트롤러 제6장. 인터럽트(Interrupt) 실험(예제 6-5) ORG 8000H EX0ISR:MOV R7, #200 JMP MAIN SETB TF0 MOV TLO, #LOW(-50000) JMP EX0ISR SETB TF1 SETB TR0 ORG 800BH SETB ET0 EXIT: RETI JMP T0ISR SETB ET1 ; ORG 801BH RETI T1ISR: CLR TR1 JMP T1ISR ; MOV TH1, #HIGH(-1250) ORG 8030H T0ISR: CLR TR0 MOV TL1, #LOW(-1250) MAIN: SETB IT0 DJNZ R7, SKIP CPL P1.0 MOV TMOD, #11H CLR ET0 SETB TR1 MOV IE, #81H CLR ET1 RETI JMP $ JMP EXIT ; SKIP: MOV TH0, #HIGH(-50000) END -12-청강문화산업대학 이동통신과

  13. 8051 마이크로컨트롤러 제6장. 인터럽트(Interrupt) 과제물(Report) • 기한 : 기말고사 전에 강의도우미가 수거하여 제출 1. 예제 6-5 : 문제, 프로그램, 설명 기재 * 자필로 작성해야 함(가급적 A4지 1장에 기재) -13-청강문화산업대학 이동통신과

More Related