Anda di halaman 1dari 39

Cara Kerja Mikrokontroler

Prinsip kerja mikrokontroler adalah sebagai berikut:


Berdasarkan nilai yang berada pada register Program Counter, mikrokontroler mengambil
data pada ROM dengan alamat sebagaimana yang tertera pada register Program Counter.
Selanjutnya isi dari register Program Counter ditambah dengan satu (Increment) secara otomatis.
Data yang diambil pada ROM merupakan urutan instruksi program yang telah dibuat dan diisikan
sebelumnya oleh pengguna.
Instruksi yang diambil tersebut diolah dan dijalankan oleh mikrokontroler. Proses
pengerjaan bergantung pada jenis instruksi, bisa membaca, mengubah nilai-nilai pada register,
RAM, isi Port,atau melakukan pembacaan dan dilanjutkan dengan pengubahan data.
Program Counter telah berubah nilainya (baik karena penambahan otomatis pada langkah 1,
atau karena pengubahan-pengubahan pada langkah 2). Selanjutnya yang dilakukan oleh
mikrokontroler adalah mengulang kembali siklus ini pada langkah 1. Demikian seterusnya hingga
power dimatikan.

PERKEMBANGAN MIKROPROSESOR DAN MIKROKONTROLER
Komputer hadir 50 tahun terakhir, namun efeknya sangat besar dalam mengubah kehidupan
manusia.

Kemampuan chip mikroprosesor :

1. Melakukan komputasi sangat cepat.
2. Dapat bekerja sendiri dengan program.
3. Memory untuk menyimpan banyak data.

Perkembangan zaman memperluas kebutuhan akan komputer munculnya chip mikrokontroler.
Mikroprosesor dan mikrokontroler adalah suatu IC yang hanya bisa bekerja bila diisi suatu program
yang sesuai untuk menjalankannya. Mikroprosesor salah satu piranti yang di gunakan sebagai CPU
dalam sistem komputer (single chip CPU ). Mikrokontroler merupakan IC yang di dalamnya terdapat
CPU, RAM, ROM, I/O Port, dll (single chip computer).

Komputer satu chip yang memiliki kemampuan untuk diprogram dan digunakan untuk tugas yang
berorientasi kontrol. Alasan adanya mikrokontroler: kebutuhan pasar (market need)
perkembangan teknologi baru dimana mikrokontroler mempunyai kemampuan komputasi yang
sangat cepat, bentuk yang semakin mungil, dan harga yang semakin murah.

digunakan. Digunakan untuk mainan anak-anak, perangkat elektronik rumah tangga, perangkat
pendukung otomotif, peralatan industri, peralatan telekomunikasi, peralatan medis dan kedokteran,
dan pengendali robot serta persenjataan militer.

Keunggulan alat-alat yang berbasis mikrokontroler (microcontroller-based solutions) : Kehandalan
tinggi (high reliability) dan kemudahan integrasi dengan komponen lain (high degree of integration)
Ukuran yang semakin dapat diperkecil (reduced in size) Penggunaan komponen dipersedikit
(reduced component count) yang juga akan menyebabkan biaya produksi dapat semakin ditekan.

Penggunaan komponen dipersedikit (reduced component count) yang juga akan menyebabkan biaya
produksi dapat semakin ditekan (lower manufacturing cost) Waktu pembuatan lebih singkat
(shorter development time) sehingga lebih cepat pula dijual ke pasar sesuai kebutuhan (shorter time
to market) Konsumsi daya yang rendah (lower power consumption).

Perkembangan Mikroprosesor : Intel 4004 4 bit Memori 4096 lokasi 45 instruksi Teknologi P-
channel MOSFET 50 KIP (kilo instructions per seconds) Versi 8 bit: 404 - Intel 8008 (1971) 8-bit
Memori 16kbyte 48 instruksi 50 KIP - Intel 8080 (1973) Motorola MC6800 8 bit Memori 64
kbyte 500 KIP Kompatibel dengan TTL - Intel 8085 (1977) 8-bit 769.230 instructions per
seconds 246 instruksi Internal clock generator Sistem kontrol internal Frekuensi clock lebih
tinggi Zilog Z-80 - Intel 8086, 8088 (1978) 16-bit 2,5 MIP Memori 1Mbyte 200 kilo instruksi
(CISC) - Intel 80286 16-bit Memori 16 Mbyte 4 MIP Lebih cepat 8 kali - Intel 80386 Data 32-
bit, alamat 32-bit Memori 4 Gbyte Varian: 80386SX, 80386SLC, 80386EX Koprosesor 80387 -
Intel 80486 Gabungan prosesor dan koprosesor 50 MIP - ntel Pentium (1993) Frekuensi 60 MHz,
66 MHz, 120 MHz, 133 MHz, 233 MHz 150 MIP RISC (Reduced Instruction Set Computer) -
Pentium Pro (1995) 150 MHz, 166 MHz Pentium II Pentium III Pentium 4 dst.

Perkembangan Mikrokontroler : 1970-an, Motorola 6800, dikembangkan hingga sekarang menjadi
68HC05, 68HC08, 68HC11, 68HC12, dan 68HC16. Zilog Z80-nya, dikembangkan hingga kini menjadi
Z180, dan diadopsi oleh mikroprosesor Rabbit. Intel 8051, arsitektur 8051 kemudian diadopsi oleh
vendor lain seperti Phillips, Siemens, Atmel, dan vendor-vendor. Basic Stamps, PIC dari Microchip,
MSP 430 dari Texas Instrument, dll. Perkembangan chip pintar lain DSP prosesor Application
Spesific Integrated Circuit (ASIC).

Perkembangan Mikrokontroller
intel 4004




intel 8048









Intel 4004 adalah mikropprosesor pertama yang dibuat tahun 1971, sedangkan Intel 8048 adalah
single chip microprosesor yang pertama, dilempar kepasaran ditahun 1976 dan ini yang merupakan
cikal bakal dari mikrokontroler. Keluarga dari 8048 adalah 8021, 8022, 8048, 8049 yang hingga saat
ini masih digunakan pada alat-alat kedokteran modern dan digunakan pada keyboard IBM PC untuk
scanning tombol-tombolnya.. Versi 8748 memiliki EPROM 1 Kbyte untuk menyimpan programnya.
Keluarga mikrokontroler pertama ini dikenal dengan nama MCS-48.
Generasi kedua mikrokontroler 8 bit adalah keluarga mikrokontroler 8051 di tahun 1980, dengan
nama MCS-51 dan diklaim sebagai standart mikrokontroler untuk industri yang menguasai lebih dari
60% pasar mikrokontroler dan menjadi inti bagi terciptanya mikrokontroler produk lainnya. Generasi
ketiga adalah mikrokontroler 16 bit, seri MCS-96 yang dapat melakukan operasi 16 bit serta
penambahan kemampuan dan kecepatan proses yang ditingkatkan. Kini jutaan chip telah digunakan
diseluruh dunia untuk pengendalian proses-proses dan instrumentasi.
Seri MCS-51 sederhana, murah dan mudah didapat dipasaran, cukup untuk aplikasi sederhana bagi
para pecinta elektronik maupun aplikasi di industri. Chip ini kemudian dikembangkan menjadi
beberapa seri dengan berbagai kemampuan (fitur), seperti pada 8031, 80C31, 8051AH dan
8751.Beberapa perusahaan membuat varian nya yaitu suatu chip yang kompatibel dengan bahasa
dan fitur 8051 ditambah dengan kemampuan dan kemudahan khusus. Perusahaan tersebut antara
lain; AMD, Atmel, Dallas, Matra, OKI, Philips, Siemens, ISS. Produk Philips memberikan tambahan
adanya ADC dan generator PWM, sedangkan Dallas mempercepat detak (clock) dan siklus mesin,
Atmel membuat mikrokontroler yang menggunakan memory Flash didalamnya dan harganya relatif
murah, Atmel juga membuat mikrokontroler kecil, 20 pin yaitu AT89C2051.


at89s205
.
Saat ini ada banyak mikrokontroler didunia, tetapi di Indonesia yang banyak digunakan untuk
ekperimental (diantaranya digunakan untuk lomba robot) adalah produk Atmel Seri MCS51 seperti
AT89S51, AT89S2051, seri AVR seperti ATMega8, ATMega16, AT902313, AT8535 dan seterusnya.
Pilih mana?, ini harus melihat kebutuhan. Misalnya digunakan untuk pengajaran - sekolah, maka
lebih baik diberikan seri MCS51 saja, sebab dapat berlaku seperti mikroprosesor atau mikrokontroler
serta masih mengandung filosopi dasar mikroprosesor, sedangkan seri AVR dengan banyak
kemudahannya bisa dipilih untuk aplikasi - cepat. Untuk harga yang paling murah dan mudah
didapat, saat ini adalah AT89S2051, sekitar 15rb/buah, jumlah pin 20, mudah memprogramnya,
sangat cocok untuk pemula.

PERBEDAAN ANTARA MIKROPROSESOR DAN MIKROKONTROLER

Sobat blogger yang berbahagia, pembahasan untuk sesi sistem mikroprosesor kita akhiri dulu
dan sekarang kita beralih ke sesi sistem mikrokontroler. Pada pertemuan yang pertama untuk sesi
sistem mikrokontroler kali ini kita akan bahas tentang perbedaan antara mikroprosesor dan
mikrokontroler. Sebenarnya mikroprosesor dan mikrokontroler dikembangkan dari satu ide dasar
yang sama dan dibuat oleh orang yang sama. Lalu apa perbedaan diantara keduanya ?, Nah untuk
mengetahuinya ikuti dan simak uraian berikut ini.

1. Mikroprosesor
Mikroprosesor dalam perkembangan komputer digital disebut sebagai Central Processing Unit
(CPU) yang bekerja sebagai pusat pengolah dan pengendalian pada sistem komputer mikro. Sebuah
mikroprosesor tersusun dari tiga bagian penting yaitu : Arithmetic Logic Unit (ALU), Register Unit
(RU), dan Control Unit (CU) seperti terlihat pada Gambar 1 di bawah ini.

Gambar 1. Blok Diagram Mikroprosesor

Untuk membangun fungsi sebagai komputer mikro, sebuah mikroprosesor harus dilengkapi
dengan memori, biasanya memori program yang hanya bisa dibaca (Read Only Memory=ROM) dan
memori yang bisa dibaca dan ditulisi (Read Write Memory=RWM), decoder memori, osilator, dan
sejumlah peralatan input output seperti port data seri dan paralel.
Pokok dari penggunaan mikroprosesor adalah untuk mengambil data, membentuk kalkulasi,
perhitungan atau manipulasi data, dan menyimpan hasil perhitungan pada peralatan penyimpan atau
menampilkan hasilnya pada sebuah monitor atau cetak keras.

2. Mikrokontroler
Mikrokontroler adalah komputer mikro dalam satu chip tunggal. Mikrokontroler memadukan
CPU, ROM, RWM, I/O paralel, I/O seri, counter-timer, dan rangkaian clock dalam satu chip tunggal
seperti terlihat pada Gambar 2 di bawah ini.

Gambar 2. Blok Diagram Mikrokontroler

Sama halnya dengan mikroprosesor, mikrokontroler adalah piranti yang dirancang untuk
kebutuhan umum. Penggunaan pokok dari mikrokontroler adalah untuk mengontrol kerja mesin atau
sistem menggunakan program yang disimpan pada sebuah ROM. Untuk melihat perbedaan konsep
diantara mikroprosesor dan mikrokontroler di bawah ini ditunjukan tabel perbandingan konfigurasi,
arsitektur, dan set instruksi diantara mikroprosesor Z-80 CPU dengan mikrokontroler 8051.
Tabel 1. Perbandingan konfigurasi, arsitektur, dan set instruksi



Sebagai catatan dari tabel ini, jika dilakukan perbandingan bukanlah berarti menunjukkan
bahwa yang satu lebih baik dari yang lainnya. Kedua rancangan tersebut memiliki penekanan dan
tujuan yang berbeda.

3. Survey Mikrokontroler
Seperti halnya sebuah mikroprosesor, mikrokontroler juga berkembang dalam rancangan dan
aplikasinya. Mikrokontroler berdasarkan jumlah bit data yang dapat diolah dapat dibedakan dalam :
- Mikrokontroler 4 Bit
- Mikrokontroler 8 Bit
- Mikrokontroler 16 Bit
- Mikrokontroler 32 Bit

a. Mikrokontroler 4 Bit
Mikrokontroler 4 bit merupakan mikrokontroler dengan jumlah bit data terkecil. Mikrokontroler
jenis ini diproduksi untuk meminimalkan jumlah pin dan ukuran kemasan.

Tabel 2. Mikrokontroler 4 bit


b. Mikrokontroler 8 Bit
Mikrokontroler 8 bit merupakan mikrkontroler yang paling banyak digunakan untuk dalam
pekerjaan-pekerjaan perhitungan skala kecil. Dalam komunikasi data, Data ASCII serial juga
disimpan dalam ukuran 8 bit. Kebanyakan IC memori dan fungsi logika dibangun menggunakan data
8 bit sehingga interface bus data menjadi sangat mudah dibangun. Penggunaan mikrokontroler 8 bit
jauh lebih banyak dibandingkan dengan mikrokontroler 4 bit. Aplikasinya juga sangat pariatif mulai
dari aplikasi kendali sederhana sampai kendali mesin berkecepatan tinggi.

Tabel 3. Mikrokontroler 8 bit


c. Mikrokontroler 16 Bit
Keterbatasan-keterbatasan yang ada pada mikrokontroler 8 bit berkaitan dengan semakin
kompleknya pengolahan data dan pengendalian serta kecepatan tanggap (respon),
disempurnakanlah dengan menggunakan mikrokontroler 16 bit. Salah satu solusinya adalah dengan
menaikkan kecepatan clock, dan ukuran data. Mikrokontroler 16 bit digunakan untuk mengatur
tangan robot, dan aplikasi Digital Signal Processing (DSP).

Tabel 4. Mikrokontroler 16 Bit


Pulse Width Modulation (PWM) atau modulasi lebar pulsa sangat bermanfaat untuk
mengontrol kecepatan motor listrik sebagai penggerak peralatan mesin industri.

d. Mikrokontroler 32 Bit
Mikrokontroler 32 bit ditargetkan untuk aplikasi Robot, Instrumen cerdas, Avionics, Image
Processing, Telekomunikasi, Automobil, dan sebagainya. Program-program aplikasinya bekerja
dengan sistem operasi.

adapun perbedaan mikrokontroler dengan mikroprosesor adalah:
perbedaan yang cukup penting antara Mikroprosesor dan Mikrokontroler. Jika
Mikroprosesor merupakan CPU (Central Processing Unit) tanpa memori dan I/O
pendukung dari sebuah komputer, maka Mikrokontroler umumnya terdiri dari
CPU, Memori , I/O tertentu dan unit pendukung, misalnya Analog to Digital
Converter (ADC) yang sudah terintegrasi di dalam mikrokontroler tersebut.
kelebihan mikrokontroler:
Mikrokontroler ialah telah tersedianya RAM dan peralatan I/O Pendukung
sehingga ukuran board mikrokontroler menjadi sangat ringkas. Terdapat berbagai
jenis mikrokontroler dari berbagai vendor yang digunakan secara luas? di dunia.
Diantaranya yang terkenal ialah dari Intel, Maxim, Motorolla , dan ATMEL.
Beberapa seri mikrokontroler yang digunakan secara luas ialah 8031, 68HC11,
6502 , 2051 dan 89S51. Mikrokontroler yang mendukung jaringan komputer
seperti DS80C400 tampaknya akan menjadi primadona pada tahun-tahun
mendatang
DASAR-DASAR MIKROKONTROLLER
AT89S51 (BAG-1)
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.
About these ads


Mikrokontroler adalah mikrokomputer dalam keping tunggal (single chip Microcomputer) yang dapat berdiri
sendiri serta memiliki CPU dan dilengkapi dengan memori input output. Mikrokontroler AT89C51 adalah
mikrokontroler ATMEL yang kompatibel penuh dengan mikrokontroler keluarga MCS-51, membutuhkan daya
yang rendah, memiliki performa yang tinggi dan merupakan mikrokomputer 8 bit yang dilengkapi 4 Kbyte
EPROM (Erasable and Programable Read Only Memori) dan 128 byte RAM internal. Program memori dapat
diprogram ulang dalam sistem atau dengan menggunakan Program Nonvolately Memory Konvensional.

Arsitektur AT89C51
Arsitektur dasar dari mikrokontroler AT89C51 seperti diagram blok berikut ini:

Arsitektur Mikrokontroler AT89C51

Sebagai single chip yaitu suatu system mikroprosesor yang terintegrasi, mikrokontroler AT89C51 mempunyai
konfigurasi sebagai berikut:

CPU 8 bit termasuk keluarga MCS-51.
4 Kbyte alamat untuk memory program internal (EEPROM).
128 byte memory data dalam ( Internal Data memory/ RAM).
8 bit program status word (PSW).
8 bit stack pointer ( SP).
32 pin I/O tersusun yaitu port 0-port 3 @ 8 bit.
2 buah timer/ counter 16 bit.
Data serial full dupleks.
Control register.
5 sumber interrupt.
Rangkaian osilator dan clock.



Fungsi Pin Mikrokontroller AT89C51
Susunan pin-pin mikrokontroller AT89C51 diperlihatkan pada Gambar di bawah ini dan penjelasan dari masing-
masing pin adalah sebagai berikut:

PIN Mikrokontroler AT89C51


Port 0
Port 0 merupakan port dua fungsi yang berada pada pin 32-39 dari IC AT 89C51. Merupakan port I/O 8 bit dua
arah yang serba guna port ini dapat digunakan sebagai multlipleks bus data dan bus alamat rendah untuk
pengaksesan memori eksternal.

Port 1
Port 1 merupakan port I/O yang berada pada pin 1-8. Port ini dapat bekerja dengan baik untuk operasi bit
maupun byte, tergantung dari pengaturan pada software

Port 2
Port 2 merupakan port I/O serba guna yang berada pada pin 21- 28, port ini dapat juga digunakan sebagai bus
alamat byte tinggi untuk rancangan yang melibatkan pengaksesan memori eksternal.

Port 3
Port 3 merupakan port I/O yang memiliki dua fungsi yang berada pada pin 10-17, port ini mempunyai multi
fungsi, seperi yang terdapat pada tabel berikut:
BIT NAMA BIT
ADDRES
FUNGSI ALTERNATIF
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD
TXD
INT0
INT 1
T0
T1
WR
RD
B0H
B1H
B2H
B3H
B4H
B5H
B6H
B7H
Penerima data pada port serial
Pemancar data pada port serial
Eksternal interupsi 0
Eksternal interuposi 1
Input Timer/ counter eksternal
Input Timer / counter
Sinyal pembacaan memori data eksternal
Sinyal penulisan memori data eksternal


PSEN ( Programable Store Enable)
PSEN adalah sebuah sinyal keluaran yang terdapat pada pin 29. Fungsinya adalah sebagai sinyal kontrol untuk
memungkinkan mikrokontroller membaca program (code) dari memori eksternal atau dapat dikatakan sebagai
sinyal kontrol yang menghubungkan memori program eksternal dengan bus selama pengaksesan.

ALE ( Address Latch Enable)
Sinyal output ALE yang berada pada pin3.0 fungsinya sama dengan ALE pada mikroprosesor INTEL 8085 atau
8088. Sinyal ALE dipergunakan untuk demultlipleks bus alamat dan bus data. Dan untuk menahan
alamat memori eksternal selama pelaksanaan instruksi.

EA ( External Acces)
Maksudnya sinyal EA terdapat pada pin 3.1 yang dapat diberikan logika rendah (ground) atau logika tinggi(+ 5 V
). Jika EA diberikan logika tinggi maka mikrokontroller akan mengakses program dari ROM internal ( EEPROM/
flash memori).Jika EA diberi logika rendah maka mikrokontroller akan mengakses program dari memori
eksternal.

RST ( Reset)
Input reset pada pin 9 adalah reset master untuk AT89C51. Perubahan tegangan dari rendah ke tinggi akan
merest AT 89C51.

Osilator
Osilator yang disediakan pada chip dikemudikan dengan kristal yang dihubungkan pada pin 18 (X2) dan pin 19
(X1) sebesar 12 Mhz.

Osilator Eksternal AT89C51
Power (Vcc)
AT89C51 dioperasikan dengan tegangan supply +5v, pin Vcc berada pada pin 40 dan Vss(ground) pada pin 20.

ARSITEKTUR MIKROKONTROLER AT89C51/52/55

A. Pendahuluan
Mikrokontroler merupakan lompatan teknologi mikroprosesor dan mikro-
komputer. Mikrokontroler diciptakan tidak semata-mata hanya memenuhi kebutuh-an
kalangan industri, namun juga para konsumen untuk pembuatan alat-alat bantu dan
mainan yang lebih canggih. Aplikasi lain dari mikrokontroler adalah dalam bidang
pengukuran jarak-jauh / telemetri. Sistem telemetri ini jelas memerlukan sistem akuisi
data sekaligus sistem pengiriman data secara serial (melalui transmi-ter), yang semua
itu bisa diperoleh dari mikrokontroler yang digunakan. Sedikit berbeda dengan sistem
komputer (yang dapat menangani berbagai macam program aplikasi), mikrokontroler
hanya bisa digunakan untuk aplikasi tertentu saja (hanya satu program saja yang dapat
disimpan). Perbedaan lainnya terletak pada perbandingan memori ROM & RAM-nya.
Pada sistem komputer perbandingan memori ROM & RAM-nya besar, artinya program-
program yang sedang digunakan disimpan dalam RAM yang kapasitasnya relatif besar,
sedang rutin-rutin interface hardware disimpan dalam ROM yang kapasitasnya kecil.
Untuk mikrokontroler perbandingan memori ROM & RAM-nya yang besar, artinya
program kontrol disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang
ukurannya relatif besar, sedangkan RAM digunakan sebagai tempat penyimpan
sementara, ter-masuk register-register yang dipakai pada mikrokontroler yang
bersangkutan.

B. Pengenalan Mikrokontroler AT89C51
Mikrokontroler, sebagai suatu terobosan teknologi mikroprosesor dan
mikrokomputer, hampir memenuhi kebutuhan pasar dan teknologi baru. Teknologi baru, di
sini pengertiannya adalah teknologi semikonduktor dengan kandungan transistor yang lebih
banyak namun membutuhkan ruang yang kecil serta dapat diproduksi secara massal sehingga
harganya menjadi lebih murah. Mikrokontroler hadir untuk memenuhi selera industri dan para
konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan yang lebih baik atau
canggih.
Ada perbedaan yang cukup penting antara mikroprosesor dengan mikrokontroler. Jika
mikroprosesor merupakan CPU (Central Processing Unit) tanpa memori dan I/O pendukung
dari sebuah komputer, maka mikrokontroler umumnya terdiri atas CPU, memori, I/O tertentu,
dan unit pendukung lainnya, misalnya Analog to Digital Converter (ADC) yang sudah
terintegrasi di dalam mikrokontroler tersebut. Kelebihan mikrokontroler adalah telah
tersedianya RAM dan peralatan I/O pendukung. Terdapat berbagai jenis mikrokontroler dari
berbagai vendor yang digunakan secara luas di dunia ini. Di antaranya yang terkenal adalah
dari Intel, Maxim, Motorola, dan ATMEL.

2.1.1 Komponen Dasar Mikrokontroler
Mikrokontroler umumnya terdiri dari dari CPU, memori, I/O tertentu dan
unit pendukung lainnya seperti ADC (Analog Digital Converter) yang sudah terintegrasi
didalamnya.
1. Cental Processing Unit (CPU)
CPU terdiri atas dua bagian, yaitu unit pengendali (control unit) serta unit
aritmatika dan logika (ALU). Fungsi utama unit pengendali adalah mengambil,
mengkodekan, dan melaksanakan urutan instruksi sebuah program yang
tersimpan dalam memori. Unit pengendali menghasilkan dan mengatur sinyal
pengendali yang diperlukan untuk menyerempakan operasi, aliran, dan instruksi
program. Unit aritmatika dan logika berfungsi untuk melakukan proses
perhitungan yang diperlukan selama program dijalankan serta
mempertimbangkan suatu kondisi dan mengambil keputusan yang diperlukan
untuk instruksi-instruksi berikutnya.
2. Bus Alamat
Bus alamat berfungsi sebagai sejumlah lintasan saluran pengalamatan
antara alat dengan sebuah komputer. Pengalamatan ini harus ditentukan terlebih
dahulu untuk menghindari terjadinya kesalahan pengiriman sebuah instruksi dan
terjadinya ketidaksesuaian antara dua buah alat yang bekerja secara bersamaan.
3. Bus Data
Bus data merupakan sejumlah lintasan saluran keluar-masuknya data dalam
suatu mikrokontroler. Pada umumnya saluran data yang masuk sama dengan
saluran data yang keluar.
4. Bus Kontrol
Bus kontrol atau bus pengendali ini berfungsi untuk menyerempakan
operasi mikrokontroler dengan operasi rangkaian luar.
5. Memori
Di dalam sebuah mikrokontroler terdapat suatu memori yang berfungsi
untuk menyimpan data atau program. Ada beberapa jenis memori, di antaranya
adalah RAM dan ROM. Ada beberapa tingkatan memori, di antaranya adalah
register internal, memori utama, dan memori massal. Register internal adalah
memori di dalam ALU. Waktu akses register ini sangat cepat, umumnya kurang
dari 100 ns. Memori utama adalah memori yang ada pada suatu sistem. Waktu
aksesnya lebih lambat dibanding register internal, yaitu antara 200 sampai 1000
ns. Memori massal dipakai untuk penyimpanan berkapasitas tinggi, biasanya
berbentuk disket, pita magnetik, atau kaset.
6. Random Access Memory (RAM)
RAM merupakan memori yang dapat dibaca dan ditulis. RAM biasanya
digunakan untuk menyimpan data sementara atau sering disebut dengan memori
data saat program bekerja. Data yang ada pada RAM akan hilang bila catu daya
dari RAM dimatikan sehingga RAM hanya dapat digunakan untuk menyimpan data
sementara. Teknologi RAM dapat dibagi menjadi dua, yaitu statik dan dinamik.
RAM dinamik tersusun oleh sel-sel yang menyimpan data sebagai muatan listrik
pada kapasitor. Ada-tidaknya muatan yang ada pada kapasitor dijadikan oleh RAM
dinamik sebagai bilangan biner 1 atau 0. Oleh karena kapasitor memiliki
kecendrungan alami untuk mengosongkan muatan, RAM dinamik memerlukan
pengisian muatan secara periodik untuk memelihara penyimpanan data. Pada
RAM statik, nilai biner disimpan menggunakan konfigurasi gate logika flip-flop.
RAM statik akan menyimpan data selama aliran daya diberikan padanya.
7. Read Only Memory (ROM)
ROM merupakan memori yang hanya dapat dibaca. Data yang disimpan
di ROM tidak akan hilang meskipun tegangan catu daya dimatikan. Berdasar sifat
itu maka ROM sering dipakai untuk menyimpan program. Ada beberapa jenis
ROM, diantaranya ROM, PROM, EPROM, dan EEPROM. ROM merupakan memori
yang sudah diprogram oleh pabrik. PROM dapat diprogram oleh pemakai tapi
hanya dapat ditulis sekali saja. UV-EPROM merupakan PROM yang dapat
diprogram atau ditulis beberapa kali dan dapat dihapus dengan sinar ultraviolet.
Flash PEROM adalah PROM yang dapat ditulis ulang beberapa kali dan dapat
dihapus secara elektrik atau dengan tegangan listrik. UV-EPROM harganya lebih
mahal dari Flash PEROM, karena itu Flash PEROM lebih populer dan diminati
programmer mikrokontroler.
2.1.2 Mikrokontroler AT89C51
Mikrokontroler AT89C51 adalah mikrokomputer CMOS 8 bit dengan 4KB Flash
Programmable dan Erase Read Only Memory (PEROM) yang termasuk dalam keluarga
Atmel. Mikrokontroler jenis ini merupakan Chip yang menggunakan teknologi memori
non-volatile, mikrokontroler AT89C51 ini kompatibel dengan mikrokontroler standar
industri MCS-51 (seperti mikrokontroler 8031 yang terkenal dan banyak digunakan
beberapa waktu lalu).
AT89C51 mempunyai memori yang terdiri atas : RAM internal sebesar 128
byte dengan alamat 00H-7Fh, dan dapat diakses menggunakan RAM address register.
RAM internal ini terdiri atas Register Banks dengan 8 buah register (R0-R7). Memori
lain, yaitu 21 buah Special Function Register dimulai dari alamat 80H-FFH. RAM ini
beda lokasi dengan Flash PEROM dengan alamat 000H-7FFH.
Tabel 1. Alamat RAM Internal
Special Function Register
RAM Internal

Untuk sekedar perbandingan kapasitas memori, Tabel 2 berikut
memperlihatkan kapasitas memori dari mikrokontroler seri AT89XXX.
Tabel 2. Kapasitas Memori Mikrokontroler seri AT89XXX.
Type RAM Flash Memory EEPROM
AT89C51/S51 8 x 128 byte 4 Kbyte Tidak
AT89C52/S52 8 x 256 byte 4 Kbyte Tidak
AT89C55 8 x 256 byte 4 Kbyte Tidak
AT89S53 8 x 256 byte 4 Kbyte Tidak
AT89S8252 8 x 256 byte 4 Kbyte 4 Kbyte

2.1.3 Arsitektur Mikrokontroler AT89C51
Sebuah mikrokontroler dapat bekerja bila di dalam mikrokontroler tersebut
terdapat sebuah program yang berisi instruksi-instruksi yang akan digunakan untuk
menjalankan sistem mikrokontroler tersebut. Pada prinsipnya program pada
mikrokontroler dijalankan secara bertahap, jadi pada program itu sendiri terdapat
beberapa set instruksi dan tiap instruksi itu dijalankan secara bertahap atau
berurutan.
Beberapa fasilitas yang dimiliki oleh mikrokontroler AT89C51 adalah sebagai
berikut:
a. Sebuah CPU 8 bit.
b. Osilator internal dan rangkaian pewaktu.
c. RAM internal 128 byte.
d. Flash memori 4 Kbyte.
e. Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi
internal).
f. Empat buah programable port I/O yang masing-masing terdiri dari delapan buah
jalur I/O.
g. Sebuah port serial dengan kontrol serial full duplex UART.
h. Kemampuan untuk melaksanakan operasi aritmatika dan logika.
i. Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 12
MHz.
Berdasarkan susunan kaki yang terdapat pada Gambar 2 mikrokontroler
AT89C51 di atas dapat dijelaskan sebagai berikut:
a. VCC
Vcc digunakan sebagai catu daya (+) yang dibutuhkan mikrokontroler AT89C51.
b. GND
GND digunakan sebagai ground .















Gambar 1. Mikrokontroler seri AT89C51
c. RST (Reset)
Berfungsi sebagai masukan reset. Kondisi high selama 2 siklus mesin selama
osilator bekerja akan me-reset mikrokontroler yang bersangkutan.
d. ALE/PROG
Keluaran ALE atau Address Latch Enable akan menghasilkan pulsa-pulsa untuk
mengunci byte rendah (low byte) alamat selama mengakses memori eksternal. Kaki
ini juga berfungsi sebagai masukan pulsa program (the program pulse input)
atau PROG selama pemrograman flash. Pada operasi normal, ALE akan berpulsa
dengan laju 1/6 dari frekuensi kristal dan dapat digunakan sebagai pewaktuan
(timing) atau pendetakan (clocking) rangkaian eksternal. Jika dikehendaki, operasi
ALE bisa dimatikan dengan cara mengatur bit 0 dari SFR lokasi 8Eh. Jika isinya
1(hight), ALE hanya akan aktif selama dijumpai instruksi MOVX atau MOVC.
Selain itu, kaki ini akan secara lemah di-pulled high. Mematikan bit ALE tidak
akan ada efeknya jika mikrokontroler mengeksekusi program secara eksternal.

e. Port 0
Port 0 merupakan port paralel 8 bit dua arah. Posisi Least Significant Bit (LSB)
terletak pada kaki 39 dan Most Significant Bit (MSB) terletak pada kaki 32.







Gambar 2. Bit Port 0
Port 0 juga merupakan port keluaran/masukkan (I/O) bertipe open drain
bidirectional, dan sebagai port keluaran, masing-masing kaki dapat menyerap arus
(sink) delapan masukkan TTL (sekitar 3,8 mA). Pada saat 1 dituliskan ke kaki-kaki
Port 0 ini, maka kaki-kaki Port 0 dapat digu-nakan sebagai masukan
berimpedansi tinggi. Port 0 juga dapat dikonfi-gurasi sebagai bus alamat/data
bagian rendah (low byte) selama proses pengaksesan memori data dan program
eksternal. Jika digunakan dalam mode ini Port 0 memiliki pull-up internal. Port 0
juga menerima kode- kode yang dikirimkan kepadanya selama proses
pemrograman dan mengeluarkan kode-kode selama proses verifikasi program
yang telah ter- simpan dalam flash. Dalam hal ini dibutuhkan pull-up eksternal
selama proses verifikasi program.
f. Port 1
Port 1 merupakan port paralel 8 bit dua arah. Posisi LSB terletak pada kaki 1
dan MSB terletak pada kaki 8.







Gambar 3. Bit Port 1
Port 1 merupakan port I/O dua arah yang dilengkapi dengan pull-up internal.
Penyangga keluaran Port 1 mampu memberikan / menyerap arus empat masukan
TTL (sekitar 1,6mA). Jika 1 dituliskan ke kaki-kaki Port 1, maka masing-masing kaki
akan di-pulled high dengan pull-up internal sehingga dapat digunakan sebagai
masukan. Apabila kaki-kaki Port 1 dihubungkan ke ground (di-pulled low),
maka masing-masing kaki akan memberikan arus (source) karena di-pulled
high secara internal. Port 1 juga menerima alamat bagian rendah (low byte)
selama pemrograman dan verifikasi flash.
g. Port 2
Port 2 merupakan port paralel 8 bit dua arah. Port ini mengirim byte ala- mat-
alamat bila dilakukan pengaksesan memori eksternal. LSB terletak pada kaki 21 dan
MSB terletak pada kaki 28.








Gambar 4. Bit Port 2
Penyangga keluaran Port 2 mampu memberikan/menyerap arus empat masukan
TTL (sekitar 1,6 mA). Jika 1 dituliskan ke kaki- kaki Port 2, maka masing-masing
kaki akan di-pulled high dengan pullup internal sehingga dapat digunakan sebagai
masukan. Apabila kaki-kaki Port 2 dihubungkan ke ground (di-pulled low), maka
masing-masing kaki akan memberikan arus (source) karena di-pulled high secara
internal. Port 2 akan memberikan byte alamat bagian tinggi (high byte) selama
pengambilan instruksi dari memori program eksternal dan selama pengaksesan
memori data eksternal yang menggunakan perintah dengan alamat 16 bit
(misalnya: MOVX @ DPTR). Dalam aplikasi ini, jika ingin mengirimkan 1, maka
digunakan pull-up internal yang sudah disediakan. Selama pengaksesan memori
data eksternal yang menggunakan perintah dengan alamat 8 bit (misalnya:
MOVX @Ri), Port 2 akan mengirimkan isi dari SFR P2. Port 2 juga menerima alamat
bagian tinggi selama pemrograman dan verifikasi flash.
h. Port 3
Port 3 merupakan port paralel 8 bit dua arah. LSB terletak pada kaki 10 dan
MSB terletak pada kaki 17. Port ini mempunyai beberapa fungsi khusus yaitu:
Tabel 3. Fungsi khusus kaki-kaki pada port 3
KAKI PORT 3 FUNGSI KHUSUS
P3.0 RXD (port input serial)
P3.1 TXD (port output serial)
P3.2 INT0 (interrupt eksternal 0)
P3.3 INT1 (interrupt eksternal 1)
P3.4 T0 (input eksternal timer 0)
P3.5 T1 (input eksternal timer 1)
P3.6 WR (perintah write pada memori eksternal)
P3.7 RD (perintah read pada memori eksternal)

Port 3 merupakan port I/O dua arah dengan dilengkapi pull-up internal. Penyangga
keluaran Port 3 mampu memberikan / menyerap arus empat masukan TTL (sekitar
1,6 mA).









Gambar 5. Bit Port 3
Jika 1 dituliskan ke kaki-kaki Port 3, maka masing-masing kaki akan di-pulled high
dengan pull-up internal sehingga dapat digunakan sebagai masukan. Apabila kaki-
kaki Port 3 dihubungkan ke ground (di-pullup low), maka masing-masing kaki
akan memberikan arus (source) karena di-pulled high secara internal.
i. PSEN (Program Store Enable)
Merupakan sinyal baca untuk memori program eksternal. Saat mikrokontroler
keluarga 51 menjalankan program dari memori eksternal, PSEN akan diaktifkan dua
kali
per
siklus
mesin, kecuali dua aktivasi PSEN dilompati (diabaikan) saat mengakses memori
data eksternal.

















Gambar 6. Diagram blok AT89C51
j. EA/Vpp (External Access Enable)
EA harus selalu dihubungkan ke ground, jika mikrokontroler akan
mengeksekusi program dari memori eksternal lokasi 0000h hingga FFFFh.
Selain dari itu, EA harus dihubungkan ke Vcc agar mikrokontroler mengakses program
secara internal.
k. XTAL 1
XTAL1 berfungsi sebagai masukan dari rangkaian osilator.
l. XTAL 2
XTAL 2 berfungsi sebagai keluaran dari rangkaian osilator.

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.