6. Port D PortD0…PortD7 merupakan pin inputoutput dua arah dan pin fungsi khusus,
seperti yang terlihat pada tabel 2.4 Tabel 2.4 Fungsi Khusus Port D
Pin Fungsi Khusus
Port D.7 OC2 TimerCounter Output Compare Match Output
Port D.6 ICP TimerCounter1 Input Capture Pin
Port D.5 OC1A TimerCounter1 Output Compare A Match
Output Port D.4
OC1B TimerCounter1 Output Compare B Match Output
Port D.3 INT1 External Interrupt 1 Input
Port D.2 INT0 External Interrupt 0 Input
Port D.1 TXD USART Output Pin
Port D.0 RXD USART Input Pin
7. RXD USART Input Pin
8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.
9. AVCC merupakan pin masukan tegangan untuk ADC.
10. AREFF merupakan pin masukan tegangan referensi ADC.
2.5.3. USART Universal Synchronous and Ansynchronous Serial Receiver and Transmitter
USART merupakan komunikasi yang memiliki fleksibilitas tinggi, yang dapat digunakan untuk melakukan transfer data baik antar mikrokontroler 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 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
XCK. Komunikasi serial data antara master dan slave pada SPI diatur melalui 4 buah pin yang terdiri dari SCLK, MOSI, MISO, dan SS sbb:
a. SCLK dari master ke slave yang berfungsi sebagai clock.
b. MOSI jalur data dari master dan masuk ke dalam slave.
c. MISO jalur data keluar dari slave dan masuk ke dalam master.
d. SS slave select merupakan pin yang berfungsi untuk mengaktifkan slave.
2.5.4. Serial Peripheral Interface SPI
Serial Peripheral Interface SPI adalah protokol data serial sinkron digunakan oleh mikrokontroler untuk berkomunikasi dengan satu atau lebih perangkat periferal cepat
jarak pendek. Hal ini juga dapat digunakan untuk komunikasi antara dua mikrokontroler. Dengan koneksi SPI selalu ada perangkat satu master biasanya mikrokontroler yang
mengontrol perangkat periferal Komunikasi SPI membutuhkan 3 jalur yaitu MOSI, MISO, dan SCK. Melalui
komunikasi ini data dapat saling dikirimkan baik antara mikrokontroller maupun antara mikrokontroller dengan peripheral lain di luar mikrokontroller. Penjelasan 3 jalur utama
dari SPI adalah sebagai berikut : a.
MOSI : Master Output Slave Input, yaitu jika dikonfigurasi sebagai Master maka pin MOSI sebagai output tetapi jika dikonfigurasi sebagai Slave maka pin MOSI sebagai
input. b.
MISO : Master Input Slave Output, yaitu jika dikonfigurasi sebagai Master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai Slave maka pin MISO sebagai
output. c.
CLK : Clock, jika dikonfigurasi sebagai Master maka pin CLK berlaku sebagai output tetapi jika dikonfigurasi sebagai Slave maka pin CLK berlaku sebagai input.
Ada dua macam SPI, yaitu satu master dengan satu slave dan satu master dengan banyak slave. Pada gambar 2.10 ditunjukkan sambungan antar master dan slave dengan
SPI.
Gambar 2.10 Koneksi Master-Slave dengan SPI [8] PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Register yang berhubungan dengan SPI terdapat seperti gambar 2.11.
Gambar 2.11. SPI Control Register [8] Setiap bit dari register SPCR mempunyai fungsinya masing-masing. Dan untuk
mengaktifkan SPI, maka perlu diketahui setiat bit register tersebut, sebagai berikut: a.
Bit 7 – SPIE: SPI Interrupt Enable. SPIE digunakan untuk mengaktifkan interupsi
SPI. b.
Bit-6 SPE SPI Enable. SPE digunakan untuk mengaktifkan dan menonaktifkan
komunikasi SPI dimana jika SPI bernilai 1 maka komunikasi SPI aktif sedangkan jika bernilai 0 maka komunikasi SPI tidak aktif.
c.
Bit 5 – DORD: Data Order. DORD digunakan untuk memilih urutan pengiriman
data, dari LSB atau MSB terlebih dahulu. Nilai satu untuk LSB dan nilai nol untuk MSB.
d.
Bit-4 MSTR Master or Slave Select. MSTR digunakan untuk mengkonfigurasi
sebagai master atau slave secara software dimana jika MSTR bernilai 1 maka terkonfigurasi sebagai master sedangkan MSTR bernilai 0 maka terkonfigurasi
sebagai slave. Pengaturan bit MSTR ini tidak akan bisa dilakukan jika pin SS dikonfigurasi sebagai input karena jika pin SS dikonfigurasi sebagai input maka
penentuan master atau slavenya otomatis dilakukan secara hardware yaitu dengan membaca level tegangan pada SS.
e.
Bit-3 CPOL dan Bit-2 CPHA digunakan untuk pengaturan polaritas dan fasa dari
clock. f.
Bit-1 SPR10 SPI Clock Rate Select SPR1 dan SPR0 digunakan untuk
menentukan kecepatan clock yang digunakan dalam komunikasi SPI. Tabel 2.5. Hubungan SCK dan Frekuensi Osilator [8]
SPI2x SPR1
SPR0 SCK Frequency
4 1
16 1
64 1
1 128
1 2
Tabel 2.5 Lanjutan Hubungan SCK dan Frekuensi Osilator [8] 1
1 8
1 1
32 1
1 1
64
Gambar 2.12. SPI Status Register [8] SPIF SPI Interrupt Flag merupakan bendera yang digunakan untuk mengetahui
bahwa proses pengiriman data 1 byte sudah selesai. Jika proses pengiriman data sudah selesai maka SPIF akan bernilai satu high. SPIF ini berada dalam SPI Status Register
SPSR.
Gambar 2.13. SPI Data Register [8]
SPI Data Register SPDR SPDR merupakan register yang digunakan untuk menyimpan data yang akan dikirim atau diterima pada komunikasi SPI.
2.6. Analog Digital Converter
Analog To Digital Converter ADC adalah pengubah input analog menjadi kode –
kode digital.[9] ADC banyak digunakan sebagai pengatur proses industri, komunikasi digital dan rangkaian pengukuranpengujian. Umumnya ADC digunakan sebagai perantara
antara sensor yang kebanyakan analog dengan sistim komputer seperti sensor suhu, cahaya, tekananberat, aliran dan sebagainya kemudian diukur dengan menggunakan
sistem digital komputer. ADC Analog to Digital Converter memiliki 2 karakter prinsip, yaitu kecepatan
sampling dan resolusi.kecepatan sampling suatu ADC menyatakan seberapa sering sinyal analog dikonversikan ke bentuk sinyal digital pada selang waktu tertentu.Kecepatan
sampling biasanya dinyatakan dalam sample per second SPS. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Prinsip kerja ADC adalah mengkonversi sinyal analog ke dalam bentuk besaran yang merupakan rasio perbandingan sinyal input dan tegangan referensi.
= ∗ 2
2.6 Sistem mikroprosesor hanya dapat mengolah memproses data dalam bentuk biner
saja, atau lebih sering disebut besaran digital, oleh sebab itu setiap data analog yang akan diproses oleh mikrokomputer harus diubah terlebih dahulu kedalam bentuk kode biner
digital.[9] Tegangan analog yang merupakan masukan dan ADC berasal dari transducer. Tranducer inilah yang mengubah besaran kontinyu seperti temperatur, tekanan, kecepatan,
ataupun putaran motor menjadi tegangan listrik. Tegangan listnik yang dihasilkan oleh transducer yang berubah secara kontinyu pada suatu range tertentu disebut tegangan
analog, dan tegangan analog ini diubah oleh ADC menjadi bentuk digital yang sebanding dengan tegangan analognya. Ada 3 karakteristik yang perlu diperhatikan dalam pemilihan
komponen ADC, antara lain:
Resolusi. Merupakan spesifikasi terpenting untuk ADC, yaitu jumlah langkah dan
sinyal skala penuh yang dapat dibagi, dan juga ukuran dan langkah-langkah. Boleh juga dinyatakan dalam jumlah bit yang ada dalam satu kata digital word, ukuran LSB langkah
terkecil sebagai persen dan skala penuh atau dapat juga LSB dalam mV untuk skala penuh yang diberikan.
Akurasi. Adalah jumlah dan semua kesalahan, misalnya kesalahan non linieritas,
skala penuh, skala nol, dll. Dapat juga menyatakan perbedaan antara tegangan input analog secara teoritis yang dibutuhkan untuk menghasilkan suatu kode biner tertentu terhadap
tegangan input nyata yang menghasilkan tegangan kode biner tersebut.
Waktu konversi. Waktu yang dibutuhkan untuk mendigitalkan setiap sampel atau
yang diperlukan untuk menyelesaikan suatu konversi.
2.7. Visual Basic
Visual Basic adalah salah suatu development tools untuk membangun aplikasi dalam lingkungan Windows. Dalam pengembangan aplikasi, Visual Basic menggunakan
pendekatan Visual untuk merancang user interface dalam bentuk form, sedangkan untuk kodingnya menggunakan dialok bahasa Basic yang cenderung mudah dipelajari.Visual
Basic telah menjadi tools yang terkenal bagi para pemula maupun para developer dalam pengembangan aplikasi skala kecil sampai ke skala besar.
2.7.1. Tipe Variabel
Ketepatan pemilihan tipe variabel akan sangat menentukan pemakaian resources oleh aplikasi yang dihasilkan, adalah tugas programmer untuk memilih tipe yang sesuai
untuk menghasilkan program yang efisien dan berperfomance tinggi [10]. Tabel 2.6. Tipe variabel, pemakaian storage dan jangkauan masing-masing [10]
Type Data Ukuran Storage
Jangkauan
Byte 1 byte
0 sd 255 Boolean
2 byte True atau False
Integer 3 byte
-32,768 sd 32767 Long
4 byte -2,147,483,648 sd 2,147,483,647
Single 4 byte
-3.402823E38 sd -1.401298E-45 - 1.401298E-45 sd 3.402823E38 +
Double 8 byte
-1.79769313486232E308 sd - 4.94065645841247E-324 -
Currency 8 byte
-922,337,203,685,477.5808 sd 922,337,203,685,477.580
Decimal 14 byte
+79,228,162,514,264,337,593,543,9 50,335
Date 8 byte
1 Januari 100 sd 31 Desember 9999 Object
4 byte Mengacu pada objek tertentu
String panjang variabel
10 byte + panjang string
0 sampai lebih kurang 2 milyar
String panjang tetap
panjang dari string 1 sampai lebih kurang 65,400
Variant dengan angka
16 byte Sembarang angka sampai jangkauan
jenis Double PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel 2.6 Lanjutan Tipe Variabel, pemakaian storage dan jangkauan masing-masing [10] Single
4 byte -3.402823E38 sd -1.401298E-45 -
Decimal 14 byte
+79,228,162,514,264,337,593,543,9 50,335
2.7.2. Operator pada Visual Basic dan Urutan Operasinya
Visual basic meyediakan operator aritmatika, komparasi dan logika, salah satu hal yang harus dipahami oleh programmer adalah tata urutan operasi dari masing-masing
operator tersebut sehingga mampu membuat ekspresi yang akan menghasilkan nilai yang benar, Tabel 2.7 menunjukkan operator dan urutan operasinya dari atas ke bawah.
Tabel 2.7. Operator pada Visual Basic dan urutan operasi dari atas ke bawah
Aritmatika Komparasi
Logika
Pangkat Sama =
Not Negatif -
Tidak sama And
Kali dan Bagi , Kurang dari
Or Pembagian bulat \
Lebih dari Xor
Sisa Bagi Mod Kurang dari atau
sama = Eqv
Tambah dan Kurang +,-
Lebih dari atau sama =
Imp Pengabungan
String Like
2.7.3. Operator Like
Salah satu operator yang menarik untuk dibahas adalah operator like, karena operatorini tidak tersedia pada bahasa BASIC. Operator digunakan untuk operasi
pencocokan polapada string yang akan sangat membantu programmer. Tabel 2.8. menunjukan karakter dalam pencocokan pola pada operator like.
Tabel 2.8. Karakter dalam pencocokan pola pada Operator Like
Karakter dalam pola Penyamaan dalam string
? Sembarang karakter tunggal
Tabel 2.8 Lanjutan Karakter dalam pencocokan pola pada Operator Like Nol atau lebih karakter
Sembarang digit tunggal 0-9 [charlist]
Sembarang karakter yang berada dalam charlist [charlist]
Sembarang karakter yang tidak berada dalam charlist
2.7.4. Deklarasi Variabel
a. Deklarasi variabel pada bagian deklarasi general declaration di suatu form,
standar, atau class module, dari pada dalam suatu procedure, membuat variabel itu berlaku untuk semua procedure dan function dalam module tersebut
b. Deklarasi variabel dengan menggunakan keyword Public membuatnya berlaku pada
keseluruhan aplikasi anda. c.
Deklarasi suatu variabel lokal dengan menggunakanan keyword Static akan menyimpan nilainya ketika suatu procedure berakhir.
2.7.5. Mengenal Struktur Kendali
Struktur kendali memungkinkan anda untuk mengatur jalannya program anda, Jika membiarkan tanpa di periksa oleh statement control-flow, suatu logika program akan
berjalan dari kiri ke kanan dan dari atas kebawah. Hanya program yang sangat sederhana dapat ditulis tanpa statement control-flow. Struktur keputusan yang didukung oleh Visual
Basic adalah sebagai berikut : a.
If…Then Kondisi biasanya berupa suatu perbandingan, maupun ekspresi yang menghasilkan
nilai numerik.Visual Basic menginterpretasikan False sebagai nol 0, dan True sebagai bukan nol.
b. If…Then…Else
Visual Basic awalnya akan mencoba kondisi1. Jika False, maka Visual Basic akan memeriksa kondisi2, dan seterusnya sampai menemukan suatu kondisi True untuk
dijalankan blok pernyataannya. c.
Select Case Visual Basic menyediakan struktur Select Case sebagai suatu alternatif terhadap
If...Then...Else.Suatu Select Case statement memiliki kemampuan yang sama dengan PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
If…Then…Else…, tetapi membuat code lebih mudah dibaca. Struktur Select Case bekerja dengan suatu percobaan tunggal yang hanya dievaluasi satu kali pada bagian
atas struktur.Visual Basic then membandingkan hasil ekspresi dengan nilai pada setiap case didalam struktur tersebut, jika ada yang sesuai, akan dijalankan blok statement
yang sesuai.
2.7.6. Deklarasi Konstanta
Membuat code dapat ditangani dengan menggunakan suatu konstanta [9]. Suatu konstanta adalah nama yang menyimpan dari suatu nilai yang tidak dapat berubah. Ada
dua sumber dari suatu konstanta : a.
Intrinsic atau System-defined konstanta yang disediakan oleh suatu aplikasi atau kontrol. Konstanta Visual Basic terdaftar pada Visual Basic VB, Visual Basic for
Application VBA, dan Data Access DAO. b.
Symbolic atau User-defined konstanta adalah dideklarasikan dengan menggunakan statement Const.
c. Membuat suatu konstanta yang mana hanya ada dalam suatu procedure, deklarasikan
di dalam procedure tersebut d.
Membuat suatu konstanta berlaku pada semua procedure dalam suatu module, deklarasikan dia pada bagian deklarasi di module tersebut.
e. Membuat suatu konstanta berlaku pada semua aplikasi, deklarasikan dia dengan
keyword Public sebelum kata Const.
2.7.7. Struktur Pengulangan
Struktur loop memperbolehkan untuk melaksanakan sekelompok baris lebih dari satu kali [9]:
a. Do…Loop
Ketika Visual menjalankan Do loop ini, pertama kali akan di coba kondisinya, jika kondisi False 0, akan diloncati semua statements yang mengikuti kondisi tersebut.
Visual Basic akan menjalankan statements jika kondisi benar dan kembali ke Do…Loop berikutnya.
b. For…Next
Do loops bekerja dengan baik, ketika anda tidak tahu berapa bayak kali untuk butuhkan untuk menjalankan statement. Ketika anda mengetahui harus menjalankan