Interrupt By Kustanto, S.T., M.Eng
Pengertian Interupsi adalah suatu permintaan khusus kepada mikroposesor untuk melakukan sesuatu. Bila terjadi interupsi, maka komputer akan menghentikan dahulu apa yang sedang dikerjakannya dan melakukan apa yang diminta oleh yang menginterupsi. Register yang perlu diset: TCON, IE
Port Fungsi Khusus P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Fungsi khusus port 3 Port Fungsi Khusus P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD (masukan port serial (UART)) TXD ( keluaran port serial (UART)) INT0 (masukan interupsi luar 0) INT1 (masukan interupsi luar 1) T0 (masukan luar Timer/Counter 0) T1 (Masukan Timer/Counter 1) WR (pulsa penulisan data memori luar) RD (pulsa pembacaan data memori luar)
Nama interupsi Alamat vektor Flag Alamat layanan rutin interupsi. Nama interupsi Alamat vektor Flag INT 0 03H IE0 Timer 0 0BH TF0 INT 1 13H IE1 Timer 1 1BH TF1 Port serial 23H RI atau TI Timer 2 2BH TF2 atau EXF2 Reset 00H RST
Bit pengaktif interupsi global - IE.6 Cadangan ET2 IE.5 Untuk mengaktifkan dan menon aktifkan interupsi. IE (Interupsi Enable Register) MSB LSB : Susunan bit dalam register IE. EA - ET2 ES ET1 EX1 ET0 EX0 Simbol Posisi Fungsi EA IE.7 Bit pengaktif interupsi global - IE.6 Cadangan ET2 IE.5 Bit pengaktif interupsi timer 2 ES IE.4 Bit pengaktif interupsi serial port ET1 IE.3 Bit pengaktif interupsi timer 1 EX1 IE.2 Bit pengaktif interupsi luar 1 (INT1) ET0 IE.1 Bit pengaktif interupsi timer 0 EX0 IE.0 Bit pengaktif interupsi luar 0 (INT 0)
Susunan bit dalam register TCON. MSB LSB TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 Susunan bit dalam register TCON. Simbol Keterangan TF1 Timer 1 Overflow, diset oleh mikrokontroler jika hitungan timer1 melimpah (overflow) TR1 Timer 1 run, jika bit ini diset maka timer 1 on, jika bit ini diclear maka timer 1 off (berhenti) TF0 Timer 0 overflow, bit ini diset oleh mikrokontroler saat timer 0 melimpah. TR0 Timer 0 run, jika bit ini diset maka timer 0 on, jika bit ini diclear maka timer 0 off (berhenti) IE1 Interupt 1 edge flag. Diset oleh hardware jika sisi suatu interupsi luar terdeteksi. Diclear jika instruksi RETI dijalankan. IT1 Interupt 1 type. Berhubungan dengan interupsi luar 1. fungsinya sama dengan IT0 IE0 Interupt 0 edge flag. Diset oleh hardware jika sisi suatu interupsi luar terdeteksi. Diclear jika instruksi RETI dijalankan. IT0 Interupt 0 type. Interupsi luar 0 diterima melalui bit 2 pada port 3. Jika bit ini diset, maka INT 0 dikenali pasisi turun sinyal. Jika diclear maka suatu interupsi akan dikenali pada saat suatu sinyal berlogika rendah.
$mod51 org 00h loop: mov r0,#08 mov dptr,#tabel_led loop1: clr a movc a,@a+dptr mov p0,a inc dptr call tunda djnz r0,loop1 sjmp loop tunda: mov r7,#02h lupa: mov r6,#33h lupb: mov r5,#22h djnz r5,$ djnz r6,lupb djnz r7,lupa ret tabel_led: db 11111100b db 11111001b db 11110011b db 11100111b db 11001111b db 10011111b db 00111111b db 01111110b end
Contoh Program $mod51 org 0000h ljmp start org 003h ;alamat vektor interrupt 0 rl a mov p0,a mov r7,#04h loop1: mov r6,#0ffh loop2: mov r5,#0ffh djnz r5,$ djnz r6, loop2 djnz r7, loop1 reti org 0200h start: mov p3,#0ffh mov tcon,#01h ;TCON diset 01h mov a,#01h mov p0,#01h mov ie,#81h ; IE diset 81h sjmp $ end