Mikrokontroller memiliki banyak fungsi-fungsi khusus.
Fungsi-fungsi khusus tersebut
antara lain :
a) Interupsi
Interupsi adalah
perintah untuk menjalankan satu program subroutine pada saat menjalankan program utama, sifat subroutine ini memaksa
dan harus harus dilayani. Setelah program interupsi selesai, maka mikrokontroller akan kembali ke program awal yang ditinggalkan.
Jenis-jenis interupsi :
1.
Interupsi yang tidak dapat dihalangi (Non Mascable interrupt), misalnya reset.
2.
Interupsi yang dapat dihalangi (Mascable interrupt),
misalnya
Timer1,
Timer0, Serial
port (internal).
Seperti yang telah diketahui
diatas, bahwa mikrokontroller tipe AT89x52 memiliki sumber mascable interupsi
yaitu
Timer1, Timer0, Serial port (internal). Masing-masing dapat diaktifkan dengan mengubah flag-flag-nya
pada beberapa SFR (special function register). Untuk mengaktifkan
dan dapat
diaktifkan dengan
merubah bit-bit flag IT0, IT1, IE0, IE1 di dalam satu blok TCON. Untuk mengaktifkan
interrupt 0 dan interrupt
1
bisa
diprogram secara periodik, dapat juga diberi sinyal dari hardware lain ke pin atau
Interrupsi timer 0 dan timer 1 dapat dijalankan dengan men-set
bit TF0 dan TF1 pada special function register. Untuk
mengaktifkan interupsi serial port dapat di-set pada SCON
(SFR).
Diperlukan
perintah
khusus
untuk
men-set jalannya proses interrupt ini
terutama untuk mascable interrupt.
b) Timer / Counter
Chip
AT89x52, terdapat dua buah timer / counter 16 bit yang dapat diatur melalui perangkat lunak,
yaitu timer / counter 0 dan timer
/ counter 1.
Apabila
timer / counter ini diaktifkan pada
frekuensi kerja mikrokontroller 12 MHz, timer / counter akan melakukan perhitungan waktu sekali setiap 1 microdetik secara independent, tidak
tergantung pada pelaksanaan suatu
interupsi. Satu siklus pencacahan
waktu berpadanan dengan satu siklus
pelaksanaan interupsi, sedangkan satu siklus dilakukan dalam waktu 1 mikrodetik.
Bila
dimisalkan suatu
urutan interupsi telah selesai dilaksanakan dalam waktu 5 mikrodetik, pada saat
itu pula timer / counter telah menunjukkan
periode waktu 5 mikrodetik.
Apabila
periode waktu tertentu telah dilampaui, timer
/ counter segera menginterupsi mikrokontroller
untuk memberitahukan bahwa proses perhitungan telah selesai
dilaksanakan.
Pengontrol
kerja
dari
timer / conter adalah SFR,
TCON
(register timer control).
Pengontrollan
pemilihan
mode pada timer
dapat
dipilih
di
register timer mode (TMOD).
c) Mode 0
Mode ini, timer disusun sebagai register 13
bit. Setelah semua perhitungan selesai, mikrokontroller
akan men-set timer interrupt
flag (TF1). Dengan membuat GATE = 1 timer dapat dikontrol oleh masukkan luar INT1
untuk fasilitas pengukuran lebar pulsa.
d) Mode 1
Mode 1 ini memiliki kesamaan dengan mode 0 akan
tetapi register timer bekerja secara 16 bit.
e) Mode 2
Mode
2 ini menyusun register timer sebagai 8 bit counter. OverfLow dari
TL1 tidak hanya men-set TF1, tetapi
juga mengisi TL1
dengan isi TH1
yang diatur secara
perangkat lunak dan pengisian ini tidak merubah TH1.
f) Mode 3
Timer 1 dalam mode 3 semata-mata
memegang hitungan. Efeknya sama seperti men-set TR1 = 0. Timer 0 dalam
mode 3 menetapkan TL0 dan TH0 sebagai dua counter terpisah. TL0 menggunakan control bit timer 0 yaitu C/T, Gate, TR0, INT0, dan TF0. TH0 ditetapkan sebagai
fungsi timer.
Mode3
diperlukan untuk aplikasi yang membutuhkan timer / counter ekstra 8 bit. Dengan timer 0 dalam mode 3, mikrokontroller ini seperti
memiliki 3 timer
/ counter. Saat
timer 0 dalam mode 3, timer 1
dapat dihidupkan atau dimatikan atau dapat digunakan oleh serial
port sebagai pembangkit baudrate.