Anda di halaman 1dari 19

LABORATORIUM PEMBELAJARAN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER


UNIVERSITAS BRAWIJAYA

PRAKTIKUM SISTEM MIKROKONTROLER

SEMESTER : GANJIL TAHUN : 2021/2022

BAB II

JUDUL BAB : INTERUPSI


NAMA : JASON WIJAYA
NIM : 205150307111029
TANGGAL PELAKSANAAN : 21 SEPTEMBER 2021
ASISTEN : - MUHAMMAD FATHAM MUBINA A.
- RANDY CHRISTIAN SAPUTRA

KOORDINATOR ASISTEN : RANDY CHRISTIAN SAPUTRA


DOSEN PENGAMPU : AGUNG SETIA BUDI, S.T., M.T., Ph.D.

Pengesahan
Tanggal:
Asisten
LABORATORIUM PEMBELAJARAN ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA

BAB : INTERUPSI
NAMA : JASON WIJAYA
NIM : 205150307111029
TANGGAL : 21/09/2021
ASISTEN : - MUHAMMAD FATHAM MUBINA A
- RANDY CHRISTIAN SAPUTRA
TUGAS / LAPORAN

Percobaan 1.1: Tanpa Interupsi


A. Source Code
Percobaan21.int
1 #include <avr/io.h>
2 #include <util/delay.h>
3 #include <avr/interrupt.h>
4 #define F_CPU 1000000UL
5 #define LED PORTC
6 #define LEDDir DDRC
7 int main(void)
8 {
9 LEDDir = 0xFF;
10 LED = 0xFF;
11 DDRD = 0x00;
12 PORTD = 0xFF;
13 while (1)
14 {
15 LED = 0b00000001; _delay_ms(1000);
16 LED = 0b00000010; _delay_ms(1000);
17 LED = 0b00000100; _delay_ms(1000);
18 LED = 0b00001000; _delay_ms(1000);
19 LED = 0b00010000; _delay_ms(1000);
20 LED = 0b00100000; _delay_ms(1000);
21 LED = 0b01000000; _delay_ms(1000);
22 LED = 0b10000000; _delay_ms(1000);
23
24 if(PIND == 0b11110111){
25 LED = 0xF0; _delay_ms(1000);
26 }
27 }
}

B. Penjelasan Kode
Percobaan21.int
1 Memanggil library untuk input output.
2 Memanggil library delay.
3 Memanggil library untuk interrupt.
4 Menggunakan internal clock 1MHz.
5 Mendefine LED sebagai PORTC.
6 Mendefine LEDDir sebagai DDRC.
7 Fungsi utama program.
8
9 Inisialisasi PORTC (pin untuk LEDDir) sebagai keluaran.
10 Memberi nilai awal PORTC (pin untuk LEDDir) = 1.
11 Inisialisasi PORTD sebagai input.
12 Memberi nilai awal PORTD = 1.
13 Fungsi perulangan while
14
15 Menyalakan LED pada bit 0 (C.0) dengan delay 1000ms
16 Menyalakan LED pada bit 1 (C.1) dengan delay 1000ms
17 Menyalakan LED pada bit 2 (C.2) dengan delay 1000ms
18 Menyalakan LED pada bit 3 (C.3) dengan delay 1000ms
19 Menyalakan LED pada bit 4 (C.4) dengan delay 1000ms
20 Menyalakan LED pada bit 5 (C.5) dengan delay 1000ms
21 Menyalakan LED pada bit 6 (C.6) dengan delay 1000ms
22 Menyalakan LED pada bit 7 (C.7) dengan delay 1000ms
23
24 Jika pin D.3 bernilai 0 atau push button 1 ditekan
25 Menyalakan LED pada pin C7-C4 dengan delay 1000ms
26
C. Screenshot Hasil Simulasi
- Nyala LED setelah program dijalankan

- Nyala LED setelah nyala LED C7 dan ketika PUSH1 ditekan


D. Analisis 1.1
- Ceritakan bagaimana urutan nyala LedBar setelah program diisikan pada
mikrokontroler dan simulasi dijalankan.
Jawab: LED bergantian menyala selama 1 detik dari bit terkecil ke bit
terbesar (PIN C0-PIN C7).

- Tekan dan tahan Push 1 (terhubung ke D3) hingga LedBar bagian atas selesai
menyala. Ceritakan bagaimana pola nyala LedBar pada saat switch ditekan.
Jawab: Saat LED pada PIN C7 selesai menyala, LED yang berada di bagian
atas (PIN C4-PIN C7) menyala secara bersamaan, lalu dilanjutkan dengan
menyalakan LED pada PIN C0.

- Kode program baris ke berapakah yang berfungsi untuk memeriksa input dan
mengubah pola nyala LedBar saat Push 1 ditekan?
Jawab: Kode program pada baris ke 24 dan 25.

- Tekan Push bit 3 sekali lagi dalam waktu singkat dan tanpa ditahan. Ulagi
beberapa kali untuk memastikan. Dapatkah mikrokontroler menjalankan kode
program pada soal no 3 seketika pada saat switch ditekan? Jelaskan.
Jawab: Ketika Push bit 3 ditekan dalam waktu singkat tanpa ditahan, LED akan
menyala seperti biasa tanpa adanya perubahan pola seperti soal no 3. Hal
tersebut dikarenakan kita tidak menggunakan sistem interrupt.
Percobaan 1.2: Interupsi
A. Source Code
Percobaan22.int
1 #include <avr/io.h>
2 #include <util/delay.h>
3 #include <avr/interrupt.h>
4 #define F_CPU 1000000UL
5 #define LED PORTC
6 #define LEDDir DDRC
7 int main(void)
8 {
9 LEDDir = 0xFF;
10 LED = 0xFF;
11 DDRD = 0x00;
12 PORTD = 0xFF;
13 GICR = 1<<INT1;
14 MCUCR = 1<<ISC10 | 1<<ISC11;
15 sei();
16 while (1)
17 {
18 LED = 0b00000001; _delay_ms(1000);
19 LED = 0b00000010; _delay_ms(1000);
20 LED = 0b00000100; _delay_ms(1000);
21 LED = 0b00001000; _delay_ms(1000);
22 LED = 0b00010000; _delay_ms(1000);
23 LED = 0b00100000; _delay_ms(1000);
24 LED = 0b01000000; _delay_ms(1000);
25 LED = 0b10000000; _delay_ms(1000);
26 }
27 }
28 ISR(INT1_vect)
29 {
30 LED = 0xF0; _delay_ms(1000);
31 }

B. Penjelasan Kode
Percobaan22.int
1 Memanggil library untuk input output.
2 Memanggil library delay.
3 Memanggil library untuk interrupt.
4 Menggunakan internal clock 1MHz.
5 Mendefine LED sebagai PORTC.
6 Mendefine LEDDir sebagai DDRC.
7 Fungsi utama program.
8
9 Inisialisasi PORTC (pin untuk LEDDir) sebagai keluaran.
10 Memberi nilai awal PORTC (pin untuk LEDDir) = 1.
11 Inisialisasi PORTD sebagai input.
12 Memberi nilai awal PORTD = 1.
13 Mengaktifkan GICR dengan interrupt 1 (INT1)
14 Set MCUCR ISC 10 dengan ISC 11
15 Mengaktifkan register SREG (sei)
16 Fungsi perulangan while
17
18 Menyalakan LED pada bit 0 (C.0) dengan delay 1000ms
19 Menyalakan LED pada bit 1 (C.1) dengan delay 1000ms
20 Menyalakan LED pada bit 2 (C.2) dengan delay 1000ms
21 Menyalakan LED pada bit 3 (C.3) dengan delay 1000ms
22 Menyalakan LED pada bit 4 (C.4) dengan delay 1000ms
23 Menyalakan LED pada bit 5 (C.5) dengan delay 1000ms
24 Menyalakan LED pada bit 6 (C.6) dengan delay 1000ms
25 Menyalakan LED pada bit 7 (C.7) dengan delay 1000ms
26
27
28 Tempat menaruh kodingan ISR dengan INT1
29
30 Menyalakan LED 4bit paling atas dengan delay 1000ms
31

C. Screenshot hasil simulasi


- Nyala LED setelah program dijalankan

- Nyala LED setelah PUSH1 ditekan


D. Analisis 1.2
- Ceritakan bagaimana pola nyala LedBar setelah program diisikan pada
mikrokontroller dan simulasi dijalankan
Jawab: LED bergantian menyala selama 1 detik dari bit terkecil ke bit terbesar
(PIN C0-PIN C7).

- Tekan Push 1 (terhubung ke D3). Ceritakan bagaimana pola nyala LedBar


pada saat switch ditekan.
Jawab: LED yang berada di bagian atas (PIN C4-PIN C7) menyala secara
bersamaan. Setelah kita tidak menekan push 1, LED akan nyala secara normal
seperti no 1.

- Kode program baris ke berapakah yang berfungsi untuk mengubah pola nyala
LedBar?
Jawab: Kode program baris ke 28 sampai ke 31

- Tekan Push 1 (terhubung ke D3) sekali lagi. Dapatkah mikrokontroler


menjalankan kode program pada soal no 3 seketika pada saat Push 1 ditekan?
Jelaskan.
Jawab : Ya, ketika kita menekan lagi push 1, maka LED yang berada di
bagian atas (PIN C4-PIN C7) menyala secara bersamaan. Hal tersebut
dikarenakan kita sudah menggunakan interrupt dan tidak harus menekan push
1 dalam waktu tertentu.

- Perhatikan pergerakan LedBar dengan seksama, kemudian tekan Push 1.


LedBar keberapakah yang menyala sebelum Push 1 ditekan?
Jawab : Sebagai contoh kita menekan push 1 saat LED PIN C3 menyala.
- Pada saat mikrokontroler selesai mengerjakan program pada soal no 5,
apakah LedBar yang menyala akan melanjutkan nyala LedBar sebelum switch
bit 3 ditekan?
Jawab : Ya, program akan melanjutkan nyala LedBar sebelum switch bit 3
ditekan. Seperti pada jawaban no 5, ketika kita menekan switch pada saat LED
PIN C3 menyala, maka setelah interrupt, LED PIN C4 akan menyala sebagai
lanjutan dari program awal.

Percobaan 1.3: Interupsi


A. Source Code
Percobaan23.int
1 #include <avr/io.h>
2 #include <util/delay.h>
3 #include <avr/interrupt.h>
4 #define F_CPU 1000000UL
5 #define LED PORTC
6 #define LEDDir DDRC
7 int main(void)
8 {
9 LEDDir = 0xFF;
10 LED = 0xFF;
11 DDRD = 0x00;
12 PORTD = 0xFF;
13 GICR = 1<<INT0 | 1<<INT1;
14 MCUCR = 1<<ISC01 | 1<<ISC00 | 1<<ISC10 | 1<<ISC11;
15 sei();
16 while (1)
17 {
18 LED = 0b00000001; _delay_ms(1000);
19 LED = 0b00000010; _delay_ms(1000);
20 LED = 0b00000100; _delay_ms(1000);
21 LED = 0b00001000; _delay_ms(1000);
22 LED = 0b00010000; _delay_ms(1000);
23 LED = 0b00100000; _delay_ms(1000);
24 LED = 0b01000000; _delay_ms(1000);
25 LED = 0b10000000; _delay_ms(1000);
26 }
27 }
28 ISR(INT0_vect)
29 {
30 LED = 0x0F; _delay_ms(1000);
31 }
32 ISR(INT1_vect)
33 {
34 LED = 0xF0; _delay_ms(1000);
35 }

B. Penjelasan Kode
Percobaan23.int
1 Memanggil library untuk input output.
2 Memanggil library delay.
3 Memanggil library untuk interrupt.
4 Menggunakan internal clock 1MHz.
5 Mendefine LED sebagai PORTC.
6 Mendefine LEDDir sebagai DDRC.
7 Fungsi utama program.
8
9 Inisialisasi PORTC (pin untuk LEDDir) sebagai keluaran.
10 Memberi nilai awal PORTC (pin untuk LEDDir) = 1.
11 Inisialisasi PORTD sebagai input.
12 Memberi nilai awal PORTD = 1.
13 Mengaktifkan GICR dengan interrupt 0 (INT 0) dan interrupt 1 (INT1)
14 Set MCUCR ISC 10 dengan ISC 11
15 Mengaktifkan register SREG (sei)
16 Fungsi perulangan while
17
18 Menyalakan LED pada bit 0 (C.0) dengan delay 1000ms
19 Menyalakan LED pada bit 1 (C.1) dengan delay 1000ms
20 Menyalakan LED pada bit 2 (C.2) dengan delay 1000ms
21 Menyalakan LED pada bit 3 (C.3) dengan delay 1000ms
22 Menyalakan LED pada bit 4 (C.4) dengan delay 1000ms
23 Menyalakan LED pada bit 5 (C.5) dengan delay 1000ms
24 Menyalakan LED pada bit 6 (C.6) dengan delay 1000ms
25 Menyalakan LED pada bit 7 (C.7) dengan delay 1000ms
26
27
28 Tempat menaruh kodingan ISR dengan INT0
29
30 Menyalakan LED 4bit paling bawah dengan delay 1000ms
31
32 Tempat menaruh kodingan ISR dengan INT1
33
34 Menyalakan LED 4bit paling atas dengan delay 1000ms
35

C. Screenshot Hasil Simulasi


- Nyala LED saat program dijalankan
- Nyala LED saat PUSH 1 ditekan

- Nyala LED saat PUSH 2 ditekan


D. Analisis 1.3
- Ceritakan bagaimana pola nyala LedBar setelah program diisikan pada
mikrokontroller.
Jawab: LED bergantian menyala selama 1 detik dari bit terkecil ke bit terbesar
(PIN C0-PIN C7).

- Tekan Push 1. Ceritakan bagaimana pola nyala LedBar pada saat switch
ditekan.
- Jawab: LED yang berada di bagian atas (PIN C4-PIN C7) menyala secara
bersamaan. Setelah kita tidak menekan push 1, LED akan nyala secara normal
seperti no 1 melanjutkan LED yang sebelumnya telah menyala.

- Tunjukkan kode program baris ke berapakah yang mengubah pola nyala


LedBar saat Push 1 ditekan.
Jawab: Kode program pada baris ke 32-35.

- Tekan Push 2. Ceritakan bagaimana pola nyala LedBar pada saat switch
ditekan.
- Jawab: LED yang berada di bagian bawah (PIN C0-PIN C3) menyala secara
bersamaan. Setelah kita tidak menekan push 2, LED akan nyala secara normal
seperti no 1 melanjutkan LED yang sebelumnya telah menyala.

- Tunjukkan kode program baris ke berapakah yang mengubah pola nyala


LedBar saat Push 2 ditekan
Jawab: Kode program pada baris ke 28-31.

- Hentikan simulasi. Sambungkan pin D2 dan D3 sehingga terlihat seperti pada


Gambar 8. Tekan Push 1 atau Push 2. Kode program manakah yang dikerjakan
dahulu oleh mikrokontroler saat switch ditekan? Ulangi beberapa kali untuk
memastikan kode program yang dijalankan.
Jawab: Ketika pin D2 dan D3 disambungkan, lalu kita menekan salah satu
PUSH baik itu PUSH 1 maupun PUSH 2, maka kode program yang dikerjakan
terlebih dahulu oleh mikrokontroller adalah Interrupt 0. Hal tersebut
dikarenakan interrupt 0 berada di atas kode program interrupt 1 sehingga
interrupt 0 dikerjakan terlebih dahulu.

Kesimpulan
Percobaan 2.1 – Pada percobaan pertama, program yang kita gunakan belum
menggunakan program interrupt. Oleh karena itu, bila kita ingin mengubah pola
nyala LedBar, maka kita harus menggunakan percabangan if dengan input yang telah
ditentukan.

Percobaan 2.2 – Pada percobaan kedua, program yang kita gunakan sudah
menggunakan program interrupt. Bisa kita lihat saat kita menekan push 1 yang
terhubung pada pin D3, maka pola nyala LedBar akan berubah yaitu hanya LedBar
yang berada pada bagian atas (pin C4-pin C7) yang menyala. Setelah LedBar yang
ada di bagian atas menyala, maka program akan dilanjutkan ke program sebelumnya
atau melanjutkan nyala LedBar yang berpola tersebut. Untuk dapat melakuka
interupsi kita harus mendefinisikan pin INT1 pada register GICR bernilai 1 dan
mendefinisikan pin ISC10 dan ISC11 pada register MCUCR bernilai 1, serta
mengaktifkan Global Interrupt Enable Bit (pin ke 7 pada Status Register).

Percobaan 2.3 – Pada percobaan ketiga, program menggunakan dua interrupt,


dimana bisa kita lihat push 1 dan push 2 bisa kita gunakan. Push 1 terhubung ke pin
D3 sebagai interrupt 1 dan push 2 terhubung ke pin D2 sebagai interrupt 0. Ketika
kita menekan push 1, maka LedBar yang berada pada bagian atas (pin C4-pin C7)
akan menyala. Ketika kita menekan push 2, maka LedBar yang berada pada bagian
bawah (pin C0-pin C3) akan menyala. Selain itu, ketika push 1 dan push 2
dihubungkan, lalu kita tekan salah satu push tersebut, maka program interrupt 0 lah
yang berjalan terlebih dahulu, lalu dilanjutkan dengan program interrupt 1, setelah
itu melanjutkan pola LedBar pada program sebelumnya. Untuk dapat melakukan
interupsi kita harus mendefinisikan pin INT0 dan INT1 pada register GICR bernilai
1 dan mendefinisikan pin ISC00, ISC 01, ISC10 dan ISC11 pada register MCUCR
bernilai 1, serta mengaktifkan Global Interrupt Enable Bit (pin ke 7 pada Status
Register).
LABORATORIUM PEMBELAJARAN ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA

BAB : INTERUPSI
NAMA : JASON WIJAYA
NIM : 205150307111029
TANGGAL : 21/09/2021
ASISTEN : - MUHAMMAD FATHAM MUBINA A
- RANDY CHRISTIAN SAPUTRA

TUGAS / LAPORAN

1. Pada percobaan ini, kode program baris keberapakah yang mengatur register
untuk interupsi eksternal? Berapakah nilai setiap bit dari register tersebut?
Jelaskan apa arti nilai pada register tersebut.
Jawab:
- Percobaan 2.2
Baris 13 : Pin interrupt 1 pada register GICR bernilai 1/mengaktifkan pin
interrupt 1.
Baris 14 : Memberikan set register MCUCR ISC10 dan ISC11 dengan
nilai 1. Interrupt akan terpicu ketika rising edge (ketika push button
dilepas setelah ditekan)
Baris 15 : Mengaktifkan Global Interrupt Enable Bit (pin ke 7 pada status
register)
- Percobaan 2.3
Baris 13 : Pin interrupt 1 dan pin interrupt 0 pada register GICR bernilai
1/mengaktifkan pin interrupt 1 dan pin interrupt 0.
Baris 14 : Memberikan set register MCUCR ISC01, ISC00, ISC10, dan
ISC11 dengan nilai 1. Interrupt akan terpicu ketika rising edge (ketika
push button dilepas setelah ditekan)
Baris 15 : Mengaktifkan Global Interrupt Enable Bit (pin ke 7 pada status
register)

2. Buatlah kode program yang menggunakan interupsi eksternal dengan


pemicuan yang berbeda-beda. Tunjukkan bahwa program tersebut dikerjakan
saat pemicuan sesuai dengan kode program.
Jawab:

Source Code
Tugas2.int
1 #include <avr/io.h>
2 #include <util/delay.h>
3 #include <avr/interrupt.h>
4 #define F_CPU 1000000UL
5 #define LED PORTC
6 #define LEDDir DDRC
7 int main(void)
8 {
9 LEDDir = 0xFF;
10 LED = 0xFF;
11 DDRD = 0x00;
12 PORTD = 0xFF;
13 DDRB = 0x00;
14 PORTB = 0xFF;
15 GICR = 1<<INT0 | 1<<INT1 | 1<<INT2;
16 MCUCR = 1<<ISC01 | 0<<ISC00 | 1<<ISC10 | 1<<ISC11;
17 MCUCSR = 1<<ISC2;
18 sei();
19 while (1)
20 {
21 LED = 0b00000001; _delay_ms(1000);
22 LED = 0b00000010; _delay_ms(1000);
23 LED = 0b00000100; _delay_ms(1000);
24 LED = 0b00001000; _delay_ms(1000);
25 LED = 0b00010000; _delay_ms(1000);
26 LED = 0b00100000; _delay_ms(1000);
27 LED = 0b01000000; _delay_ms(1000);
28 LED = 0b10000000; _delay_ms(1000);
29 }
30 }
31 ISR(INT0_vect)
32 {
LED = 0x55; _delay_ms(1000);
33
}
34
ISR(INT1_vect)
35
{
36
LED = 0xAA; _delay_ms(1000);
37
}
38
ISR(INT2_vect)
39 {
40 LED = 0xFF; _delay_ms(2000);
41 }
42

Penjelasan Kode
Tugas2.int
1 Memanggil library untuk input output.
2 Memanggil library delay.
3 Memanggil library untuk interrupt.
4 Menggunakan internal clock 1MHz.
5 Mendefine LED sebagai PORTC.
6 Mendefine LEDDir sebagai DDRC.
7 Fungsi utama program.
8
9 Inisialisasi PORTC (pin untuk LEDDir) sebagai keluaran.
10 Memberi nilai awal PORTC (pin untuk LEDDir) = 1.
11 Inisialisasi PORTD sebagai input.
12 Memberi nilai awal PORTD = 1.
13 Inisialisasi PORTB sebagai input.
14 Memberi nilai awal PORTB = 1.
15 Mengaktifkan GICR dengan interrupt 0 (INT 0) dan interrupt 1 (INT1)
16 Set MCUCR ISC01, ISC 10, dan ISC 11 bernilai 1 dan ISC00 bernilai 0
17 Set MCUCSR ISC 2 bernilai 1
18 Mengaktifkan register SREG (sei)
19 Fungsi perulangan while
20
21 Menyalakan LED pada bit 0 (C.0) dengan delay 1000ms
22 Menyalakan LED pada bit 1 (C.1) dengan delay 1000ms
23 Menyalakan LED pada bit 2 (C.2) dengan delay 1000ms
24 Menyalakan LED pada bit 3 (C.3) dengan delay 1000ms
25 Menyalakan LED pada bit 4 (C.4) dengan delay 1000ms
26 Menyalakan LED pada bit 5 (C.5) dengan delay 1000ms
27 Menyalakan LED pada bit 6 (C.6) dengan delay 1000ms
28 Menyalakan LED pada bit 7 (C.7) dengan delay 1000ms
29
30
31 Tempat menaruh kodingan ISR dengan INT0
32
33 Menyalakan LED C1, C3, C5, dan C7 dengan delay 1000ms
34
35 Tempat menaruh kodingan ISR dengan INT1
36
37 Menyalakan LED C0, C2, C4, dan C6 dengan delay 1000ms
38
39 Tempat menaruh kodingan ISR dengan INT2
40
41 Menyalakan seluruh LED secara bersamaan dengan delay 2000ms
42
Screenshot Hasil Simulasi
• Nyala LED saat program dijalankan

• Nyala LED saat PUSH 3 (PIN B2) ditekan


• Nyala LED saat PUSH 2 (PIN D2) ditekan

• Nyala LED saat PUSH 1 (PIN D3) ditekan


Analisis Kode
Program yang kita buat diatas adalah program dengan 3 interrupt. Pada
awalnya, program akan berjalan dengan pola Led menyala secara berurutan, mulai
dari PIN C0 sampai PIN C7. Ketika kita menekan push button, maka pola tersebut
akan dihentikan sementara dan menjalankan program interrupt tersebut. Setelah
interrupt tersebut selesai, maka program awal akan dilanjutkan. Ketika kita menekan
push 1 yang terhubung pada PIN D3 sebagai interrupt 0, maka LED yang terhubung
dengan PIN C1, C3, C5 dan C7 akan menyala secara bersamaan. Ketika kita
menekan push 2 yang terhubung pada PIN D2 sebagai interrupt 1, maka LED yang
terhubung dengan PIN C0, C2, C4 dan C6 akan menyala secara bersamaan. Ketika
kita menekan push 3 yang terhubung pada PIN B2 sebagai interrupt 2, maka seluruh
LED yang terhubung pada port C akan menyala secara bersamaan. Untuk dapat
menjalankan program interupsi kita perlu mendefinisikan register GICR (General
Interrupt Control Register) bernilai 1, mendefinisikan pin ISC00, ISC01, ISC10, dan
ISC11 pada register MCUCR serta pin ISC2 dengan nilai tertentu sesuai dengan
kondisi pemicu interrupt yang diinginkan serta mengaktifkan Global Interrupt
Enable Bit (pin ke 7 pada Status Register).
3. Mengapa pada percobaan 2.3 selalu kode program untuk INT0 yang
dijalankan terlebih dahulu? Hubungkan penjelasan Anda dengan fungsi tabel
interrupt vector pada datasheet Atmega16.
Jawab: Karena kode program untuk INT0 berada lebih awal atau berada di
atas INT1. Bisa kita lihat pada tabel di bawah, INT0 memiliki program
address $0002, sedangkan INT1 memiliki program address $0004. Dari
program address tersebut, dapat kita simpulkan bahwa program address
$0002 akan dijalankan terlebih dahulu, lalu dilanjutkn dengan program
address $0004.

Tabel Interrupt Atmega 16

Anda mungkin juga menyukai