Keypad Perangkat Lunak Perancangan KWH Meter Dengan Sistem Prabayar Berbasis Microcontroller AVR ATMega8535

11 pin IO 3 pin untuk kontrol, 8 pin untuk data. Sedangkan mode 4 bit minimal hanya membutuhkan 7 bit 3 pin untuk kontrol, 4 untuk data. Aplikasi dengan LCD dapat dibuat dengan mudah dan waktu yang singkat, mengingat koneksi parallel yang cukup mudah antara kontroller dan LCD.

2.6 Keypad

2.6.1 Keypad untuk ATMega8535

Dasarnya keypad adalah sejumlah tombol yang disusun sedemikian rupa sehingga pembentukan bentuk tombol angka dan beberapa menu yang lain. Berikut ini adalah contoh konfigurasi keypad 4 × 4. Keypad diperlukan untuk interaksi dengan sistem, misalnya kita membuat pengaturan dengan titik setel akan kontrol umpan balik pada saat program masih berjalan. Sebenarnya setiap programmer mempunyai cara interaksi yang berbeda dengan sistem. Bahkan untuk keypad di hardware setiap programmer bisa berbeda. Hal ini lebih karena kebutuhan yang berbeda. Gambar 2.15 Keypad 4x4 Keypad 4×4 sangat sering digunakan oleh programmer. Selain kemudahannya dengan perangkat keras dan perangkat lunak. Dasarnya keypad 4×4 adalah 16 tombol push-button dalam matriks. Interfacing keypad 4×4 dengan pemindaian pola tidak Universitas Sumatera Utara mudah dilakukan. Selain harus memiliki keypad 4×4, kita hanya membutuhkan sebuah dioda sebagai komponen pendukung. Dioda 1N4001 yang diterapkan terikat oleh seri dengan K1, K2, K3 dan K4 dengan bagian dari Anoda.

2.7 Perangkat Lunak

2.7.1 Pemrograman C

Pada perancangan program pada alat, program yang digunakan adalah pemrograman bahasa C. Berikut penjelasan dasar-dasar pemrograman bahasa C : 1. Tipe Data Berikut ini adalah tipe-tipe data yang ada dalam bahasa C dan yang dikenali oleh CodeVisionAVR : Tabel 2.4 Tipe Data Tipe Data Ukuran Jangkauan Nilai Bit 1 bit 0 atau 1 Char 1 byte -128 sd 225 Unsigned Char 1 byte 0 sd 225 Signed Char 1 byte -128 sd 127 Int 2 byte -32.768 sd 32.767 Short Int 2 byte -32.768 sd 32.767 Unsigned Int 2 byte 0 sd 65.535 Signed Int 2 byte -32.768 sd 32.767 Long Int 4 byte -2.147.483.648 sd 2.147.483.647 Unsigned Long Int 4 byte 0 sd 4.294.967.295 Signed Long Int 4 byte -2.147.483.648 sd 2.147.483.647 Float 4 byte 1.210 -38 sd 3.410 +38 Double 4 byte 1.210 -38 sd 3.410 +38 2. Konstanta dan Variabel Konstanta dan variabel merupakan sebuah tempat untuk menyimpan data yang berada di dalam memori. Konstanta berisi data yang nilainya tetap dan Universitas Sumatera Utara tidak dapat diubah selama program dijalankan, sedangkan variabel berisi data yang bisa berubah nilainya saat program dijalankan. Untuk membuat sebuah konstanta atau variabel maka kita harus mendeklarasikannya lebih dahulu, yaitu dengan sintaks berikut : Deklarasi konstanta : Const [tipe_data][nama_konstanta]=[nilai] Contoh : Const char konstantaku=0x10; Deklarasi variabel : [tipe_data][nama_variabel]=[nilai_awal] Contoh : Char variabelku; Char variabelku=0x20; Bit variabel_bit; Bit variabel_bit=1; Pada deklarasi variabel, [nilai_awal] bersifat operasional sehingga boleh diisi dan boleh tidak diisi. Nilai_awal merupakan nilai default variabel tersebut dan jika tidak diisi maka nilai defaultnya adalah 0 nol. Beberapa variabel dengan tipe yang sama dapat dideklarasikan dalam satu baris seperti contoh berikut : Char data_a, data_b, data_c; 3. Komentar Komentar adalah tulisan yang tidak dianggap sebagau bagian dari tubuh 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 ’’ sedangkan komentar yang lebih dari satu baris diawali dengan ’’ dan diakhiri dengan ’’. Contoh : Ini adalah komentar satu baris Sedangkan yang ini adalah komentar yang lebih dari satu baris Universitas Sumatera Utara Selain dihunakan untuk memberikan keterangan program, komentar juga dapat digunakan untuk membantu dalam pengujian program yaitu dengan menon-aktifkan dan mengaktifkan kembali bagian program tertentu selama proses pengujian. 4. Pengarah Preprosessor Pengarah preprosessor digunakan untuk mendefenisikan prosessor yang digunakan, dalam hal ini adalah untuk mendefenisikan jenis mikrokontroller yang digunakan. Dengan pengarah preprosesor ini maka pendeklarasian register-register dan penamaannya dilakukan pada file yang lain yang disisipkan dalam program utama dengan sintaks sebagai berikut : include nama_preprosessor Contoh : include mega8535.h 5. Pernyataan Pernyataan adalah satu buah instruksi lengkap berdiri sendiri. PORTC = 0x0F; Pernyataan diatas merupakan sebuah instruksi untuk mengeluarkan data 0x0F ke Port C. Contoh sebuah blok pernyataan : { PORTA=0x00; pernyataan_1 PORTB=0x0F; pernyataan_2 PORTC=0xFF; pernyataan_3 } 6. Operator Aritmatika Operator aritmatika adalah beberapa operator yang digunakan untuk melakukan perhitungan aritmatika. Tabel 2.5 Operator Aritmatika Operator Keterangan + Operator untuk operasi penjumlahan - Operator untuk operasi pengurangan Operator untuk operasi perkalian Universitas Sumatera Utara Operator untuk operasi pembagian Operator untuk operasi sisa pembagian 7. Operator Logika Operator logika digunakan untuk membentuk suatu logika atas dua buah kondisi atau lebih. Berikut ini adalah tabel operator logika : Tabel 2.6 Operator Logika Operator Keterangan Operator untuk logika AND Ι Ι Operator untuk logika OR Operator untuk logika NOT Contoh : if a==b c=d = 0xFF; Pernyataan diatas terdiri dari 2 buah kondisi yaitu a==b dan c=d yang keduanya dihubungkan dengan logika AND. Jika logika yang dihasilkan benar maka perintah PORTC = 0xFF akan dikerjakan dan jika salah tidak akan dikerjakan. 8. Operator Penambahan dan Pengurangan Operator penambahan dan pengurangan adalah operator yang digunakan untuk menaikkan atau menurunkan nilai sebuah variabel dengan selisih 1. Tabel 2.7 Operator Penambahan dan Pengurangan Operator Keterangan ++ Operator untuk penambahan nilai variabel dengan 1 -- Operator pengurangan nilai variabel dengan 1 Contoh : a = 1; b = 5; Universitas Sumatera Utara a++; b--; Maka operator a++ akan mengubah variable a dari 1 menjadi 2 dan operator b—akan mengubah variable b dari 5 menjadi 4. 9. Pernyataan If Pernyataan If digunakan untuk melakukan pengambilan keputusan terhadap dua buah kemungkinan yaitu mengerjakan suatu blok pernyataan atau tidak. Bentuk pernyataan If adalah : if kondisi { blok pernyataan yang akan dikerjakan jika kondisi if terpenuhi } Contoh : if PINA0x80 { Dataku=PINA; PORTC=0xFF; } Perntataan if diatas akan mengecek apakah data yang terbaca pada Port A PINA nilainya lebih dari 0x80 atau tidak, jika ya maka variable dataku diisi dengan nilai PINA dan data 0xFF dikeluarkan ke PORT C. Apabila dalam blok pernyataan hanya terdapat satu pernyataan saja maka tanda { dan } dapat dihilangkan seperti : if PINA0x80 PORTC=0xFF;

2.7.2 CodeVisionAVR

CodeVisionAVR merupakan salah satu software compiler yang khusus digunakan untuk mikrokontroller keluarga AVR. Meskipun CodeVisionAVR termasuk software komersial, namun kita tetap dapat menggunakannya dengan mudah karena terdapat Universitas Sumatera Utara versi evaluasi yang disediakan secara gratis walaupun dengan kemampuan yang dibatasi. Dari bebarapa software kompiler C yang pernah digunakan, CodeVisionAVR merupakan yang terbaik jika dibandingkan dengan kompiler-kompiler yang lain karena memiliki beberapa kelebihan yang dimiliki oleh CodeVisionAVR antara lain : 1. Menggunakan IDE Integrated Devvelopment Environment 2. Fasilitas yang disediakan lengkap mengedit program, mengkompile program, mendownload program serta tampilannya terlihat menarik dan mudah dimengerti 3. Mampu membangkitkan kode program secara otomatis dengan menggunakan fasilitas CodeWizardAVR 4. Memiliki fasilitas untuk mendownload program langsung dari CodeVisionAVR dengan menggunakan hardware khusus seperti Atmel STK500, Kanda System STK200+300 dan bebarapa hardware lain yang telah didefenisikan oleh CodeVisionaAVR 5. Memiliki fasilitas debugger sehingga dapat menggunakan software compiler lain untuk mengecek kode assemblernya, contoh AVRStudio 6. Memiliki terminal komunikasi serial yang terintegrasi dalam CodeVisionAVR sehingga dapat digunakan untuk membantu pengecekan program yang telah dibuat khususnya yang menggunakan fasilitas komunikasi serial USART. Gambar 2.16 Tampilan CodeVisionAVR Universitas Sumatera Utara BAB III PERANCANGAN SISTEM

3.1 Perancangan Alat