4. BAB II

advertisement
BAB II
DASAR TEORI
Pada bab ini akan dibahas mengenai teori-teori yang mendukung dalam
pembuatan tugas akhir ini, khususnya teori mengenai perangkat keras yang
digunakan. Teori-teori tersebut meliputi Radio Frequecyi Identification (RFID),
mikrokontroler AT89S51, Liquid Crystal Display (LCD), dan juga catu daya yang
digunakan.
2.1
Radio Frequency Identification (RFID)
Radio Frequency Identification (RFID) adalah bentuk umum untuk
teknologi yang menggunakan gelombang radio untuk mengidentifikasi suatu
benda atau objek lainnya secara otomatis. Metode yang digunakannya ialah
dengan menyimpan serial number yang menunjukan identitas suatu objek, pada
sebuah microchip.
RFID adalah teknologi identifikasi yang fleksibel, mudah digunakan, dan
sangat cocok untuk operasi otomatis. Sistem RFID ini mengkombinasikan
keunggulan yang tidak tersedia pada teknologi sistem identifikasi lain. RFID
dapat disediakan dalam perangkat yang hanya dapat dibaca saja (Read Only) atau
dapat dibaca dan ditulis (Read/Write), tidak memerlukan kontak langsung maupun
6
7
jalur cahaya untuk dapat beroperasi seperti pada sistem barcode. Selain itu juga,
RFID dapat berfungsi pada berbagai variasi kondisi lingkungan, dan menyediakan
tingkat integritas data yang tinggi.
RFID merupakan teknologi yang dalam teorinya hampir serupa dengan
sistem barcode identification. Pada sistem RFID, gelombang elektromagnetik
dalam bentuk frekuensi radio digunakan untuk memancarkan sinyal. Perbedaan
utama antara teknologi RFID dengan teknologi barcode ialah terletak pada proses
transmisi datanya. Pada RFID proses transmisi datanya menggunakan gelombang
elektromagnetik, sedangkan pada barcode proses transmisi datanya menggunakan
optik. Selain itu RFID juga dapat mengurangi keharusan pembacaan secara line of
sight yang diperlukan oleh sistem barcode.
2.1.1
Bagian-Bagian Utama Sistem RFID
Secara garis besar sebuah sistem RFID terdiri atas tiga komponen utama.
Pada sisi perangkat keras, sistem RFID terdiri dari dua komponen, yaitu tag dan
reader. Sementara pada sisi perangkat lunak terdapat satu komponen penting pada
sistem RFID ini, yaitu sistem basis data pada program aplikasi workstation atau
Personal Computer (PC) yang dapat membaca serta mengolah data dari tag
melalui RFID reader. Pada sistem RFID, reader melakukan scanning terhadap
data unik yang disimpan pada tag. Kemudian informasi hasil scanning tersebut
dikirimkan ke sebuah aplikasi basis data yang menyimpan data-data yang
terkandung dalam tag. Gambar 2.1 memperlihatkan komponen-komponen utama
sistem RFID.
8
Gambar 2.1 Komponen-Komponen Utama Sistem RFID1
RFID menggunakan frekuensi radio untuk membaca sebuah informasi
(serial number) dari sebuah perangkat kecil yang disebut tag (Transmitter
Responder). Tag RFID ini akan dibaca oleh perangkat yang kompatibel, yaitu
RFID reader melalui frekuensi radio yang dipancarkan oleh reader tersebut.
Ketika tag ini melalui medan yang dihasilkan oleh RFID reader, tag akan
mentransmisikan informasi yang ada pada tag tersebut kepada reader, sehingga
proses identifikasi objek dapat dilakukan. Data yang ditransmisikaan oleh tag
dapat menyediakan informasi identifikasi atau informasi khusus lainnya. Pada
sistem RFID umumnya, tag ditempelkan pada suatu objek tertentu.
a.
Tag RFID
Tag RFID terdiri dari sebuah microchip yang mempunyai sebuah antena.
Tag tersebut dapat menyimpan sebuah data unik (serial number) yang dapat
digunakan sebagai informasi dalam proses identifikasi suatu objek. Tag RFID
terbuat dari microchip dengan bahan dasar silikon yang mempunyai kemampuan
fungsi identitas sederhana yang disatukan dalam satu desain.
1
Fakhrur Rozi, Nanang. 2008. Aplikasi RFID Smart Card Untuk E-Toll Way, hal. 10
9
Tag RFID umumnya memiliki memori sehingga tag ini mempunyai
kemampuan untuk menyimpan data. Memori tersebut terbagi atas sel-sel, dimana
beberapa sel dapat menyimpan data Read-Only, misalnya serial number yang unik
yang disimpan pada saat tag tersebut diproduksi. Sementara sel lainya mungkin
juga dapat ditulis maupun dibaca secara berulang. Tag RFID diperlihatkan pada
Gambar 2.2 berikut ini :
Gambar 2.2 Tag RFID2
Pada umumnya sebuah tag RFID terdiri atas sebuah microchip dan sebuah
antena. Chip mikro itu sendiri dapat berukuran sekecil butiran pasir seukuran 0,4
mm. Chip tersebut menyimpan nomor seri yang unik atau informasi lainnya
tergantung kepada tipe memorinya. Tipe memori itu sendiri dapat read-only,
read-write, atau write-once read-many. Antena yang terpasang pada chip mikro
mengirimkan informasi dari chip ke reader. Biasanya rentang pembacaan
diindikasikan dengan besarnya antena. Antena yang lebih besar mengindikasikan
rentang pembacaan yang lebih jauh. Tag tersebut terpasang atau tertanam dalam
obyek yang akan diidentifikasi. Tag dapat di-scan dengan reader bergerak
maupun stasioner menggunakan gelombang radio.
2
ibid, hal. 7
10
Terdapat dua jenis tag RFID ditinjau dari catu daya tag, yaitu tag aktif, tag
pasif, dan tag semipasif.
•
Tag Aktif
Tag aktif yaitu tag yang catu dayanya diperoleh dari baterai, sehingga akan
mengurangi daya yang dibutuhkan oleh RFID reader. Tagi aktif ini dapat
mengirimkan informasi dalam jarak yang lebih jauh, bergantung pada daya
baterai yang digunakannya. Biasanya mempunyai jarak baca 10 meter
sampai 100 meter dan beroperasi pada frekuensi 455 Mhz, 2,45 GHz, atau
5,8 GHZ. Memori yang dimilikinya juga lebih besar sehingga bisa
menampung berbagai macam informasi di dalamnya. Kelemahan dari tipe
tag ini adalah harganya yang mahal dan ukurannya yang lebih besar karena
lebih kompleks. Semakin banyak fungsi yang dapat dilakukan oleh tag
RFID maka rangkaiannya akan semakin rumit dan ukurannya akan semakin
besar. Tag ini biasanya memiliki kemampuan baca-tulis, dalam hal ini data
tag dapat ditulis-ulang atau dimodifikasi. Harga tag aktif ini merupakan
yang paling mahal dibandingkan versi lainnya.
•
Tag Pasif
Tag pasif merupakan jenis tag yang tidak mempunyai catu daya sendiri.
Catu dayanya diperoleh dari medan yang dihasilkan oleh RFID reader. Oleh
karena itu respon dari suatu tag RFID yang pasif biasanya sederhana, hanya
nomor ID (serial number) saja. Dengan tidak adanya catu daya pada RFID
tag yang pasif maka akan menyebabkan semakin kecilnya ukuran dari RFID
tag yang dibuat. Rangkaiannya lebih sederhana, harganya jauh lebih murah,
ukurannya kecil, dan lebih ringan.
11
Kelemahannya adalah tag hanya dapat mengirimkan informasi dalam jarak
yang dekat dan RFID reader harus menyediakan daya tambahan untuk tag
RFID.
Tag pasif merespon emisi frekuensi radio dan menurunkan dayanya dari
gelombang-gelombang energi yang dipancarkan oleh reader. Sebuah tag
pasif minimum mengandung sebuah indentifier unik dari sebuah item yang
dipasangi tag tersebut. Data tambahan dimungkinkan untuk ditambahkan
pada tag, tergantung kepada kapasitas penyimpanannya. Tag Pasif bisa
bekerja pada frekuensi rendah (LF), frekuensi tinggi (HF) dan UHF. Sistem
yang berfrekuensi rendah (LF) bisanya beroperasi pada frekuensi 124 kHz,
125 kHz atau 135 kHz. Sistem frekuensi tinggi menggunakan 13,56 Mhz,
dan sistem UHF menggunakan band frekuensi antara 860 Mhz sampai 960
Mhz. Beberapa sistem juga menggunakan frekuensi 2,45 Ghz dan bandband frekuensi radio lainnya. Gambar 2.3 menunjukan sistem kerja dari tag
RFID pasif.
RFID
Reader
RF Signal
Tag
RFID
Pasif
Data Signal
Host
Computer
Gambar 2.3 Sistem Kerja Tag RFID Pasif
Pada tag pasif, kapasitas penyimpanan data terbatas antara 32 sampai
dengan 128 bit, dan umumnya hanya dapat dibaca saja (read-only) tanpa
dapat direkam (not rewriteable). Tag ini mengandung data yang
12
terprogram permanen sehingga tidak dapat diubah. RFID tag yang pasif
ini memiliki jarak jangkauan yang berbeda mulai dari 10 mm sampai
dengan 6 meter
b.
RFID Reader
Untuk berfungsinya sistem RFID diperlukan sebuah reader atau alat
scanning-device yang dapat membaca tag dengan benar dan mengkomunikasikan
hasilnya ke suatu basis data. Gambar 2.4 memperlihatkan RFID reader.
Gambar 2.4 RFID Reader3
RFID reader merupakan penghubung antara program aplikasi yang ada
pada komputer dengan antena yang akan meradiasikan gelombang radio ke tag
RFID. Gelombang radio yang diemisikan oleh antena pada RFID reader akan
berpropagasi pada ruangan disekitarnya. Akibatnya data dapat berpindah secara
wireless dari tag ke RFID reader.
Sebuah reader menggunakan antenanya sendiri untuk berkomunikasi
dengan tag. Ketika reader memancarkan gelombang radio, seluruh tag yang
dirancang pada frekuensi tersebut serta berada pada rentang bacanya akan
memberikan respon. Sebuah reader juga dapat berkomunikasi dengan tag tanpa
line-of-sight langsung, tergantung kepada frekuensi radio dan tipe tag (aktif atau
3
www.id-innovations.com/Modules(non write).htm
13
pasif) yang digunakan. Reader dapat memproses banyak item sekaligus. Menurut
bentuknya, reader dapat berupa reader bergerak seperti peralatan genggam, atau
stasioner seperti peralatan point-of-sale di supermarket. Reader dibedakan
berdasarkan kapasitas penyimpanannya, kemampuan pemrosesannya, serta
frekuensi yang dapat dibacanya.
2.1.2
Sistem Kerja RFID
Pengidentifikasian dilakukan dengan menggunakan perangkat interogasi
(interrogator) juga disebut sebagai Reader atau “Master” dan sebuah Tag disebut
sebagai transponder atau “Slave” yang menyimpan informasi kode indentifikasi
yang unik. Pertukaran data terjadi antara reader dengan tag dengan menggunakan
gelombang radio dan tidak membutuhkan Line of Sight atau tanpa harus secara
fisik terlihat. Ketika suatu tag melewati suatu zone elektromagnetis, maka dia
akan mendeteksi sinyal aktivasi yang dipancarkan oleh reader. Perangkat
interrogator atau reader akan mengirimkan sinyal kepada tag untuk
mengidentifikasi kode yang terkandung dalam tag tersebut. Kemudian reader
akan memproses sinyal yang dipancarkan oleh tag dan men-decode data yang ada
pada tag untuk kemudian dikirimkan ke komputer. Sinyal tersebut oleh komputer
kemudian disimpan atau dicocokan di dalam database komputer untuk diproses
lebih lanjut.
Metode pengiriman data dari tag RFID ke RFID reader dalam penggunaan
tag pasif terbagi menjadi dua macam, yaitu :
•
Inductive Coupling
Gulungan
tembaga
pada
RFID
reader
membangkitkan
medan
elektromagnetik, kemudian gulungan yang ada di tag terinduksi oleh
14
medan ini. Hasil induksi inilah yang menjadi sumber tenaga bagi tag RFID
untuk mengirimkan kembali sinyal yang berisi data ke RFID reader.
Karena menggunakan prinsip induksi ini, maka jarak antara tag dengan
reader harus dekat agar induksi dapat ditangkap. Prinsip inductive
coupling ini digunakan pada tag RFID dengan frekuensi rendah (LF) dan
frekuensi tinggi (HF).
•
Propagation Coupling
Pada sistem ini, energi yang digunakan berasal dari energi elektromagnetik
(gelombang radio) yang dipancarkan oleh reader. Tag kemudian akan
mengumpulkan energi elektromagnetik tersebut untuk digunakan sebagai
sumber daya untuk mengirimkan data yang dimilikinya ke reader.
Mekanisme ini disebut dengan backscatter. Modulasi bit data ke frekuensi
bisa menggunakan amplitude shift keying, frequency shift keying, atau
phase shift keying.
Untuk tag yang tidak memiliki baterai (tag pasif), maka untuk sumber catu
dayanya memanfaatkan medan magnet yang dihasilkan dari reader dan
memodulasi medan magnet, yang kemudian digunakan kembali untuk
mengirimkan data yang ada dalam tag RFID. Data yang diterima reader
kemudian diteruskan ke database pada komputer.
2.1.3
Frekuensi Kerja RFID
Faktor penting yang harus diperhatikan dalam RFID adalah frekuensi kerja
dari sistem RFID. Pemilihan frekuensi radio merupakan kunci kerakteristik
operasi sistem RFID. Ini adalah frekuensi yang digunakan untuk komunikasi
wireless antara tag dengan RFID reader.
15
Frekuensi sebagian besar ditentukan oleh kecepatan komunikasi, jarak baca
terhadap tag, interferensi dengan frekuensi sistem radio lain dan ukuran antena.
Secara umum, tingginya frekuensi mengindikasikan jauhnya jarak baca.
Pemilihan tipe frekuensi juga dapat ditentukan oleh tipe aplikasinya. Aplikasi
tertentu lebih cocok untuk salah satu tipe frekuensi dibandingkan dengan tipe
lainnya karena gelombang radio memiliki perilaku yang berbeda-beda menurut
frekuensinya. Sebagai contoh, gelombang LF memiliki kemampuan penetrasi
terhadap dinding tembok yang lebih baik dibandingkan dengan gelombang
dengan frekuensi yang lebih tinggi, tetapi frekuensi yang lebih tinggi memiliki
laju data (data rate) yang lebih cepat.
Berikut ini adalah empat frekuensi utama yang digunakan oleh sistem RFID :
1. Band LF (Low Frequency)
Berkisar antara 125 KHz hingga 134 KHz. Band ini paling sesuai untuk
penggunaan jarak pendek (short-range)
2. Band HF (High Frequency)
Frekuensi ini beroperasi pada 13,56 MHz dan memungkinkan akurasi yang
lebih baik dalam jarak 3 kaki dan karena itu dapat mereduksi risiko kesalahan
pembacaan tag. Sebagai konsekuensinya, band ini lebih cocok untuk
pembacaan pada tingkat item (item-level reading). Tag pasif dengan frekuensi
13,56 MHz dapat dibaca dengan laju 10 sampai 100 tag perdetik pada jarak 3
kaki atau kurang.
3. Band UHF (Ultra High Frequency)
Tag dengan band UHF beroperasi di sekitar 900 MHz dan dapat dibaca dari
jarak yang lebih jauh dari tag HF, berkisar dari 3 hingga 15 kaki. Tag ini
16
lebih sensitif terhadap faktor-faktor lingkungan daripada tag-tag yang
beroperasi pada frekuensi lainnya. Tag UHF pasif dapat dibaca dengan laju
sekitar 100 hingga 1.000 tag perdetik.
4. Gelombang Mikro
Tag yang beroperasi pada frekuensi gelombang mikro, biasanya pada
frekuensi 2,45 GHz dan 5,8 GHz. Pada band ini mengalami lebih banyak
pantulan gelombang radio dari objek-objek di dekatnya yang dapat
mengganggu kemampuan reader untuk berkomunikasi dengan tag.
Untuk frekuensi yang rendah umumnya digunakan tag pasif, dan untuk
frekuensi tinggi digunakan tag aktif. Pada frekuensi rendah, tag pasif tidak dapat
mentransmisikan data dengan jarak yang jauh, karena keterbatasan daya yang
diperoleh dari medan elektromagnetik. Akan tetapi komunikasi tetap dapat
dilakukan tanpa kontak langsung. Pada kasus ini hal yang perlu mendapatkan
perhatian adalah tag pasif harus terletak jauh dari objek logam, karena logam
secara signifikan mengurangi fluks dari medan magnet. Akibatnya tag RFID tidak
bekerja dengan baik, karena tag tidak menerima daya minimum untuk dapat
bekerja.
Pada frekuensi tinggi, jarak komunikasi antara tag aktif dengan pembaca
RFID dapat lebih jauh, tetapi masih terbatas oleh daya yang ada. Sinyal
elektromagnetik pada frekuensi tinggi juga mendapatkan pelemahan (atenuasi)
ketika tag tertutupi oleh es atau air. Pada kondisi terburuk, tag yang tertutup oleh
logam tidak terdeteksi oleh pembaca RFID.
17
2.1.4
Akurasi RFID
Akurasi RFID dapat didefinisikan sebagai tingkat keberhasilan pembaca
RFID melakukan identifikasi sebuah tag yang berada pada area kerjanya.
Keberhasilan dari proses identifikasi sangat dipengaruhi oleh beberapa batasan
fisik, yaitu :
• Posisi antena pada RFID reader
• Karakteristik dari material lingkungan yang mencakup sistem RFID
• Batasan catu daya
• Frekuensi kerja sistem RFID
Pada frekuensi rendah, contohnya pada frekuensi 13,56 MHz, komunikasi
frekuensi radio antara tag dengan RFID reader sangat bergantung pada daya yang
diterima tag dari antena yang terhubung dengan RFID reader. Pada ruang bebas,
intensitas dari medan magnet yang diemisikan oleh antena berkurang teradap
jarak, maka terdapat batas jarak di mana tag tidak aktif, dan komunikasi frekuensi
radio tidak dapat terjadi. Pengurangan ukuran tag akan mengurangi juga batas
jarak.
Komunikasi radio berkurang jika medan magnet harus menembus material
yang mengurangi daya elektromagnetik, contohnya pada kasus objek dengan
bahan logam. Tag RFID tidak akan terdeteksi ketika ditaruh di dalam logam,
karena material logam akan meredam fluks magnet yang melalui tag secara
drastis. Pada frekuensi tinggi, perfomansi dari sistem RFID sangat bergantung
pada lingkungan di mana komunikasi di antara tag dan RFID reader terjadi. Pada
jarak tanpa hambatan proses identifikasi dapat terjadi pada jarak pada orde 10
meter. Tetapi bila ada hambatan maka jarak ini akan berkurang secara drastis.
18
Pada frekuensi tinggi, tag RFID bekerja secara aktif dengan daya dari
baterai. Akurasi dari tag RFID dapat berkurang karena kekurangan daya. Akurasi
dari sistem RFID pada umumnya sangat bergantung dari lingkungan di mana
sistem RFID dioperasikan.
2.2
Mikrokontroler AT89S51
Mikrokontroler
adalah
terobosan
teknologi
mikroprosesor
dan
mikrokomputer. Sebagai teknologi baru, mikrokontroler merupakan teknologi
semikonduktor dengan kandungan transistor yang lebih banyak, namun hanya
membutuhkan ruang yang kecil. Selain itu mikrokontroler juga dapat diproduksi
secara masal. Hal inilah yang membuat harga mikrokontroler tersebut menjadi
lebih murah dibandingkan mikroprosesor.
Mikrokontroller merupakan suatu komponen elektronika yang di
dalamnya terdapat rangkaian mikroprosesor, memori (RAM/ROM) dan I/O
(input/output), rangkaian tersebut terdapat dalam level chip atau biasa disebut
single chip microcomputer. Pada mikrokontroler sudah terdapat komponen–
komponen mikroprosesor dengan bus–bus internal yang saling berhubungan.
Komponen-komponen tersebut adalah RAM, ROM, timer, komponen I/O paralel
dan serial, dan interrupt controller.
Mikrokontroler AT89S51 merupakan varian dari mikrokontroler tipe
MCS-51
yang
diproduksi
oleh
Atmel
Corporation
yang
merupakan
pengembangan dari AT89C51. Mikrokontroler AT89S51 ini dirancang dengan
teknologi CMOS dan memiliki memori program internal (memori flash) sebesar 4
KB yang bisa diprogram dalam sistem (In-system programmable flash memoryISP).
19
Berikut ini adalah fitur-fitur yang dimiliki oleh mikrokontroler AT89S51 :
1.
4 KB flash ROM.
2.
128 bytes RAM.
3.
4 port yang memiliki 8 bit input/output jalur data masing-masing port.
4.
2 buah 16 bit timer.
5.
Interface komunikasi serial
6.
Fasilitas In System Programming (ISP)
Dengan fitur-fitur yang dimiliki ini, mikrokontroler AT89S51 ini cukup
andal untuk aplikasi-aplikasi sistem kendali atau yang lainnya. Memori flash
internal sebesar 4 KB yang bisa diprogram ulang dalam sistem (ISP)
memudahkan untuk merancang software sehingga mungkin tidak diperlukan
emulator.
2.2.1
Arsitektur Mikrokontroler AT89S51
Arsitektur mikrokontroler AT89S51 terdiri oleh CPU 8 bit yang terhubung
melalui satu jalur bus dengan memori penyimpanan berupa RAM dan flash ROM
serta jalur I/O berupa port bit I/O dan port serial, serta memiliki osilator untuk
sinyal detaknya (clock). Selain itu terdapat fasilitas timer/counter internal dan
jalur interface address dan data ke memori eksternal. Diagram blok
mikrokontroler AT89S51 ditunjukan pada Gambar 2.5.
20
Gambar 2.5 Diagram Blok Mikrokontroler AT89S514
CPU (Central Processing Unit) adalah bagian mikrokontroler yang
merupakan pusat pengolahan data. CPU terdiri atas dua bagian, yaitu unit
pengendali (control unit) serta unit aritmatika dan logika (ALU). Fungsi unit
pengendali adalah mengambil, mengkodekan, dan melaksanakan urutan instruksi
sebuah program yang tersimpan dalam memori. Sedangkan ALU berfungsi untuk
melakukan proses perhitungan yang diperlukan selama program dijalankan serta
mempertimbangkan suatu kondisi dan mengambil keputusan yang diperlukan
untuk instruksi-instruksi berikutnya.
Sedangkan memori adalah tempat dalam suatu mikrokontroler untuk
menyimpan data atau program. Pada mikrokontroler terdapat dua jenis memori
yaitu RAM dan flash PEROM. RAM merupakan memori yang dapat dibaca dan
ditulis. RAM biasanya digunakan hanya untuk menyimpan data atau sering
disebut dengan memori data saat program bekerja. Data yang terdapat pada RAM
akan hilang apabila catu daya dari RAM dimatikan. Flash PEROM merupakan
memori yang hanya dapat dibaca. Data yang tersimpan pada ROM tidak akan
4
http://soel.umpo.ac.id/
21
hilang meskipun suplay tegangan dimatikan. Oleh karena itu ROM sering dipakai
untuk menyimpan program pada suatu mikrokontroler. Flash PEROM dapat
ditulis beberapa kali dan dapat dihapus secara elektrik atau dengan tegangan
listrik.
Port I/O adalah saluran agar mikrokontroler dapat berhubungan dengan
perangkat eksternal lain. Pada mikrokontroler terdapat 32 buah saluran I/O.
Saluran ini dikelompokkan menjadi Port 0, Port 1, Port 2 dan Port 3. Sementara
itu osilator merupakan pembangkit frekuensi sebagai sumber detak bagi CPU
pada sebuah mikrokontroler. Untuk menggunakan osilator internal pada
mikrokontroler diperlukan sebuah kristal atau resonator keramik. Kristal yang
dapat digunakan sebagai sumber detak merupakan kristal berfrekuensi 0 sampai
12 MHz. Kapasitor yang digunakan ialah sebesar 30 pF ± 10 pF.
2.2.2
Konfigurasi Pin Mikrokontroler AT89S51
Mikrokontroler AT89S51 memiliki 40 konfigurasi pin. Fungsi masing-
masing pin tersebut dapat dikelompokkan menjadi sumber tegangan, kristal,
kontrol, dan
input-output. Konfigurasi pin dari mikrokontroler AT89S51
diperlihatkan pada Gambar 2.6 berikut ini :
Gambar 2.6 Konfigurasi Pin Mikrokontroler AT89S515
5
Usman, 2008, Teknik Antarmuka + Pemrograman Mikrokontroler AT89S52, hal 5
22
Selain itu, mikrokontroler ini dapat ditambahkan sebuah minimum memori
eksternal atau komponen eksternal lain. Dari kedelapan line dapat digunakan
sebagai suatu unit yang berhubungan ke perangkat paralel seperti printer,
pengubah digital ke analog, dan sebagainya, atau tiap line dapat mengoperasikan
sendiri ke perangkat single bit seperti saklar, LED, transistor, selenoid, motor, dan
speaker. Berikut adalah penjelasan fungsi pin dari mikrokontroler AT89S51 :
1. P0.0-P0.7 (Port 0)
Port 0 merupakan 8 bit port dua arah (input/output). Port 0 mampu
menangani 8 masukan TTL Port 0 membutuhkan pull up eksternal pada saat
dihubungkan dengan peralatan eksternal. Port 0 memiliki fungsi khusus yaitu
sebagai bus data (D0-D7) dan bus alamat memori orde rendah (A0-A7) pada
proses pembacaan program dari memori program eksternal maupun
pengaksesan memori data eksternal. Pada mode ini P0 mempunyai pull up
internal. Port 0 bisa diakses sebagai port (P0) atau diakses per bit (P0.0-P1.0).
2. P1.0-P1.7 (Port 1)
Port 1 merupakan port 8 bit dua arah (input/output) dengan pull up internal.
Buffer output port 1 bisa menangani sampai 4 masukan TTL. Port 1 bisa
diakses sebagai port (P1) atau diakses per bit (P1.0-P1.7).
3. P2.0-P2.7 (Port 2)
Port 2 merupakan port 8 bit dua arah (input/output) dengan pull up internal.
Buffer output port 2 bisa menangani sampai 4 masukan TTL. Port 1 bisa
diakses sebagai port (P1) atau diakses per bit (P1.0-P1.7). Port 1 bisa diakses
sebagai port (P1) atau diakses per bit (P1.0-P1.7). Selain sebagai port
input/output, P2 juga akan mengeluarkan alamat orde tinggi (A8-A15) pada
23
saat menjalankan program dari memori program eksternal atau pada saat
mengakses memori data eksternal yang menggunakan perintah pengalamatan
16 bit (perintah movx @DPTR).
4. P3.0-P3.7 (Port 3)
Port 3 merupakan port 8 bit dua arah (input/output) dengan pull up internal.
Buffer output P3 bisa menangani sampai 4 masukan TTL. Port 3 bisa diakses
sebagai port (P3) atau diakses per bit (P3.0-P3.7).
Selain berfungsi sebagai port input/output, P3 juga mempunyai fungsi khusus
seperti dijelaskan pada Tabel 2.1.
Tabel 2.1 Fungsi Khusus Port 3
Bit
Nama
Alamat Bit
Fungsi Alternatif
P3.0
RXD
B0H
Merupakan masukan untuk port serial (receiver)
P3.1
TXD
B1H
Merupakan keluaran dari port serial (transmitter)
P3.2
INT0
B2H
Masukan masukan untuk interupsi eksternal 0
P3.3
INT1
B3H
Merupakan masukan untuk Interupsi eksternal 1
P3.4
T0
B4H
Untuk masukan Eksternal waktu/pencacah 0
P3.5
T1
B5H
Untuk masukan Eksternal waktu/pencacah 1
P3.6
WR
B6H
Sinyal tulis untuk menulis memori data eksternal
P3.7
RD
B7H
Sinyal baca untuk menulis memori data eksternal
5. XTAL1 dan XTAL2
XTAL1 merupakan masukan ke penguat osilator internal. Sedangkan XTAL2
merupakan keluaran dari rangkaian penguat osilator internal. Sebuah kristal
dan dua buah kapasitor yang dihubungkan ke pin ini sudah cukup untuk
menyediakan sinyal detak (clock) untuk mikrokontroler.
24
6. PSEN, ALE, dan EA
PSEN (Program Store Enable) adalah sinyal baca pada saat menjalankan
program dari memori eksternal. Di dalam aplikasi, PSEN akan dihubungkan
dengan sinyal RD memori program eksternal (EEPROM). ALE (Address
Lacth Enable) adalah pulsa keluaran lacth pada proses pengaksesan memori
eksternal. Sedangkan EA (External Access Enable) berfungsi untuk
menentukan apakah
alamat awal memori program berada di memori
eksternal atau internal. Bila dihubungkan ke GND, alamat awal program
memori akan berada di memori eksternal. Sebaliknya bila dihubungkan ke
VCC, alamat awal memori program akan berada di memori internal.
7. RST
Merupakan masukan reset (aktif tinggi), pulsa transisi dari rendah ke tinggi
akan me-reset mikrokontroler ini.
8. VCC dan GND
VCC dan GND merupakan pin untuk tegangan DC. Mikrokontroler AT89S51
membutuhkan tegangan DC sebesar 5V agar bisa bekerja dengan baik
(standar TTL).
2.2.3
Timer
Mikrokontroler AT89S51 mempunyai dua buah timer yang dapat
difungsikan sebagai counter ataupun sebagai timer. Kedua timer tersebut
mempunyai 16 bit counter yang dapat diatur input maupun mode operasinya
melalui register TMOD. Register timer terdiri dari register TMOD dan register
TCON.
25
a.
Register TMOD
Register TMOD berfungsi untuk mengatur mode kerja timer. Nibble rendah
(bit 0-bit 3) dipakai untuk mengatur timer 0 dan nibble tinggi (bit 4-bit7) untuk
timer 1. Susunan register TMOD ditunjukan pada Tabel 2.2.
Tabel 2.2 Susunan register TMOD
Timer 1
Gate1
C/T1
Timer 0
M1(1)
M1(0)
Gate0
C/T0
M0(1)
M0(0)
Fungsi dari masing-masing bit tersebut ialah :
1. Gate
Me-reset bit ini akan mengaktifkan operasi timer bersama dengan bit TRx
pada register TCON. Men-set bit ini akan menon-aktifkan fungsi timer
2. C/T
Bila bit ini berlogika “1” maka timer akan berfungsi sebagai counter. Bila
bit ini berlogika 0 maka timer akan berfungsi sebagai timer.
3. M(1) dan M(0)
Kedua bit ini digunakan untuk memilih mode kerja timer. Penjelasan
mengenai fungsi pemilihan mode kerja timer dijelaskan pada Tabel 2.3
berikut ini :
Tabel 2.3 Fungsi Pemilihan Mode Kerja Timer
M(1)
M(0)
Mode
Fungsi
0
0
0
13 bit timer/counter
0
1
1
16 bit timer/counter
1
0
2
8 bit auto reload timer/counter
1
1
3
8 bit timer/counter pada timer 0
26
b.
Register TCON
Register TCON berfungsi untuk mengaktifkan atau menon-aktifkan timer
dan juga menyimpan informasi (bit) apabila data timer melebihi kapasitasnya
(overflow). Selain itu TCON juga berfungsi untuk menentukan apakah interupsi
akan dibangkitkan oleh transisi turun (1 ke 0) atau kondisi rendah pada input
interupsi eksternal. Susunan register TCON diperlihatkan pada Tabel 2.4.
Tabel 2.4 Susunan Register TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TCON.7
TCON.6
TCON.5
TCON.4
TCON.3
TCON.2
TCON.1
TCON.0
Fungsi dari masing-masing bit tersebut ialah :
1. TF1
: Bit ini akan berlogika “1” jika timer 1 terjadi overflow
2. TR1
: Bila bit ini berlogika “1” maka timer 1 akan aktif
3. TF0
: Bit ini akan berlogika “1” jika timer 0 terjadi overflow
4. TR0
: Bila bit ini berlogika “1” maka timer 1 akan aktif
5. IE1
: Bit ini akan berlogika “1” jika terjadi interupsi pada pin INT1.
6. IT1
: Bila bit ini berlogika “1”, maka interupsi akan aktif pada saat
terjadi perubahan nilai dari “1” ke “0” pada pin INT1
7. IE0
: Bit ini akan berlogika “1” jika terjadi interupsi pada pin
INT0.
8. IT0
: Bila bit ini berlogika “1”, maka interupsi akan aktif pada saat
terjadi perubahan nilai dari “1” ke “0” pada pin INT0
27
2.2.4
Serial Port
Mikrokontroler AT89S51 telah dilengkapi dengan On Chip Serial Port
yang dapat digunakan untuk komunikasi data serial secara full duplex malalui pin
RXD dan TXD. Level tegangan kedua pin tersebut menggunakan level tegangan
TTL. Data yang dikirim maupun data yang telah diterima akan disimpan pada
register SBUF yang terletak pada alamat 99H. Mikrokontroler ini dapat
melakukan komunikasi serial secara sinkron maupun asinkron.
Port serial memiliki empat mode operasi yang dapat dikendalikan melalui
register SCON. Register SCON adalah register register yang digunakan untuk
mengatur komunikasi serial. Alokasi bit SCON ditunjukan pada Tabel 2.5
dibawah ini :
Tabel 2.5 Alokasi Bit Register SCON
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
SCON.7
SCON.6
SCON.5
SCON.4
SCON.3
SCON.2
SCON.1
SCON.0
Fungsi dari masing-masing bit tersebut ialah :
1.
SM0
: Pemilihan mode komunikasi serial.
2.
SM1
: Pemilihan mode komunikasi serial.
3.
SM2
: Pemilihan mode komunikasi multiprosesor pada mode 2 dan 3.
4.
REN
: Mengaktifkan atau menon-aktifkan penerimaan data serial.
5.
TB8
: Bit ke-9 dari data yang dikirim (pada mode 2 dan 3).
6.
RB8
: Bit ke-9 dari data yang diterima (pada mode 2 dan 3).
7.
TI
: Bit tanda bahwa pengiriman data telah selesai.
8.
RI
: Bit tanda bahwa data telah diterima dengan lengkap. Diset secara
hardware bila seluruh data (8 bit) telah diterima. RI harus direset
secara software agar data selanjutnya bisa diterima.
28
Selain register SCON juga terdapat register PCON yang berfungsi untuk
menentukan nilai SMOD. Nilai SMOD itu sendiri berfungsi untuk menentukan
besarnya nilai baud rate yang ingin digunakan untuk komunikasi data secara
serial. Susunan register PCON diperlihatkan pada Tabel 2.6.
Tabel 2.6 Susunan Register PCON
SMOD
-
-
-
GF1
GF0
PD
IDL
PCON.7
PCON.6
PCON.5
PCON.4
PCON.3
PCON.2
PCON.1
PCON.0
Nilai SMOD pada bit ke-7 register PCON ditentukan ketika menentukan
besarnya baud rate, sedangkan bit ke-6 sampai bit ke-4 tidak digunakan dalam
versi 8051. Untuk bit ke-3 sampai dengan bit ke-0 berfungsi untuk mengatur
fungsi penghematan daya.
a.
Mode Komunikasi Serial
Mikrokontroler AT89S51 memiliki 4 mode komunikasi serial. Mode 0
berupa synchronous serial (shift register), sedangkan tiga mode lainnya berupa
asynchronous serial (UART). Pada semua mode, pengiriman dilakukan jika ada
instruksi yang mengisi nilai register SBUF. Sedangkan pada saat penerimaan, data
yang diterima akan disimpan pada register SBUF. Tabel 2.7 menunjukan mode
komunikasi serial pada mikrokontroler AT89S51.
Tabel 2.7 Mode Komunikasi Serial
SM0
SM1
Mode
Deskripsi
Baud Rate
0
0
0
8-bit Shift Register
Frek. Osilator/12
0
1
1
8-bit UART
Variabel
1
0
2
9-bit UART
Frek Osilator/64
1
1
3
9-bit UART
Variabel
29
Penjelasan masing-masing mode tersebut sebagai berikut :
1. Mode 0
Mode 0 adalah 8-bit shift register dimana data dikirimkan dan diterima
melalui pin RXD sedangkan clock dikirimkan dan diterima melalui pin
TXD. Pengiriman data 8 bit dilakukan dengan mengirimkan Least
Significant Bit (LSB) terlebih dahulu. Pada mode 0, baud rate yang
digunakan adalah sebesar 1/12 dari frekuensi osilator.
2. Mode 1
Pada mode 1, jumlah data yang dikirimkan sebanyak 10 bit yang terdiri dari
start bit, 8 bit data (LSB terlebih dahulu), dan stop bit. Pada proses
penerimaan, nilai stop bit akan dimasukkan ke RB8 secara otomatis. Pada
proses pengiriman, stop bit akan diberi nilai ‘1’ secara otomatis. Pada mode
1, baud rate yang digunakan dapat diatur melalui Timer 1.
3. Mode 2
Pada mode 2, jumlah data yang dikirimkan sebanyak 11 bit yang terdiri dari
start bit, 8 bit data (LSB terlebih dahulu), bit ke-9, dan stop bit. Pada proses
pengiriman, nilai bit ke-9 dapat diatur dengan mengisi nilai TB8. Pada
proses penerimaan, bit ke-9 akan dimasukkan ke RB8 secara otomatis. Pada
mode 2, baud rate yang dapat digunakan adalah sebesar 1/64 frekuensi
osilator atau 1/32 frekuensi osilator jika SMOD bernilai ‘1’.
4. Mode 3
Mode 3 hampir sama dengan mode 2. Perbedaannya terdapat pada baud rate
yang digunakan. Jika mode 2 menggunakan baud rate yang pasti, mode 3
menggunakan baud rate yang dihasilkan oleh Timer 1.
30
b.
Baud Rate
Baud rate adalah frekuensi clock yang digunakan dalam pengiriman dan
penerimaan data. Satuan baud rate pada umumnya adalah bps (bit per second),
yaitu jumlah bit yang dapat ditransmisikan per detik. Baud rate untuk mode 0
bernilai tetap dengan rumus yang terdapat pada persamaan 1.
(2.1)
Sedangkan baud rate untuk mode 2 memiliki 2 variasi tergantung dari kondisi
SMOD. Rumus baud rate untuk mode 2 terdapat pada persamaan 2.
(2.2)
Baud rate untuk mode 1 dan 3 dihasilkan oleh Timer 1. Pengaturan baud
rate untuk mode 1 dan 3 dapat dilakukan dengan cara mengubah nilai SMOD,
TMOD, dan TH1. Nilai baud rate dapat diperoleh dengan menggunakan
persamaan 3.
(2.3)
Umumnya Timer 1 dioperasikan pada mode 2 (8-bit Auto Reload) sehingga
didapat persamaan 4.
(2.4)
Berdasarkan persamaan 4, user dapat menghitung berapa nilai TH1 yang
dibutuhkan jika diketahui baud rate yang diinginkan dengan persamaan 5.
(2.5)
31
Satu hal yang harus diperhatikan dalam pengaturan baud rate adalah nilai
baud rate dan nilai TH1 diusahakan harus tepat dan bukan merupakan
pembulatan. Untuk komunikasi serial kecepatan tinggi, pembulatan terhadap nilainilai tersebut dapat mengakibatkan kekacauan dalam proses pengiriman atau
penerimaan. Jika terdapat nilai pecahan, user disarankan untuk mengganti osilator
dengan frekuensi yang sesuai. Untuk komunikasi dengan kecepatan rendah,
toleransi terhadap kesalahan cukup besar sehingga pembulatan masih boleh
dilakukan.
Misalkan baud rate yang diinginkan adalah 19200 bps dengan frekuensi
osilator 11,0592 MHz. Dengan memasukkan data ini ke dalam persamaan 5 maka
akan didapat persamaan 6.
TH1 = 256 – (2SMOD x 1,5)
(2.6)
Jika 2SMOD bernilai ‘1’, maka akan didapat TH1 sebesar 254,5. Untuk
menghindari TH1 berupa pecahan, 2SMOD harus bernilai ‘2’ (SMOD bernilai ‘1’)
sehingga didapat TH1 sebesar 253 atau FDh.
Untuk mendapatkan baud rate yang lambat, user dapat mengoperasikan
Timer 1 pada mode 1 dengan rumus pada persamaan 7.
(2.7)
Beberapa konfigurasi baud rate yang umum digunakan terdapat dalam
Tabel 2.8 berdasarkan frekuensi osilator, mode timer, mode komunikasi serial dan
nilai SMOD.
32
Tabel 2.8 Nilai dan Konfigurasi Baud Rate
Serial
Timer 1
Frek. Osilator
Mode
Baud Rate
0
1,6667 Mbps
20 MHz
2
625 Kbps
1, 3
2.3
SMOD
Reload
C/T
Mode
X
X
X
X
20 MHz
1
X
X
X
104,1667 Kbps
20 MHz
1
0
2
FFh
1, 3
19,2 Kbps
11,0592 MHz
1
0
2
FDh
1, 3
9,6 Kbps
11,0592 MHz
0
0
2
FDh
1, 3
4,8 Kbps
11,0592 MHz
0
0
2
FAh
1, 3
2,4 Kbps
11,0592 MHz
0
0
2
F4h
1, 3
1,2 Kbps
11,0592 MHz
0
0
2
E8h
1, 3
137,5 bps
11,9856 MHz
0
0
2
1Dh
1, 3
110 bps
6 MHz
0
0
2
72h
1, 3
110 bps
12 MHz
0
0
1
FEEBh
(TH1)
Liquid Crystal Display (LCD)
M1632 merupakan modul LCD matrik dengan konfigurasi 16 karakter dan
2 baris dengan setiap karakternya dibentuk oleh 8 baris pixel dan 5 kolom pixel (1
baris pixel terakhir adalah kursor). Gambar 2.7 menunjukan hubungan antara layar
LCD dengan HD44780 yang merupakan mikrokontroler pengendali LCD.
Pada gambar 2.5 tampak karakter “A” dibaris karakter 1 yang terbentuk
oleh COM1 (pixel baris 1) hingga COM8 (pixel baris 8) dan SEG1 (pixel kolom1)
hingga SEG5 (pixel kolom 5). Oleh karena itu kombinasi 16 karakter akan
terbentuk oleh SEG1 (pixel kolom 1) hingga SEG40 (pixel kolom 40) dengan
setiap karakternya terdiri dari 5 kolom pixel. Kombinasi 2 baris karakter akan
terbentuk oleh COM1 (pixel baris 1) hingga COM16 (pixel baris 16).
33
Gambar 2.7 Hubungan HD44780 dengan layar LCD
2.3.1
Deskripsi M1632
HD44780 sebetulnya merupakan mikrokontroler yang dirancang khusus
untuk mengendalikan LCD dan mempunyai kemampuan untuk mengatur proses
scanning pada layar LCD. Mikrokontroler atau perangkat tersebut hanya
mengirimkan data-data yang merupakan karakter yang akan ditampilkan pada
LCD atau perintah yang mengatur proses tampilan pada LCD saja.
Gambar 2.8 menunjukan diagram blok modul M1632 yang terdiri dari
bagian controler dan driver HD44780, penguat sinyal (Signal Driver), memori,
register, dan antarmuka mikrokontroler.
Gambar 2.8 Modul M1632
34
2.3.2
Kofigurasi Pin Modul M1632
Untuk keperluan antarmuka suatu komponen elektronika dengan
mikrokontroler, perlu diketahui fungsi dari setiap kaki dari komponen tersebut.
Gambar 2.9 memperlihatkan konfigurasi pin dari modul LCD M1632.
Gambar 2.9 Konfigurasi Pin LCD M1632
Tiap-tiap pin pada modul LCD M1632 mempunyai simbol, level dan
fungsi yang berbeda. Konfigurasi pin dari LCD ditunjukan pada Tabel 2.9.
Tabel 2.9 Konfigurasi Pin M1632
No. Pin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Simbol
Vss
Vcc
Vee
RS
R/W
E
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
V+BL
V-BL
Level
H/L
H/L
H/L
H/L
H/L
H/L
H/L
H/L
H/L
H/L
-
Fungsi
0V
5 ± 10 % V
Penggerak LCD
H = data, L = instruksi
H = baca, L = tulis
Enable Signal
Data Bus
Data Bus
Kecerahan LCD (Kontras)
35
Berikut ini merupakan penjelasan fungsi dari tiap-tiap pin pada modul
LCD M1632 :
1.
Pin 1 (GND)
Kaki ini berhubungan dengan tegangan 0V (ground) dari modul LCD
(khusus untuk modul M1632 keluaran Hitachi, pin ini adalah Vcc).
2.
Pin 2 (Vcc)
Kaki ini berhubungan dengan tegangan +5V yang merupakan tegangan untuk
catu daya HD44780 (khusus untuk modul M1632 keluaran Hitachi, pin ini
adalah GND)
3.
Pin 3 (Vee/Vlcd)
Tegangan pengatur kontras LCD, kontras mencapai nilai maksimum pada
saat kondisi pin ini pada tegangan 0V.
4.
Pin 4 (RS)
Pin Register Select, pemilih register yang akan diakses. Untuk akses ke
register data, logika dari pin ini harus 1 dan untuk akses ke register instruksi,
logika dari pin ini harus 0
5.
Pin 5 (R/W)
Logika 1 pada pin ini menunjukan bahwa modul LCD sedang pada mode
pembacaan (read) dan logika 0 menunjukan bahwa modul LCD sedang pada
mode penulisan (write). Untuk aplikasi yang tidak membutuhkan pembacaan
pada modul LCD, kaki ini dapat langsung dihubungkan ke ground.
6.
Pin 6 (E)
Enable Clock LCD, pin ini mengaktifkan clock LCD. Logika 1 pada pin ini
diberikan pada saat penulisan atau pembacaan data.
36
7.
Pin 7-14 (DB0-DB7)
Data bus, kedelapan pin modul LCD ini adalah bagian dimana aliran data
sebanyak 4 bit maupun 8 bit mengalir saat proses penulisan maupun
pembacaan data.
8.
Pin 15 (Anoda)
Berfungsi untuk tegangan positif dari backlight modul LCD sekitar 4,5V
(hanya terdapat pada modul M1632 yang memiliki backlight).
9.
Pin 16 (Katoda)
Tegangan negatif backlight modul LCD sebesar 0V (hanya terdapat pada
modul M1632 yang memiliki backlight).
2.3.3
Struktur Memori LCD
Modul LCD M1632 memiliki beberapa jenis memori yang digunakan
untuk menyimpan atau memproses data-data yang akan ditampilkan pada layar
LCD. Setiap jenis memori mempunyai fungsi-fungsi sendiri. Jenis-jenis tersebut
meliputi :
1. DDRAM
DDRAM merupakan memori tempat karakter yang ditampilkan berada.
Contohnya, karakter “A” atau 41h yang ditulis pada alamat 00 akan tampil
pada baris pertama dan kolom pertama dari LCD.
2. CGRAM
CGRAM adalah memori untuk menggambarkan pola sebuah karakter dan
bentuk karakter dapat diubah-ubah sesuai keinginan. Akan tetapi isi memori
ini akan langsung hilang saat power supply tidak aktif sehingga pola karakter
akan hilang.
37
3. CGROM
CGROM adalah memori untuk penggambarkan pola sebuah karakter dan pola
tersebut sudah ditentukan secara permanen dari HD44780 sehingga pengguna
tidak dapat mengubah lagi. Oleh karena ROM bersifat permanen, pola
karakter tersebut tidak akan hilang walaupun power supply tidak aktif. Saat
HD44780 akan menampilkan data 41h yang tersimpan pada DDRAM,
HD44780 akan mengambil data di alamat 41h(010 00B) yang ada pada
CGROM, yaitu pola karakter A.
Seperti telah dijelaskan sebelumnya, CGRAM maupun CGROM
merupakan tempat menyimpan data berupa pola-pola karakter yang akan
ditampilkan pada LCD. Pola-pola karakter sebagian besar tersimpan di memori
CGROM kecuali pola karakter yang ada pada lokasi yang tersimpan di memori
CGRAM. Oleh karena itu, apabila data yang dikirimkan ke DDRAM adalah 00h
hingga 08h, tampilan pada layar LCD adalah pola yang tersimpan pada CGRAM
dan berupa pola-pola yang dapat diubah dengan mengedit isi CGRAM. Akan
tetapi untuk data 11h hingga 0FFh, tampilan pada layar LCD merupakan pola
yang tersimpan pada CGROM yang berupa pola-pola permanen yang sudah
ditentukan oleh IC HD44780.
Oleh karena itu dapat disimpulkan bahwa pola karakter tersimpan di
memori CGRAM (untuk pola karakter yang dapat diedit) dan CGROM (untu pola
karakter yang tidak dapat diedit), sedangkan data pada DDRAM berfungsi untuk
menunjukkan lokasi pola karakter yang akan ditampilkan pada layar LCD.
Sebagai contoh, apabila karakter “B” akan ditampilkan pada kolom karakter
kedua baris karakter pertama pada M1632, alamat DDRAM harus diatur pada
38
lokasi 01 yang merupakan lokasi kolom karakter kedua dari M1632, kemudian
data DDRAM di alamat tersebut diisi alamat dari pola karakter “B”, yaitu 42h.
2.3.4
Register LCD
HD44780 yang terdapat pada modul M1632 mempunyai dua buah register
yang aksesnya diatur dengan pin RS. Saat RS berlogika 0, register yang akan
diakses adalah register perintah atau instruksi dan saat RS berlogika 0, register
yang akan diakses adalah register data.
•
Register Perintah
Register ini adalah register dimana perintah-perintah mikrokontroler ke
HD44780 selaku pengendali modul M1632 diberikan. Perintah-perintah
tersebut berfungsi untuk mengatur tampilan pada layar LCD atau alamat
dari DDRAM dan CGRAM. Selain itu, register ini juga merupakan tempat
dimana status HD44780 dapat dibaca. Bit ke-7 data status yang terbaca
adalah Busy Flag (tanda sibuk), yaitu tanda yang mengindikasikan bahwa
HD4780 masih dalam kondisi sibuk sehingga proses akses data lebih lanjut
dari mikrokontroler yang terhubung pada modul M1632 harus menunggu
hingga tanda sibuk ini selesai. Bit ke-6 hingga bit ke-0 adalah Address
Counter (Penghitung Alamat) dari DDRAM. Address Counter ini
menunjukkan lokasi dari DDRAM yang sedang ditunjuk saat itu.
•
Register Data
Register ini adalah register dimana mikrokontroler dapat menuliskan atau
membaca data ke atau dari DDRAM maupun CGRAM. Akses data ke
DDRAM, baik penulisan maupun pembacaan, merupakan akses ke bagian
memori tampilan pada layar LCD, sedangkan akses ke CGRAM
39
merupakan proses untuk mengedit pola karakter yang ada pada lokasi
CGRAM tersebut.
2.3.5
Instruksi-Instruksi Pada M1632
Untuk mengatur tampilan pada layar LCD, alamat DDRAM atau CGRAM
mikrokontroler yang terhubung dengan M1632 harus mengirimkan data-data
tertentu ke register perintah sesuai Tabel 2.10 (Instruksi-Instruksi M1632).
Register-register perintah dapat dilihat pada tabel di bawah ini :
Tabel 2.10 Instruksi-Instruksi M1632
Instruksi
D7
D6
D5
D4
D3
D2
D1
D0
Deskripsi
0
0
0
0
0
0
0
1
Hapus Display dan
DDRAM
0
0
0
0
0
0
1
X
Set Alamat DDRAM di 0
Set Mode
0
0
0
0
0
1
I/D
S
Display
On/Off
0
0
0
0
1
D
C
B
Geser
Kursor/
Display
0
0
0
1
S/C
R/L
X
X
Set Fungsi
0
0
1
DL
N
F
X
X
1
A6
A5
A4
A3
A2
A1
A0
A6-A0 = alamat DDRAM
0
1
A5
A4
A3
A2
A1
A0
A5-A0 = alamat CGRAM
Hapus
Display
Posisi
Awal
Set Alamat
DDRAM
Set alamat
CGRAM
Keterangan :
X
I/D
S
S/C
R/L
DL
N
F
D
C
B
Arah
kursor dam display
Atur display (D) On/Off,
kursor (C) On/OFF,
Blinking (B)
Geser kursor atau display
Tanpa mengubah alamat
DDRAM
Atur panjang data,
Jumlah baris yang tampil
dan font karakter
: diabaikan
: 1 = Increment, 0 = Decrement
: 1 = Display bergeser, 0 = Display tidak bergeser
: 1 = Display Shift, 0 = Geser Kursor
: 1 = Geser Kiri, 0 = Geser Kanan
: 1= 8 bit, 0 = 4 bit
: 1 = 2 baris, 0 = 1 baris
: 1 = 5x10, 0 = 5x8
: 1 = Display On, 0 = Display Off
: 1 = Kursor On, 0 = Kursor Off
: 1 = Blinking On, 0 = Blinking Off
40
2.4
Komunikasi Serial
Komunikasi serial merupakan komunikasi data dengan pengiriman data
secara satu per satu dengan menggunakan satu jalur kabel data. Sehingga dalam
komunikasi serial hanya menggunakan dua kabel data yaitu kabel data untuk
pengiriman yang disebut transmit (Tx) dan kabel data untuk penerimaan yang
disebut receive (Rx). Kelebihan dari komunikasi serial adalah jarak pengiriman
dan penerimaan data dapat dilakukan dalam jarak yang cukup jauh dibanding
dengan komunikasi paralel. Kekurangannya adalah kecepatannya lebih lambat
daripada komunikasi paralel.
2.4.1
Tata Cara Komunikasi Data Serial
Dikenal dua cara komunikasi data secara serial, yaitu komunikasi data
serial secara sinkron dan komunikasi data serial secara asinkron. Pada komunikasi
data serial secara sinkron hanya ada satu pihak (pengirim atau penerima) yang
menghasilkan clock dan mengirimkan clock tersebut bersama-sama dengan data
serial. Contoh penggunaan komunikasi data serial sinkron terdapat pada transmisi
data keyboard.
Komunikasi data serial asinkron adalah komunikasi dimana kedua pihak
(pengirim dan penerima) masing-masing menghasilkan clock namun hanya data
yang ditransmisikan tanpa clock. Clock tidak dikirimkan bersama data serial,
tetapi dibangkitkan secara sendiri-sendiri baik pada sisi pengirim (transmitter)
maupun pada sisi penerima (receiver). Agar data yang dikirim sama dengan data
yang diterima, maka kedua frekuensi clock harus sama dan harus terdapat
sinkronisasi. Setelah adanya sinkronisasi, pengirim akan mengirimkan datanya
sesuai dengan frekuensi clock pengirim dan penerima akan membaca data sesuai
41
dengan frekuensi clock penerima. Contoh penggunaan komunikasi data serial
asinkron adalah pada Universal Asynchronous Receiver Transmitter (UART)
yang digunakan pada serial port (COM) komputer.
Pada UART,
RT, kecepatan pengiriman
pengi
data (atau yang sering disebut dengan
Baud Rate)) dan fase clock pada sisi transmitter dan sisi receiver harus sinkron.
Untuk itu diperlukan sinkronisasi antara transmitter dan receiver
eceiver. Hal ini
dilakukan oleh bit “Start
Start” dan bit “Stop”.
”. Ketika saluran transmisi dalam keadaan
idle, output UART adalah dalam keadaan logika “1”. Ketika transmitter ingin
mengirimkan data, output UART akan diset dulu ke logika “0” untuk waktu satu
bit. Sinyal ini pada receiver akan dikenali sebagai sinyal “Start”” yang digunakan
untuk menyinkronkan fase clock-nya
nya sehingga sinkron dengan fase clock
transmitter. Selanjutnya data akan dikirimkan secara serial dari bit yang paling
rendah sampai bit tertinggi. Selanjutnya akan dikirimkan sinyal “Stop”
“
sebagai
akhir dari pengiriman data serial. Gambar 2.10 memperlihatkan contoh
pengiriman huruf “A” dalam format ASCII (41 heksa/1000001 biner) tanpa bit
paritas.
Gambar 2.10
2.
Pengiriman huruf “A” tanpa bit paritas
Kecepatan transmisi (baud
(
rate) dapat dipilih bebas dalam rentang
tertentu. Baud rate yang umum dipakai adalah 110, 135, 150, 300,
300 600, 1200,
2400, dan 9600 (baud
baud/perdertik). Dalam komunikasi data serial, baud rate dari
kedua alat yang berhubungan harus diatur pada kecepatan yang sama. Selanjutnya
harus ditentukan panjang data (6,7 atau 8 bit),
), paritas (genap, ganjil, atau tanpa
paritas), dan jumlah bit “Stop” (1, 1 ½ , atau 2 bit).
42
2.4.2
USB to Serial Bridge FT232BM
Modul USB to Serial Bridge FT232BM adalah sebuah komponen yang
berfungsi sebagai konverter yang akan mengirim dan menerima data serial
(UART) yang menuju maunpun berasal dari komputer melalui port USB.
Komponen ini merupakan komponen yang berfungsi untuk menggantikan fungsi
IC MAX232 yang menggunakan antarmuka RS-232. FT232BM menggunakan
antarmuka USB to Serial (UART) untuk proses komunikasi datanya.
Komponen ini memerlukan beberapa komponen pendukung yang harus
dirangkai agar dapat bekerja sebagai USB to Serial Converter. Sementara itu agar
komponen ini dikenali oleh komputer, sebuah driver harus di-install-kan terlebih
dahulu ke komputer (yang port USB-nya akan dihubungkan ke komponen ini).
Driver tersebut sudah disediakan oleh produsen pembuat komponen ini, dan
pemakainya hanya perlu meng-install-kannya ke komputer yang akan digunakan.
Dengan adanya driver ini, maka komputer yang digunakan akan mengenali
komponen FT232BM ini sebagai virtual COM (virtual serial port).
a. Spesifikasi USB to Serial Bridge FT232BM
Adapun spesifikasi dari USB to Serial Bridge FT232BM adalah sebagai
berikut :
1. Mendukung format UART dengan 7 atau 8 bit data, 1 atau 2 stop bit, dan
odd/even/mark/space/no parity.
2. Kompatibel dengan USB 1.1 dan USB 2.0.
3. Memiliki tegangan output untuk antarmuka UART dengan level TTL 5V.
4. Tegangan output untuk antarmuka USB sebesar 3,3V
5. Memiliki EEPROM eksternal untuk menyimpan data.
6. Tegangan kerja 4,4-5,25 VDC
7. Mempunyai Crystal Oscillator sebesar 6 MHz.
43
b. Konfigurasi Pin FT232BM
IC FT232BM terdiri atas 32 pin seperti yang terlihat pada Gambar 2.11
berikut ini :
Gambar 2.11 Konfigurasi Pin FT232BM
Konfigurasi pin FT232BM seperti sebagai berikut :
1.
Antarmuka UART
Antarmuka UART digunakan untuk proses komunikasi serial dengan output
UART, dengan fungsi khusus masing-masing pin :
Tabel 2.11 Fungsi Pin Antarmuka UART
Pin
25
24
23
22
21
20
19
18
16
Deskripsi
TXD (Transmit Asyncrhonous Data Output)
RXD (Receive Asyncrhonous Data Input)
RTS# (Request To Send control output)
CTS# (Clear To Send control input)
DTR# (Data Terminal Ready control output)
DSR# (Data Set Ready control input)
DCD# (Data Carrier Detect control input)
RI# (Ring indicator Data Input)
TXDEN (Enable transmit data untuk RS485)
44
2.
Antarmuka USB
Antarmuka USB digunakan untuk proses komunikasi serial dengan port USB,
dengan fungsi khusus masing-masing pin :
Tabel 2.12 Fungsi Pin Antarmuka USB
Pin
3.
Deskripsi
7
USBDP (USB Data Signal Plus) – I/O
8
USBDM (USB Data Signal Minus) – I/O
Antarmuka EEPROM
Antarmuka EEPROM digunakan untuk mengakses EEPROM eksternal,
dengan fungsi khusus masing-masing pin :
Tabel 2.13 Fungsi Pin Antarmuka EEPROM
Pin
4.
Deskripsi
1
EESK (Sinyal clock untuk EEPROM)
2
EEDATA (Bus data untuk EEPROM)
32
EECS (Chip Select untuk akses EEPROM)
Power dan Ground
Power dan ground digunakan untuk masukan tegangan dan ground IC
FT232BM, dengan fungsi khusus masing-masing pin :
Tabel 2.14 Fungsi Pin Power dan Ground
Pin
6
3&26
13
9&17
Deskripsi
3V3OUT (Output tegangan 3,3V untuk antarmuka USB)
VCC (Input tegangan sebesar 4,4V-5,25V untuk FT232BM)
VCCIO (Output tegangan 3V-5,25V untuk antarmuka UART)
GND
30
AVCC (Vcc analog untuk internal clock)
29
AGD (Ground analog untuk internal clock)
31
TEST (Dihubungkan dengan ground pada posisi normal)
45
5.
Power Control
Sleep# (Pin 10), PWREN# (Pin 15), PWRCTL (Pin 14) digunakan untuk
power control FT232BM.
6.
RESET
RESET# (Pin 4) dan RSTOUT# (Pin 5) merupakan pin yang digunakan untuk
me-reset IC FT232BM
7.
Crystal Oscillator
XTIN (Pin 27) merupakan masukan ke 6 MHz Crystal Oscillator dan
XTOUT adalah keluaran dari 6 MHz Crystal Oscillator.
2.5
Catu Daya
Catu daya merupakan suatu rangkaian yang mempunyai kemampuan
mengubah tegangan AC menjadi tegangan DC. Agar peralatan elektronik dapat
bekerja dengan baik, maka diperlukan catu daya yang sesuai. Bagian-bagian dari
sebuah rangkaian catu daya ialah :
1.
Transformator
Transformator merupakan suatu kumparan yang terdiri atas dua kumparan
kawat terisolasi yaitu kumparan primer dan kumparan sekunder, yang
dililitkan
mengelilingi
kepingan-kepingan
inti
besi
lunak.
Tujuan
digunakannya transformator yaitu untuk mengisolasi jalur daya DC yang
berasal dari jala-jala listrik dan untuk mengubah level tegangan AC yang
berasal dari jala-jala listrik menjadi beragam nilai tegangan yang lebih rendah
atau lebih tinggi.
46
2.
Rectifier (Penyearah)
Untuk mengubah tegangan AC menjadi tegangan DC (arus searah)
dibutuhkan dioda sebagai penyearah. Penyearah yang digunakan yaitu
penyearah gelombang penuh dengan sistem pembalik fasa. Penyearah ini
menggunakan empat buah dioda untuk mendapatkan penyearah siklus
lengkap dengan memakai penyearah jembatan (bridge).
3.
Filter
Sinyak keluaran dari penyearah baik setengah gelombang maupun gelombang
penuh belum tentu sempurna seperti yang diharapkan. Ripple atau riak
gelombang masih terlihat dan terlalu besar, ini menyebabkan tegangan output
menjadi tidak stabil. Untuk mengurangi atau meniadakan ripple ini maka
sinyal hasil penyearah disaring terlebih dahulu.
Faktor yang terdapat pada proses ini adalah faktor ripple yaitu perbandingan
antara tegangan ripple dengan tegangan DC pada sinyal. Maka didapatkan
persamaan :
r=
௏௥௜௣௣௟௘ ሺ௥௠௦ሻ௫ ଵ଴଴%
௏ௗ௖
(2.8)
Ada dua macam filter yaitu C dan L atau kombinasi dari keduanya. Tapi yang
sering dijumpai adalah filter dengan C saja. Dengan memperbesar harga
kapasitor, maka semakin besar pula daya tampung kapasitor dan akhirnya
ripple semakin rata, arus yang dilewatkan juga bertambah.
4.
Regulator
Catu daya mempunyai kemungkinan untuk mengalami perubahan level
tegangan setelah dihubungkan ke beban. Jika ini terjadi, dapat dikatakan
tegangan keluaran dari catu daya tidak stabil. Tidak stabilnya tegangan
47
keluaran ini tentunya tidak diharapkan karena dapat mempengaruhi kerja
peralatan yang dicatu oleh catu daya tersebut. Untuk menjaga kestabilan catu
daya, maka perlu ditambahkan rangkaian regulator tegangan.
Untuk sebagian besar pemakaian, pilihan yang paling baik untuk regulator
tegangan adalah regulator tipe sederhana dengan tiga terminal yaitu input,
ground, dan output. Kapasitor pada output berfungsi untuk memperbaiki
respon transient dan menjaga impedansi tetap rendah pada frekuensi tinggi.
2.6
Bahasa Pemrograman Assembler
Perangkat lunak atau program diperlukan agar mikrokontroler dapat
bekerja yang bertugas memberitahukan hal-hal yang harus dilakukan oleh
mikrokontroler. Mikrokontroler AT89S51 memiliki bahasa pemrograman khusus
yang tidak dipahami oleh jenis mikrokontroler lain. Bahasa pemrograman khusus
yang dikenal dengan nama bahasa assembly. Bahasa assembly adalah bahasa
pemrograman tingkat rendah. Dalam pemrograman komputer dikenal dua jenis
tingkatan bahasa, jenis yang pertama adalah bahasa pemrograman tingkat tinggi
(high level language) dan jenis yang kedua adalah bahasa pemrograman tingkat
rendah (low level language).
Bahasa pemrograman tingkat tinggi lebih berorientasi kepada manusia
yaitu bagaimana agar pernyataan-pernyataan yang ada dalam program mudah
ditulis dan dimengerti oleh manusia. Sedangkan bahasa tingkat rendah lebih
berorientasi ke mesin, yaitu bagaimana agar komputer dapat langsung
mengintepretasikan pernyataan-pernyataan program.
48
2.6.1
Kelompok-kelompok Instruksi
Seluruh instruksi dapat di kelompokkan menurut fungsinya masing-
masing. Instruksi-instruksi tersebut diataranya ialah :
•
Instruksi Pemindahan Data
Bagian instruksi ini hanya menyalin data suatu lokasi memori (sumber) ke
lokasi tertentu (tujuan), tanpa terjadi perubahan isi data dari sumber. Selain
lokasi memori, data juga dapat dipindahkan dari suatu register ke register
lain, pemindahan atau penyalinan antar muka-register dan antar mukamemori.
Contoh :
MOV A,#29H
PUSH A
POP A
•
Instruksi Aritmatika
Instruksi ini melaksanakan operasi-operasi aritmatika yang meliputi
penjumlahan (+), pengurangan (-), penambahan satu (increment),
pengurangan satu (decrement), perkalian (*), pembagian (/), dan modulo
MOD (mengekspresikan sisa setelah pembagian).
Contoh :
ADD A,#29H
SUBB A,#29H
•
Instruksi Logika dan Manipulasi Bit
Instruksi ini berhubungan dengan operasi-operasi logika pada akumulator
dan manipulasi bit. Macam dari instruksi ini adalah AND, OR, XOR,
NOT, perbandingan, pergeseran, dan komplemen data.
Contoh :
ANL A,#15H
CPL P1.0
49
•
Instruksi Percabangan
Instruksi ini mengubah urutan normal pelaksanaan suatu program. Dengan
instruksi ini, program yang sedang dilaksanakan akan meloncat ke suatu
alamat tertentu. Instruksi ini dibedakan atas 2 bagian, yaitu percabangan
dengan syarat dan percabangan tanpa syarat.
1. Percabangan dengan syarat
Contoh dari instruksi percabangan dengan syarat adalah CJNE. Instruksi
ini akan membandingkan isi register, atau isi memori dengan suatu data.
Apabila sama, instruksi selanjutnya yang berada dibawahnya akan
dilaksanakan. Bila tidak sama instruksi yang ditunjuk oleh label yang akan
dilaksanakan.
Contoh : CJNE R7,#0FFH, Tidak_sama : Jika R7 tidak sama dengan
FFH maka instruksi kan menuju label Tidak_sama.
Contoh lain dari instruksi percabangan dengan syarat adalah DJNZ.
Instruksi ini akan mengurangi isi register atau memori dengan satu. Bila
sudah 0, instruksi selanjutnya akan dilaksanakan. Bila belum 0, instruksi
dilanjutkan ke label ulang.
Contoh : DJNZ R7, ulang : Jika R7 sama dengan nol, setelah dikurangi
satu, pelaksanaan instruksi harus melompat ke label ulang.
2. Percabangan tanpa syarat
Instruksi percabangan tanpa syarat misalnya adalah SJMP (Short Jump),
Call Delay dan LJMP (Long Jump).
Contoh : SJMP ulang : Jika instruksi ini dieksekusi maka pembacaan
program akan melompat ke alamat dengan label ulang.
50
•
Instruksi Stack, I/O, dan Kontrol
Instruksi ini mengatur antara lain penggunaan stack, membaca/menulis
port I/O, serta pengontrolan-pengontrolan.
Contoh :
SETB EA
CLR Ti
2.6.2
Metode Pengalamatan
Ada beberapa cara pengalamatan pada pemrograman assembler. Beberapa
cara pengalamatan (Addressing Mode) tersebut dapat dilihat sebagai berikut :
•
Pengalamatan Langsung (Direct Addressing)
Operand ditentukan berdasarkan alamat 8-bit
dalam suatu instruksi.
Hanya RAM data internal dan SFR saja yang bisa diakses secara langsung.
Contoh :
•
mov a,64h
;salin isi alamat 64h ke akumulator
Pengalamatan Tak Langsung (Indirect Addressing)
Pada pengalamatan tidak langsung, instruksi menentukan suatu register
yang digunakan untuk menyimpan alamat operand. Baik RAM Internal
maupun eksternal dapat diakses secara tak-langsung. Register alamat
untuk alamat-alamat 8-bit bisa menggunakan Stack Pointer atau R0 atau
R1 dari Bank Register yang dipilih. Sedangkan untuk alamat 16-bit hanya
bisa menggunakan Register Pointer data 16-bit atau DPTR. Untuk
melaksanakan intruksi tak langsung menggunakan simbol “@”.
Contoh :
mov
a, @R0 ; salin isi memori yang alamatnya ditujukan
; oleh isi register R0 ke akumulator.
51
•
Pengalamatan Segera (Immidiate Addressing)
Pada pengalamatan segera, nilai suatu konstanta segera menyatu dengan
opcode dalam memori program. Untuk melaksanakan instruksi segera
menggunakan simbol “#”.
Contoh :
mov
a,#64h ; salin nilai konstanta (hexa) 64h ke
; akumulator
•
Pengalamatan Secara Bit (Bit Addressable)
Pada pengalamatan bit, proses pengalamatan ketika operand menunjuk ke
alamat pada RAM Internal ataupun Register Fungsi Khusus yang
mempunyai kemampuan pengalamatan secara bit (bit addressable).
Berdasarkan penulisannya, pengalamatan bit terdiri atas beberapa macam
sebagai berikut :
1. Langsung menunjuk ke alamat bit
Setb
0B0h ; beri logika 1 pada bit di alamat B0h
2. Menggunakan operator titik “.”
Setb
P3.0
; beri logika 1 pada bit ke 0 dari port 3
3. Menggunakan lambang assembler secara standar
Setb
•
RXD ; beri logika 1 pada pin RXD
Pengalamatan Register (Register Addressing)
Pada pengalamatan instruksi register, dalam instruksi ini, alamat sumber
sudah tercakup dalam instruksinya itu sendiri sehingga sangat menghemat
memori. Bank Register yang masing-masing berisi R0 hingga R7 atau 8
register dapat diakses melalui instruksi yang opcode-nya mengandung 3bit spesifikasi register (000 untuk R0, 001 untuk R1, hingga 111 untuk
R7). Pengaksesan register dengan cara demikian bisa menghemat
penggunaan kode instruksi, karena tidak memerlukan sebuah byte untuk
alamat. Saat instruksi tersebut dikerjakan, satu dari 8 register pada bank
yang terpilih yang diakses.
Beberapa Instruksi hanya dikhususkan untuk suatu register tertentu.
Misalnya, suatu instruksi yang hanya bekerja pada akumulator saja,
sehingga tidak memerlukan alamat byte untuk menunjukan ke akumulator.
Dalam hal ini, opcode-nya sendiri telah mengandung penunjuk ke register
yang benar. Instruksi yang mengacu akumulator sebagai A akan dikodekan
dengan opcode spesifik-akumulator.
52
Download