Cara Kerja Mikrokontroler Prinsip kerja

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.
Kemampuan tinggi, bentuk kecil, konsumsi daya rendah, dan harga murah 
mikrokontroler banyak 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 Z80nya, 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 Spesifc 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 (ftur), seperti pada 8031, 80C31, 8051AH dan 8751.Beberapa
perusahaan membuat varian nya yaitu suatu chip yang kompatibel dengan
bahasa dan ftur 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 flosopi 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 alamatalamat 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 masingmasing 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

FUNGSI ALTERNATIF

ADDRES

P3.0

RXD

B0H

Penerima data pada port serial

P3.1

TXD

B1H

Pemancar data pada port serial

P3.2

INT0

B2H

Eksternal interupsi 0

P3.3

INT 1

B3H

Eksternal interuposi 1

P3.4

T0

B4H

Input Timer/ counter eksternal

P3.5

T1

B5H

Input Timer / counter

P3.6

WR

B6H

Sinyal pembacaan memori data eksternal

P3.7

RD

B7H

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 mikrokomputer. 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 programprogram 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
Pengalamatan

antara
ini

alat

harus

dengan

ditentukan

sebuah

terlebih

komputer.

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 keluarmasuknya 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. Adatidaknya 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 konfgurasi 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

EEPROM

Memory
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

mikrokontroler
tersebut

dapat

terdapat

bekerja

sebuah

bila

program

di

dalam

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
sebagai

digunakan
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 pulsapulsa 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
Signifcant Bit (LSB) terletak pada kaki 39 dan Most
Signifcant 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 dikonf-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 verifkasi program yang
telah ter- simpan dalam flash. Dalam hal ini dibutuhkan pull-up
eksternal selama proses verifkasi 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
menyerap

Port 1 mampu

arus empat masukan TTL (sekitar

memberikan /
1,6mA). Jika ‘1’

dituliskan ke kaki-kaki Port 1, maka masing-masing kaki akan dipulled high dengan pull-up internal sehingga dapat digunakan
sebagai masukan. Apabila kaki-kaki Port 1

dihubungkan

ground (di-pulled low), maka masing-masing kaki

ke

akan

memberikan arus (source) karena di-pulled high secara

internal.

Port 1 juga menerima alamat bagian rendah (low byte)

selama

pemrograman dan verifkasi 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 kakikaki 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 verifkasi 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