Mikroprosesor Z80
Suryanto SutiknoA. Pendahuluan
Mikrokontroler merupakan lompatan teknologi mikroprosesor dan mikro-komputer. Mikrokontroler diciptakan tidak semata-mata hanya memenuhi kebutuh-an kalkebutuh-angkebutuh-an industri, namun juga para konsumen untuk pembuatkebutuh-an alat-alat bkebutuh-antu 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
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) 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
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 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).
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
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
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-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,
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.
Merupakan sinyal baca untuk memori program eksternal. Saat mikrokontroler keluarga 51 menjalankan program dari memori
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.
DAFTAR PUSTAKA
Ambar Tri Utomo, Ramadani Syahputra, I., 2011. Implementasi Mikrokontroller Sebagai Pengukur Suhu Delapan Ruangan. Pengukur Suhu, 4(Pengukur Suhu Delapan Ruangan), pp.153–159.
Chamim, A.N.N. & Iswanto, 2011. Implementasi Mikrokontroler Untuk Pengendalian Lampu Dengan Sms. In Prosending Retii 6.
Iswanto, 2008. Design dan Implementasi Sistem Embedded Mikrokontroler
ATMEGA8535 dengan Bahasa Basic, Yogyakarta: Gava Media.
Iswanto, I., 2008. Antarmuka Port Pararel dan Port Serial dengan Delphi 6 Compatible
Sistem Operasi Windows, Gava Media.
Iswanto, I., 2009. Belajar Sendiri Mikrokontroller AT90S2313 Dengan Basic Compiler, Andi Publisher.
Iswanto, I., 2007. Membangun Aplikasi Berbasis PHP 5 dan Firebird 1.5, Andi Publisher.
Iswanto, I. & Raharja, N.M., 2010. Sistem monitoring dan peringatan dini tanah longsor. In Simposium Nasional RAPI IX 2010. pp. 54–62.
Iswanto, I., Raharja, N.M. & Subardono, A., 2009. Sistem Peringatan Dini Tanah Longsor Berbasis Atmega8535. In Seminar Nasional Informatika 2009 (semnasIF
2009). pp. 53–57.
ISWANTO, JAMAL, A. & SETIADY, F., 2011. Implementasi Telepon Seluler sebagai Kendali Lampu Jarak Jauh. Jurnal Ilmiah Semesta Teknika, 14(1), pp.81–85. Prasetya, D.B., Iswanto & Sadad, R.T.A., 2010. Implementasi Mikrokontroler Sebagai
Pengendali Kapasitor Untuk Perbaikan Faktor Daya Otomatis pada Jaringan Listrik.
SEMESTA TEKNIKA, 13(2), pp.181–192.
Sadad, R.T.A. & Iswanto, 2011. Peranan Teknologi Solar Cell dalam Peningkatan Daya Saing Usaha Kecil dan Menengah. SEMESTA TEKNIKA, 14(1), pp.58–63.