Archive for Januari 2014
Contoh Penggunaan Interupsi pada Modul DT-51 (Part-3)
Pada pembahasan sebelumnya telah dibahas pengaturan-pengaturan dasar pada modul DT51 beserta konfigurasi dari sisi source code nya. Sepeerti yang dijanjikan sebelumnya, untuk postingan kali ini akan dibahas tentang contoh programnya.
CONTOH INTERUPSI BERASAL DARI INT 0
$mod51 ;memuat library DT51
CSEG
ORG 4000H ;alamat mula pada DT51/ alamat awal pada modul trainer DT51
LJMP START ;melompat ke label start
CSEG
ORG 4000H ;alamat mula pada DT51/ alamat awal pada modul trainer DT51
LJMP START ;melompat ke label start
ORG 4003H ;alamat interupsi INT eksternal 0
RL A ;menggeser Byte dari Accumulator 1 langkah ke kiri
MOV P1, A ; menampikan nilai pada Accumulator pada P1
MOV R7, #04H
LUPA: MOV R6, #0FFH
LUPB: MOV R5, #0FFH
DJNZ R5, $
DJNZ R6, LUPB
DJNZ R7, LUPA
RETI ; Ret from interupt / kembali dari interupt
RL A ;menggeser Byte dari Accumulator 1 langkah ke kiri
MOV P1, A ; menampikan nilai pada Accumulator pada P1
MOV R7, #04H
LUPA: MOV R6, #0FFH
LUPB: MOV R5, #0FFH
DJNZ R5, $
DJNZ R6, LUPB
DJNZ R7, LUPA
RETI ; Ret from interupt / kembali dari interupt
ORG 4200H ;alamat mulainya program
;inisialisasi
START: MOV SP, #30H
MOV TCON, #01H ;00000001B
MOV A, #01H ;00000001B
MOV P1, #01H ;00000001B
MOV IE, #81H ;10000001B
SJMP $ ;
END
;inisialisasi
START: MOV SP, #30H
MOV TCON, #01H ;00000001B
MOV A, #01H ;00000001B
MOV P1, #01H ;00000001B
MOV IE, #81H ;10000001B
SJMP $ ;
END
Jika sudah yakin tidak ada kesalahan dalam penulisan program, maka compile source code tersebut sehingga menghasilkan file *.hex. Selanjutnya load file hex tersebut ke microcontroler. Jika perintah tersebut dijalankan oleh mikrokontroler maka yang akan dihasilkan adalah jika tombol interupsi ditekan maka nyala lampu led akan bergeser 1 langkah ke kiri.
Saya kira pembahasan mengenai interupsi pada mikrokontroler saya cukupkan sampai di sini, jika masih belum bisa dipahami, bisa comment saja sob...
Contoh Penggunaan Interupsi pada Modul DT-51 (Part-2)
Pada pembahasan sebalumna, kita telah membahas konfigurasi contoh penggunaan Interupsi secara hardware. Kali ini kita akan membahas persiapan secara program, dalam artian pada pembahasan kali ini kita akan membahas konfigurasi program yang harus kita ketahui sebelum membuat program interupsi.
- JENIS-JENIS INTERUPSI PADA DT-51
Pada mikrokontroler DT-51 terdapat 5 jenis interupsi yang berlaku yaitu Reset (beralamatkan 00H-02H), Interupsi0 (beralamatkan 03H-0AH), Timer0 (beralamatkan 0BH-12H), Interupsi1 (beralamatkan 13H-1AH), Timer1(1BH-....) dan terakhir interupsi serial (beralamatkan 23H).
![]() |
Gambar 1. Range alamat Interupsi |
2. REGISTER-REGISTER YANG DIGUNAKAN UNTUK INTERUPSI
Dalam pembuatan perintah-perintah interupsi ada beberapa register dari DT-51 yang harus digunakan atau diatur, diantaranya adalah sebagai berikut:
- Register IE (Interupt Enable)
![]() | ||||
Gambar 2. Konfigurasi Interupsi Enable |
Register IE dapat menampung 8 Bit data dimulai dari LSB (Last Significant Bit) hingga MSB (Most Significant Bit). EX0/1 (Interupsi Eksternal 0 / 1), ET 0/1 (Interupsi Timer 0 / 1), ES (Interupsi serial), EA (Enabled All). Untuk memberikan interupsi maka jenis-jenis interupsi tersebut harus bernilai 1 dan EA harus bernilai 1 juga. Contoh : Misalkan kita akan mengaktifkan interupsi yang berasal dari Interupsi Eksternal 0 maka IE harus bernilai 10000001b atau 81H (EA =1, EX0=1, lainnya=0), contoh lain : misal kita ingin mengaktifkan interupsi berasal dari Interupsi Eksternal 0 dan Interupsi Timer 1 maka IE harus bernilai 10001001b atau 89h (EA=1, ET1=1, EX0=1 lainnya=0).
- IP (Interupt Priority)
Gambar 3. Skema Register IP |
- TCON
Jika jenis pemicu adalah perpindahan dari 1 ke 0 maka bit interupsi dari TCON diberi nilai 1 namun jika interupsi adalah inputan 0 maka bit interupsi TCON diberi nilai 0. Misalkan seperti contoh sebelumnya, pemicu interupsi 0 adalah adalah jika mendapat inputan 0 dan Timer1 pemicunyanya adalah perpindahan dari 1 ke 0 maka nilai TCON adalah 00001000b atau 08H (TCON Interupsi Timer 1 = 1 dan TCON Interupsi Eksternal 0 = 0).
Terima kasih,Saya kira untuk posttingan kali ini cukup sampai konfigurasi Register saja, pada postingan berikutnya akan dibahas program interupsinya secara detail.