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

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


Senin, 13 Januari 2014
Posted by Rukhsotul Hikmah

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.  
  1. 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
 Register ini berguna untuk menentukan prioritas dari suatu interupsi jika terdapat lebih dari 1 interupsi yang terjadi secara bersamaan. Interupsi tertinggi prioritasnya maka diberi nilai 1, namun secara default Interupsi reset merupakan interupsi dengan prioritas tertinggi, dengan kata lain jika suatu saat terdapat proses yang sedang berjalan tiba-tiba terjadi interupsi reset maka mau-tidak mau program akan dikembalikan ke alamat 00H (alamat reset). PX0 / 1 = Interupsi eksternal 0 / 1, PT0 / 1 / 2 =  Interupsi Timer 0 / 1 / 2 dan PS  = Interupsi Serial. Untuk contoh sebelumnya  jika terjadi interupsi dari Interupsi Eksternal 0 dan Interupsi Timer 1 hal tersebutlah yang dikatakan interupsi yang lebih dari satu jenis, dengan demikian maka salah satu ineterupsi harus memiliki prioritas tertinggi, misal dalam kasus tersebut interupsi eksternal 0 memiliki prioritas tertinggi maka register IP bernilai 00000001b atau 01H (PX0=1, lainnya = 0).

  • TCON
Register ini berfungsi untuk mengkonfigurasi jenis pemicu interupsi. Pada dasarnya terdapat 2 jenis pemicu interupsi yaitu perpindahan dari 1 ke 0 dan yang ke-2 adalah jika mendapat inputan 0.
Gambar 4. Perpindahan 1 ke 0        

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


Saya kira untuk posttingan kali ini cukup sampai konfigurasi Register saja, pada postingan berikutnya akan dibahas program interupsinya secara detail.
Terima kasih,

Minggu, 05 Januari 2014
Posted by Rukhsotul Hikmah

- Copyright © Berbagi Ilmu - Metrominimalist - Powered by Blogger - Designed by Johanes Djogan -