perakitannya pada suatu metode lain yang mempunyai sistem kerja

advertisement
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
Download