Anda di halaman 1dari 7

PERCOBAAN

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

Gambar 1. Alamat layanan Interupsi

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 SOE X R7.5 MSE M7.5 M6.5 M5.5

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 I7.5 I6.5 I5.5 IE M7.5 M6.5 M5.5

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.

Gambar 2. Rangkaian Penghasil Interupsi

Program Up-Down Counter pada LED GPIO


Berikut ini adalah program counter 4-bit pada LED dimana mula-mula tampilan LED 0000 dan tampilan LED
akan menghitung naik jika setiap sinyal Interupsi RST6.5 diberikan dan hitungan akan menurun setiap sinyal
interupsi RST 5.5 diberikan. Pada MTK-85 isi alamat 002CH sampai 0036H telah diisi pembuat alat (EEPROM)
dengan perintah lompat dengan demikian alamat 802CH dan 8034H kita isi dengan perintah melompat ke program
layanan interupsi yang kita buat (JMP 9300H dan JMP 9310H).

Program 3.1.
002C C3-2C-80 JMP 802C Pada EPROM MTK-85
0034 C3-34-80 JMP 8034 Pada EPROM MTK-85

802C C3-00-93 JMP 9300


8034 C3-10-93 JMP 9310 Diisikan pada RAM
Progrogram Utama
9100 3E-1C MVI A,0001 1100 (1C) Interupsi RST 6.5 dan 5.5 enabel
9102 30 SIM Set Interupsi
9103 0E-00 MVI C,00 Clear Counter LED
9105 FB Ulang: EI Enabel interupsi
9106 79 MOV A,C Ambil nilai Counter

2
9107 D3-00 OUT 00 Keluarkan Ke LED
9109 C3-05-91 JMP Ulang Ulangi

9300 F3 RST5.5: DI Disable interupsi shg tidak beruntun


9301 F5 PUSH PSW
9302 CD-20-93 CALL DELAY Delay dan debouncing
9305 F1 POP PSW
9306 0D DCR C Kurangi Counter
9307 FB EI
9308 C9 RET Kembali

9310 F3 RST6.5: DI Disable interupsi shg tidak beruntun


9311 F5 PUSH PSW
9312 CD-20-93 CALL DELAY Delay dan debouncing
9315 F1 POP PSW
9316 0C INR C Naikkan Counter
9317 FB EI
9318 C9 RET Kembali

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

II. ALGORITMA / FLOWCHART

A. Flowchart keseluruhan

Start

Set Interupsi

Set Tanda : Up Counter

Enable Interupsi

Periksa Tanda

Up Counter ?

Counter + 1 Counter + 1

Delay

4
B. Flowchart untuk RST 6.5 C. Flowchart untuk RST 5.5

RST 6.5 RST 5.5

Set Tanda : Down Counter Set Tanda : Up Counter

RET RET

III. PERCOBAAN DAN PROGRAM

1. Menjalan kan program yang pertama pada jobsheet Interupsi


2. 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.

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

802C C3-00-93 JMP 9300


8034 C3-10-93 JMP 9310 Diisikan pada RAM
Program Utama
9100 3E-1C MVI A,0001 1100 (1C) Interupsi RST 6.5 dan 5.5 enabel
9102 30 SIM Set Interupsi
9103 0E-00 MVI C,00 Clear Counter LED
9105 FB Ulang: EI Enabel interupsi
9106 79 MOV A,C Ambil nilai Counter
9107 D3-00 OUT 00 Keluarkan Ke LED
9109 C3-05-93 CALL Delay
901C C3-05-91 JMP Ulang Ulangi

9300 F3 RST5.5: DI Disable interupsi shg tidak beruntun


9306 0D DCR C Kurangi Counter
9308 C9 RET Kembali

9310 F3 RST6.5: DI Disable interupsi shg tidak beruntun


9316 0C INR C Naikkan Counter
9318 C9 RET Kembali

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

802C C3-00-93 JMP 9300


8034 C3-10-93 JMP 9310 Diisikan pada RAM
Program Utama
9200 3E-1C MVI A,0001 1100 (1C) Interupsi RST 6.5 dan 5.5 enabel
9202 30 SIM Set Interupsi
9203 0E-00 MVI C,00 Clear Counter LED
9205 06-01 MVI B, 01
9207 FB Ulang: EI Enabel interupsi
9208 78 MOV A,B Ambil nilai Counter
9209 FE-01 CPI 01
920B CA-12-92 JZ Naik
920E 0D DCR C
920F C3-13-92 JMP TRS Ulangi
9212 0C NAIK INR C
9213 79 TRS MOV A,C
9214 D3-00 OUT 00
9216 CD-20-93 CALL DELAY
9219 C3-07-92 JMP ULANG

9400 F3 RST5.5: DI Disable interupsi shg tidak beruntun


9401 06-01 MVI B,01
9403 FB EI
9404 C9 RET Kembali

9410 F3 RST6.5: DI Disable interupsi shg tidak beruntun


9411 06-00 MVI B,00
9413 FB EI
9414 C9 RET Kembali

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

802C C3-00-93 JMP 9300


8034 C3-10-93 JMP 9310 Diisikan pada RAM
Program Utama
9200 3E-1C MVI A,0001 1100 (1C) Interupsi RST 6.5 dan 5.5 enabel
9202 30 SIM Set Interupsi
9203 0E-00 MVI C,00 Clear Counter LED
9205 06-01 MVI B, 01
9207 FB Ulang: EI Enabel interupsi
9208 78 MOV A,B Ambil nilai Counter
9209 FE-01 CPI 01
920B CA-14-92 JZ KIRI

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

1. Pada RST 5.5

2. Pada RST 6.5

Anda mungkin juga menyukai