perakitannya pada suatu metode lain yang mempunyai sistem kerja yang sama. BAB II DASAR TEORI 2.1 Bahasa Pemograman C Bahasa C dikembangkan pada Lab Bell pada tahun 1978, oleh Dennis Ritchi dan Brian W. Kernighan. Pada tahun 1983 dibuat standar C yaitu stnadar ANSI ( American National Standards Institute ), yang digunakan sebagai referensi dari berbagai versi C yang beredar dewasa ini termasuk Turbo C. Dalam beberapa literature, bahasa C digolongkan bahasa level menenganh karena bahasa C mengkombinasikan elemen bahasa tinggi dan elemen bahasa rendah. Kemudahan dalam level rendah merupakan tujuan diwujudkanya bahasa C. pada tahun 1985 lahirlah pengembangan ANSI C yang dikenal dengan C++ (diciptakan oleh Bjarne Struostrup dari AT % TLab). Bahasa C++ adalah pengembangan dari bahasa C. bahasa C++ mendukung konsep pemrograman berorientasu objek dan pemrograman berbasis windows. Sampai sekarang bahasa C++ terus brkembang dan hasil perkembangannya muncul bahasa baru pada tahun 1995 (merupakan keluarga C dan C++ yang dinamakan java). Istilah prosedur dan fungsi dianggap sama dan disebut dengan fungsi saja. Hal ini karena di C++ sebuah prosedur pada dasanya adalah sebuah Universitas Sumatera Utara fungsi yang tidak memiliki tipe data kembalian (void). Hingga kini bahasa ni masih popular dan penggunaannya tersebar di berbagai platform dari windows samapi linux dan dari PC hingga main frame. Hingga kini bahasa ini masih popular dan penggunaannya tersebar di berbagai platform dari windows samapi linux dan dari PC hingga main frame. Mikrokontroler adalah single chip computer yang memiliki kemampuan untuk diprogram dan digunakan untuk tugas-tugas yang berorientasi kontrol. Mikrokontroler datang dengan dua alasan utama, yang pertama adalah kebutuhan pasar (market need) dan yang kedua adalah perkembangan teknologi baru. Yang dimaksud dengan kebutuhan pasar adalah kebutuhan yang luas dari produkproduk elektronik akan perangkat pintar sebagai pengontrol dan pemroses data. Sedangkan yang dimaksud dengan perkembangan teknologi baru adalah perkembangan teknologi semikonduktor yang memungkinkan pembuatan chip dengan kemampuan komputasi yang sangat cepat, bentuk yang semakin mungil, dan harga yang semakin murah. /* header adalah kumpulan library atau rutin-rutin yang sudah tersedia di program bawaan atau bisa cari di internet, jadi kita tidak perlu membuat sendiri, cukup panggil nama subrutinnya saja, misalnya ms_delay, penundaan, scan keypad, lcd. /*Declare your global variables here – anda bisa mendefisikan variabel global disini, karena setiap variabel harus didefinisikan lebih dahulu untuk reservasi dimemory.Jika dalam asembler berhubungan langsung dengan nama register atau memory, jika dalam C, variabelnya berhubungan dengan memory, contoh yang Universitas Sumatera Utara sering digunakan adalah; unsigned char s2=0xFE , contoh variabel s2 untuk bytenilainya 0 sd 255, atau 0×00 sd 0xFF , 0x adalah prefix untuk hexadesimal, saat awal diisi 0xFE, contoh lain; unsigned int s3 integer tidak bertanda dari 0 sd 65535 atau 0×0000 sd 0xFFFF. bit ts=1; bit tb=0 , ini adalah variabel yangmengandle type boolean, 1 atau 0. type variabel lain bisa bilangan bertanda, floating number, double precission dll */. 2.1.1 Struktur Bahasa C a. Program bahasa C tersusun atas sejumlah blok fungsi. b. Setiap fungsi terdiri dari satu atau beberapa pernyataan untuk melakukan suatu proses tertentu. c. Tidak ada perbedaan antara prosedur dan fungsi. d. Sstiap program bahasa C mempunyai suatu fungsi dengan nama “main” (Program Utama). e. Fungsi bisa diletakkan diatas atau dibawah fungsin “main”. f. Setiap statemen diakhiri dengan semicolon (titik koma). 2.1.2 Pengenal Pengenal (identifier) merupakan sebuah nama yang didefenisikan oleh pemrograman untuk menunjukkan indetitas dari sebuah konstanta, variable, fungsi, label atau tipe data khusus. Pemberian nama sebuah pengenal dapat ditentukan bebas sesuai keinginan pemrogram tetapi harus memenuhi atura berikut : Karakter pertama tidak boleh menggunakan angka Karakter kedua dapat berupa huruf, angka, atau garis bawah. Universitas Sumatera Utara Tidak boleh menggunakan spasi. Bersifat Case Sensitive, yaitu huru capital dan huruf kecil dianggap berbeda. Tidak boleh mengunakan kata – kata yang merupakan sitaks maupun operator dalam pemrograman C, misalnya : Void, short, const, if, static, bit, long, case, do, switch dll. 2.1.3 Tipe Data Tipe data merupakan suatu hal yang penting untuk kita ketahui pada saat belajar bahasa pemrograman.Kita harus dapat menentukan tipe data yang tepat untuk menampung sebuah data, baik itu data berupa bilangan numerik ataupun karakter.Hal ini bertujuan agar program yang kita buat tidak membutuhkan pemesanan kapling memori yang berlebihan. Seorang programmer yang handal harus dapat memilih dan menentukan tipe data apa yang seharusnya digunakan dalampembuatan sebuah program. Secara garis besar tipe data pada bahasa C dibagi menjadi beberapa bagian antara lain sebagai Berikut Macam-Macam Tipe Data Pada Bahasa C : 1. Tipe Data Karakter Sebuah karakter, baik itu berupa huruf atau angka dapat disimpan pada sebuah variabel yang memiliki tipe data char dan unsigned char. Besarnya data yang dapat disimpan pada variabel yang bertipe data char adalah -127 - 127. Sedangkan untuk tipe data unsigned char adalah dari 0 - 255. Universitas Sumatera Utara Tabel 2.1 Tipe Data Tipe Data Ukuran Jangkauan Nilai Bit 1 byte 0 atau 1 Char 1 byte -128 s/d 127 Unsigned Char 1 byte 0 s/d 255 Signed Char 1 byte -128 s/d 127 Int 2 byte -32.768 s/d 32.767 Short Int 2 byte -32.768 s/d 32.767 Unsigned Int 2 byte 0 s/d 65.535 Signed Int 2 byte -32.768 s/d 32.767 Long Int 4 byte -2.147.483.648 s/d 2.147.483.647 Unsigned Long Int 4 byte 0 s/d 4.294.967.295 Signed Long Int 4 byte -2.147.483.648 s/d 2.147.483.647 Float 4 byte 1.2*10-38 s/d 3.4*10+38 Double 4 byte 1.2*10-38 s/d 3.4*10+38 2.1.4Konstanta Dan Variabel Konstanta dan variable merupakan sebuah tempat untuk menyimpan data yang berada di dalam memori.Konstanta berisi data yang nilainya tetap dan tidak Universitas Sumatera Utara dapat diubah selama program dijalankan, sedangkan variable berisi data yang bisa berubah nilainya pada saat program dijalankan. 2.1.5 Komentar Komentar adalah tulisan – tulisan yang tidak dianggap sebagai bagian dari tibuh program. Komentar digunakan untuk memberikan penjelasan, informasi ataupun keterangan – keterangan yang dapat membantu mempermudah dalam memahami kode program baik bagi si pembuat program maupun bagi orang lain yang membacanya. Komentar yang hanya satu baris ditulis dengan diawali dengan ‘/ /’ sedangkan komentar yang lebih dari satu baris diawali dengan ‘/*’ dan diakhiri dengan ‘*/’. Selain digunakan untuk memberikan keterangan program, komentar juga dapat dipakai untuk membantu dalam pengujian program yaitu dengan menon-aktifkan dan mengaktifkan kemnbali bagian program tertentu selama proses pengujian. Dengan cara seperti ini tentu kita akan dapat lebih menghemat waktu bila dibandingkan dengan menulis dan menghapus bagian program tertentu berulang –ulang. 2.1.6 Operator Aritmatika Operator aritmatika adalah beberapa operator yang digunakan untuk melakukan perhitungan aritmatika. Tabel 2.2 Operator Aritmatika Operator Keterangan + Operator untuk operasi penjumlahan Universitas Sumatera Utara - Operator untuk operasi pengurangan * Operator untuk operasi perkalian / Operator untuk operasi pembagian % Operator untuk perasi sisa pembagian Operator *, / dan % memiliki prioritas yang lebih tinggi bila dibandingkan dengan operator + dan –. 2.1.7 Operator Pembanding Operator pembanding adalah operator yang digunakan untuk membandingkan 2 buah data.Hasil operator pembanding bukan berupa nilai data tetapi hanya bernilai benar (‘1’) atau salah (‘0’) saja. Berikut adalah tabel operator pembanding : Tabel 2.3 Operator Pembanding Operator Contoh Arti == x == y Bernilai benar jika kedua data sama dan bernilai salah jika sebaliknya != x != y Bernilai benar jika kedua data tidak sama dan bernilai salah jika sebaliknya > x>y Bernilai benar jika data x lebih besar dari y dan bernilai salah jika sebaliknya < x<y Bernilai benar jika data x lebih kecil dari y dan bernilai salah jika sebaliknya >= x >= y Bernilai benar jika data x ,ebih besar atau sama denga y dan bernilai salah jika Universitas Sumatera Utara sebaliknya <= x <= y Bernilai benar jika data x lebih kecil atau sama dengan y dan bernilai salah jika sebaliknya 2.1.7Operator Logika Operator logika digunakan untuk membentuk suatu logika atas dua buah kondisi atau lebih. Berikut adalah tabel operator logika : Tabel 2.4 Operator Logika Operator Keterangan && Operator untuk logika AND ││ Operator untuk logika OR ! Operator untuk NOT 2.1.8Fungsi Pustaka Bahasa C memiliki sejumlah fungsi pustaka yang berada pada file-file tertentu dan sengaja disediakan untuk menangani berbagai hal dengan cara memanggil fungsi-fungsi yang telah dideklarasikan di dalam file tersebut. Dalam banyak hal, pustaka-pustaka yang tersedia tidak berbentuk kode sumber melainkan dalam bentuk yang telah dikompilasi. Pada saat proses linking kodekode dari fungsi ini akan dikaitkan dengan kode-kode yang ditulis oleh pemrograman. Beberapa fungsi pustaka yang telah disediakan oleh CodeVisionAVR antara laian adalah : Universitas Sumatera Utara • Fungsi tipe karakter (ctype.h) • Fungsi standar I/O (stdio.h) • Fungsi matematika (math.h) • Fungsi string (string.h) • Fungsi konversi BCD (bcd.h) • Fungsi konversi akses memori (mem.h) • Fungsi tunda (delay.h) • Fungsi LCD (lcd.h) 2.2 Mikrokontroller ATmega 8535 2.2.1 Pengertian Mikrokontroller Mikrokontroler adalah sebuah system microprocessor dimana didalamnya sudah terdapat CPU, ROM, RAM, I/O, Clock dan peralatan internal lainnya yang sudah saling terhubung dan terorganisasi (teralamati) dengan baik oleh pabrik pembuatnya dan dikemas dalam satu chip yang siap pakai. Sehingga kita tinggal memprogram isi ROM sesuai aturan penggunaan oleh pabrik yang membuatnya.Teknologi yang digunakan pada mikrokontroler AVR berbeda dengan mikrokontroler seri MCS-51.AVR berteknologi RISC (Reduced Instruction Set Computer), sedangkan seri MCS-51 berteknologi CISC (Complex Instruction Set Computer). Mikrokontroler AVR dapat dikelompokkan menjadi empat kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga ATMega, dan keluarga AT89RFxx.Pada dasarnya yang membedakan masing-masing kelas adalah Universitas Sumatera Utara memori, kelengkapan periperal dan fungsi-fungsi tambahan yang dimiliki. Berikut ini penjelasan lebih lengkap mengenai Mikrokontroler ATMega8535: Mikrokontroller ATMega8535 adalah mikrokontroler CMOS 8 bit daya rendah berbasis arsitektur RISC. Instruksi dikerjakan pada satu siklus clock, ATMega8535 mempunyai throughput mendekati 1 MIPS per MHz, hal ini membuat ATMega8535 dapat bekerja dengan kecepatan tinggi walaupun dengan penggunaan daya rendah.Ilustrasi yang mungkin bisa memberikan gambaran yang jelas dalam penggunaan mikrokontroler adalah aplikasi mesin tiket dalam arena permainan yang saat ini terkenal di Indonesia. Jika kita sudah selesai bermain, maka akan diberikan suatu nilai, nilai inilah yang menentukan berapa jumlah tiket yang bisa diperoleh dan jika dikumpulkan dapat ditukar dengan berbagai macam hadiah. Sistem tiket ini ditangani dengan mikrokontroler, karena tidak mungkin menggunakan computer PC yang harus dipasang disamping (atau di belakang) mesin permainan yang bersangkutan.Selain system tiket, kita juga dapat menjumpai aplikasi mikrokontroler dalam bidang pengukuran jarak jauh atau yang dikenal dengan system telemetri. Misalnya pengukuran disuatu tempat yang membahayakan manusia, maka akan lebih nyaman jika dipasang suatu system pengukuran yang bisa mengirimkan data lewat pemancar dan diterima oleh stasiun pengamatan dari jarak yang cukup aman dari sumbernya. Sistem pengukuran jarak jauh ini jelas membutuhkan suatu system akusisi data sekaligus system pengiriman data secara serial (melalui pemancar), yang semuanya itu bisa diperoleh dari mikrokontroler yang digunakan.Tidak seperti sistem komputer, yang mampu menangani berbagai macam program aplikasi Universitas Sumatera Utara (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 system computer perbandingan RAM dan ROM-nya besar, artinya programprogram pengguna disimpan dalam ruang RAM yang relative besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang kecil.Sedangkan pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program control disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar.Mikrokontroler ATmega8535 memiliki beberapa fitur atau spesifikasi yang menjadikannya sebuah solusi pengendali yang efektif untuk berbagai keperluan. Fitur-fitur tersebut antara lain: 1. Saluran I/O sebanyak 32 buah, yang terdiri atas Port A, B, C dan D 2. ADC (Analog to Digital Converter) 3. Tiga buah Timer/Counter dengan kemampuan perbandingan 4. CPU yang terdiri atas 32 register 5. Watchdog Timer dengan osilatorinternal 6. SRAM sebesar 512 byte 7. Memori Flash sebesar 8kb dengan kemampuan read while write 8. Unit Interupsi Internal dan External 9. Port antarmuka SPI untuk men-download program ke flash 10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi 11. Antarmuka komparator analog 12. Port USART untuk komunikasi serial. Universitas Sumatera Utara 2.2.2 Chip Mikrokontroller ATmega 8535 Mikrokontroler sebagai sebuah “one chip solution” pada dasarnya adalah rangkaian terintregrasi (Integrated Circuit-IC) yang telah mengandung secara lengkap berbagai komponen pembentuk sebuah komputer. Berbeda dengan penggunaan mikroprosesor yang masih memerlukan komponen luar tambahan seperti RAM, ROM, Timer, dan sebagainya untuk sistem mikrokontroler, tambahan komponen diatas secara praktis hampir tidak dibutuhkan lagi. Hal ini disebabkan semua komponen penting tersebut telah ditanam bersama dengan sistem prosesor ke dalam IC tunggal mikrokontroler bersangkutan. Dengan alasan itu sistem mikrokontroler dikenal juga dengan istilah populer the real Computer On a Chip (komputer utuh dalam keping tunggal), sedangkan sistem mikroprosesor dikenal dengan istilah yang lebih terbatas yaitu Computer On a Chip (computer dalam keeping tunggal). Mikrokontroler AVR memiliki arsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock, berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock.Tentu saja itu terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur yang berbeda.AVR berteknologi RISC (Reduced Instruction Set Computing), sedangkan seri MCS51 berteknologi CISC (Complex Instruction Set Computing). Secara umum, AVR dapat dikelompokkan menjadi empat kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga ATMega dan AT86RFxx.Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral dan Universitas Sumatera Utara fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama. Mikrokontroler ATMega8535 merupakan salah satu keluarga dari MCS51keluaran Atmel. Jenis Mikrokontroler ini pada prinsipnya dapat digunakan untukmengolah data per bit ataupun 8 bit secara bersamaan. Pada prinsipnya program pada Mikrokontroler dijalankan bertahap, jadi pada program itu sendiri terdapat beberapa set instruksi dan tiap instriksi itu dijalankan secara bertahap atau berurutan. Beberapa fasilitas yang dimiliki oleh Mikrokontroler ATMega8535 adalah sebagai berikut : a. Sebuah Central Processing Unit 8 bit. b. Osilatc : Internal dan rangkaian pewaktu. c. RAM internal 128 byte. d. Flash Memory 2 Kbyte. e. Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi internal). f. Empat buah programmable port I/O yang masing – masing terdiri dari delapan buah jalur I/O. g. Sebuah port serial dengan control serial full duplex UART. h. Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika. Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 1 MH. Gambar 2.1. Kemasan Mikrokontroler ATmega 8535 Universitas Sumatera Utara Gambar 2.2. Blok Diagram Fungsional ATmega8535 Universitas Sumatera Utara 2.2.3Konfigurasi Pin ATmega8535 Mikrokontroler AVR ATMega memiliki 40 pin dengan 32 pin diantaranya digunakan sebagai port paralel. Satu portparalel terdiri dari 8 pin, sehingga jumlah port pada mikrokontroler adalah 4 port, yaitu port A, port B, port C dan port D. Sebagai contoh adalah port A memiliki pin antara port A.0 sampai dengan port A.7, demikian selanjutnya untuk port B, port C, port D. Gambar 2.3. Konfigurasi IC Mikrokontroller ATmega 8535 Penjelasan mengenai pin yang terdapat pada mikrokontroler ATMega8535: Tabel 2.5 Deskripsi Pin Mikrokontroler ATmega 8535 Nama Vcc Deskripsi Tegangan catu digital Universitas Sumatera Utara Gnd Catu daya negatip (Ground) Port A (PA0-PA7) Port A berfungsi sebagai port Input/Output. Port A juga berfungsi sebagai ADC, jika diperlukan. Pin pada Port dapat diatur untuk memberikan internal pull-up resistors pada tiap bit. Penyangga data (buffer) pada keluaran Port A mempunyai karakteristik gerak simetris dengan kapabilitas high sink maupun source. Ketika pin PA0 – PA7 digunakan eksternaldikonfigurasi sebagai input pulled-low, dan pin-pin secara tersebut menghasilkan arus apabila internal pull-up resistors diaktifkan. Pin pada Port A berada dalam kondisi tri-stated ketika kondisi reset diaktifkan, meskipun clock tidak bekerja. Port B (PB0-PB7) Port B adalah port Input/Output dwi-arah8-bit dengan internal pull-up resistors pada tiap bit. Penyangga data pada output Port B mempunyai karakteristik gerak simetris dengan kapabilitas high sink maupun source. Sebagai input, Port B yang secara eksternal dikonfigurasi pulledlow akan menghasilkan arus jika pull-up resistors diaktifkan. Pin pada Port B berada dalam kondisi tri-stated ketika kondisi reset diaktifkan, meskipun clock tidak bekerja. Port B juga memiliki fungsi lain yaitu TO, XCK, T1, AIN0, INT2, AIN1, SS, MOSI, MISO dan SCK. Port C (PC0-PC7) Port C adalah sebuah port Input/Output dwi-arah8-bit Universitas Sumatera Utara dengan internal pull-up resistors pada tiap bit. Penyanga data pada output Port C mempunyai karakteristik gerak simetris dengan kapabilitas high sink maupun source. Sebagai input, Port C yang secara eksternal dikonfigurasi pulled-low akan menghasilkan arus jika pull-up resistors diaktifkan. Pin pada Port C berada dalam kondisi tri-stated ketika kondisi reset diaktifkan, meskipun clock tidak bekerja. Port C juga memiliki fungsi lain seperti TOSC2 dan TOSC1. Port D (PD0-PD7) Port D adalah sebuah port Input/Output dwi-arah 8-bit dengan internal pull-up resistors pada tiap bit. Penyangga data pada output Port D mempunyai karakteristik gerak simetris dengan kapabilitas high sink maupun source. Sebagai input, Port D yang secara eksternal dikonfigurasi pulled-low akan menghasilkan arus jika pull-up resistors diaktifkan. Pin pada Port D berada dalam kondisi tri-stated ketika kondisi reset diaktifkan, meskipun clock tidak bekerja. Port D juga memiliki fungsi lain seperti RXD Nama Deskripsi , TXD, INT0, INT1, OC1B, OC1A, ICP1, OC2, SCL dan SDA. RESET Input Reset. Kondisi low-level pada pin ini yang lebih lama dibanding panjang pulsa minimum akan menyebabkan kondisi reset, meskipun clock tidak bekerja. Universitas Sumatera Utara Pulsa yang lebih pendek tidak dijamin menyebabkan kondisi reset. XTAL1 Pin untuk eksternal clock. XTAL2 Pin untuk eksternal clock. AVCC Pin tegangan catu untuk Port A dan ADC. AVcc harus terhubung secara eksternal dengan Vcc, meskipun ADC tidak digunakan. Jika ADC digunakan, AVcc harus terhubung dengan Vcc melalui sebuah low-pass filter. AREF Pin referensi analog bagi ADC 2.2.4 Konstruksi ATMega8535 Mikrokontroler ATmega8535 memiliki 3 jenis memori, yaitu memori program, memori data dan memori EEPROM.Ketiganya memiliki ruang sendiri dan terpisah. a. Memori Program ATmega8535 memiliki kapasitas memori progam sebesar 8 Kbyte yang terpetakan dari alamat 0000h – 0FFFh dimana masing-masing alamat memiliki lebar data 16 bit. Sehingga organisasi memori program seperti ini sering dituliskan dengan 4K x 16 bit.Memori program ini terbagi menjadi 2 bagian yaitu bagian program boot dan bagian program aplikasi. Jika tidak menggunakan fitur boot Loader Flash maka semua kapasitas memori program di atas dapat digunakan untuk program aplkasi. Tetapi jika kita menggunakan fitur Boot Loader Flash maka pembagian ukuran kedua bagian ini ditentukan oleh BOOTSZ fuse. Universitas Sumatera Utara b. Memori Data ATmega8535 memiliki kapasitas memori data sebesar 608 byte yang terbagi menjadi 3 bagian yaitu register serba guna, register I/O dan SRAM. ATmega8535 memiliki 32 byte register serba guna, 64 byte register I/O yang dapat diakses sebagai bagian dari memori RAM (menggunakan instuksi LD atau ST) atau dapat juga diakses sebagai I/O (menggunakan instruksi IN atau OUT), dan 512 byte digunakan untuk memori data SRAM. Jika register – register I/O di atas diakses seperti mengakses data pada memori menggunakan instruksi LD atau ST maka register I/O di atas menempati alamat 0020 – 005F. tetapi jika register – register I/O di atas diakses seperti mengakses I/O pada umumnya menggunakan instruksi IN atau OUT maka register I/O di atas menempati alamat memori 0000h – 003Fh. 32 Register $0000 - $001F $0020 - $005F 64 I/O Register $0060 64 I/O Register $0000 $003F (b) Internal SRAM (512 x 8) $025F (a) Gambar 2.4. (a) Register I/O Sebagai Memori Data (b) Register Register I/O Sebagai I/O Universitas Sumatera Utara c. Memori EEPROM ATmega8535 memiliki memori EEPROM sebesar 512 byte yang terpisah dari memori program maupun memori data. Memori EEPROM ini hanya dapat diakses dengan menggunakan register-register I/O yaitu register EEPROM Address, register EEPROM Data, dan register EEPROM Control. Untuk mengakses memori EEPROM ini diperlakukan seperti mengakses data eksternal, sehingga waktu eksekusinya relatif lebih lama bila dibandingkan dengan mengakses data dari SRAM. ATmega8535 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal dengan fidelitas 10 bit. Dalam mode operasinya, ADC ATmega8535 dapat dikonfigurasi, baik secara single ended input maupun differential input. Selain itu, ADC ATmega8535 memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau yang amat fleksibel, sehingga dengan mudah disesuaikan dengan kebutuhan ADC itu sendiri.ATmega8535 memiliki 3 modul timer yang terdiri dari 2 buah timer/counter 8 bit dan 1 buah timer/counter 16 bit. Ketiga modul timer/counter ini dapat diatur dalam mode yang berbeda secara individu dan tidak saling mempengaruhi satu sama lain. Selain itu, semua timer/counter juga dapat difungsikan sebagai sumber interupsi. Masing-masing timer/counter ini memiliki register tertentu yang digunakan untuk mengatur mode dan cara kerjanya. Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial syncrhronous kecepatan tinggi yang dimiliki oleh ATmega8535.Universal Syncrhronous and Asyncrhronous Serial Receiver and Transmitter (USART) juga merupakan salah satu mode komunikasi serial yang dimiliki oleh Universitas Sumatera Utara ATmega8535.USART merupakan komunikasi yang memiliki fleksibilitas tinggi, yang dapat digunakan untuk melakukan transfer data baik antarmikrokontroler maupun dengan modul-modul eksternal termasuk PC yang memiliki fitur UART. USART memungkinkan transmisi data baik secara syncrhronous maupun asyncrhronous, sehingga dengan memiliki USART pasti kompatibel dengan UART. Pada ATmega8535, secara umum pengaturan mode syncrhronous maupun asyncrhronous adalah sama. Perbedaannya hanyalah terletak pada sumber clock saja.Jika pada mode asyncrhronous masing-masing peripheral memiliki sumber clock sendiri, maka pada mode syncrhronous hanya ada satu sumber clock yang digunakan secara bersama-sama. Dengan demikian, secara hardware untuk mode asyncrhronous hanya membutuhkan 2 pin yaitu TXD dan RXD, sedangkan untuk mode syncrhronous harus 3 pin yaitu TXD, RXD dan XC.” 2.3 LCD (Liquid Crystal Display) LCD merupakan salah satu perangkat penampil yang sekarang ini mulai banyak digunakan.Penampil LCD mulai dirasakan menggantikan fungsi dari penampil CRT (Cathode Ray Tube), yang sudah berpuluh-puluh tahun digunakan manusia sebagai penampil gambar/text baik monokrom (hitam dan putih), maupun yang berwarna.Teknologi LCD memberikan keuntungan dibandingkan dengan teknologi CRT, kaena pada dasarnya, CRT adalah tabung triode yang digunakan sebelum transistor ditemukan. Beberapa keuntungan LCD dibandingkan dengan CRT adalah konsumsi daya yang relative kecil, lebih ringan, tampilan yang lebih bagus, dan ketika berlama-lama di depan monitor, monitor CRT lebih cepat memberikan kejenuhan pada mata dibandingkan dengan LCD. Universitas Sumatera Utara Gambar 2.5.LCD Pendeteksi Jarak LCD memanfaatkan silicon atau gallium dalam bentuk Kristal cair sebagai pemendar cahaya.Pada layar LCD, setiap matrik adalah susunan dua dimensi piksel yang dibagi dalam baris dan kolom.Dengan demikian, setiap pertemuan baris dan kolom adalah sebuah LED terdapat sebuah bidang latar (backplane), yang merupakan lempengan kaca bagian belakang dengan sisi dalam yang ditutupi oleh lapisan elektroda trasparan.Dalam keadaan normal, cairan yang digunakan memiliki warna cerah. Daerah-daerah tertentu pada cairan akan berubah warnanya menjadi hitam ketika tegangan diterapkan antara bidang latar dan pola elektroda yang terdapat pad sisi dalam lempeng kaca bagian depan. Keunggulan LCD adalah hanya menarik arus yang kecil (beberapa microampere), sehingga alat atau sistem menjadi portable karena dapat menggunakan catu daya yang kecil.Keunggulan lainnya adalah tampilan yang diperlihatkan dapat dibaca dengan mudah di bawah terang sinar matahari.Di bawah sinar cahaya yang remang-remang dalam kondisi gelap, sebuah lampu (berupa LED) harus dipasang dibelakang layar tampilan. LCD yang digunakan adalah jenis LCD yang menampilkan data dengan 2 baris tampilan pada display. Keuntungan dari LCD ini adalah : Universitas Sumatera Utara 1. Dapat menampilkan karakter ASCII, sehingga dapat memudahkan untuk membuat program tampilan. 2. Mudah dihubungkan dengan port I/O karena hanya mengunakan 8 bit data dan 3 bit control. 3. Ukuran modul yang proporsional. 4. Daya yang digunakan relative sangat kecil. D0 D1 D2 D3 D4 D5 D6 D7 RS 4 RW 5 EN 6 LCD 16x2 1 GND 3 LCD Drv 16 V-BL 10 11 12 13 11 12 13 14 2 VCC V+BL15 +5VDC Gambar 2.6. Konfigurasi Pin LCD Operasi dasar pada LCD terdiri dari empat, yaitu instruksi mengakses proses internal, instruksi menulis data, instruksi membaca kondisi sibuk, dan instruksi membaca data. ROM pembangkit sebanyak 192 tipe karakter, tiap karakter dengan huruf 5x7 dot matrik.Kapasitas pembangkit RAM 8 tipe karakter (membaca program), maksimum pembacaan 80x8 bit tampilan data.Perintah utama LCD adalah Display Clear, Cursor Home, Display ON/OFF, Display Character Blink, Cursor Shift, dan Display Shift.Tabel 2.3 menunjukkan operasi dasar LCD. Universitas Sumatera Utara Tabel 2.6. Operasi Dasar LCD RS R/W Operasi 0 0 Input Instruksi ke LCD 0 1 Membaca Status Flag (DB7) dan alamat counter (DB0 ke DB6) 1 0 Menulis Data 1 1 Membaca Data Lapisan film yang berisis Kristal cair diletakkan di antara dua lempeng kaca yang telah ditanami elektroda logam transparan. Saat teganga dicatukan pada beberapa pasang elektroda, molekul – molekul Kristal cair akan menyusun diri agar cahaya yang mengenainya akan dipantulkan atau diserap. Dari hasil pemantulan atau penyerapan cahaya tersebut akan terbentuk pola huruf, angka, atau gambar sesuai bagian yang di aktifka. LCD membutuhkan tegangan dan daya yang kecil sehingga sangat popular untuk aplikasi pada kalkulator, arloji digital, dan instrument elektronika lain seperti Global Positioning System (GPS), baragraph display dan multimeter digital. LCD umumnya dikemas dalam bentuk Dual In Line Package (DIP) dan mempunyai kemampuan untuk menampilkan beberapa kolom dan baris dalam satu panel. Untuk membentuk pola, baik karakter maupun gambar pada kolom dan baris secara bersamaan digunakan metode Screening. Universitas Sumatera Utara Metode screening adalah mengaktifkan daerah perpotongan suatu kolo dan suatu baris secara bergantian dan cepat sehingga seolah-olah aktif semua. Penggunaan metode ini dimaksudkan untuk menghemat jalur yang digunakan untuk mengaktifkan panel LCD. Saat ini telah dikembangkan berbagai jenis LCD, mulai jenis LCD biasa, Passive Matrix LCD (PMLCD), hingga Thin-Film Transistor Active Matrix (TFT-AMLCD). Tabel 2.7. Konfigurasi Pin LCD Pin Keterangan Konfigurasi Hubung 1 GND Ground 2 VCC Tegangan +5VDC 3 VEE Ground 4 RS Kendali RS 5 RW Ground 6 E Kendali E/Enable 7 D0 Bit 0 8 D1 Bit 1 9 D2 Bit 2 10 D3 Bit 3 11 D4 Bit 4 12 D5 Bit 5 13 D6 Bit 6 14 D7 Bit 7 No. Universitas Sumatera Utara 15 A Anoda (+5VDC) 16 K Katoda (Ground) 2.4Sensor Jarak Ultrasonik PING Sensor jarak ultrasonik ping adalah sensor 40 khz produksi parallax yang banyakdigunakan untuk aplikasi atau kontes robot cerdas. Kelebihan sensor ini adalah hanyamembutuhkan 1 sinyal ( SIG ) selain jalur 5V dan ground. Perhatikan gambardibawah ini : Gambar 2.7 Sensor jarak ultrasonik ping Sensor PING mendeteksi jarak objek dengan cara memancarkan gelombang ultrasonik ( 40 KHz ) selama t = 200 us kemudian mendeteksi pantulannya. Sensor PING memancarkan gelombang ultrasonik sesuai dengan kontrol dari mikrokontroller pengendali ( pulsatrigger dengan tout min 2 us ). Spesifikasi sensor ini : a. Kisaran pengukuran 3cm-3m. b. Input trigger –positive TTL pulse, 2uS min., 5uS tipikal. c. Echo hold off 750uS dari fall of trigger pulse. Universitas Sumatera Utara d. Delay before next measurement 200uS. e. Burst indicator LED menampilkan aktifitas sensor. Gambar 2.8 Diagram Waktu Sensor Ping Sensor Ping mendeteksi jarak obyek dengan cara memancarkan gelombang ultrasonik (40 kHz) selama tBURST (200 μs) kemudian mendeteksi pantulannya.Sensor Ping memancarkan gelombang ultrasonik sesuai dengan kontrol dari mikrokontroler pengendali (pulsa trigger dengan tOUT min. 2 μs).Gelombang ultrasonik ini melalui udara dengan kecepatan 344 meter per detik, mengenai obyek dan memantul kembali ke sensor. Ping mengeluarkan pulsa output high pada pin SIG setelah memancarkan gelombang ultrasonik dan setelah gelombang pantulan terdeteksi Ping akan membuat output low pada pin Universitas Sumatera Utara SIG. Lebar pulsa High (tIN) akan sesuai dengan lama waktu tempuh gelombang ultrasonik untuk 2x jarak ukur dengan obyek. Maka jarak yang diukur adalah S = (tIN x V ) ÷ 2 Dimana : S = Jarak antara sensor ultrasonik dengan objek yang dideteksi V = Cepat rambat gelombang ultrasonik di udara (344 m/s) tIN = Selisih waktu pemancaran dan penerimaan pantulan gelombang. Gambar 2.9 Jarak Ukur Sensor Ping Sistem minimal mikrokontroller ATMega 8535 dan software basic stamp Editor diperlukan untuk memprogram mikrokontroller dan mencoba sensor ini. Keluaran dari pin SIG ini yang dihubungkan ke salah satu port di kit mikrokontroller. Contoh aplikasi sensor PING pada mikrokontroler BS2, dimana pin SIG terhubung ke pa pin7, dan memberikan catu daya 5V dan ground.fungsiSigout untuk mentrigger ping, sedangkan fungsi Sigin digunakan untuk mengukur pulsa yang sesuai dengan jarak dari objek target. Universitas Sumatera Utara