Laporan Tugas Kuliah Sistem Mikroprosesor
Aplikasi IC Mikrokontroler AT89C2051 untuk Menyalakan LED
Oleh : 1. Yuni Almaadin 2. Imam Mustakim
(2206.100.035) (2206.100.038)
Jurusan Teknik Elektro Fakultas Teknologi Industri Institut Teknologi Sepuluh Nopember Surabaya 2008
Aplikasi Mikrokontroler AT89C2051 untuk Menyalakan LED
1. Tujuan Tujuan dari pembuatan alat ini adalah : a. Mengetahui cara kerja IC mikrokontroler AT89C2051 b. Mengetahui cara pemrograman IC mikrokontroler AT89C2051 c. Mengetahui cara men-download program ke dalam IC mikrokontroler AT89C2051 2. Dasar Teori Yang
dimaksud
dengan
mikrokontroler
adalah
sebuah
system
mikroprosesor lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba guna yang digunakan di dalam sebuah PC karena dalam sebuah mikrokontroler umumnya telah berisi komponen komponen pendukung, seperti prosesor, memory, dan I/O. Prinsip kerja mikrokontroler adalah sebagai berikut : a. 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. b. 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. c. Program Counter telah berubah nilainya (baik karena penambahan secara otomatris sebagaimana dijelaskan pada langkah 1 di atas atau karena pengubahan data pada langkah 2). Selanjutnya yang dilakukan
Page 2 of 9
mikrokontroler adalah mengulang kembali siklus ini pada langkah 1. Demikian seterusnya hingga catu daya dimatikan. IC mikrokontroler yang kita gunakan pada tugas ini adalah keluarga IC MCS51. Meskipun termasuk tua, keluarga mikrokontroler MCS51 adalah mikrokontroler yang paling populer saat ini. Keluarga ini diawali oleh Intel yang mengenalkan IC mikrokontroler type 8051 pada awal tahun 1980-an, 8051 termasuk sederhana dan harganya murah sehingga banyak digemari, banyak pabrik IC besar lain yang ikut memproduksinya, tentu saja
masing-masing
pabrik
menambahkan
kemampuan
pada
mikrokontroler buatannya meskipun semuanya masih dibuat berdasarkan 8051. Sampai kini sudah ada lebih 100 macam mikrokontroler turunan 8051, sehingga terbentuklah sebuah ‘keluarga besar mikrokontroler’ dan biasa disebut sebagai MCS51. Belakangan ini, pabrik IC Atmel ikut menambah anggota keluarga MCS51. Atmel merupakan pabrik IC yang sangat menguasai teknologi pembuatan Flash PEROM. Produksi mikrokontroler MCS51 Atmel dibagi dua macam, yaitu : a. AT89Cxx Beberapa jenis IC tersebut antara lain adalah sebagai berikut. AT89C51 mempunyai Flash PEROM dengan kapasitas 2 Kilo Byte, AT89C52 4 Kilo Byte, AT89C53 12 Kilo Byte, AT89C55 20 Kilo Byte dan AT89C8252 berisikan 8 Kilo Byte Flash PEROM dan 2 Kilo Byte EEPROM. Yang berkaki 20 adalah MCS51 yang disederhanakan, penyederhanaan dilakukan dengan cara mengurangi jalur untuk input/output paralel, kemampuan yang lain sama sekali tidak mengalami pengurangan. Penyederhanaan ini dimaksudkan untuk membentuk mikrokontroler yang bentuk fisiknya sekecil mungkin tapi mempunyai
kemampuan
sama.
Atmel
memproduksi
3
buah
mikrokontroler ‘mini’ ini, masing-masing adalah AT89C1051 dengan kapasitas Flash PEROM 1 Kilo Byte, AT89C2051 2 Kilo Byte dan AT89C4051 4 Kilo Byte. Ketiga mikrokontroler ini secara umum disebut
sebagai
AT89Cx051.
Notasi
”C”
pada
tipe
sebuah
mikrokontroler produksi Atmel mengindikasikan bahwa chip tersebut
Page 3 of 9
dalam pemrogramannya harus menggunakan rangkaian terpisah yang biasa disebut dengan ”downloader”. Sehingga bila ingin melakukan pemrograman ulang sebuah chip AT89Cxx harus mengeluarkannya (mencabut) dari rangkaian aplikasi. b. AT89Sxx Mikrokontroller 8-bit dengan 4K. Byte ISP (In System Programming) mikrokontroler saat ini tidak asing lagi dalam dunia elektronika, hampir semua peralatan elektronik dewasa ini menggunakan perangkat ini, mikrokontroler merupakan pengendali utama dalam peralatan elektronik saat ini, maka mikrokontroler merupakan suatu hal yang penting untuk dipelajari bagi mereka yang berkecimpung dalam dunia elektronika. Mikrokontroler yang dibahas disini adalah mikrokontroler buatan ATMEL yang mudah ditemui di pasaran di Indonesia, yaitu dari keluarga MCS-51. AT89S51 dan AT89S52 mempunyai kemampuan serial downloading atau lebih dikenal dengan istilah In System Programming (ISP) sehingga mikrokontroler langsung dapat diprogram pada rangkaiannya tanpa harus mencabut IC untuk diprogram, Programmer ISP dapat dibuat menggunakan beberapa resistor via paralel port komputer sehingga bagi mereka yang belum memiliki programmer dapat tetap bereskperimen menggunakan mikrokontroler ini dengan biaya yang relatif murah. Konfigurasi pin-pin dari IC mikrokontroler AT89C2051 adalah sebagai berikut :
RST/VPP (RXD) P3.0 (TXD) P3.1 XTAL2 XTAL1 (INT0) P3.2 (INT1) P3.3 (T0) P3.4 (T1) P3.5 GND
1 2 3 4 5 6 7 8 9 10
20 19 18 17 16 15 14 13 12 11
VCC P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 (AIN1) P1.0 (AIN0) P3.7
Masing-masing fungsi pin adalah sebagai berikut : a. Pin 1 (RST) Page 4 of 9
Masukan reset yang aktif dengan memberikan input high selama 2 siklus mesin. Pin ini dihubungkan ke rangkaian power on reset. b. Pin 2,3,6,7,8,9,11 (Port 3) Port 3 hanya memiliki 7 bidirectional I/O pin karena pin P1.6 merupakan port internal sebagai output dari on chip analog komparator. Setiap port memiliki internal pull up. Port 3 sebagai output dapat menghasilkan arus sampai 20 mA. Ketika data bernilai 1 (high) dikirimkan ke port 3 maka port port tersebut masih dapat digunakan sebagai input. Ketika port 3 digunakan sebagai input dan terhubung ke ground oleh peralatan input maka chip akan mengeluarkan arus karena secara internal sudah terdapat resistor pull up di dalam chip. Port 3 juga berfungsi sebagai jalur input interrupt bagi AT89C2051 seperti tampak pada table berikut ini. Port pin
Alternate function
P3.0
RXD (serial input port)
P3.1
TXD (serial output port)
P3.2
INT0 (external interrupt 0)
P3.3
INT1 (external interrupt 1)
P3.4
T0 (timer 0 external input)
P3.5
T1 (timer 1 external output)
c. Pin 4,5 (XTAL) Tempat pemasangan Kristal bagi oscillator internal. Pemasangannya adalah sebagai berikut.
Page 5 of 9
d. Pin 10 (GND) Dihubungkan ke ground dari power supply. e. Pin 12-19 (Port 1) Port 1 adalah 8 bit port I/O bidirectional. Port P1.2 sampai P1.7 sudah memiliki internal pull up sedangkan P1.1 dan P1.0 harus diberi resistor pull up secara external. P1.0 dan P1.1 dapat menerima input tegangan positif
(AIN0)
dan
input
tegangan
negative
(AIN1)
untuk
menggerakkan on-chip analog comparator. Port 1 sebagai output dapat menghasilkan arus sampai 20mA dan dapat menyalakan LED secara langsung. Ketika data bernilai 1 (high) dikirimkan ke port 1 maka port tersebut masih dapat digunakan sebagai input. Ketika pin P1.2 sampai P1.7 digunakan sebagai input dan terhubung ke ground oleh peralatan input maka chip akan mengeluarkan arus karena secara internal sudah terdapat resistor pull up di dalam chip. f. Pin 20 (Vcc) Dihubungkan dengan tegangan supply 5V (Vcc).
3. Peralatan dan Fasilitas yang Digunakan Peralatan yang kami gunakan untuk membuat alat ini adalah sebagai berikut : a. Software Software yang kami pakai untuk membuat listing program assembly adalah MIDE-51.exe untuk membuat file *.asm dan *.hex serta EDSIM-51.jar sebagai media untuk simulasi IC yang telah kita program. Untuk mendownload program yang telah jadi kita gunakan software bawaan dari DT-HQ. b. Hardware Hardware dan peralatan lain yang kita pakai untuk membuat alat ini adalah sebagai berikut. i.
IC AT89C2051
ii.
Kapasitor keramik 30pF sebanyak 2 buah
Page 6 of 9
iii.
Krital oscillator 40pF/12MHz sebanyak 1 buah
iv.
Switch sebanyak 2 buah
v.
Lampu LED sebanyak 1 buah
vi.
PCB
vii. Power supply dengan output tegangan 5 V viii. Downloader DT-HQ ix.
Solder dan timah
4. Pelaksanaan Pelaksanaan untuk mengaplikasikan rangkaian ini adalah sebagai berikut. a. Membuat listing program Listing program yang kami buat menggunakan bahasa assembly. Berikut ini adalah listing program yang kami buat. org 100h start : mov P1,p3 call delay delay : mov R0,#100 loop : djnz r0, loop ret end
; memindahkan nilai port P3 ke P1 ; memanggil subroutine “delay”
;decrement register R0 dan jump ke ;subroutine loop bila tidak zero ;kembali ke main program
Setelah kita dapatkan listing program maka yang kita lakukan selanjutnya adalah membuat file *.hex yang selanjutnya nanti akan kita load ke dalam IC AT89C2051. b. Mensimulasikan rangkaian Setelah kita membuat listing program dan file *.hex selanjutnya kita simulasikan program yang telah kita buat dengan software edsim51.jar. Software ini dapat berjalan jika kita computer kita sudah terinstall Java Runtime. Jika telah berjalan, berarti program kita sudah benar dan siap untuk kita load ke dalam IC AT89C2051.
Page 7 of 9
c. Flash (mendownload kode *.hex ke dalam IC AT89C2051) Kita siapkan hardware downloader dan DT-HQ. Masukkan pin-pin IC AT89C2051 ke dalam socket yang sesuai dengan petunjuk pada board. Jika sudah kita kunci IC AT89C2051. Kita buka software aplikasi dari DT-HQ kemudian kita browse file *.hex yang akan kita load ke dalam IC dan pilih file yang akan kita load. Setelah kita temukan file *.hex, klik write untuk menulis kode program ke dalam IC AT89C2051. Pilih “FF” untuk alamat memori yang tidak terpakai. Klik verify untuk memverifikasi apakah isi memori sudah berubah. Jika sudah kita bisa melepaskan IC AT89C2051 dari socket downloader. d. Mengaplikasikannya ke dalam PCB. Jika IC sudah selesai kita flash maka kita siap untuk membuat rangkaiannya pada PCB. Skematik rangkaian adalah sebagai berikut.
Page 8 of 9
Desain pada board PCB adalah sebagai berikut.
Kita tempatkan komponen-komponen pada tempatnya kemudian kita solder. e. Menguji rangkaian Jika rangkaian sudah selesai kita solder maka kita bisa menguji apakah rangkaian sudah benar atau belum. Hubungkan Vcc (pin 20) ke positive power supply dan ground (pin 10) ke negative power supply. Jika LED menyala tekan switch untuk reset. Jika sudah kita tekan switch untuk input maka LED yang semula padam akan menyala. Jika switch kita tekan lagi maka LED yang semula menyala akan padam.
Page 9 of 9