Keterangan pin LCD 16 x 2 yaitu : a.
Pin 1 dan 2 Merupakan sambungan catu daya , Vss, dan Vdd. Pin Vdd dihubungkan dengan tegangan positif catu daya, dan Vss pada 0 volt atau ground. Meskipun data
menentukan catu 5 Vdc hanya beberapa mA, menyediakan 6 V dan 4,5 V yang keduanya bekerja dengan baik, bahkan 3 V cukup untuk beberapa modul.
b. Pin 3 Merupakan pin control Vcc yang digunakan untuk mengatur kontras display.
Idealnya pin ini dihubungkan dengan tegangan yang bias diubah untuk mmungkinkan pengaturan dengan tegangan yang bias diubah untuk memungkinkan pengaturan
terhadap tingkatan kontrak display sesuai dengan kebutuhan. c.
Pin 4 Merupakan register select RS, merupakan yang pertama dari tiga commond control input. Dengan membuat RS menjadi high, data karakter dapat ditransfer dari
dan menuju modulnya. d.
Pin 5 ReadWrite RW, untuk memfungsikannya sebagi perintah write makan RW low atau menulis karakter ke modul. RW high untuk membaca data karakter atau
informasi status dari registernya. e.
Pin 6 Enable E, input ini dugunakan untuk transfer actual dari perintah-perintah atau karakter antara modul dengan hubungan data. Ketika menulis ke display, data
ditransfer hanya pada perpindahan high atau low. Tetapi ketika membaca dari display, data akan menjadi cepat tersedia setelah perpindahan dari low ke high dan tetap
tersedia hingga low lagi. f.
Pin 7 sampai 14 adalah depalapn jalur data D0-D7 di mana data dapat ditransfer ked an dari display.
g. Pin 15 dan 16 Pin 15 atau A + mmpunyai level DC +5 v berfungsi sbagai LED
backlight + sedangkan pin 16 yaitu K - memiliki level 0 V dan berfungsi sebagai LED backlight.
2.5. Bahasa Pemrograman C
Bahasa C merupakan salah satu bahasa pemrograman yang paling populer untuk pengembangan program-program aplikasi yang berjalan pada sistem mikroprosesor
komputer. Relatif dibandingkan dengan bahasa tinggi lain, bahasa C merupakan bahasa pemrograman yang sangat fleksibel dan tidak terlalu terikat dengan berbagai aturan yang
sifatnya kaku. Penggunaan bahasa C akan sangat efisien terutama untuk program
Universitas Sumatera Utara
mikrokontroler yang berukuran relatif besar dan sebagai konsekuensiya hal ini terkadang akan megurangi kecepatan eksekusi.
a.Struktur Penulisan Program Bahasa C Struktur dalam bahasa C cukup sederhana, karena hanya mencakup 3 poin penting, yaitu :
1.Pre-processor Merupakan bagian dari program dalam bahasa C yang selalu dijalankan pertama kali. Bagian
ini juga melakukan proses tertentu. Banyak sekali syntax dalam pre-processor. Namun setidaknya ada duasyntax yang akan sering digunakan dalam latihan programming dasar,
yaitu syntax include dan define. 2.Main function
Ini adalah fungsi utama dalam suatu program. Tentu saja fungsi ini yang akan dijalankan pertama kali. Tidak menutup kemungkinan di dalam fungsi ini terdapat statement yang
memanggil fungsi lain. 3.Function
Fungsi dapat dibuat sendiri dan dapat dipanggil baik fungsi utama ataupun fungsi lain dan bahkan fungsi itu sendiri. Fungsi dapat diletakkan di atas fungsi utama dengan
menambahkan deklarasi fungsi di atas fungsi utama.
b.Tipe data Tipe data merupakan bagian yang paling penting karena tipe data mempengaruhi setiap
instruksi yang akan dilaksanakan oleh komputer. Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya.
Jika 5 dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe float maka akan menghasilkan nilai 25000000.
c.Kostanta Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program
berlangsung. Konstanta harus didefinisikan terlebih dahulu di awal program. Konstanta dapat
Universitas Sumatera Utara
bernilai integer, pecahan, karakter, dan string. Selain itu, bahasa C juga menyediakan beberapa karakter khusus yang disebut karakter escape, antara lain :
\a: untuk bunyi bel alert \b: mundur satu spasi backspace \f:ganti halaman form feed
\n: ganti baris bar new line \v:tabulasi vertikal \0: nilai kosong null \’:karakter petik tunggal \”:karakter petik ganda \\:karakter garis mirig
d.Variable Variable adalah suatu pengenal identifier yang digunakan untuk mewakili suatu nilai
tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap. Nilai dari suatu variable bisa diubah- ubah sesuai kebutuhan. Nama dari suatu variable dapat
ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut : 1Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf.
2Bahasa C bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara Metal dengan metal itu berbeda.
3Tidak boleh mengandung spasi. 4Tidak boleh mengandung simbol-simbol khusus, kecuali garis bawah uderscore, seperti :
, ?, , , , , ,,, -, +, dsb. 5Panjangnya bebas, tetapi hanya 32 karakter pertama yag terpakai.
Bahasa C adalah bahasa pemrograman yang digunakan pada software CodeVision AVR. Bahasa pemrograman ini yang dapat dikatakan berada antara bahasa tingkat rendah
bahasa yang berorientasi pada mesin dan bahasa tingkat tinggi bahasa yang berorientasi pada manusia. Seperti yang diketahui, bahasa tingkat tinggi mempunyai kompatibilitas antara
platform dan karenanya amat mudah untuk membuat program pada berbagai mesin. Berbeda dengan menggunakan bahasa mesin, sebab setiap perintahnya sangat bergantung pada jenis
mesin. Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun
1972. Bahasa C adalah bahasa pemrograman terstruktur, yang membagi programnya dalam bentuk blok. Tujuannya untuk memudahkan dalam pembuatan dan pengembangan program.
Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu jenis program ke
Universitas Sumatera Utara
bahasa program lain. Hal ini karena adanya standarisasi bahasa C berupa standar ANSI American National Standard Institute yang dijadikan acuan oleh para pembuat kompiler
jenis mesin. Kelebihan Bahasa C:
a. Bahasa C tersedia hampir di semua jenis komputer.
b. Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis komputer.
c. Bahasa C hanya menyediakan sedikit kata-kata kunci hanya terdapat 32 kata kunci.
d. Proses executable program bahasa C lebih cepat
e. Dukungan pustaka yang banyak.
f. C adalah bahasa yang terstruktur
Kekurangan Bahasa C: a.
Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai.
b. Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
Struktur Bahasa Pemrograman C
preprosesor directive {
statement; statement;
} Contoh :
Penjelasan :
Header File
Header File adalah berkas yang berisi prototype fungsi, definisi konstanta dan definisi variable. Fungsinya adalah kumpulan code C yang diberi nama dan ketika nama tersebut
dipanggil maka kumpulan kode tersebut dijalankan. File header yang digunakan
Universitas Sumatera Utara
mendefinisikan jenis mikrokontroler yang digunakan, yang berfungsi sebagai pengarah. Dimana pendeklarasian register-register yang terdapat pada program difungsikan untuk jenis
mikrokontroler digunakan pada softwareCodeVision AVR contohnya di bawah ini: Contoh :
include mega8535.h includedelay.h
include stdio. h
Preprosesor Directive include
Preprosesor directive adalah bagian yang berisi pengikutsertaan file atau berkas-
berkas fungsi maupun pendefinisian konstanta.
Contoh: include stdio.h
include phi 3.14
Void
Void artinya fungsi yang mengikutinya tidak memiliki nilai kembalian return.
Main
Fungsi main adalah fungsi yang pertama kali dijalankan ketika program dieksekusi tanpa fungsi main suatu program tidak dapat dieksekusi namun dapat dikompilasi.
2.5.1 Kata Kunci Keyword
Kata kunci-kata kunci yang terdapat di C, sebagai berikut: Tabel 2.5.1 Kata-Kata Kunci
Universitas Sumatera Utara
2.5.2Identifier
Identifier atau nama pengenal adalah nama yang ditentukan sendiri oleh pemrogram yang digunakan untuk menyimpan nilai, misalnya nama variable, nama konstanta, nama suatu
elemen misalnya: nama fungsi, nama tipe data, dll. Identifier punya ketentuan sebagai berikut :
1. Maksimum 32 karakter bila lebih dari 32 karakter maka yang diperhatikan hanya 32
karakter pertama saja. 2.
Case sensitive: membedakan huruf besar dan huruf kecilnya. 3.
Karakter pertama harus karakter atau underscore _ selebihnya boleh angka. 4.
Tidak boleh mengandung spasi atau blank. 5.
Tidak boleh menggunakan kata yang sama dengan kata kunci dan fungsi.
2.5.3 Variabel
Variabel adalah identifier yang nilainya dapat berubah atau diubah selama program berjalan dieksekusi. Pengubahnya adalah user atau proses.
Deklarasi variabel tipe_data nama_variabel;
Variabel yang akan digunakan dalam program haruslah dideklarasikan terlebih dahulu. Pengertian deklarasi di sini berarti memesan memori dan menentukan jenis data yang bisa
disimpan di dalamnya. Contoh :
Int a, b, c; Inisialisasi variabel tipe_data nama_variabel = nilai;
Int a=15, b=7, c=0
2.5.4 Konstanta
Konstanta adalah identifier yang nilainya tetap selama program berjalan atau dieksekusi. Cara untuk mengubahnya hanya melalui source codenya saja. Seperti halnya
variabel, konstanta juga memiliki tipe. Penulisan konstanta mempunyai aturan tersendiri,
sesuai dengan tipe masing-masing.
1. Konstanta karakter misalnya ditulis dengan diawali dan diakhiri dengan tanda petik
tunggal, contohnya : ‘A’ dan ‘’. 2.
Konstanta integer ditulis dengan tanda mengandung pemisah ribuan dan tidak mengandung bagian pecahan, contohnya : –1 dan 32767.
Universitas Sumatera Utara
3. Konstanta real float dan double bisa mengandung pecahan dengan tanda berupa
titik dan nilainya bisa ditulis dalam bentuk eksponensial menggunakan tanda e, contohnya : 27.5f untuk tipe float atau 27.5 untuk tipe double dan 2.1e+5
maksudnya 2,1 x 105 . 4.
Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda petik-ganda “, contohnya :“Pemrograman Dasar C”.
Contoh :
2.5.5 Tipe Data Dasar
Data merupakan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atau variabel. Konstanta menyatakan nilai yang tetap, sedangkan variabel menyatakan nilai yang
dapat diubah-ubah selama eksekusi berlangsung.Untuk mengetahui ukuran memori bisa dipakai fungsi sizeof tipe_data.
Tabel 2.5.2 Ukuran Memori untuk Tipe Data
Catatan: Ukuran dankawasan dari masing-masing tipe data adalah bergantung pada jenis mesin
yang digunakan misalnya mesin 16 bit bisa jadi memberikan hasil berbeda dengan mesin 32 bit. Untuk menampilkan hasil output dibutuhkan kode format, berikut
adalah daftar kode format: Tabel 2.5.3 Daftar Kode Format
Tipe Data Ukuran
Memori Kawasan
Unsigned char 8 bits 0 sd 255
Char 8 bits
-128 sd 127 Short int
16 bits -32.768 sd 32.767
Unsigned int 32 bits
0 sd 4.294.967.295 Int
32 bits -2.147.483.648 sd 2.147.483.647
Unsigned long 32 bits 0 sd 4.294.967.295
Enum 16 bits
-2.147.483.648 to 2.147.483.648 Long
32 bits -2.147.483.648 sd 2.147.483.647
Float 32 bits
3,4 x 10
-38
sd 3,4 x 10
38
Double 64 bits
1,7 x 10
-308
to 1,7 x 10
308
Long double 80 bits
3,4 x 10
-4932
to 3,4 x 10
4932
Near pointer 32 bits Not applicable
Far pointer 32 bits
Not applicable
Universitas Sumatera Utara
Kode Format Kegunaan
c Menampilkan sebuah karakter
s Menampilkan nilai string
d Menampilkan nilai desimal integer
i Menampilkan nilai desimal integer
u Menampilkan nilai desimal integer tidak bertanda unsigned integer
ld Menampilkan nilai desimal long integer
lu Menampilkan nilai desimal long integer tidak beratanda
li Menampilkan desimal long integer
hi Menampilkan nilai desimal short integer tak bertanda
x Menampilkan nilai heksa desimal integer
o Menampilkan nilai okta integer
f Menampilkan nilai pecahanfloat
e Menampilkan nilai float scientific
g Sebagai pengganti f atau e tergantung yang terpendek
lf Menampilkan nilai pecahan double
lg Menampilkan nilai pecahan double
p Menampilkan suatu alamat memory untuk pointer
2.6.6 Operator Aritmatika
Operator aritmatika digunakan untuk melakukan proses perhitungan matematika. Fungsi-fungsi matematika yang terdapat pada bahasa C dapat dilihat pada tabel di bawah ini:
Tabel2.5.4 Operator Aritmatika
Contoh penggunaan operator aritmatika dapat dilihat di bawah ini, include mega8535.h
include delay.h void main void
{ unsigned char a, b;
a = 0x03; b = 0x05;
Universitas Sumatera Utara
DDRC 0XFF; PORTC digunakan sebagai output while 1
{ PORTC = a b;
delay_ms500; }
}
2.5.7 Operator Pembanding
Operator pembanding digunakan untuk membandingkan 2 data atau lebih. Hasil operator akan di jalankan jika pernyataan benar dan tidak dijalankan jika salah. Operator
pembanding dapat kita lihat pada tabel di bawah ini: Tabel 2.5.5 Operator Pembanding
Operator Contoh
Keterangan
== x == y
Benar jika kedua data bernilai sama =
x = y Bernilai benar jika kedua data tidak sama
x y Bernilai benar jika nilai x lebih besar dari pada y
x y Bernilai jika x lebih kecil dari y
= x = y
Bernilai jika x lebih besar atau sama dengan y =
x = y Bernilai benar jika x lebih kecil atau sama dengan y
2.5.8 Operator Logika
Operator logika digunakan untuk membentuk logika dari dua pernyataan atau lebih. Operator logika dapat dilihat pada tabel di bawah ini:
Tabel 2.5.6 Operator Logika
include mega8535.h include delay.h
Universitas Sumatera Utara
void main void {
DDRC = 0XFF; sebagai output DDRA = 0X00; sebagai input
while 1 {
If PINA.0 == 1 || PINA.1 == 1 { PORTC = 0XFF;
delay_ms500; PORTC = 0X00;
Delay_ms500; }
else{ PORTC = 0x00;
delay_ms500; }
} }
Penjelasan program: Apabila PINA.0 atau PINA.1 diberi input logika 1 maka PORTC akan mengeluarkan
logika 0xff kemudian logika 0x00 secara bergantian dengan selang waktu 0,5 s. dan apabila bukan PINA.1 atau PINA.0 diberi logika 1 maka PORTC akan mengeluarkan logika 0x00.
2.5.9 Operator Bitwise
Operator logika ini bekerja pada level bit. Perbedaan Operator Bitwise dengan operator logika adalah pada operator logika akan menghasilkan pernyataan benar atau salah
sedangkan pada operator bitwise akan menghasilkan data biner. Operator Bitwise dapat dilihat pada tabel di bawah ini:
Universitas Sumatera Utara
Tabel 2.5.7 Operator Bitwise
Contoh program: include mega8535.h
include delay.h void main void
{ unsigned char a,b,c;
DDRC = 0xff; portc sebagai o while 1
{
a = 0x12; b = 0x34;
c = a b; PORTC = c;
delay_ms500; };
} Penjelasan program:
a = 0x12 = 0001 0010 b = 0x32 = 0011 0000
-------------------------
Universitas Sumatera Utara
a b = 0x10 = 0001 0000
2.5.10 Operator Penambahan dan Pengurangan
Operator ini digunakan untuk menaikkan atau menurunkan nilai suatu variabel dengan selisih 11. Operator ini dapat dilihat pada tabel di bawah ini:
Tabel 2.5.8 Operator Penambahan dan Pengurangan
2.5.11 Pernyataan If dan If Bersarang
Pernyataan if digunakan untuk pengambilan keputusan terhadap 2 atau lebih pernyataan dengan menghasilkan pernyataan benar atau salah. Jika pernyataan benar maka
akan di jalankan instruksi pada blok nya, sedangkan jika pernyataan tidak benar maka instruksi yang pada blok lain yang dijalankan sesuai dengan arah programnya.
Bentuk pernyataan IF adalah sebagai berikut:
a. Bentuk sederhana