kal kula tor

Upload: ryanoavierro

Post on 13-Oct-2015

43 views

Category:

Documents


0 download

DESCRIPTION

jklmn

TRANSCRIPT

II. JUDUL

KALKULATOR SEDERHANA SATUAN 2.1 Tujuan Penulisan Dapat menjalankan alat kalkulator dalam pemakaian dengan baik dan benar.

Menerapkan aplikasi dalam pembelajaran mikrokontroler Tujuan di buat atau disusunya Makalah ini yaitu untuk memenuhi nilai ujian Mikrokontroller baik teori maupun praktek semester empat.Selain itu, penulis berharap di buatnya makalah ini bukan hanya untuk tugas yang di berikan semata, akan tetapi bisa membantu kita semua dalam hal mempelajari ilmu pengetahuan yang khususnya Pemograman. Harapan penulis yaitu semoga makalah ini tidak hanya bermanfaat bagi penulis akan tetapi sangat-sangat bermanfaat khususnya juga bagi para pembaca atau kita semua yang membutuhkan untuk referensi ataupun salah satu sarana untuk menambah wawasan dalam hal ilmu pengetahuan yang khususnya Pemograman Semoga makalah ini bisa bermanfaat bagi penulis khsususnya dan kita semua amiin.

III. DASAR TEORI

Kalkulator adalah suatu alat pengukuran relative kecil namun memiliki manfaat yang sangat besar dalam melakukan perhitungan, baik perhitungan biasa, perhitungan akutansi maupun perhitungan statistik.Cara kerja dari kalkulator saat tombol ditekan, kalkulator memperlihatkan yang ditekan dengan cepat dan hasilnya akan tampak pada layar. Ketika melakukan perhitungan,kalkulator tidak menggunakan angka, tetapi kode khusus. Tombol yang ditekan mengirim arus listrik ke otak kalkulator yang berbentuk alat listrik yang sangat kecil, terbuat dari silicon yang disebut mikro chip. Alat ini mengatur aliran listrik pada kalkulator. Mikro chip menghasilkan kode elektrik yang berupa angka. Setiap tombol pada kalkulator menyimpan dan memberi kode sinyal yang berbeda beda untuk semua angka. Mikro chip juga menyimpan kode untuk setiap perhitungan. Saat tombol = ditekan, mikro chip mengumpulkan semua kode hingga didapatlah hasil yang akan ditampilkan pada layar. Semua kode sinyal ini berputar sangat cepat sehingga kalkulator dapat melakukan perhitungan juga dengan cepat.Kode sinyal yang di kirim dari mikrochip ke layar adalah arus listrik yang mengantar dan kemudian putus. Sehingga bagian angka itu akan ada yang gelap dan terang. Ini juga akibat adanya zat kimia bernama LCD (Liquid Crystal Display). Crystal cair ini akan berubah ketika dialiri listrik. Tanda kode dari ,microchip angka tampak pada layar. Semua kode sinyal pada kalkulator tersambung dan terputus seperti ini. Karena kode mempunyai dua tanda, ON (nyala) dan OFF (mati), maka disebut kode binary. Bi berarti dua demikian arti artikel tentang kalkulator.3.1 LCD

Lcd merupakan salah satu alat elektronik yang digunakan untuk menampilkan angka ataupun tulisan pada layar.Berikut ini adalah contoh gambar dari lcd 2x16.

NoNama PinFungsi

1VSSGround Voltage

2VCC+5 Volt

3VEEContrast Voltage

4RSRegister Select

0 = Intruction Register

1 = Data Register

5R/WRead/Write, to Choose Write/Read

0 = Write Mode

1 = Read Mode

6EEnable

0 = Start to Lacht Data to LCD Character

1 = Disable

7DB0Data Bit ke-0 (LSB)

8DB1Data Bit ke-1

9DB2Data Bit ke-2

10DB3Data Bit ke-3

11DB4Data Bit ke-4

12DB5Data Bit ke-5

13DB6Data Bit ke-6

14DB7Data Bit ke-7 (MSB)

15BPLBack Plane Light

16GNDGround Voltage

Untuk dapat mengakses LCD 2x16 kita harus mengkonfigurasikan pin dari LCD dengan pin I/O mikrokontroler tersebut. Konfigurasi dari pin-pin tersebut sebagai berikut:

Menampilkan tulisan pada layar LCD 2X16 bukanlah hal yang sulit untuk saat ini. Karena sudah ada suatu software yang sangat membantu kita dalam mempelajari tentang LCD khususnya ukuran 2X16 yaitu menggunakan simulasi melalui software proteus. Selain itu dalam pembuatan program penampil LCD 2X16 tersebut kita dapat menggunakan software cvavr atau codevision yang dikenal sangat praktis dan flexibel serta mudah dipelajari karena menggunakan bahasa C. Pin LCDKeteranganPin MikrokontrollerKeterangan

1GND11GND

2+5V10VCC

4RS22Port C.0

5RD23Port C.1

6EN24Port C.2

11D426Port C.4

12D527Port C.5

13D628Port C.6

14D729Port C.7

Untuk membuat program dan mengkompail agar program tersebut dapat didownload ke mikrokontroler dapat digunakan software CodeVisionAVR, software ini mendukung bahasa pemrograman C.

Di dalam CodeVisionAVR telah menyediakan fungsi pustaka kusus untuk menagani pengaksesan modul LCD yaitu fungsi pustaka lcd.h. Beberapa fungsi yang dimiliki fungsi lcd.h adalah sebagai berikut:

void lcd_init (unsigned char lcd_columns)Fungsi ini berfungsi untuk menginisialisasi modul LCD yang meliputi sub rutin untuk menghapus tampilan LCD, meletakkan posisi kursor di baris 0 dan kolom 0 serta mendefinisikan jumlah kolom LCD sesuai isi variable lcd_columns. Fungsi ini dipangeil pertama kali sebelum fungsi-fungsi yang lain digunakan.

void lcd_clear (void)Fungsi inidigunakan untuk menghapus LCD dan meletakkan posisi kursor kembali ke baris 0 dan kolom 0.

void lcd_gotoxy (unsigned char x, unsigned char y)Fungsi ini digunakan untuk meletakkan posisi kursor ke baris y dan kolom x masing-masing sesuai isi variable y dan x. Penomoran baris dan kolom selalu dimulai dari 0 untuk pojok kiri atas. Contoh: lcd_gotoxy(8,0) berarti meletakkan posisi kursor pada baris ke 8 kolom 0

void lcd_putchar (char c)Fungsi ini berguna untuk menampilkan karakter sesuai isi variable c ke LCD dengan posisi kursor saat ini.

void lcd_puts (char *str)Fungsi ini digunakan untuk menampilkan karakter yang ada di memori RAM pada alamat yang ditunjuk oleh pointer str ke LCD dengan posisi kursor saat ini.

void lcd_putsfr (char flash *str)Fungsi ini digunakan untuk menampilkan karakter yang ada di memori Flash pada alamat yang ditunjuk oleh pointer str ke LCD dengan posisi kursor saat ini. 3.2. Matrix Keypad 44 Keypad adalah bagian penting dari suatu perangkat elektronika yang membutuhkan interaksi manusia.Keypad berfungsi sebagai interface antara perangkat (mesin) elektronik dengan manusia atau dikenal dengan istilah HMI (Human Machine Interface). Matrix keypad 44 pada artikel ini merupakan salah satu contoh keypad yang dapat digunakan untuk berkomunikasi antara manusia dengan mikrokontroler. Matrix keypad 44 memiliki konstruksi atau susunan yang simple dan hemat dalam penggunaan port mikrokontroler. Konfigurasi keypad dengan susunan bentuk matrix ini bertujuan untuk penghematan port mikrokontroler karena jumlah key (tombol) yang dibutuhkan banyak pada suatu sistem dengan mikrokontroler. Konstruksi matrix keypad 44 untuk mikrokontroler dapat dibuat seperti pada gambar berikut.Konstruksi Matrix Keypad 44 Untuk Mikrokontroler

Konstruksi matrix keypad 44 diatas cukup sederhana, yaitu terdiri dari 4 baris dan 4 kolom dengan keypad berupa saklar push buton yang diletakan disetiap persilangan kolom dan barisnya. Rangkaian matrix keypad diatas terdiri dari 16 saklar push buton dengan konfigurasi 4 baris dan 4 kolom. 8 line yang terdiri dari 4 baris dan 4 kolom tersebut dihubungkan dengan port mikrokontroler 8 bit. Sisi baris dari matrix keypad ditandai dengan nama Row1, Row2, Row3 dan Row4 kemudian sisi kolom ditandai dengan nama Col1, Col2, Col3 dan Col4. Sisi input atau output dari matrix keypad 44 ini tidak mengikat, dapat dikonfigurasikan kolom sebagi input dan baris sebagai output atau sebaliknya tergantung programernya.Proses Scaning Matrix Keypad 44 Untuk Mikrokontroler

Proses Scaning Matrix Keypad 44 Untuk Mikrokontroler Proses scaning untuk membaca penekanan tombol pada matrix keypad 44 untuk mikrokontroler diatas dilakukan secara bertahap kolom demi kolom dari kolom pertama sampai kolom ke 4 dan baris pertama hingga baris ke 4. Program untuk scaning matrix keypad 44 dapat bermacam-macam, tapi pada intinya sama. Misal kita asumsikan keyapad aktif LOW (semua line kolom dan baris dipasang resistor pull-up) dan dihubungkan ke port mikrokontrolr dengan jalur kolom adalah jalur input dan jalur baris adalah jalur output maka proses scaning matrix keypad 44 diatas dapat dituliskan sebagai berikut.Mengirimkan logika Low untuk kolom 1 (Col1) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.Mengirimkan logika Low untuk kolom 2 (Col2) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.Mengirimkan logika Low untuk kolom 3 (Col3) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.Mengirimkan logika Low untuk kolom 4 (Col4) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111. Kemudian data pembacaan baris ini diolah sebagai pembacaan data penekanan tombol keypad. Sehingga tiap tombol pada matrix keypad 44 diatas dengan teknik scaning tersebut akan menghasilkan data penekanan tiap-tiap tombol sebagai berikut.SW1 = 0111 0111 SW9 = 0111 1101 SW2 = 1011 0111 SW10 = 1011 1101 SW3 = 1101 0111 SW11 = 1101 1101 SW4 = 1110 0111 SW12 = 1110 1101 SW5 = 0111 1011 SW13 = 0111 1110 SW6 = 1011 1011 SW14 = 1011 1110 SW7 = 1101 1011 SW15 = 1101 1110 SW8 = 1110 1011 SW16 = 1110 1110Data port mikrokontroler, misalkan pada SW2 = 1011 0111 tersebut terbagi dalam nible atas dan nible bawah dimana data nible atas (1011) merupakan data yang kita kirimkan sedangkan data nible bawah (0111) adalah data hasil pembacaan penekanan tombol keypad SW2 pada proses scaning matrix keypad 44 diatas.

IV. PEMBUATAN MODUL

Untuk menyelesaikan pembuatan modul dan laporan ini, penulis melakukan beberapa langkah perencanaan hingga diperoleh hasil yang diinginkan.

Adapun langkah langkah tersebut adalah : 4.1 Merancang rangkaian

Gambar 4.1. Rangkaian Simulasi Kalkulator4.2. Melakukan langkah kerjaAdapun langkah dari pembuatan modul diantaranya :

1. Mempersiapkan alat dan bahan. Sistem minimum AVR ATMega 8535 dan downloadernya LCD

Keypad 4x4

Socket Port

Kabel Pelangi

Pcb2. Melakukan pengujian dan pengamatan.

3. Melakukan perbaikan bila kemungkinan terjadi kerusakan.

4. Merancang tempat rangkaian atau chasing biar terlihat rapi dan bagus dan terhindar dari debuh.3.1. Program aplikasi kalkulator sederhana#include

#include

#include

// Alphanumeric LCD Module functions

#asm

.equ __lcd_port=0x15 ;PORTC

#endasm

#include

// Declare your global variables here

int key=20,step,op,a1,b1,c;

char buff[33];

unsigned char keypad( )

{

//Kolom 1==================

PORTB = 0b11110111;

if(PINB.7==0) {key=10; goto run;} //tambah

if(PINB.6==0) {key=15; goto run;} //sama dengan = Enter

if(PINB.5==0) {key=0; goto run;}

if(PINB.4==0) {key=14; goto run;} //ON = Cancel

//Kolom 2=================

PORTB = 0b11111011;

if(PINB.7==0) {key=13; goto run;} //kurang

if(PINB.6==0) {key=9; goto run;}

if(PINB.5==0) {key=8; goto run;}

if(PINB.4==0) {key=7; goto run;}

//Kolom 3=================

PORTB = 0b11111101;

if(PINB.7==0) {key=12; goto run;} //kali

if(PINB.6==0) {key=6; goto run;}

if(PINB.5==0) {key=5; goto run;}

if(PINB.4==0) {key=4; goto run;}

//Kolom 4=================

PORTB = 0b11111110;

if(PINB.7==0) {key=11; goto run;} //bagi

if(PINB.6==0) {key=3; goto run;}

if(PINB.5==0) {key=2; goto run;}

if(PINB.4==0) {key=1; goto run;}

run:

return key;

}

void main(void)

{

PORTB=0xF0;

DDRB=0x0F;

// LCD module initialization

lcd_init(16);

while (1)

{

if(step == 0)

{

key=keypad();

if(key < 10)

{

a1=key;

lcd_gotoxy(0,0);

sprintf(buff,"%d ",a1);

lcd_puts(buff);

step = 1;

}

else step=0;

}

if(step == 1)

{

key=keypad();

if(key == 10)

{

op=1; //Tambah

sprintf(buff,"+ ");

lcd_puts(buff);

step = 2;

}

if(key == 13)

{

op=2; //Kurang

sprintf(buff,"- ");

lcd_puts(buff);

step = 2;

}

if(key == 12)

{

op=3; //Kali

sprintf(buff,"* ");

lcd_puts(buff);

step = 2;

}

if(key == 11)

{

op=4; //Bagi

sprintf(buff,"/ ");

lcd_puts(buff);

step = 2;

}

}

if(step == 2)

{

key=keypad();

if(key < 10)

{

b1=key;

sprintf(buff,"%d ",b1);

lcd_puts(buff);

step = 3;

}

else step=2;

}

if(step == 3)

{

if(op == 1)

{

c=a1+b1;

sprintf(buff,"= %d ",c);

lcd_puts(buff);

step = 4;

}

if(op == 2)

{

c=a1-b1;

sprintf(buff,"= %d ",c);

lcd_puts(buff);

step = 4;

}

if(op == 3) {

c=a1*b1;

sprintf(buff,"= %d ",c);

lcd_puts(buff);

step = 4;

}

if(op == 4)

{

c=a1/b1;

sprintf(buff,"= %d ",c);

lcd_puts(buff);

step = 4;

}

step = 4;

}

if(step == 4)

{

key=keypad();

if(key == 14)

{

lcd_clear();

step = 0;

}

else step=4;

}

};

}V.GAMBAR RANGKAIAN

VI .PRINSIP KERJA RANGKAIANCara kerja dari kalkulator adalah:

Ketika tombol (push button) ditekan, kalkulator memperlihatkan yang ditekan dengan cepat dan hasilnya akan tampak pada layar. Ketika melakukan perhitungan,kalkulator tidak menggunakan angka, tetapi kode khusus. Tombol yang ditekan mengirim arus listrik ke otak kalkulator yang berbentuk alat listrik yang sangat kecil, terbuat dari silicon yang disebut mikro chip. Alat ini mengatur aliran listrik pada kalkulator. Mikro chip menghasilkan kode elektrik yang berupa angka. Setiap tombol pada kalkulator menyimpan dan memberi kode sinyal yang berbeda beda untuk semua angka. Mikro chip juga menyimpan kode untuk setiap perhitungan. Saat tombol = ditekan, mikro chip mengumpulkan semua kode hingga didapatlah hasil yang akan ditampilkan pada layar. Semua kode sinyal ini berputar sangat cepat sehingga kalkulator dapat melakukan perhitungan juga dengan cepat.

Kode sinyal yang di kirim dari mikrochip ke layar adalah arus listrik yang mengantar dan kemudian putus. Sehingga bagian angka itu akan ada yang gelap dan terang. Ini juga akibat adanya zat kimia bernama LCD (Liquid Crystal Display). Crystal cair ini akan berubah ketika dialiri listrik. Tanda kode dari ,microchip angka tampak pada layar. Semua kode sinyal pada kalkulator tersambung dan terputus seperti ini. Karena kode mempunyai dua tanda, ON (nyala) dan OFF (mati), maka disebut kode binary. Bi berarti dua demikian arti artikel tentang kalkulator. Adapun arus yang diunakan adalah sebesar 5 volt sampai 12 volt.VII .KESIMPULAN Jadi,kalkulator yang kami buat dengan menggunakan mikrokontroler at mega 8535 ini mencangkup penjumlahan,pengurangan,pembagian dan perkalian. Dengan kita menciptakan kalkulator ini kita dapat mengetahui tentang masing-masing bahan untuk membuat kalkulator seperti LCD,keypad,at mega 8535,bahasa pemrograman dan cara kerja dari kalkulator .DAFTAR PUSTAKA http://diary4share.blogspot.com/2009/10/iptek-struktur-fungsi-aplikasi-dan-cara.html http://artikel.iklankecil.com/kalkulator-cara-kerja-kalkulator.html http://rincest.blokspot.com/2010/09/kalkulator_15.html http://sutondoscript.blokspot.com/2011/12.html http://wikipedia-kalkulator.com

LAMPIRANDATA SHEET1