Mikrokontroler tipe AT89S51 merupakan mikrokontroler keluarga MCS-51
dengan konfigurasi yang sama persis dengan AT89C51 yang cukup terkenal,
hanya saja AT89S51 mempunyai fitur ISP (In-System Programmable Flash
Memory). Fitur ini memungkinkan mikrokontroler dapat diprogram langsung
dalam suatu sistem elektronik tanpa melalui Programmer Board atau
Downloader Board. Mikrokontroler dapat diprogram langsung melalui kabel
ISP yang dihubungkan dengan paralel port pada suatu Personal Computer.
Adapun fitur yang dimiliki Mikrokontroler AT89S51 adalah sebagai berikut
:
1. Sebuah CPU (Central Processing Unit) 8 bit yang termasuk keluarga
MCS51.
2. Osilator internal dan rangkaian pewaktu, RAM internal 128 byte (on
chip).
3. Empat buah Programmable port I/O,masing-masing terdiri atas 8 jalur
I/O
4. Dua buah Timer Counter 16 bit.
5. Lima buah jalur interupsi (2 interupsi external dan 3 interupsi
internal )
6. Sebuah port serial dengan kontrol serial full duplex UART.
7. Kemampuan melaksanakan operasi perkalian, pembagian dan operasi
Boolean (bit)
8. Kecepatan pelaksanaan instruksi per siklus 1 microdetik pada
frekuensi clock 12 MHz
9. 4 Kbytes Flash ROM yang dapat diisi dan dihapus sampai 1000 kali
10. In-System Programmable Flash Memory
Dengan keistimewaan diatas, pembuatan alat menggunakan AT89S51 menjadi
lebih sederhana dan tidak memerlukan IC pendukung yang banyak. Sehingga
mikrokontroler AT89S51 ini mempunyai keistimewaan dari segi perangkat
keras. Adapun blok diagram dari mikrokontroler 89S51 diperlihatkan pada
Gambar 1.1.
Gambar 1.1. Blok diagram dari mikrokontroler 89S51
Konfigurasi Pin Mikrokontroler AT89S51
Susunan pin mikrokontroler AT89S51 diperlihatkan pada Gambar 1.2.
Gambar 1.2. Konfigurasi Pin AT89S51
Mikrokontroler AT89S51 memiliki pin berjumlah 40 dan umumnya dikemas
dalam DIP (Dual Inline Package). Masing-masing pin pada mikrokontroler
AT89S51 mempunyai kegunaan sebagai berikut:
Port 0
Port 0 merupakan port dua fungsi yang berada pada pin 32-39 dari
AT89S51. Dalam rancangan sistem sederhana port ini sebagai port I/O
serbaguna. Untuk rancangan yang lebih komplek dengan melibatkan memori
eksternal jalur ini dimultiplek untuk bus data dan bus alamat.
Port 1
Port 1 disediakan sebagai port I/O dan berada pada pin 1-8. Beberapa pin
pada port ini memiliki fungsi khusus yaitu P1.5 (MOSI), P1.6 (MISO),
P1.7 (SCK) yang digunakan untuk jalur download program.
Port 2
Port 2 ( pin 21-28 ) merupakan port dua fungsi yaitu sebagai I/O
serbaguna, atau sebagai bus alamat byte tinggi untuk rancangan yang
melibatkan memori eksternal.
Port 3
Port 3 adalah port dua fungsi yang berada pada pin 10-17, port ini
memiliki multi fungsi, seperti yang terdapat pada tabel 1.1 berikut ini :
BIT NAME BIT ADDRESS ALTERNATE FUNCTION
P3.0 RXD B0h Receive data for serial port
P3.1 TXD B1h Transmit data for serial port
P3.2 INT0 B2h External interrupt 0
P3.3 INT1 B3h External interrupt 1
P3.4 T0 B4h Timer/counter 0 external input
P3.5 T1 B5h Timer/counter 1 external input
P3.6 WR B6h External data memory write strobe
P3.7 RD B7h External data memory read strobe
PSEN (Program Store Enable)
adalah sebuah sinyal keluaran yang terdapat pada pin 29. Fungsinya
adalah sebagai sinyal kontrol untuk memungkinkan mikrokontroler membaca
program (code) dari memori eksternal. Biasanya pin ini dihubungkan ke
pin EPROM. Jika eksekusi program dari ROM internal atau dari flash
memori (ATMEL AT89SXX), maka berada pada kondisi tidak aktif (high).
ALE (Address Latch Enable)
Sinyal output ALE yang berada pada pin 30 fungsinya sama dengan ALE pada
microprocessor INTEL 8085, 8088 atau 8086. Sinyal ALE dipergunakan
untuk demultiplek bus alamat dan bus data. Sinyal ALE membangkitkan
pulsa sebesar 1/6 frekuensi oscillator dan dapat dipakai sebagai clock
yang dapat dipergunakan secara umum.
EA(External Access)
Masukan sinyal terdapat pada pin 31 yang dapat diberikan logika rendah
(ground) atau logika tinggi (+5V). Jika diberikan logika tinggi maka
mikrokontroler akan mengakses program dari ROM internal (EPROM/flash
memori). Jika diberi logika rendah maka mikrokontroler akan mengakses
program dari memori eksternal.
RST (Reset)
Input reset pada pin 9 adalah reset master untuk AT89S51. Pulsa transisi
dari tinggi selama 2 siklus ke rendah akan mereset mikrokontroler.
Oscillator
Oscillator yang disediakan pada chip dikemudikan dengan XTAL yang
dihubungkan pada pin 18 dan pin 19. Diperlukan kapasitor penstabil
sebesar 30 pF. Besar nilai XTAL sekitar 3 MHz sampai 33 MHz. XTAL1
adalah input ke pembalikan penguat osilator (inverting oscillator
amplifier) dan input ke clock internal pengoperasian rangkaian.
Sedangkan XTAL2 adalah output dari pembalikan penguat osilator.
Gambar 1.3. Konfigurasi Xtal Osilator
Power
AT89S51 dioperasikan pada tegangan supply +5v, pin Vcc berada pada nomor
40 dan Vss (ground) pada pin 20.
Organisasi Memori
a. Pemisahan Memori Program dan Data
Semua divais 8051 mempunyai ruang alamat yang terpisah untuk memori
program dan memori data, seperti yang ditunjukkan pada gambar1.1. dan
gambar 1.2. Pemisahan secara logika dari memori program dan data,
mengijinkan memori data untuk diakses dengan pengalamatan 8 bit, yang
dengan cepat dapat disimpan dan dimanipulasi dengan CPU 8 bit. Selain
itu, pengalamatan memori data 16 bit dapat juga dibangkitkan melalui
register DPTR. Memori program ( ROM, EPROM dan FLASH ) hanya dapat
dibaca, tidak ditulis. Memori program dapat mencapai sampai 64K byte.
Pada 89S51, 4K byte memori program terdapat didalam chip. Untuk membaca
memori program eksternal mikrokontroller mengirim sinyal PSEN ( program
store enable ) . Memori data ( RAM ) menempati ruang alamat yang
terpisah dari memori program. Pada keluarga 8051, 128 byte terendah dari
memori data, berada didalam chip. RAM eksternal (maksimal 64K byte).
Dalam pengaksesan RAM Eksternal, mikrokontroller mingirimkan sinyal RD (
baca ) dan WR ( tulis ).
Gambar 1.4. Struktur memori mikrokontroler keluarga MCS51
Gambar 1.5. Arsitektur Memori Mikrokontroller 8051
b. Memori Program
Gambar 1.5. menunjukkan suatu peta bagian bawah dari memori program.
Setelah reset CPU mulai melakukan eksekusi dari lokasi 0000H.
Sebagaimana yang ditunjukkan pada gambar 1.6, setiap interupsi
ditempatkan pada suatu lokasi tertentu pada memori program. Interupsi
menyebabkan CPU untuk melompat ke lokasi dimana harus dilakukan suatu
layanan tertentu. Interupsi Eksternal 0, sebagi contoh, menempatai
lokasi 0003H. Jika Interupsi Eksternal 0 akan digunakan, maka layanan
rutin harus dimulai pada lokasi 0003H. Jika interupsi ini tidak
digunakan, lokasi layanan ini dapat digunakan untuk berbagai keperluan
sebagai Memori Program.
Gambar 1.6. Peta Interupsi mikrokontroller 8051
c. Memori Data
Pada gambar 1.7. menunjukkan ruang memori data internal dan eksternal
pada keluarga 8051. CPU membangkitkan sinyal RD dan WR yang diperlukan
selama akses RAM eksternal. Memori data internal terpetakan seperti pada
gambar 1.7. Ruang memori dibagi menjadi tiga blok, yang diacukan
sebagai 128 byte lower, 128 byte upper dan ruang SFR. Alamat memori data
internal selalu mempunyai lebar data satu byte. Pengalamatan langsung
diatas 7Fh akan mengakses satu alamat memori, dan pengalamatan tak
langsung diatas 7Fh akan mengakses satu alamat yang berbeda. Demikianlah
pada gambar 1.7 menunjukkan 128 byte bagian atas dan ruang SFR
menempati blok alamat yang sama, yaitu 80h sampai dengan FFh, yang
sebenarnya mereka terpisah secara fisik
128 byte RAM bagian bawah dikelompokkan lagi menjadi beberapa blok,
seperti yang ditunjukkan pada gambar 8. 32 byte RAM paling bawah,
dikelompokkan menjadi 4 bank yang masing-masing terdiri dari 8 register.
Instruksi program untuk memanggil register-register ini dinamai sebagai
R0 sampai dengan R7. Dua bit pada Program Status Word (PSW) dapat
memilih register bank mana yang akan digunakan. Penggunaan register R0
sampai dengan R7 ini akan membuat pemrograman lebih efisien dan singkat,
bila dibandingkan pengalamatan secara langsung.
Gambar 1.7. Memori data internal
Gambar 1.8. RAM internal 128 byte paling bawah
Semua pada lokasi RAM 128 byte paling bawah dapat diakses baik dengan
menggunakan pengalamatan langsung dan tak langsung. 128 byte paling atas
hanya dapat diakses dengan cara tak langsung, gambar 1.9.
Gambar 1.9. RAM internal 128 byte paling atas
d. Special Function Register
Sebuah peta memori yang disebut ruang special function register ( SFR )
ditunjukkan pada gambar berikut. Perhatikan bahwa tidak semua
alamat-alamat tersebut ditempati, dan alamat-alamat yang tak ditempati
tidak diperkenankan untuk diimplementasikan. Akses baca untuk alamat ini
akan menghasilkan data random, dan akses tulis akan menghasilkan efek
yang tak jelas.
e. Accumulator
ACC adalah register akumulator. Mnemonik untuk instruksi spesifik
akumulator ini secara sederhana dapat disingkat sebagai A.
f. Register
Register B digunakan pada saat opersi perkalian dan pembagian. Selain
untuk keperluan tersebut diatas, register ini dapat digunakan untuk
register bebas.
g. Program Status Word.
Register PSW terdiri dari informasi status dari program .
h. Stack Pointer
Register Pointer stack mempunyai lebar data 8 bit. Register ini akan
bertambah sebelum data disimpan selama eksekusi push dan call. Sementara
stack dapat berada disembarang tempat RAM. Pointer stack diawali di
alamat 07h setelah reset. Hal ini menyebabkan stack untuk memulai pada
lokasi 08h.
i. Data Pointer
Pointer Data (DPTR) terdiri dari byte atas (DPH) dan byte bawah (DPL).
Fungsi ini ditujukan untuk menyimpan data 16 bit. Dapat dimanipulasi
sebagai register 16 bit atau dua 8 bit register yang berdiri sendiri.
Gambar 1.10. Pemetaan Data Pointer.
Tidak ada komentar:
Posting Komentar