IE (Interupt
Enable) 
Register 
ini  terdiri  dari 
8  biat  dan 
bit  addressable,  register 
ini  digunakan  untuk mengaktifkan register yang kita
inginkan yang terdapat pada mikrokontroler.
IP (Interrupt
Priority) 
Register 
ini  terdiri  dari 
8  bit  dan 
bit  addressable,  register 
ini  digunakan  untuk memilih prioritas interupsi, interupsi
dengan prioritas lebih tinggi akan dieksekusi terlebih dahulu jika terjadi 2
interupsi pada waktu yang sama.
PROSEDUR PERCOBAAN 
-Penggunaan
INT0 dengan Interrupt Enable 
Persiapan: 
·        
Hubungkan 
Port  1  DT-51 
MinSys  dengan  “PORT 
OUTPUT”  DT-51  Trainer 
·        
Board menggunakan kabel tipe Y.
·        
Hubungkan 
“CONTROL”  DT-51  MinSys 
dengan  “CONTROL”  DT-51 
Trainer 
·        
Board 
(sebagai  sumber  tegangan 
dan  koneksi  INT0/INT1) 
menggunakan 
·        
kabel tipe X. 
·        
Hubungkan “IS1” dengan “INT0” pada DT-51 Trainer
Board. 
·        
Hubungkan DT-51 MinSys dengan PC menggunakan
kabel serial. 
·        
Hubungkan DT-51 MinSys dengan sumber tegangan.
Program1.1: 
Ketiklah  program 
berikut  ini,  assemble, 
download  ke  DT-51 
MinSys,  dan  amati hasilnya: 
$mod51 
                CSEG 
                ORG 4000H 
                LJMP START 
                ORG 4003H 
                RL A 
                MOV P1, A 
                MOV R7, #04H 
LUPA: 
                MOV R6, #OFFH 
LUPB: 
                MOV R5, #OFFH 
                DJNZ R5, $ 
                DJNZ R6, LUPB 
                DJNZ R7, LUPA 
                RETI 
                ORG 4200H 
;inisialisasi
START: 
                MOV SP, #30H 
                MOV TCON, #01H 
                MOV A, #01H 
                MOV P1, #01H 
                MOV IE, #81H 
                SJMP $ 
END 
Catatan: 
-Untuk menggunakan INT0 dengan falling edge trigger (transisi dari
high ke low), maka IT0 (TCON.0) berlogika ‘1’, sehingga TCON bernilai
‘00000001b’ atau ‘01h’. 
-Untuk mengaktifkan interrupt, maka EX0(IE.0) dan EA (IE.7) berlogika
‘1’ sehingga IE bernilai ‘10000001b’ atau ‘81h’. 
-Perhatikan bahwa pada saat interrupt, program akan melompat ke alamat
vektor 0003h, tetapi oleh DT-51 MinSys akan langsung dipindah ke alamat 4003h.
-Penggunaan INT0 dan INT1 dengan Interrupt Priority 
Persiapan: 
·        
Hubungkan 
Port  1  DT-51 
MinSys  dengan  “PORT 
OUTPUT”  DT-51  Trainer 
·        
Board menggunakan kabel tipe Y. 
·        
Hubungkan 
“CONTROL”  DT-51  MinSys 
dengan  “CONTROL”  DT-51 
Trainer 
·        
Board 
(  sebagai  sumber 
tegangan  dan  koneksi 
INT0/INT1  )  menggunakan 
·        
kabel tipe X. 
·        
Hubungkan 
“IS1”  dengan  “INT0” 
dan  “IS2”  dengan 
“INT1”  pada  DT-51 
·        
Trainer Board. 
·        
Hubungkan DT-51 MinSys dengan PC menggunakan
kabel serial. 
·        
Hubungkan DT-51 MinSys dengan sumber tegangan. 
Program 1.3: 
Ketiklah  program  berikut 
ini,  assemble,  download 
ke  DT-51  MinSys, 
dan  amati hasilnya: 
$mod51 
                CSEG 
                ORG 4000H 
                LJMP START 
                ORG 4003H 
                LJMP INTER0 
                ORG 4013H 
                LJMP INTER1 
                ORG 4100H
INTER0: 
                MOV P1, #0H 
                SETB P1.0 
                LCALL LDELAY 
                CLR P1.0 
                RETI 
INTER1:
                 MOV P1, #0H 
                SETB P1.7 
                LCALL LDELAY 
                CLR P1.7 
                RETI 
                ORG 4200H 
LDELAY: 
                PUSH 7 
                PUSH 6 
                PUSH 5 
                MOV R7, #24H 
LUPA:  
                MOV R6, #0FFH 
LUPB:   
                MOV R5, #0FFH 
                DJNZ R5, $ 
                DJNZ R6, LUPB 
                DJNZ R7, LUPA 
                POP 5 
                POP 6 
                POP 7 
                RET
SDELAY: 
                PUSH 7 
                PUSH 6 
                PUSH 5 
                MOV R7, #04H 
LUP1:   
                MOV R6, #0FFH 
LUP2:   
                MOV R5, #0FFH 
                DJNZ R5, $ 
                DJNZ R6, LUP2 
                DJNZ R7, LUP1 
                POP 5 
                POP 6 
                POP 7 
                RET
;inisialisasi
START:  
                MOV SP, #30H 
                MOV TCON, #05H 
                MOV IP, #04H 
                MOV IE, #85H 
;program
utama 
LOOP1: 
                MOV P1, #01010101B 
                ACALL SDELAY 
                MOV P1, #10101010B 
                ACALL SDELAY 
                SJMP LOOP1 
END 
-Jika  tidak  ada 
kesalahan,  program  tersebut 
akan  menampilkan  nyala 
LED  yang bergantian antara nyala
LED ”Bit 6”, ”Bit 4”, ”Bit 2”, dan ”Bit 0” dengan nyala LED ”Bit 7”,”Bit 5”,
”Bit 3”, dan ”Bit 1”. Setiap kali ada penekanan keypad ”IS1”, hanya LED  ”Bit 
0”  yang  akan 
menyala.  Setiap  kali ada 
penekanan  keypad  ”IS2”, 
hanya LED ”Bit 7” yang akan menyala. 
Catatan: 
-Untuk menggunakan INT0 dan INT1 dengan falling edge trigger (transisi
dari high 
ke low), maka IT1 (TCON.2) dan IT0 (TCON.0) berlogika ’1’, sehingga
TCON bernilai 
’00000101b’ atau ’05h’. 
-Untuk memindah INT1 ke tingkat prioritas lebih tinggi, maka PX1
(IP.2) berlogika ’1’, sehingga IP bernilai ’00000100b’ atau ’04h’. 
-Untuk  mengaktifkan  INT0 
dan  INT1,  maka 
EX0  (IE.0),  EX1 
(IE.2),  dan  EA 
(IE.7) berlogika ’1’, sehingga IE bernilai ’10000101b’ atau ’85h’. 
-Rutin  interrupt  pada 
alamat  vektor  4003h 
dan  4013h  dipindah 
ke  alamat  lain dengan 
perintah  LJMP.  Hal 
ini  dilakukan  agar 
rutin  dapat  lebih 
panjang  tanpa khawatir menerjang
alamat vektor berikutnya.
-Perhatikan  bahwa  penekanan 
keypad  ”IS2”  dapat 
menginterupsi  rutin  dari penekanan  keypad 
”IS1”  tetapi  tidak 
dapat  sebaliknya.  Hal ini 
dikarenakan  INT1 berada  pada  tingkat  prioritas 
lebih  tinggi.  Jadi 
jika  keypad  ”IS1” 
ditekan  setelah keypad  ”IS2” 
ditekan,  LED  ”Bit 
7”  akan  menyala 
hingga  delay  selesai 
dieksekusi baru kemudian LED ”Bit 0” akan menyala. 
-Perhatikan  bahwa  SDELAY 
menggunakan  alamat  yang 
sama  dengan  LDELAY. 
-Untuk menghindari kekacauan nilai, maka diperlukan
PUSH dan POP
