SFR atau spesial function register adalah register-register dengan fungsi sangat khusus. SFR dapat dianalogikan sebagai tabel kontrol yang digunakan untuk menjalankan dan memonitor operasi mikroprocessor. ada sekitar 21 jenis SFR pada mikrokontroller keluarga mcs-51.
Register A(Accumulator)
Register ini berfungsi untuk menyimpan hasil sementara dari operasi. operand harus dimasukan ke accumulator sebelum intruksi aritmatik dilakukan. Ketika ALU (aritmatik logic unit) menjalankan operasi aritmatik, hasilnya akan disimpan di accumulator. jika data dipindahkan dari suatu rgister ke register lain, maka mereka harus melewati accumulator
Register B(Base)
register ini digunakan pada operasi perkalian dan pembagian, dimana operasi ini hanya dapat dijalankan ketika angka angka disimpan dalam register A dan B. untuk intruksi lainnya dapat menngunakan register ini sebagai pengganti register A
Register R(R0-R7)
Register-register ini digunakan untuk penyimpanan variabel dan hasil sementara. register ini disimpan dalam 4 bank RAM
PSW Register (Program Status Word)
Register ini berfungsi untuk memberitahu informasi tentang keadaan CPU.
P - Parity bit. berfungsi untuk mendeteksi genap atau ganjil suatu set dari bit pada accumulator. genap akan bernilai 1, ganjil akan bernilai 0. Misal 26 (11011 in binary), parity flag akan 1 karena jumlah 1 nya genap
- Bit 1. Tbit ini ada pada mikrokontroller selanjutnya.
OV Overflow terjadi ketika hasil dari operasi aritmatik lebih besar dari 255 (decimal), sehingga tidak dapat disimpan dalam satu register. Apa bila terjadi overflow maka bit akan bernilai (1). jika tidak ada maka akan bernilai (0).
RS0, RS1 - Register bank select bits. 2 bit register ini digunakan untuk memilih 1 dari 4 bank register dari ram. dengan memasukan logika 1 dan 0 ke register ini, maka r0 - r7 akan disimpan dalam salah satu bank register tadi.
RS1 RS2 Space in RAM
0 0 Bank0 00h-07h
0 1 Bank1 08h-0Fh
1 0 Bank2 10h-17h
1 1 Bank3 18h-1Fh
F0 - Flag 0. digunakan untuk general purpose
AC - Auxiliary Carry Flag dihunakan untuk operasi BCD
CY - Carry Flag digunakan untuk seluruh operasi aritmatika dan pergeseran.
DPTR Register (Data Pointer)
Register ini sebenarnya tidak ada secara fisik, register dptr ini terdiri dari dua register terpisah, Data Pointer High (DPH) dan Data Pointer Low. 16 bit inilah yang digunakan untuk pengalamatan memory eksternal. walaupun begitu, 16 bit ini dapat dianggap sebagai 2 8 bit register yang independen. mereka juga dapat digunakan sebagai tempat penyimpanan data dan hasil sementara yang tidak ada kaitannya dengan lokasi memori
SP Register (Stack Pointer)
nilai pada stack pointer memastikan bahwa stack pointer akan menunjuk valid RAM, dan memberikan ketersediaan stack. nilai stack pointer akan bertambah 1 setiap memulai subprogram dan berkurang 1 setiap mengakhiri subprogram. setiap kali direset maka stack pointer akan bernilai 7. ini artinya stack akan dimulai dari lokasi ini. apabila nilainya bukan 7, maka seluruh stack akan dipindahkan keposisi lain pada memori.
P0, P1, P2, P3 - Input/Output Registers
Pada register ini apabila pin dibuat 0, maka pin akan berfungsi sebagai ouput, sedangkan apabila diberi nilai 1 maka pin akan berfungsi sebagai output
source:
http://www.keil.com/support/man/docs/is51/
http://howtofriends.com/8051/
mengenal microcontroller 8051 part 3: SFR
dimas, Sunday, June 14, 2009
Subscribe to:
Post Comments (Atom)

Comments :
Post a Comment