BAB 2
LANDASAN TEORI
2.1.
Perangkat Keras
Perangkat keras merupakan bentuk fisik dari frequency counter yang terdiri dari modul power supply, webcam, Led Infra Merah, photodiode,
sistem minimum
AT89S52, LCD display.
2.1.1.
Web Cam
WebCam adalah kamera video sederhana berukuran relative kecil. Sering digunakan untuk konfrensi video jarak jauh atau sebagai kamera pemantau. WebCam pada umumnya tidak membutuhkan kaset atau tempat penyimpanan data, data dari hasil perekaman yang dapat langsung ditransfer ke computer.
Defenisi yang lain tentang WebCam adalah sebuah feriferal berupa kamera sebagai pengambil citra/gambar dan mikropon (optional) serbagai pengambil suara atau audio yang dikendalikan oleh sebuah computer atau oleh jaringan computer. Gmabar yang diambil oleh webcam ditampilkan ke layar monitor, karena dikendalikan oleh computer maka ada interface atau port yang digunakan untu8k menghubungkan webcam de3ngan computer atau jaringan. Ada beberapa orang mengartikan webcam sebagai Web pages + Cam era, karena dengan menggunakan Webcam untuk mengambil gambar video secara actual bias langsung di upload bila komputr yang mengendalikan terkoneksi internet. Istilah webcam merajuk pada teknologi secara umumnya, sehingga kata web terkadang diganti dengan kata lain yang mendiskripsikan pemandangan yang ditampilkan dikamera, misalnya SteetCam yang memperlihatkan pemandangan jalan.
Universitas Sumatera Utara
Ada juga Metrocam yang memperlihatkan panorama kota dan pedesaan, TraffiCam yang digunakan untuk memonitor keadaan jalan raya, cuaca dengan weathercam, bahkan keadaan gunung merapi dengan VolcanoCam.
Sebuah web camera yang sederhana terdiri dari sebuah lensa standar, dipasang disebuah papan sirkuit untuk menggambar sinyal gambar; casing (cover), termasuk kesing depan dan casing samping untuk menutupi lensa standard an memiliki sebuah lubang lensa di casing depan yang berguna untuk memasukkan gambar, kabel support, yang dibuat dari bahan yang fleksibel, salah satu ujungnya dihubungkan dengan papan sirkuitdan ujung satu lagu dengan conector, kabel ini dikontrol untuk menyesuaikan ketinggian, arah dan sudut pandang WebCamera.
Penggunaan video camera mencakup penggunaan video confrensing, internet dating, video massaging, home monitoring, images sharing, video interview, video phone-call, dan pemantauan kepada hal yang mempunyai kerumitan yang cukup tinggi untuk diamati oleh manusia.
2.1.2.
Sistem Minimum Mikrokontroler AT89S52
Perkembangan teknologi telah maju dengan pesat dalam perkembangan dunia elektronika, khususnya dunia mikroelektronika. Penemuan silikon menyebabkan bidang ini mampu memberikan sumbangan yang amat berharga bagi perkembangan teknologi modern. Atmel sebagai salah satu vendor yang mengembangkan dan memasarkan produk mikroelektronika telah menjadi suatu teknologi standar bagi para desainer sistem elektronika masa kini. Tidak seperti sistem komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM dan ROM-nya. Pada sistem komputer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna
Universitas Sumatera Utara
disimpan dalam ruang RAM yang relatif besar dan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program kontrol disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan.
Gambar 2.1. Blok Diagram Fungsional AT89S52 2.1.2.1. Konstruksi AT89S52
Mikrokontroler AT89S52 hanya memerlukan tambahan 3 buah kapasitor, 1 resistor dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor 8k2 Ohm dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini AT89S52 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan
Universitas Sumatera Utara
frekuensi maksimum 11,0592 MHz dan kapasitor 30 piko-Farad dipakai untuk melengkapi rangkaian osilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler.
Memori merupakan bagian yang sangat penting pada mikrokontroler. Mikrokontroler memiliki dua macam memori yang sifatnya berbeda. ROM (Read Only Memory) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dangan keperluannya, dalam susunan MCS-51 memori penyimpanan program ini dinamakan sebagai memori program.
RAM (Random Access Memory) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.
Ada berbagai jenis ROM, untuk mikrokontroler dengan program yang sudah baku dan diproduksi secara massal, program diisikan ke dalam ROM pada saat IC mikrokontroler dicetak di pabrik IC.
Untuk keperluan tertentu mikrokontroler
mengunakan ROM yang dapat diisi ulang atau Programable-Eraseable ROM yang disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra Violet Eraseable Programable ROM) yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih murah.
Jenis memori yang dipakai untuk memori program AT89S52 adalah Flash PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89S52 Flash PEROM Programmer.
Universitas Sumatera Utara
Memori data yang disediakan dalam chip AT89S52 sebesar 128 byte, meskipun hanya kecil saja tapi untuk banyak keperluan, memori berkapasitas 128 byte sudah cukup. Sarana Input/Output (I/O) yang disediakan cukup banyak dan bervariasi. AT89S52 mempunyai 32 jalur Input/Output. Jalur Input/Output paralel dikenal sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).
AT89S52 dilengkapi UART (Universal Asyncronous Receiver / Transmitter) yang biasa dipakai untuk komunikasi data secara serial. Jalur untuk komunikasi data serial (RXD dan TXD) diletakkan berhimpitan dengan P3.0 dan P3.1 di kaki nomor 10 dan 11, sehingga kalau sarana input/ouput yang bekerja menurut fungsi waktu, clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1. T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/ouput parelel kalau T0 dan T1 terpakai.
AT89S52 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output paralel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi. Port 1 dan Port 2, UART, Timer 0, Timer 1 dan sarana lainnya merupakan register yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Function Register (SFR). Berikut ini merupakan spesifikasi dari IC AT89S52 : a.
Kompatibel dengan produk MCS-51.
b.
8 Kbyte In-System Reprogammable Flash Memory.
Universitas Sumatera Utara
c.
Daya tahan 1000 kali baca/tulis.
d.
Fully Static Operation : 0 Hz sampai 24 MHz.
e.
Tiga level kunci memori program.
f.
128 x 8 bit RAM internal.
g.
32 jalur I/O.
h.
Tiga 16 bit Timer/Counter.
i.
Enam sumber interupt.
j.
Jalur serial dengan UART.
2.1.2.2. Gambar IC Mikrokontroler AT89S52
Gambar 2.2 Konfigurasi Pin Mikrokontroler AT89S52 Deskripsi pin-pin pada mikrokontroler AT89S52: a. VCC (Pin 40) Suplai tegangan 5 Volt. b. GND (Pin 20) Ground. c. Port 0 (Pin 39 – Pin 32)
Universitas Sumatera Utara
Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex address/data ataupun penerima kode byte pada saat flash programming Pada fungsinya sebagai I/O biasa port ini dapat memberikan output sink ke delapan buah TTL input atau dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut. Pada fungsinya sebagai low order multiplex address/data, port ini akan mempunyai internal pull up. Pada saat flash programming diperlukan eksternal pull up, terutama pada saat verifikasi program. d. Port 1 (Pin 1 – Pin 8) Port 1 berfungsi sebagai I/O biasa, pada kaki ke 6, ke 7 dan ke 8 terdapat Mosi, Miso dan Sck sebagai masukan dari ISP Programmer yang terhubung ke komputer. Tanpa adanya port ini maka mikrokontroler tidak dapat diprogram oleh ISP Programmer. e. Port 2 (Pin 21 – pin 28) Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengakses memori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan mengeluarkan isi dari P2 special function register. Port ini mempunyai internal pull up dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output, port ini dapat memberikan output sink ke empat buah input TTL. f. Port 3 (Pin 10 – pin 17) Port 3 merupakan 8 bit port I/O dua arah dengan internal pull up. Port 3 juga mempunyai fungsi pin masing-masing, yaitu sebagai berikut : Tabel 2.1 Konfigurasi Port 3 Mikrokontroler AT89S52 Nama Pin P3.0 (Pin 10) P3.1 (Pin 11)
Fungsi RXD (Port Input Serial) TXD (Port Output Serial)
Universitas Sumatera Utara
P3.2 (Pin 12) P3.3 (Pin 13) P3.4 (Pin 14) P3.5 (Pin 15) P3.6 (Pin 16) P3.7 (Pin 17)
INTO (Interrupt 0 Eksternal) INT1 (Interrupt 1 Eksternal) T0 (Input Eksternal Timer 0) T1 (Input Eksternal Timer 1) WR (untuk menulis eksternal data memori) RD (untuk membaca eksternal data memori)
g. RST (pin 9) Reset akan aktif dengan memberikan input high selama 2 cycle. h. ALE/PROG (pin 30) Address latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input program (PROG) selama memprogram Flash. i.
PSEN (pin 29) Program store enable digunakan untuk mengakses memori program eksternal.
j.
EA (pin 31) Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan menjalankan program yang ada pada memori eksternal setelah sistem di-reset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan program yang ada pada memori internal. Pada saat flash programming, pin ini akan mendapat tegangan 12 Volt.
k.
XTAL1 (pin 19) Input untuk clock internal.
l.
XTAL2 (pin 18) Output dari osilator (pembangkit gelombang/pulsa).
2.1.3.
Modul LCD (Liquid Crystal Display) M1632
Universitas Sumatera Utara
M1632 merupakan modul LCD matrix 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). HD44780 ini sudah tersedia dalam Modul M1632 yang dikeluarkan oleh Hitachi, Hyundai dan modul-modul M1632 lainnya.
HD44780 sebetulnya merupakan mikrokontroler yang dirancang khusus untuk mengendalikan LCD dan mempunyai kemampuan untuk mengatur proses scanning pada layar LCD yang terbentuk oleh 16 COM dan 40 SEG sehingga mikrokontroler /perangkat yang mengakses modul LCD ini tidak perlu lagi 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.
2.1.3.1. Kaki-kaki Modul M1632
Untuk keperluan antarmuka suatu komponen elektronik dengan mikrokontroler, perlu diketahui fungsi dari setiap kaki yang ada pada komponen tersebut.
a. Kaki 1 (GND) Kaki ini berhubungan dengan tegangan +5 Volt yang merupakan tegangan untuk sumber daya dari HD44780 (khusus untuk modul M1632 keluaran hitachi, kaki ini adalah VCC) b. Kaki 2 (VCC)
Universitas Sumatera Utara
Kaki ini berhubungan dengan tegangan 0 volt (ground) dan modul LCD (khusus untuk modul M1632 keluaran hitachi, kaki ini adalah GND) c. Kaki 3 (VEE/VLCD) Tegangan pengatur kontras LCD, kaki ini terhubung pada V5. Kontras mencapai nilai maksimum pada saat kondisi kaki ini pada tegangan 0 volt. d. Kaki 4 (RS) Register Select, kaki pemilih register yang akan diakses. Untuk akses ke register data, logika dari kaki ini adalah 1 dan untuk akses ke register perintah, logika dari kaki ini adalah 0. e. Kaki 5 (R/W) Logika 1 pada kaki ini menunjukkan bahwa modul LCD sedang pada mode pembacaan dan logika 0 menunjukkan bahwa modul LCD sedang pada mode penulisan. Untuk aplikasi yang tidak memerlukan pembacaan data pada modul LCD, kaki ini dapat dihubungkan langsung ke ground. f. Kaki 6 (E) Enable Clock LCD, kaki ini mengaktifkan clock LCD. Logika 1 pada kaki ini diberikan pada saat penulisan atau pembacaan data.
g. Kaki 7-14 (D0-D7) Data bus, kedelapan kaki modul LCD ini adalah bagian dimana aliran data sebanyak 4 bit atau 8 bit mengalir saat proses penulisan maupun pembacaan data. h. Kaki 15 (Anoda)
Universitas Sumatera Utara
Berfungsi untuk tegangan positif dari backlight modul LCD sekitar 4,5 volt (hanya terdapat untuk M1632 yang memiliki backlight). i.
Kaki 16 (Katoda) Tegangna negatif backlight modul LCD sebesar 0 volt (hanya untuk M1632 yang memiliki backlight).
2.1.3.2. Akses ke Register
Seperti telah dijelaskan sebelumnya, HD44780 yang menjadi pengendali modul M1632 mempunyai dua buah register, yaitu register data dan register perintah. Berikut ini akan dijelaskan bagaimana proses terjadinya penulisan maupun pembacaan data dari kedua register ini.
a. Penulisan Data ke Register Perintah Penulisan data ke register perintah digunakan untuk memberikan perintahperintah pada Modul M1632 sesuai dengan data-data yang dikirimkan ke register tersebut. Gambar 2.3 menunjukkan proses penulisan data ke register perintah menggunakan mode 4 bit interface. Kondisi RS berlogika 0 menunjukkan akses data ke register perintah. RW berlogika 0 menunjukkan proses penulisan data akan dilakukan. Nibble tinggi (bit7 sampai bit 4) terlebih dahulu dikirimkan dengan diawali pulsa logika 1 pada E Clock, kemudian nibble rendah (bit 3 sampai bit 0) dikirimkan dengan diawalai pulsa logika 1 pada E Clock lagi.
Universitas Sumatera Utara
Gambar 2.3 Timing penulisan data ke register perintah mode 4 bit interface
Built In Routine Kirim_Perintah EQU 433H ............................ Lcall Kirim_Perintah
b. Pembacaan Data dari Register Perintah Proses pembacaan data dari register perintah ini digunakan untuk membaca status sibuk M1632 dan addres counter saja. RS diatur pada logika 0 untuk akses ke register perintah dan R/W diatur pada logika 1 yang menunjukkan proses pembacaan data. Empat bit nibble tinggi dibaca dengan diawali pulsa logika 1 pada E Clock dan kemudian 4 bit nibble rendah dibaca dengan diawali pulsa logika 1 pada E clock.
Universitas Sumatera Utara
Gambar 2.4 Timing diagram pembacaan register perintah mode 4 bit interface c. Penulisan Data ke Register Data Penulisan data ke register data digunakan dalam proses penulisan data karakter yang akan ditampilkan ke LCD (DDRAM) atau proses penulisan data pola karakter ke CGRAM.
Proses diawali dengan adanya logika 1 pada RS yang menunjukkan akses ke register data. Kondisi R/W diatur pada logika 0 yang menunjukkan proses penulisan data. Data 4 bit nibble tinggi (bit 7 hingga bit 4) dikirim dengan diawali dngan pulsa logika 1 pada sinyal E Clock dan kemudian diikuti 4 bit nibble rendah (bit 3 hingga bit 0) yang jugan diawali pulsa logika 1 pada sinyal E Clock.
Universitas Sumatera Utara
Gambar 2.5 Timing diagram penulisan data ke register data mode 4 bit interface d. Pembacaan Data ke Register Data Pembacaan data dari rd dilakukan untuk membaca kembali data yang tampil pada LCD. Proses dilakukan dengan mengatur RS pada logika 1 yang menunjukkan adanya akses ke register data . Kondisi R/W diatur pada logika tinggi yang menunjukkan adanya proses pembacaan data. Data 4 bit nibble (bit 7 hingga bit 4) dibaca dengan diawali adanya pulsa logika 1 pada E Clock dan dilanjutkan dengan data 4 bit nibble rendah (bit 3 hingga bit 0) yang juga diawali dengan pulsa logika 1 pada E Clock.
Gambar 2.6 Timing diagram pembacaan data dari register data mode 4 bit interface
Universitas Sumatera Utara
2.1.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 tersendiri. a. 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. Apabila karakter tersebut ditulis di alamat 40h, karakter tersebut akan tampil pada baris kedua kolom pertama dari LCD. b. CGRAM CGRAM adalah memori untuk menggambarkan pola sebuah karakter dan bentuk karakter dapat diubah-ubah sesuai keinginan. Akan tetapi isi memori akan hilang saat power supply tidak aktif sehingga pola karakter akan hilang. c. CGROM CGROM adalah memori untuk menggambarkan 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 suplly tidak aktif.
2.1.
Perangkat Lunak
Perangkat lunak merupakan program yang meliputi bahasa pemrograman BASCOM8051 untuk pemrograman mikrokontroler AT89S52 dan Eagle untuk perancangan gambar skematik dari rangkaian.
Universitas Sumatera Utara
2.2.1. Bahasa BASIC Menggunakan BASCOM-8051
BASCOM-8051 adalah program BASIC compiler berbasis Windows untuk mikrokontroler keluarga 8051 seperti AT89C51, AT89C2051, dan yang lainnya. BASCOM-8051 merupakan pemrograman dengan bahasa tingkat tinggi BASIC yang dikembangkan dan dikeluarkan oleh MCS Elektronik.
Kita akan membahas penggunaan karakter, tipe data, variable, konstanta, operasi-operasi aritmatika dan logika, array, dan control program.
2.2.1.1. Karakter dalam BASCOM
Dalam program BASCOM, karakter dasarnya terdiri atas karakter alphabet (A-Z dan a-z), karakter numeric (0-9), dan karakter special (lihat tabel 2.1).
Tabel 2.2 Karakter Spesial karakter ‘ * + , . / : “ ; < = > \
Nama Blank Apostrophe Asterisk (symbol perkalian) Plus sign Comma Minus sign Period (decimal point) Slash (division symbol) will be handled as\ Colon Double quotation mark Semicolon Less than Equal sign (assignment symbol or relational operator) Greater than Backspace (integer or word division symbol)
Universitas Sumatera Utara
2.2.1.2. Tipe Data
Setiap variabel dalam BASCOM memiliki tipe data yang menunjukkan daya tampungnya. Hal ini berhubungan dengan penggunaan memori mikrokontroler. Berikut adalah tipe data pada BASCOM berikut keterangannya. Tabel 2.3 Tipe data BASCOM Tipe Data Bit Byte Integer Word Long Single String
Ukuran (byte) 1/8 1 2 2 4 4 hingga 254 byte
Range 0 – 255 -32,768 - +32,767 0 – 65535 -214783648 - +2147483647 -
2.2.1.3. Variabel
Variabel dalam sebuah pemrograman berfungsi sebagai tempat penyimpanan data atau penampungan data sementara, misalnya menampung hasil perhitungan, menampung data hasil pembacaan register, dan lainnya. Variabel merupakan pointer yang menunjukkan pada alamat memori fisik dan mikrokontroler.
Dalam BASCOM, ada beberapa aturan dalam penamaan sebuah variable: a. Nama variabel maksimum terdiri atas 32 karakter. b. Karakter biasa berupa angka atau huruf. c. Nama variabel harus dimulai dengan huruf. d. Variabel tidak boleh menggunakan kata-kata yang digunkan oleh BASCOM sebagai perintah, pernyataan, internal register, dan nama operator (AND, OR, DIM, dan lain-lain).
Universitas Sumatera Utara
Sebelum digunakan, maka variabel harus dideklarasikan terlebih dahulu. Dalam BASCOM, ada beberapa cara untuk mendeklarasikan sebuah variabel. Cara pertama adalah menggunakan pernyataan ‘DIM’ diikuti nama tipe datanya. Contoh pendeklarasian menggunakan DIM sebagai berikut: Dim Dim Dim Dim Dim Dim
nama as byte tombol1 as integer tombol2 as word tombol3 as word tombol4 as word Kas as string*10
2.2.1.4. Alias
Dengan menggunakan alias, variabel yang sama dapat diberikan nama yang lain. Tujuannya adalah mempermudah proses pemrograman. Umumnya, alias digunakan untuk mengganti nama variabel yang telah baku, seperti port mikrokontroler. LEDBAR alias P1 Tombol1 alias P0.1 Tombol2 alias P0.2
Dengan deklarasi seperti diatas, perubahan pada tombol akan mengubah kondisi P0.1. Selain mengganti nama port, kita dapat pula menggunakan alias untuk mengakses bit tertentu dari sebuah variabel yang telah dideklarasikan. Dim LedBar as byte Led1 as LedBar.0 Led2 as LedBar.1 Led3 as LedBar.2
2.2.1.5. Konstanta
Dalam BASCOM, selain variabel kita mengenal pula constant. Konstanta meruupakan variabel pula. Perbedaannya dengan variabel biasa adalah nilai yang dikandung tetap. Dengan konstanta, kode program yang kita buat akan lebih mudah dibaca dan dapat
Universitas Sumatera Utara
mencegah kesalahan penulisan pada program kita. Misalnya, kita akan lebih mudah menulis phi daripada menulis 3,14159867. Sama seperti variabel, agar konstanta bias dikenali oleh program, maka harus dideklarasikan terlebih dahulu. Berikut adalah cara pendeklarasian sebuah konstanta. Dim A As Const 5 Dim B1 As Const &B1001
Cara lain yang paling Mudah: Const Const Const Const
Cbyte = &HF Cint = -1000 Csingle = 1.1 Cstring = “test”
2.2.1.6. Array
Dengan array, kita bisa menggunakan sekumpulan variabel dengan nama dan tipe yang sama. Untuk mengakses variabel tertentu dalam array, kita harus menggunakan indeks. Indeks harus berupa angka dengan tipe data byte, integer, atau word. Artinya, nilai maksimum sebuah indeks sebesar 65535.
Proses pendeklarasian sebuah array hampir sama dengan variabel, namun perbedaannya kita pun mengikutkan jumlah elemennya. Berikut adalah contoh pemakaian array; Dim kelas(10) as byte Dim c as Integer For C = 1 To 10 a(c) = c p1 = a(c) Next
Program diatas membuat sebuah array dengan nama ‘kelas’ yang berisi 10 elemen (1-10) dan kemudian seluruh elemennya diisikan dengan nilai c yang berurutan. Untuk membacanya, kita menggunakan indeks dimana elemen disimpan.
Universitas Sumatera Utara
Pada program diatas, elemen-elemen arraynya dikeluarkan ke Port 1 dari mikrokontroler.
2.2.1.7. Operasi-operasi Dalam BASCOM
Pada bagian ini akan dibahas tentang cara menggabungkan, memodifikasi, membandingkan, atau mendapatkan informasi tentang sebuah pernyataan dengan menggunakan operator-operator yang tersedia di BASCOM dan bagaimana sebuah pernyataan terbentuk dan dihasilkan dari operator-operator berikut: a. Operator Aritmatika Operator digunakan dalam perhitungan. Operator aritmatika meliputi + (tambah), - (kurang), / (bagi), dan * (kali). b. Operator Relasi Operator berfungsi membandingkan nilai sebuah angka. Hasilnya dapat digunakan untuk membuat keputusan sesuai dengan program yang kita buat. Operator relasi meliput i: Tabel 2.4 Tabel Operator Relasi Operator = <> < > <= >=
Relasi Sama dengan Tidak sama dengan Lebih kecil dari Lebih besar dari Lebih kecil atau sama dengan Lebih besar atau sama dengan
Pernyataan X=Y X <> Y X
Y X <= Y X >= Y
c. Operator Logika Operator digunakan untuk menguji sebuah kondisi atau memanipulasi bit dan operasi bolean. Dalam BASCOM, ada empat buah operator logika, yaitu AND, OR, NOT, dan XOR.
Universitas Sumatera Utara
Operator logika bias pula digunakan untuk menguji sebuah byte dengan pola bit tertentu, sebagai cintih: Dim A As Byte A = 63 And 19 PPRINT A A = 10 or 9 PRTINT A Output 16 11
d. Operator Fungsi Operasi fungsi digunakan untuk melengkapi operator yang sederhana.
2.2.1.8. Aplikasi dengan LCD (liquid crystal display)
Salah satu kelebihan yang dimiliki oleh compiler BASCOM adalah program yang menyediakan rutin-rutin khusus untuk menampilkan karakter menggunakan LCD. Bahkan, kita pun dapat membuat karakter special dengan fasilitas LCD designer.
Antar muka antara LCD dengan AT89S52 menggunakan mode antarmuka 4 bit. Selain lebih menghemat I/O, mode demikianpun mempermudah proses pembuatan PCB-nya. Program berikut akan menjalankan beberapa perintah yang berkenaan dengan LCD. $regfile = “8052.dat” $crystal = 12000000 dim x as byte config LCD = 16*2
Cursor off do X = 100 Cls Lcd “namaku Satih” Lowerline Lcd “Nilaiku selalu”; x Wait 1
Universitas Sumatera Utara
Cls Lcd “<<<< Hebat >>>>” For x=1 to 16 Shiftlcd left next For x=1 to 32 Shiftlcd right Waitms 200 next x = 100 cls lcd hex x loop
Penjelasan programnya sebagai berikut: a. Dim x As Byte Pernyataan di atas merupakan pendeklarasian variable x dengan ukuran byte. b. Config LCD = 16*2 Oleh karena itu, konfigurasi yang dapat kita lakukan adalah mendeklarasikannya dilisting program yang kita buat seperti dikontrolkan di atas. c. CLS Perintah CLS berfungsi membersihkan atau mengosongkan tampilan LCD. d. Lowerline Perintah berfungsi memindahkan kursor ke baris bawah. Karena LCD yang digunakan adalah LCD 2x16, maka LCD memiliki 2 baris dan kolom. e. X = 100 Lcd “namaku Satih” Lowerline Lcd “Nilaiku selalu”; x Ketika kita menjalankan perintah di atas, maka keluarannya adalah: Namaku Satih Nilaiku selalu 100
Universitas Sumatera Utara
Contoh di atas menunjukkan bahwa kita dapat menampilkan isi sebuah variabel menggunakan LCD hanya dengan menulis: f. ShiftLCD left/right Perintah digunakan untuk menggeser tampilan LCD ke kiri atau ke kanan sebanyak 1 langkah. Perintah berguna untuk menampilkan kalimat yang panjang dan mebuat animasi di LCD. g. Lcdhex x Perintah berfungsi mengirim isi sebuah variabel ke LCD dalam format hexadecimal. Jika kita menjalankan program, maka hasilnya 64.
2.2.2. Software Downloader (ISP – Flash Programmer 3.0a) Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroler digunakan software ISP- Flash Programmer 3.0a yang dapat di download dari internet. Tampilannya seperti gambar 2.7 di bawah ini :
Gambar 2.7 ISP- Flash Programmer 3.a
Universitas Sumatera Utara
Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file heksadesimal dari hasil kompilasi 8051IDE, kemudian klik Write untuk mengisikan hasil kompilasi tersebut ke mikrokontroler. Untuk mengecek apakah mikrokontroler bisa ditulisi atau tidak dapat diketahui dengan dua cara, yaitu dengan cara meng-klik Signature dan Read. Untuk mengamankan agar program pada mikrokontroler tidak dapat dibaca oleh orang yang tidak diinginkan, dapat digunakan Lock Bit-1, Lock Bit-2 dan Lock Bit-3 yang masing-masingnya memiliki tingkat keamanan yang berbeda. Makin tinggi tingkatan Lock Bitnya maka makin sulit membongkar programnya. Tetapi apabila telah di lock (dikunci) maka mikrokontroler tidak dapat lagi ditulisi.
Universitas Sumatera Utara