Perbedaan Interrupt, Timer dan Counter
MATERI KULIAH
Interrupt(penyela):
Menghasilkan timer penyela setelah interval waktu tertentu. Dapat juga difungsikan sebagai counter untuk menghitung jumlah kejadian
Timer:
Timer atau pewaktu adalah sarana untuk menghitung durasi kejadian seperti halnya stopwatch. Biasanya peran Timer juga merangkap Counter atau pencacah.
Counter:
Sedikit berbeda dengan Timer, Counter merupakan sarana untuk mencacah atau menghitung jumlah kejadian, jumlah barang atau lainnya. Tasbeh adalah contoh counter yang digunakan untuk mencacah banyaknya dzikir.
- Jelaskan cara kerja timer mode 1 dan 2 serta bagaimana peran TH(x) dan TL(x)
M1
M0 :
Adalah pasangan bit untuk menentukan 1 dari 4 mode operasi. Jika
pasangan ini bernilai 00 berarti Timer/Counter bekerja pada mode 0
dengan kapasitas maksimum 13-bit atau 8192 pulsa. Jika M1M0 = 01 atau
mode 1, maka kapasitas maksimumnya 16-bit atau 65536 pulsa. Sedangkan
Mode 2 merupakan mode auto reload dengan kapasitas 8-bit atau 256 pulsa.
Pada mode 2 ini, selama TimerX running, isi register TLx terus
bertambah. Jika TLx overflow, maka TFx aktif dan TLx diisi ulang dengan
data yang berada pada THx.
Misalnya kita ingin menggunakan Timer/Counter 0 sebagai Timer 16-bit.
Maka bit-bit setting yang kita berikan untuk TMOD adalah data biner
“xxxx 0001”. Tanda x atau don’t care berarti bahwa bit-bit tsb tidak
terkait dengan Timer/Counter 0. Gambar di bawah ini adalah diagram
operasi Timer 16-bit.
Gambar 5.2. Diagram operasi Timer 16-bit.
Jika kendaraan bergerak konstan, maka perubahan display ordometer akan berlangsung teratur, sehingga kita dapat menggunakannya sebagai Timer atau stopwatch. Misalkan pada saat start, display ordometer menunjukkan angka 996400. Maka pada saat overflow kendaraan tersebut telah berjalan sejauh 360 km atau 3600 detik.
Prinsip kerja Timer digital mirip dengan cara kerja ordometer, sehingga kita dapat menggunakan analogi ordometer dengan Timer Digital. Angka yang tertera pada display ordometer dapat dianalogikan dengan angka yang berada pada pasangan register TH dan TL. Bertambahnya angka pada display ordometer disebabkan oleh bergeraknya kendaraan, sedangkan bertambahnya isi THx TLx disebabkan oleh bit TRx. Jika TRx HIGH, maka pasangan register THx TLx akan bertambah setiap satu siklus mesin, 12 kali periode kristal. Jika prosesor menggunakan kristal 12 MHz, maka selama TRx HIGH, isi pasangan register THx TLx akan bertambah 1 setiap 1 ms. Jika keadaan ini berlangsung terus, maka suatu saat pasangan THx TLx akan mengalami overflow, pada saat itu bit TFx akan menjadi HIGH.
- Apa yang diperhatikan dalam perancangan program timer 1 mode 2?
Timer/Counter 1 bekerja pada mode 2, sebagaiT/C 8-bit auto- reload
- Apa maksud baris 5 s/d 8 pada program 2.4 ?
LJMP INTER0
ORG 4013H
LJMP INTER1″
Pada baris 5 dan 6 :: Melakukan proses setelah alamat 4003H lalu jump ke INTER0 .
Pada baris 7 dan 8 :: Melakukan proses setelah alamat 4013H lalu jump ke INTER1
- Dalam program 2.4, apa yang harus diatur dalam register IP supaya prioritas pada INT0 yang terletak pada IS1 berprioritas tinggi?
Mengubah PX0 (IP.1) berlogika 1 sehingga IP bernilai 00000010 atau 02H.
- Jelaskan tentang register TMOD, TCON, IE dan IP!
TMOD:
Sebelum digunakan, Timer/Counter tsb harus di-setting melalui pengisian TMOD dengan angka biner tertentu. Berikut ini adalah gambar yang terkait dengan pengisian register TMOD atau Timer Mode.
TMOD: TIMER/COUNTER MODE CONTROL REGISTER. NOT BIT ADDRESSABLE.
Nibble atau 4-bit kiri digunakan untuk setting Timer atau Counter 1
sedangkan Nibble atau 4-bit kanan digunakan untuk Timer atau Counter 0.
Keterangan masing-masing bit adalah sebagai berikut,
GATE
: Bit ini dipakai untuk menentukan kendali ON/OFF timer. Jika bit ini
LOW, maka kendali dilakukan secara software atau program, Timer1 akan ON
selama bit TR1 pada Register TCON bernilai HIGH. Tetapi jika bit ini
HIGH, berarti ON/OFF Timer atau Counter bergantung pada kondisi pin INT,
Timer 1 akan ON selama pin INT1 bernilai HIGH.
C/T
: Bit ini dipakai untuk menentukan jenis operasi. Jika bit ini HIGH,
berarti alat ini digunakan sebagai Counter, tetapi jika bit ini LOW,
alat ini digunakan sebagai Timer.
M1
M0 :
Adalah pasangan bit untuk menentukan 1 dari 4 mode operasi.
Misalnya kita ingin menggunakan Timer/Counter 0 sebagai Timer 16-bit.
Maka bit-bit setting yang kita berikan untuk TMOD adalah data biner
“xxxx 0001”. Tanda x atau don’t care berarti bahwa bit-bit tsb tidak
terkait dengan Timer/Counter 0. Gambar di bawah ini adalah diagram
operasi Timer 16-bit.
TCON:Register ini terdiri dari 8 bit dan dapat diakses per bit. Sesuai namanya register ini merupakan kendali dari timer yang berfungsi untuk mengendalikan kapan timer bekerja, menandakan ketika adanya overflow ataupun penunjuk jika terjadi interupsi pada timer.
Adapun definisi dari bit-bit pada timer control adalah sebagai berikut:
IE:
Register ini terdiri dari 8 bit dan bit addressable. Digunakan untuk mengaktifkan register yang kita inginkan yang terdapat pada mikrokontroller.
MSB LSB
EA
|
-
|
-
|
ES
|
ET1
|
EX1
|
ET0
|
EX0
|
EA Ã jika kita ingin menggunakan fasilitas interupsi, maka bit ini harus diset pertama kali. Jika bit ini bernilai 0 tidak aka nada interupsi yang terjadi.
ES Ã bit ini digunakan untuk mengaktifkan interupsi serial port. Jika bernilai 1 maka rutin interupsi serial (0023H) akan dipanggil ketika bit TI atau RI bernilai 1.
ET(x) Ã bit ini digunakan untuk mengaktifkan interupsi timer(x). jika bernilai 1 rutin interupsi timer akan dipanggil ketika bit TF(x) bernilai 1.
EX(x) Ã bit ini digunakan untuk mengaktifkan interupsi external(x). jika bernilai 1 rutin interupsi external akan dipanggil ketika bit IE(x) bernilai 1.
IP:
Register ini terdiri dari 8 bit dan bit addressable, register ini digunakan untuk memilih prioritas interupsi, interupsi dengan prioritas lebih tinggi akan dieksekusi lebih dulu jika terjadi 2 interupsi pada waktu yang sama.
MSB LSB
-
|
-
|
PT2
|
PS
|
PT1
|
PX1
|
PT0
|
PX0
|
PS Ã serial interrupt priority. 0=low priority, 1=high priority
PX(x) Ã 0=low priority, 1=high priority