INTERUPSI/INTERRUPT

12
1 INTERUPSI/INTERRUPT Interupsi adalah suatu kejadian/peristiwa yang menyebabkan mikrokontroller berhenti sejenak untuk melayani interupsi tersebut dengan menjalankan program yang berada pada alamat yang ditunjuk oleh vektor/lokasi dari interupsi yang terjadi hingga selesai dan kembali meneruskan program yang terhenti oleh interupsi tadi.

description

INTERUPSI/INTERRUPT Interupsi adalah suatu kejadian/peristiwa yang menyebabkan mikrokontroller berhenti sejenak untuk melayani interupsi tersebut dengan menjalankan program yang berada pada alamat yang ditunjuk - PowerPoint PPT Presentation

Transcript of INTERUPSI/INTERRUPT

Page 1: INTERUPSI/INTERRUPT

1

INTERUPSI/INTERRUPT

Interupsi adalah suatu kejadian/peristiwa yang menyebabkan mikrokontroller berhenti sejenak untuk melayani interupsi tersebut dengan menjalankan program yang berada pada alamat yang ditunjuk oleh vektor/lokasi dari interupsi yang terjadi hingga selesai dan kembali meneruskan program yangterhenti oleh interupsi tadi.

Page 2: INTERUPSI/INTERRUPT

2

Program yang dijalankan pada saat melayani interupsi disebut Interrupt Service Routine ( Rutin Layanan Interupsi )

Page 3: INTERUPSI/INTERRUPT

3

Interupsi pada MCS-51 dibedakan dalam 2 jenis

1. Interupsi yang tidak dapat dihalangi oleh perangkat lunak ( Non Maskable Interrupt ) misal : RESET

2. Interupsi yang dapat dihalangi oleh perangkat lunak ( Maskable Interrupt ) misal : INT0 , INT1 , ( Eksternal )

T0 (Timer0) , T1 (Timer1) – Interupsi dari

port Serial ( Internal )

Page 4: INTERUPSI/INTERRUPT

4

Prioritas interupsi pada kondisi standart

Prioritas Jenis Interupsi

1 Interupsi Eksternal 0

2 Interupsi Timer 0

3 Interupsi Eksternal 1

4 Interupsi Timer 1

5 Interupsi Serial

Interupsi yang mempunyai prioritas interupsi lebih tinggi, tidak dapat diinterupsi oleh interupsi yang mempunyai prioritas lebih rendah.

Page 5: INTERUPSI/INTERRUPT

5

Pengaktif InterupsiPengaturan keaktifan interupsi dilakukan pada Register Interrupt Enable / Register IE (Register Pengaktif Interupsi) yang terletak di memory internal A8H

EA - - ES ET1 EX1 ET0 EX0

IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0

A8H

Ket.EA : Menonaktifkan semua interupsi jika bit ini clear

( berisi 0 ). Bila ada interupsi yang akan diaktifkan

maka bit ini harus set ( berisi 1 ) ES : Untuk interupsi port Serial, 1 = Aktif , 0 =

NonaktifET1 : Untuk interupsi T1 (Timer 1), 1 = Aktif , 0 =

Nonaktif

Page 6: INTERUPSI/INTERRUPT

6

EX1 : Untuk interupsi Eksternal 1 ( INT1 ),1 = Aktif , 0 = Nonaktif

ET0 : Untuk interupsi T0 (Timer 0), 1 = Aktif , 0 = NonaktifEX0 : Untuk interupsi Eksternal 0 ( INT0 ) ,

1 = Aktif , 0 = Nonaktif

Prioritas interupsiPada aplikasi yang menggunakan lebih dari satu interupsi,dapat saja terjadi interupsi lain pada saat sebuah rutin interupsi sedang dijalankan.Untuk menentukan apakah sebuah interupsi dapat menginterupsi saat sebuah rutin interupsi lain sedang berjalan bergantung pada prioritas dari interupsi tersebut.

Page 7: INTERUPSI/INTERRUPT

7

Prioritas interupsi standart tersebut dapat diubah dengan melakukan inisialisasi pada Register Interrupt Priority ( IP ) yang berada di alamat B8H

- - PT2 PS PT1 PX1 PT0 PX0 IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0

B8H

PT2 : Priority Timer 2 Interrupt, bit yang mengatur prioritas interupsi timer 2 ( untuk type AT89C52 )

PS : Priority Serial Interrupt, bit yang mengatur prioritas interupsi serial

PT1 : Priority Timer 1 Interrupt, bit yang mengatur prioritas interupsi timer 1

PX1 : Priority Eksternal 1 Interrupt, bit yang mengatur prioritas

interupsi eksternal 1PT0 : Priority Timer 0 Interrupt, bit yang mengatur prioritas

interupsi timer 0PX0 : Priority Eksternal 0 Interrupt, bit yang mengatur

prioritas interupsi eksternal 0

Page 8: INTERUPSI/INTERRUPT

8

Timer Control Register ( TCON )Register TCON mempunyai 4 bit yg berhubungan langsung dengan Timer yaitu : TCON.4 , TCON.5 , TCON.6 , TCON.7Sedangkan 4 bit yang lain berhubungan dengan interrupt yaitu : TCON.3 , TCON.2 , TCON.1 , TCON.0

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON.7 (TF1) : Timer 1 Overflag yang akan diset jika timer overflow

Bit ini dapat di-clear oleh software atau hardware.TCON.6 (TR1): 1 = Timer 1 Aktif

0 = Timer 1 NonaktifTCON.5 (TF0) : Timer 1 Overflag yang akan diset jika timer overflow

Bit ini dapat di-clear oleh software atau hardware.TCON.4 (TR0) : 1 = Timer 0 Aktif

0 = Timer 0 Nonaktif

88H

Dapat diakses secara bit ( bit addressable )

Register T I M E R Register Interrupt

Page 9: INTERUPSI/INTERRUPT

9

Vektor/Lokasi InterupsiVektor/Lokasi interupsi adalah nilai yang disimpan ke program Counter (PC) pada saat terjadi interupsi sehingga program akan menuju ke alamat yang ditunjukkan oleh program counter (PC).

Vektor/Lokasi Interupsi

Interupsi Alamat LokasiSistem RESET 00HInterupsi Eksternal 0 03HInterupsi Timer 0 0BHInterupsi Eksternal 1 13HInterupsi Timer 1 1BHInterupsi Serial 23H

Page 10: INTERUPSI/INTERRUPT

10

Masing-masing alamat lokasi interupsi mempunyai jarak yang berdekatan, sehingga apabila kedua interupsi yang jaraknya berdekatan tersebut akan difungsikan harus dilakukan triktrik program sebagai berikut:

ORG 00H INT_0: ……. LJMP START ……. ORG 03H ……. LJMP INT_0 ……. ORG 13H RETI LJMP INT_1 INT_1: ……. ORG 100H

…….START: ……. …….

Setb IE.7 RETI Setb IE.2 ……. Setb IE.1 END ……. ( RETI = Return Interrupt )

Page 11: INTERUPSI/INTERRUPT

11

• Contoh program interruptorg 4000hsjmp startorg 4003hmov p1,#0ffhcall delaymov p1,#00hcall delayreti;org 4100hstart: mov tcon,#01hmov ie,#81hmov p1,#0aah

Page 12: INTERUPSI/INTERRUPT

12

Delay: mov r5,#0ffhLoop1: mov r6,#0ffhLoop2: djnz r6,loop2

djnz r5,loop1ret

end