You are on page 1of 16

APLIKASI

MIKROKONTROLER
Percobaan IV & V

Tujuan Percobaan
1. Mempelajari prinsip kerja dan bahasa tingkat rendah dari mikrokontroler. 2. Memahami proses yang dilakukan program terhadap mikrokontroler. 3. Merancang dan membuat perangkat lunak dan perangkat keras dengan

menggunakan mikrokontroler

Teori Dasar
Mikrokontroler di rancang untuk aplikasi yang berorientasi kontrol sekuensial, yaitu digunakan untuk mengatur dan memonitor suatu sistem loop terbuka dengan urutan tertentu. Yang membedakan antara mikrokontroler dengan mikroprosesor dapat dilihat dari beberapa sudut pandang. Dari segi arsitektur perangkat kerasnya, mikroprosesor hanya merupakan single chip CPU sedangkan pada mikrokontroler dalam IC-nya selain CPU juga memuat konverter A/D dan D/A, kontroler, interupsi, timer, pengatur transmisi data serial / paralel, EPROM, RAM, ROM, dan sebagainya 1. Dari segi aplikasi, mikroprosesor umumnya ditujukan untuk berperan sebagai CPU pada suatu sistem mikrokomputer sedangkan mikrokontroler umumnya ditujukan untuk melakukan tugas-tugas yang berorientasi kontrol pada rangkaian yang membutuhkan jumlah komponen minimum.

Keluarga MCS-51
MCS 8051 8051AH 8052AH 80C51BH Versi Tanpa ROM 8031 8031AH 8032AH 80C31BH Versi EPROM 8751 8751H 8752BH 87C51 ROM byte 4k 4k 8k 4k RAM byte 128 128 256 128 Timer 16-bit 2 2 3 2

Tabel 1 Jenis jenis keluarga MCS-51

Kondisi ideal mikrokontroler

Percobaan III - Aplikasi Mikrokontroler

20

Pada keluarga MCS-51 (lihat Tabel 1), memiliki banyak tipe mikrokontroler. Meskipun banyak, dan kemampuannya berbeda-beda tetapi setiap mikrokontroler dalam keluarga ini memiliki susunan pena yang sama (lihat Gambar 1).

Gambar 1 Susunan pena mikrokontroler keluarga MCS-51

Port 0 Port 0 adalah port fungsi ganda yang terletak pada pena 32-39 dari keluarga MCS-51. Untuk aplikasi tanpa memori eksternal, port ini berfungsi sebagai port IO serba guna. Untuk aplikasi dengan memori eksternal, port ini menjadi bus data dan alamat low-byte yang dimultipleks. Port 1 Port 1 adalah port khusus sebagai port IO yang digunakan untuk melakukan antar muka dengan perangkat eksternal. Port ini terletak pada pena 1-8. Pada keluarga MCS-51, tidak ada fungsi lain dari port ini. Port 2 Seperti pada port 0, port 2 juga merupakan port fungsi ganda yang terletak pada pena 21-28. Untuk aplikasi tanpa memori eksternal, port ini berfungsi sebagai port IO serba guna. Untuk aplikasi dengan memori eksternal, port ini menjadi bus alamat high-byte.

Percobaan III - Aplikasi Mikrokontroler

21

Port 3 Port 3 adalah port fungsi ganda yang terletak pada pena 10-17. Selain berfungsi sebagai port IO serba guna, port ini juga memiliki fungsi lain untuk masing-masing penanya. Fungsi dari masing-masing pena tersebut dapat dilihat pada tabel di bawah ini:
Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Nama RXD TXD Fungsi Menerima data untuk komunikasi serial Mengirimkan data untuk komunikasi serial Interrupt eksternal 0 Interrupt eksternal 1 Input eksternal untuk timer/counter 0 Input eksternal untuk timer/counter 1 Sinyal strobe penulisan data ke memori data eksternal Sinyal strobe pembacaan data dari memori data eksternal

INT 0 INT 1
T0 T1

WR

RD

Tabel 2 Susunan dan kegunaan dari masing masing pena di port 3 pada keluarga MCS-51

Keuntungan EPROM internal adalah kerahasiaan program relatif lebih terjamin. Dalam banyak aplikasi, kapasitas EPROM internal ini sudah memadai. Karena perbedaan harga yang sangat jauh antara mikrokontroler EPROM eksternal dengan mikrokontroler EPROM internal, mikrokontroler EPROM eksternal lebih banyak digunakan sebagai bahan percobaan. Dalam mikrokontroler 8-bit keluarga MCS-51, data / program memori diolah per 8-bit. Lebar alamat mikrokontroler ini adalah 16-bit sehingga dapat mengakses data program / memori sebanyak 216 (65.536) alamat. Mikrokontroler ini bekerja dengan kecepatan clock 3 MHz sampai 12 MHz. Seperti halnya mikroprosesor, mikrokontroler tanpa EPROM hanya dapat bekerja jika dihubungkan dengan program yang terdapat dalam EPROM (eksternal). Agar dapat mengakses EPROM eksternal, pena EA (external access) harus dihubungkan ke ground. Pena P0.0 sampai P0.7 berfungsi untuk mengeluarkan alamat byte rendah dan data secara bergantian (multipleks). Pada EA = 0, P2.0P2.7 mengeluarkan data alamat byte tinggi. Pena PROG / ALE (program / address latch enable) akan tinggi jika P0 berisi alamat dan akan rendah jika P0 berisi program. Keadaan transisi tinggi ke rendah ini dipergunakan untuk menangkap alamat oleh sistem pengatur memori (Gambar 2 dan analisa sistem minimum MCS-51 pada lampiran).

Percobaan III - Aplikasi Mikrokontroler

22

ALE PSEN PORT 0 PORT 2


INSTR Add A8A15 A0A7 INSTR A0A7 INSTR Address A8A15

Address A0A7

Gambar 2 Transisi ALE dari tinggi ke rendah dipergunakan untuk menangkap alamat.

Saat PSEN (program strobe enable) rendah, P0 mengeluarkan atau memasukan data Gambar 2). Pena ini biasanya dihubungkan dengan tri-state dari keluaran EPROM. Pada saat PSEN = 1, keluaran EPROM dalam kondisi impedansi tinggi sehingga seolah olah tidak ada hubungan antara keluaran EPROM dan P0. Ketika PSEN = 0, alamat sudah dikunci. Meskipun untuk kebanyakan aplikasi jumlah RAM sebesar 256 byte sudah mencukupi, adakalanya masih memerlukan RAM tambahan. EPROM hanya berisi program atau parameter tetap, sedangkan RAM berisi data yang tidak tetap. Jika EPROM dan RAM yang masing masing berkapasitas 64 kbyte, 8031 dapat berhubungan dengan 128 kbyte data dan program. Konsep ini mirip dengan perintah MOV alamat, data dan OUT alamat, data pada bahasa tingkat rendah x86 (Gambar 3).

FFFF

FFFF

FFFF

EPROM Eksternal
2000 1FFF 1000 0FFF

EPROM Eksternal

8031 / 8032 EPROM Internal EPROM internal

0000

0000

0000

Gambar 3 Susunan EPROM pada mikrokontroler keluarga MCS-51

Jika menggunakan EPROM internal, maka diperlukan EPROM eksternal mulai alamat 1000H (8051) atau 2000H (8052) untuk mendapatkan memori program sebesar 64 kbyte. Sedangkan 8031 / 8032, alamat EPROM dimulai dari 0000H (Gambar 3). RAM dan Register Kebanyakan mikroprosesor menerapkan ruang memori yang digunakan bersama untuk data dan program. Pada mikrokontroler hal itu tidak berlaku, keluarga MCS-

Percobaan III - Aplikasi Mikrokontroler

23

51 menerapkan ruang memori yang terpisah antara memori data dengan memori program di mana keduanya dapat dikembangkan dengan memakai komponen eksternal mencapai masing-masing sebesar 64KB. On-chip RAM yang ada diatur menjadi beberapa bagian seperti penyimpanan serba-guna, penyimpanan bitaddressable, register banks, dan special function registers. Hal lain yang perlu diperhatikan adalah bahwa register dan port IO pada keluarga MCS-51 bersifat memory-mapped
2

sehingga dapat diakses sama seperti lokasi memori lainnya

serta stack pada keluarga MCS-51 bertempat pada internal RAM yang dapat diakses secara indirect addressing 3.

FFH 8032 7FH 8031 Bit pemilih bank dalam PSW 11 18H 10 10H 01 08H 00 0H 07H Nilai reset dari penunjuk stack 0FH 17H 4 bank dari 8 register R0R7 2FH 20H 1FH Ruang yang dapat dialamati (07F)

Gambar 4 Struktur RAM internal pada mikrokontroler keluarga MCS-51

Sehingga secara umum, struktur RAM internal pada MCS-51 dapat dilukiskan seperti pada gambar 4. Alamat 00H sampai 1FH dibagi menjadi 4 bank (bank 0..3). Setiap bank terdiri atas 8 register serbaguna (R0..R7). Pemilihan bank yang aktif ditentukan oleh kondisi RS0, RS1 pada register PSW (program status word). Prinsip register ini mirip dengan register flag pada keluarga x86 4. R0 dan R1 pada bank 0 di samping untuk kegunaan umum juga memiliki fungsi khusus untuk pengalamatan tak langsung di RAM alamat 00H..FFH.
2 3

Lihat percobaan III Lihat percobaan I 4 Lihat percobaan II Percobaan III - Aplikasi Mikrokontroler

24

Gambar di bawah ini menggambarkan konfigurasi ruang memori RAM internal yang ada pada mikrokontroler keluarga MCS-51.

Gambar 5 Konfigurasi ruang memori RAM internal pada mikrokontroler keluarga MCS-51

Interupsi Mikrokontroler 8031 memiliki 6 sumber interupsi dan 5 alamat vektor interupsi 5. Mikrokontroler 8052 memiliki 8 sumber interupsi dan 6 alamat vektor interupsi.
5

Lihat percobaan III

Percobaan III - Aplikasi Mikrokontroler

25

Sumber interupsi ini dapat dimanfaatkan sebagian atau seluruhnya, atau bahkan tidak menggunakannya sama sekali.
Sumber Interupsi IE0 TF0 IE1 TF1 R1 dan T1 TF2 dan EXF2 Alamat Vektor 0003H 000BH 0013H 001BH 0023H 002BH

Tabel 3 Sumber interupi dan alamat vektor yang digunakan

Interupsi eksternal diperoleh dari pena INT0 dan INT1. Jika misalnya INT0 mendapat sinyal interupsi, flag IE0 (atau IE1 untuk INT1) akan di-set. Mikrokontroler akan meninggalkan pekerjaannya dan mulai mengerjakan program yang dicatat di alamat vektor (alamat INT0 = 03H) sambil me-reset IE0. Setelah mengakhiri program interupsi (ditandai dengan perintah RETI), mikrokontroler kembali mengerjakan program yang ditinggalkannya tadi. TF0 dan TF1 adalah flag untuk timer / up-counter (T/C) 0 dan 1. TF0 / TF1 akan aktif jika terjadi perubahan isi T/C 0, 1 dari FFH ke 00H, baik saat berfungsi sebagai pewaktu maupun pencacah. Sebagai pencacah register, TC akan menghitung jumlah sinyal yang masuk ke pena T0 atau T1. Kondisi TF0 / TF1 saat set dapat dimanfaatkan untuk membelokan program ke alamat vektor. Sebagai dasar pewaktu digunakan siklus mesin. Perioda siklus mesin adalah 1 12 frekuensi osilator. Mikrokontroler keluarga MCS-51 juga melayani transmisi data serial berdasarkan interupsi atau tanpa interupsi. Jika interupsi serial diaktifkan, PC akan men-set flag R1 dan melompat ke alamat vektor jika pena RxD mendapat kiriman data serial. Flag R1 akan di-reset segera setelah PC mengerjakan rutin interupsi serial. Meskipun jarang, mikrokontroler dapat mengirimkan data serial dalam modus interupsi.

Tugas
1. Buka program 8051 IDE. Buka file percobaan PROG3.A51, pelajari, kemudian compile. Tulis program ke mikrokontroler dengan bantuan program dari atmel isp. 2. Perhatikan nyala led yang terjadi. 3. Ubah nyala led sesuai dengan yang diminta oleh asisten.

Percobaan III - Aplikasi Mikrokontroler

26

Input Output Device


Mikrokontroler tidak akan berarti tanpa adanya perangkat input dan output yang memadai. Perangkat tersebut bisa berupa sekedar tombol, keypad, LED yang sangat sederhana, atau sensor, kamera, LCD, VGA, maupun TCP/IP interface yang kompleks.

Input Device
Push Button Push button merupakan salah satu bentuk input yang paling sederhana. Push button akan memberi masukan kepada mikrokontroler apabila ia ditekan. Pada umumnya apabila push button ditekan, maka pin yang bersangkutan akan dihubungkan ke ground sehingga bernilai logika 0. Proses pembacaanya sederhana, apabila pin tersebut bernilai 0, makapush button dalam kondisi tertekan, bila berlogika 1, maka push button tidak tertekan. Pada sistem minimum yang digunakan dalam praktikum, push button diletakkan pada P3.0 sampai P3.7.

Keypad Keypad merupakan serangkaian push button yang dijadiakan satu. Berbeda dengan push button yang mengharuskan setiap button terhubung ke satu pin pada mikro kontroler, keypad module cukup terhubung ke sejumlah pin yang sesuai dengan banyaknya baris dan kolom keypad yang digunakan. dengan demikian, maka penggunaan keypad dapat menghemat jumlah pin yang digunakan dibanding dengan push button. Untuk membacanya diperlukan suatu algoritma khusus karena tidak dimungkinkan untuk mengetahui secara langsung tombol mana yang ditekan secara langsung (kecuali keypad yang memiliki pin common). Pembacaan keypad numerik 3 x 4 yang digunakan pada percobaan dapat dilakukan dengan cara sebagai berikut: 1. Baris pertama diberi logika 0, baris kedua diberi logika 1, dan baris ketiga diberi logika 1. Maka apabila salah satu tombol pada baris tersebut ditekan, maka pin kolom yang bersangkutan juga akan menjadi bernilai 0. 2. Untuk mengetahui kolom berapa pada baris satu yang tertekan, maka setiap pin kolom akan di cek satu persatu apakah berlogika 0 atau tidak. Bila ya, maka tombol pada baris satu dan kolom tersebut sedang tertekan. Bila tidak satupun bernilai logika 0, maka artinya tidak ada satu tombolpun pada baris tersebut yang tertekan.

Percobaan III - Aplikasi Mikrokontroler

27

3. Kemudian seperti pada poin 1, baris pertama diberi logika 1, baris kedua diberi logika 0, dan baris ketiga diberi logika 1. 4. Kemudian dilakukan pengecekan masing-masing kolom seperti pada poin 2. Demikian seterusnya hingga seluruh baris dan kolom selesai dicek. Bila diperlukan, maka pengecekan akan dilakukan lagi dari awal. Pada percobaan ini, keypad yang digunakan adalah keypad numerik berukuran 3 kolom x 4 baris dengan angka dari 0 sampai 9 dan dilengkapi dengan 2 tombol tambahan. Sesuai dengan jumlah baris dan kolomnya, maka keypad ini memiliki 7 pin. Berikut adalah urutan pin tersebut dari pin pertama: Col2, Row1, Col1, Row4, Col3, Row3, Row2. Perhatikan contoh program yang telah disediakan.

Output LED
Light Emiting Device merupakan suatu perangkat yang mampu memancarkan cahaya ketika dialiri arus listrik. LED merupakan salah satu bentuk output yang paling sederhana dari sebuah mikrokontroler. LED pada umumnya dipasang secara active low ke salah satu pin mikrokontroler. Untuk mengaktifkannya cukup memberikan logika 0 ke pin yang bersangkutan. Perhatikan program contoh berikut. (kasi program prak3.a51) LCD Pengenalan LCD Liquid Crystal Display adalah salah satu bentuk keluaran yang paling jelas dan mudah dimengerti. LCD merupakan kristal cair yang dapat berubah intensitas kegelapannya ketika dialiri arus listrik. Dengan menyusun titik-titik tersebut pada suatu bidang, maka kita dapat membentuk berbagai tulisan atau gambar pada bidang tersebut. LCD yang sederhana setiap titiknya hanya dapat menampilkan 2 jenis intensitas saja, gelap atau terang, yang lebih canggih dapat menampilkan gradasi dari terang ke gelap bahkan berbagai warna. Pada umumnya di pasaran ada dua jenis LCD, yaitu grafik dan teks. LCD grafik seperti yang telah disebutkan diatas, terdiri dari sekumpulan titik-titik yang dapat diatur secara terpisah intensitasnya sehingga dapat menampilkan berbagai gambar. Pengendalian LCD jenis ini membutuhkan mikro kontroler yang lebih canggih karena tiap-tiap titik harus diatur sendiri-sendiri. Jenis berikutnya adalah LCD teks. Sesuai dengan namanya LCD ini dikhususkan untuk menampilkan teks tanpa harus mengatur masingmasing titik pada LCD jenis ini. LCD ini biasanya memiliki prosesor terintegerasi
Percobaan III - Aplikasi Mikrokontroler

28

didalamnya sehingga memudahkan penampilan dengan cukup mengirimkan kode ascii karakter yang bersangkutan. LCD teks yang umumnya terdapat di pasaran memiliki 12 baris, ada yang mencapai 4 bahkan 8 baris namun jarang ditemui, dengan masingmasing baris terdiri dari 8, 16 atau 20 karakter. LCD Hitachi HD44870 Compatible Pada praktikum ini digunakan LCD 16 karakter 2 baris dengan chip pengendali kompatibel dengan Hitachi LCD-HD44870 series dengan ROM seri A02 (beberapa A00). Informasi lebih lengkap dapat dibaca pada datasheet LCD tersebut. Pada umumnya LCD jenis ini memiliki 16 pin. Pengaturan posisi pin tergantung manufaktur, secara umum sebagai berikut:

Pin 1 merupakan common ground dari LCD dan chip pengendalinya. Pin ini harus dihubungkan ke GND dari catu daya yang digunakan.

Pin 2 merupakan suplai daya ke LCD. Tegangannya dapat diatur untuk mengubah kontras dari LCD ini.

Pin 3 merpakan suplai daya ke chip pengendali LCD. Pada percobaan ini gunakan 5 V yang diambil dari sistem minimum yang digunakan.

Pin 4 adalah pin untuk memilih register yang dituju, apakah register data maupun register instruksi.

Pin 5 untuk memilih arah aliran data. Pin 6 adalah pendetakan pengiriman data. Pin 7 - 14 adalah pin data. Pin 15 dan 16 merupakan catu daya untuk led backlight.

Percobaan III - Aplikasi Mikrokontroler

29

Register Seperti yang telah dijelaskan di atas, Pengendali LCD ini memiliki 2 buah register. Pertama register data dan register instruksi. Register data berfungsi untuk menampung sementara data yang akan dikirimkan ke DD RAM maupun ke CG RAM. Sementara register instruksi menyimpan instruksi yang dikirimkan ke LCD seperti clear, mengganti jenis cursor dan lain-lain. Address Counter AC adalah penunjuk alamat memori baik di DD RAM maupun CG RAM. Address counter dapat diubah secara spesifik melalui instruksi atau akan ter-increment (terdecrement) secara otomatis pada setiap instruksi penulisan (pembacaan) ke DD RAM atau CG RAM. Display Data RAM DD RAM merupakan tempat penyimpanan data karakter yang akan di display di LCD. Tiap karakter disimpan dalam bentuk data 8 bit. DD RAM memiliki kapasitas 80 karakter atau 80 x 8 bit. Berikut adalah peta memorinya.

Pada LCD yang digunakan, terdapat 2 x 16 baris, bagian dari DD RAM yang akan ditampilkan dalam layar adalah alamat memori sebagai berikut.

Alamat-alamat tersebut dapat diakses dengan memasukan nilai yang bersesuaian ke AC. Character Generator ROM CG ROM menghasilkan 208 bentuk karakter 5 x 8 titik yang dapat ditampilkan ke layar LCD. Isis dari CG ROM telah ditentukan pada saat pembuatan LCD ini. Ada dua varian ROM yang umum ditemukan dipasaran. Berikut adalah tabel untuk masing-masing jenis ROM.

Percobaan III - Aplikasi Mikrokontroler

30

Percobaan III - Aplikasi Mikrokontroler

31

Character Generator RAM CG RAM dapat digunakan untuk menghasilkan 8 buah bentuk karater 5 x 8 titik sesuai dengan kebutuhan pengguna. Penggunaan CG RAM dapat dilihat lebih jelas pada data sheet pengendali LCD ini. Busy Flag

Percobaan III - Aplikasi Mikrokontroler

32

BF adalah indikator bahwa pengendali LCD ini sedang sibuk melakukan operasi internal dan tidak dapat menerima instruksi apa pun. Pembacaan BF dapat dilihat pada tabel XX mengenai instruksi. Penghubungan LCD ke Mikrokontroler LCD ini memiliki 8 bus data. Namun, dalam prakteknya, dapat digunakan 4 atau 8 bus data. Untuk menghemat pin pada mikro kontroler, maka sistem minimum yang digunakan menggunakan 4 bit bus data. Dalam operasi 4 bit, maka hanya pin DB4 sampai DB7 saja yang digunakan, sementara DB0-DB3 tidak dihubungkan kemanamana. Berikut adalah timing diagram pada saat pengiriman instruksi/ data atau saat pembacaan data dari/ke LCD ini dalam mode 4 bit.

Sementara pin RS dan E tetap harus dihubungkan. Instruksi Mikrokontroler yang digunakan hanya dapat mengirimkan data dari dua register yang telah disebutkan sebelumnya, mikrokontroler tidak dapat secara langsung mengubah isi DD RAM, AC, dan lain sebagainya. Berikut adalah daftar instruksi yang dapat dimengerti oleh mikro kontroler ini.

Percobaan III - Aplikasi Mikrokontroler

33

Dalam pengiriman instrusi ke LCD perlu diperhatikan waktu yang dibutuhkan oleh LCD untuk melakukan tiap-tiap jenis operasi. Pewaktuan yang terlalu ketat dapat membuat

Percobaan III - Aplikasi Mikrokontroler

34

LCD tidak memproses perintah dengan benar. Pada sistem minimum yang digunakan pada praktikum, Pin R/W selalu diset pada posisi read, sehingga BF tidak dapat dibaca. Maka pengaturan timing harus benar-benar diperhitungkan. Pelajari contoh program yang diberikan.

Percobaan III - Aplikasi Mikrokontroler

35

You might also like