INTERUPSI
I. DASAR TEORI
Interupsi merupakan permintaan untuk dilayani. Pada CPU 8085 ada 5masukan interupsi yaitu TRAP, RST7.5,
RST6.5, RST5.5 dan INTR dengan alamat vector seperti ditunjukkan pada table 1. Dengan adanya masukan
interupsi secara otomatis mikroprosesor akan bercabang ke alamat vector interupsi tersebut. Untuk itu program
untuk melayani interupsi tersebut kita mulai dari alamat vektornya.
Tabel 1. Interupsi 8085A.
Interupsi Alamat Vektor Prioritas
TRAP 0024 H Pertama
RST 7.5 003C H Ke-dua
RST 6.5 0034 H Ke-tiga
RST 5.5 002C H Ke-empat
INTR dilengkapi pemakai Ke-lima
Tetapi karena alamat vector interupsi ini terdapat pada memori ROM biasanya pembuat alat (pabrik) mengarahkan
program ke alamat RAM. Pada mikrokomputer trainer MTK-85 alamat layanan interupsi diarahkan ke RAM
dengan cara mengisikan alamat vektor interupsi dengan perintah lompat ke alamat memori RAM. Seperti alamat
003CH sampai alamat 003EH diisi dengan kode C3H, 3CH, 80H yang artinya JMP 803CH. Tabel alamat layanan
interupsi pada memori RAM ditunjukkan pada gambar 1. Dengan demikian pengguna dapat membuat program
layanan interupsi dimana alamat awal programnya dimulai dari alamat layanan yang ada di memori RAM. Sebagai
contoh jika program layanan interupsi RST 7.5 dimulai dari alamat 9000 H maka alamat 803CH sampai 803EH diisi
dengan kode C3H, 00, 90H (JMP 9000H), sehingga setiap ada interupsi RST7.5 mikroprosesor akan bercabang ke
alamat 003C H, kemudian melompat ke alamat 803C H dan melompat lagi ke alamat 9000 H. Jika pada program
ditemukan perintah RET maka program akan kembali ke program saat terjadinya interupsi tersebut.
Sebelum menggunakan interupsi (kecuali TRAP) terlebih dahulu interupsi diaktivkan melalui perintah
SIM (set interupt mask) dimana data pengesetan diberikan melalui register A. Berikut ini adalah fungsi setiap bit
dari pengesetan interupsi yang diberikan melalui Akumulator.
b7 Akumulator b0
SOD =
Logika yang akan dikeluarkan pada pin SOD
SOE = Serial Output data enabel
X = Tak digunakan
R7.5 = Untuk mereset masukan interupsi RST 7.5 yang menunggu
MSE = Mengenabelkan penghalangan interupsi
M7.5 = jika “1” RST7.5 dihalangi , jika “0” normal
1
M6.5 = jika “1” RST6.5 dihalangi , jika “0” normal
M5.5 = jika “1” RST5.5 dihalangi , jika “0” normal
Untuk membaca status interupsi dilakukan dengan perintah RIM, dimana status ini terdapat pada Akumulator
setelah perintah RIM. Fungsi setiap bit ditunjukkan berikut ini.
b7 Akumulator b0
SID =
Logika yang terdapat pada pin SID
I7.5 = Logika yang menunggu pada pin RST 7.5
I6.5 = Logika yang menunggu pada pada pin RST 6.5
I5.5 = Logika yang menunggu pada pada pin RST 5.5
IE = Indikasi bahwa interupsi di enabelkan
M7.5 = Berisikan Logika pada mask M7.5
M6.5 = Berisikan Logika pada mask M6.5
M5.5 = Berisikan Logika pada mask M5.5
Rangkaian masukan interupsi pada mikrokomputer Trainer MTK-85 ditunjukkan pada gambar 2. Dari
gambar dapat dilihat dengan mengatur posisi switch kita dapat memilih satu dari tiga interupsi (RST 5.5, RST 6.5
atau INTR) yang terhubung ke tombol Test (SW2). Pemberian sinyal interupsi diberikan dengan menekan tombol
TEST. Untuk memilih interupsi yang akan digunakan posisi SW1 dibuat pada posisi ON. Adanya sinyal interupsi
ditandai dengan LED berkedip.
Program 3.1.
002C C3-2C-80 JMP 802C Pada EPROM MTK-85
0034 C3-34-80 JMP 8034 Pada EPROM MTK-85
2
9107 D3-00 OUT 00 Keluarkan Ke LED
9109 C3-05-91 JMP Ulang Ulangi
9320 11-FF-30 Delay: LXI D,30FFF Set delay untuk mengatasi bounce
9323 1B TUNG: DCX D
9324 7B MOV A,E
9325 B2 ORA D
9326 C2-23-93 JNZ TUNG
9329 C9 RET
Langkah Kerja:
1. Masukkan Program di atas
2. Set Switch pemilih (RST5.5=On, RST6.5=Off, INTR=Off) sehingga yang terhubung ke tombol Test
adalah RST 5.5.
3. Eksekusi Program dan Perhatikan tampilan LED
4. Tekan Tombol Test (hanya sekali) dan perhatikan tampilan LED
5. Tekan kembali Tombol Test sekali lagi perhatikan pengaruhnya pada LED
6. Tekan 8 kali lagi Tombol Test dan perhatikan pengaruhnya pada tampilan LED
7. Ubah posisi switch sehingga RST5.5=Off, RST6.5=On, INTR=Off
8. Tekan Tombol Test sekali dan perhatikan pengaruhnya pada LED
9. Tekan kembali Tombol Test sekali lagi perhatikan pengaruhnya pada LED
10. Tekan 4 kali lagi Tombol Test dan perhatikan pengaruhnya pada tampilan LED
11. Reset Mikrokomputer MTK
12. Ubah Program 9100 menjadi MVI A,1B (RST 5.5 dan RST6.5 Off )
13. Eksekusi program
14. Berikan sinyal interupsi RST 5.5 (posisi switch RST5.5 On, RST6.5 Off)
15. Apakah hitungan pada LED berubah? Mengapa
16. Berikan sinyal interupsi RST6.5 (posisi switch RST6.5 On, RST5.5 Off)
17. Apakah hitungan pada LED berubah? Mengapa
18. Berikan Analisa dan Kesimpulan anda
TUGAS
1. Buat program dimana mula-mula counter pada LED sebagai up-counter dan saat ada interupsi RST 6.5 counter
berubah menjadi down- counter. Dan jika ditekan RST5.5 menjalankan Up-counter.
2. Buat program dimana mula-mula tampilan pada LED 00012 dan bergeser ke kiri-(shift register) dan setelah
ada sinyal interupsi RST5.5 tampilan LED berubah menjadi geser ke kanan. Dan jika ada interupsi RST 6.5
Tampilan bergerser ke kiri.
3. Buat program dimana mula-mula counter pada LED sebagai Shift register dan saat ada interupsi RST6.5
counter berubah menjadi up-counter. Dan jika ada interupsi RST5.5 counter berubah jadi Shift Register.
3
Jawab.
Algoritma:
1.Set Interupsi RST6.5 dan RST 5.5
2.Clear Counter
3.Set indikasi up-counter
4.Keluarkan Counter ke LED
5.Enabel interupsi
6.Periksa indikasi apakah Up-counter? Baca 8300 jika 01 lompat ke 11
7.Jika tidak lompat ke 11
8.Naikkan counter
9.Delay Counter
10.Ulangi langkah 4.
11. Enabel Interupsi
12. Keluarkan Counter ke LED
13. Periksa indikasi Apakah Down Counter? Baca isi 8300 jika 00 lompat ke 4
14. Jika bukan Down counter lompat ke 4
15. Turunkan Counter
16. Delay
17. Lompat ke-12
RST 5.5
-Set tanda Up-counter (8300=00)
-Kembvali
RST 6.5
-Set tanda Down Counter (8300=01)
-Kembali
A. Flowchart keseluruhan
Start
Set Interupsi
Enable Interupsi
Periksa Tanda
Up Counter ?
Counter + 1 Counter + 1
Delay
4
B. Flowchart untuk RST 6.5 C. Flowchart untuk RST 5.5
RET RET
3. Buat program dimana mula-mula tampilan pada LED 00012 dan bergeser ke kiri-(shift register) dan setelah
ada sinyal interupsi RST5.5 tampilan LED berubah menjadi geser ke kanan. Dan jika ada interupsi RST 6.5
Tampilan bergerser ke kiri.
Penyelesaian :
1. PROGRAM 1
002C C3-2C-80 JMP 802C Pada EPROM MTK-85
0034 C3-34-80 JMP 8034 Pada EPROM MTK-85
9320 11-FF-30 Delay: LXI D,30FFF Set delay untuk mengatasi bounce
9323 1B TUNG: DCX D
5
9324 7B MOV A,E
9325 B2 ORA D
9326 C2-23-93 JNZ TUNG
9329 C9 RET
2. PROGRAM 2
002C C3-2C-80 JMP 802C Pada EPROM MTK-85
0034 C3-34-80 JMP 8034 Pada EPROM MTK-85
9320 11-FF-30 Delay: LXI D,30FFF Set delay untuk mengatasi bounce
9323 1B TUNG: DCX D
9324 7B MOV A,E
9325 B2 ORA D
9326 C2-23-93 JNZ TUNG
9329 C9 RET
3. PROGRAM 3
002C C3-2C-80 JMP 802C Pada EPROM MTK-85
0034 C3-34-80 JMP 8034 Pada EPROM MTK-85
6
920E 79 MOV A,C
920F 07 RRC
9210 4F MOV C,A
9211 C3-17-92 JMP TRS
9214 79 KIRI MOV A,C
9215 0F RLC
9216 4F MOV C,A
9217 79 TRS MOV A,C
9218 D3-00 OUT 00
921A CD-20-93 CALL DELAY
921D CA-07-92 JMP ULANG
IV. HASIL