5. Stack Pointer Stack pointer merupakan sebuah register 8 bit yang terletak di alamat 81 H. Isi
dari stack pointer ini merupakan alamat dari data yang disimpan di stack. Stack pointer dapat diedit atau dibiarkan saja mengikuti standart sesudah terjadi reset.
Jika stack pointer diisi data 5FH, area untuk proses penyimpan dan pengambilan data dari dan ke stack adalah sebesar 32 byte, yaitu antara 60H
hingga 7FH karena 89C51 mempunyai internal RAM sebesar 128 byte. 6. Data Pointer
Data pointer atau DPTR merupakan register 16 bit dan terletak pada alamat 82H untuk DPL dan 83H untuk DPH. DPTR biasa digunakan untuk mengakses
source code ataupun data yang terletak di memori eksternal. 7. Register Timer
AT89C51 mempunyai dua buah 16 bit timercounter, yaitu timer 0 dan timer 1. Timer 0 terletak di alamat 8AH untuk TL0 dan 8CH untuk TH0 dan timer 1
terletak di alamat 8BH untuk TL1 dan 8DH untuk TH1. 8. Register Port Serial
AT89C51 mempunyai sebuah on chip serial port yang dapat digunakan untuk berkomunikasi dengan peralatan lain yang menggunakan serial port juga seperti
modem, shift register dan lain-lain. Buffer penyangga untuk proses pengiriman maupun pengambilan data terletak pada register SBUF, yaitu pada
alamat 99H. Sedangkan untuk mengatur mode serial dapat dilakukan dengan mengubah isi dari SCON yang terletak pada alamat 98H.
9. Register Interrupt AT89C51 mempunyai lima buah interrupsi dengan dua buah prioritas
interrupsi. Interrupsi akan selalu non aktif setiap kali sistem direset. Register- register yang berhubungan dengan interrupt adalah Interrupt Enable Register
IE atau register pengaktif interupsi pada alamat A8H untuk mengatur keaktifan tiap-tiap interrupt dan Interrupt Priority Register IP atau register
prioritas interupsi pada alamat B8H. 10. Register Kontrol Power
Register ini terdiri atas SMOD yang digunakan untuk melipat dua buah rate dari port serial, dua buah bit untuk flag fungsi umum pada bit ketiga dan bit
kedua, Power Daya PD bit dan Idle IDL bit.
Tabel 2.2 Alamat register pada SRF
Pada table 2.2 menjelaskan tentang alamat register pada SRF atau special function register pada mikrokontroler AT89C51.
2.1.5. PewaktuPencacah TimerCounter
Mikrokontroler AT89C51 memiliki dua buah timercounter 16 bit, yaitu timercounter 0, dan timercounter 1. Pada fungsi timer, register ini ditambah tiap
satu siklus mesin atau dapat diartikan sebagai penghitung siklus mesin. Bila pewaktupencacah diaktifkan pada frekuensi 12 Mhz, maka pewaktupencacah
akan melakukan penghitungan sekali tiap satu ms tidak tergantung pada pelaksanaan suatu instruksi. Apabila periode waktu tertentu telah dilampaui, maka
pewaktupencacah akan memberi interupsi ke mikrokontroler bahwa instruksi perhitungan waktu telah selesai dilaksanakan. Pengontrol kerja pewaktupencacah
adalah register timer control TCON pada spesial kontrol register adalah sebagai berikut:
Tabel 2.3 Keterangan register timer control
Pada tabel 2.3 menjelaskan tentang register TCON atau timer control pada mikrokontroler AT89C51.
Sedangkan untuk pemilihan fungsi pewaktu atau pencacah dan mode operasi pewaktupencacah adalah pada Special Function Register TMOD seperti
pada tabel 2.4:
Tabel 2.4 Mode operasi timer
Keterangan: GATE Saat TRx pada TCON diset 1 dan GATE=1, timercounter x
hanya akan berjalan ketika pin INT-x logika hardware control. Apabila GATE=0, timercounter hanya akan berjalan ketika TRx=1 software control.
CT Selektor timer atau counter. Clear 0 untuk operasi timer dengan masukan dari pena T-x.
M1 Bit pemilih mode 1. M0 Bit pemilih mode 0.
Tabel 2.5 Mode operasi timercounter
Pada tabel 2.5 menjelaskan tentang mode operasi timercounter pada mikrokontroler AT89C51.
Penyetelan TimerCounter Pemberian nilai TMOD yang digunakan untuk penyetalan set up timercounter 0 pada beberapa mode operasi. Diasumsikan
hanya ada satu timer yang digunakan pada saat itu. Apabila timer 0 dan timer 1 dijalankan bersamaan dalam beberapa mode, maka nilai TMOD timer 0 di OR
kan dengan nilai timer 1. Sebagai contoh jika timer 0 dijalankan dalam mode 1
GATE control eksternal, 2 timer 1 dijalankan dalam mode 2 counter, maka nilai yang harus diisikan ke TMOD adalah 69H.
2.1.6. Sistem Interupsi
AT89C51 menyediakan 5 sumber interupsi, yaitu: 2 interupsi eksternal, 2 interupsi pewaktu dan sebuah interupsi serial.
Mikrokontroler AT89C51 memiliki dua jenis interupsi, yaitu: 1. Saluran interupsi internal, yaitu terdiri dari pewaktupencacah 0 T0,
pewaktupencacah 1 T1, dan terminal serial. 2. Saluran interupsi eksternal, yaitu terdiri dari interupsi eksternal 0 INT0,
interupsi eksternal 1 INT1. Sistem interupsi pada mikrokontroler AT89C51 akan menghasilkan suatu program yang berjalan, serta melayani interupsi
yang diminta. Bila permintaan interupsi telah dilaksanakan, maka CPU akan kembali ke pelaksanaan program utama yang ditinggalkan. Sistem kerja
interupsi dapat dijelaskan sebagai berikut: Pada saat terjadi, informasi alamat terakhir pada pencacah program PC
disimpan dalam Stack Pointer SP, kemudiaan pencacah program diisi dengan alamat interupsi yang akan dituju. Kemudian CPU melaksanakan interupsi yang
ditunjukkan pencacah program, sehingga interupsi dilaksanakan. Selanjutnya informasi pada Stack Pointer akan dikembalikan kepada pencacah program bila
interupsi telah dilaksanakan. Masing-masing sumber interupsi dapat diaktifkan dan dimatikan secara
individual atau dengan me-nol-kan bit-bit IE Interupt Enable dalam SFR.