laporan lcd1 tyas

Upload: tys-chusmah

Post on 10-Mar-2016

235 views

Category:

Documents


0 download

DESCRIPTION

laporan lcd mikrokontroler

TRANSCRIPT

  • LAPORAN PRAKTIKUM

    MIKROKONTROLLER

    Pemrograman Mikrokontroller Teraplikasi

    pada LCD 16 x 2

    OLEH:

    KHUSMAH AYUNING TYAS

    P2.31.38.1.14.051

    KELAS:

    C1

    JURUSAN TEKNIK ELEKTROMEDIK

    POLITEKNIK KESEHATAN KEMENKES JAKARTA II

    JAKARTA

    2015

  • Praktikum VI: Pemrograman Mikrokontroller Teraplikasi

    Pada LCD 16 x 2

    Tujuan Praktikum:

    1. Mahasiswa dapat menuliskan dan menampilkan karakter pada LCD 16x2

    2. Mahasiswa dapat mengkolaborasikan perintah keluaran pada LCD 16x2

    dengan tombol inputan

    Percobaan I

    1. Jalankan program CodeVision AVR

    2. Pada CodeWizard AVR , langsung pilih Icon Alphanumeric LCD. Beri tanda centang dan Sesuaikan dengan Code Wizard di samping

    3. Lalu pilih Icon Generate program, save and exit. Simpan file di lokasi

    tertentu dan beri file tersebut. Lakukan penyimpanan dengan nama file yang

    sama sebanyak 3x

    4. Setelah muncul program windows, di atas while(1) tuliskan program

    berikut

    lcd_init(16);

    lcd_gotoxy(0,0);

    lcd_putchar('1');

    lcd_putsf("2345");

    while (1)

    {

    // Place your code here

    }

    }

  • 3

    5. Compile dan run the chip program. Perhatikan apa yang terjadi! Jelaskan !

    Pada per

    Pada percobaan I, buatlah programmnya terlebih dahulu

    agar mendapatkan output sesuai dengan yang kita inginkan.

    Buatlah coding diatas while (1) seperti berikut :

    lcd_init(16);

    lcd_gotoxy(0,0);

    lcd_putchar('1');

    lcd_putsf("2345");

    while (1)

    {

    }

    }

    Setelah selesai membuat program, maka jalankan lah program

    yang telah dibuat dengan Compile dan run the chip program.

    lcd_init(16); merupakan inisialisasi LCD dengan jumlah kolom

    sebesar 16 karakter

    lcd_gotoxy(0,0); merupakan Posisi display (kolom ke 0, baris ke 0) pada LCD

    lcd_putchar('1');merupakan penulisan satu karakter 1pada LCD

    lcd_putsf("2345"); merupakan penulisan string (beberapa karakter) yang merupakan konstanta ("2345")ke LCD

    Dari program tersebut di atas, maka output yang terjadi pada

    LCD adalah tampilan konstanta 12345 pada kolom ke 0 dan

    baris ke 0. Konstanta tersebut muncul terus menerus,

    dikarenakan adanya while (1)pada program.

  • 4

    Lampiran foto

  • 5

    Percobaan II

    1. Dengan langkah yang sama, buatlah program berikut!

    lcd_init(16);

    while (1)

    { lcd_gotoxy(0,0);

    lcd_putsf("01234");

    delay_ms(500);

    lcd_clear();

    delay_ms(500);

    }

    }

    2. Compile dan run the chip program. Perhatikan apa yang terjadi!Jelaskan!

    Pada percobaan II,sama seperti percobaan sebelumnya

    yaitu buatlah programmnya terlebih dahulu agar mendapatkan

    output sesuai dengan yang kita inginkan. Buatlah coding di

    bawah while (1) seperti berikut :

    lcd_init(16);

    while (1)

    { lcd_gotoxy(0,0);

    lcd_putsf("01234");

    delay_ms(500);

    lcd_clear();

    delay_ms(500);

    }

    }

    Setelah selesai membuat program, maka jalankan lah program

    yang telah dibuat dengan Compile dan run the chip

    program.

    - lcd_init(16); merupakan inisialisasi LCD dengan jumlah

    kolom sebesar 16 karakter

    - lcd_gotoxy(0,0); merupakan Posisi display (kolom ke 0, baris ke 0) pada LCD

    - lcd_putsf("01234"); merupakan penulisan string (beberapa karakter) yang merupakan konstanta ("01234")ke LCD

    - delay_ms(500);merupakan waktu tunda selama 500ms

    - lcd_clear();merupakan untuk menghapus tampilan di LCD

    sesuai dengan waktu tundanya (delay_ms)

    Dari program tersebut di atas, maka output yang terjadi pada

    LCD adalah tampilan konstanta 01234 pada kolom ke 0 dan

    baris ke 0. Konstanta tersebut muncul selama 500 ms kemudian

    akan dihapus selama 500ms lalu kembali lagi ke kondisi awal

    yaitu konstanta 01234 ditampilkan selama 500ms dan

    seterusnya. Kondisi tersebut terus berulang (terjadi

    looping), dikarenakan adanya while (1)pada program.

  • 6

    Lampiran foto

  • 7

    Percobaan III

    Buatlah program yang menampilkan nama anda di baris pertama dan NIM anda di baris

    kedua. Kedua tampilan tersebut berada di posisi tengah dan berkedip!

    lcd_init(16);

    while (1)

    { lcd_gotoxy(0,0);

    lcd_putsf("KHUSMAH A. TYAS");

    lcd_gotoxy(2,1);

    lcd_putsf("P23138114051");

    delay_ms(500);

    lcd_clear();

    delay_ms(500);

    }

    }

    Tulis Programnya

  • 8

    Lampiran foto

  • 9

    Penjelasan

    Pada percobaan III, jika ingin membuat nama dan NIM pada LCD

    maka pastikan bahwa kita membuat programnya terlebih dahulu.

    Sebagai contoh program nama dan NIM dapat anda lihat pada

    bagian sebelumnya yaitu pada bagian Tulis programnya!

    - lcd_init(16); merupakan inisialisasi LCD dengan jumlah kolom

    sebesar 16 karakter

    - lcd_gotoxy(0,0); merupakan Posisi display (kolom ke 0, baris

    ke 0) pada LCD

    - lcd_putsf("KHUSMAH A. TYAS");merupakan penulisan string atau

    beberapa karakter ("KHUSMAH A. TYAS")pada program LCD

    - lcd_gotoxy(2,1); merupakan Posisi display (kolom ke 2, baris

    ke 1) pada LCD

    - lcd_putsf("P23138114051"); merupakan penulisan string atau

    beberapa karakter ("P23138114051" pada program LCD

    - delay_ms(500);merupakan waktu tunda selama 500ms

    - lcd_clear();merupakan untuk menghapus tampilan di LCD sesuai

    dengan waktu tundanya (delay_ms)

    Pada percobaan III ini, maka LCD akan menampilkan KHUSMAH A.

    TYAS pada kolom ke 0 dan baris ke 0 serta P23138114051 pada

    kolom ke 2 dan baris ke 1. Kedua tampilan tersebut muncul

    secara bersamaan pada waktu tunda selama 500ms kemudian

    tampilan tersebut akan dihapus selama 500ms kemudian tampilan

    keduanya akan muncul kembali dan seterusnya. Kondisi tersebut

    akan terus berulang (looping) dikarenakan adanya while (1) dan

    tidak dibatasi oleh statement lain.

  • 10

    Percobaan IV

    1. Buat project baru

    2. Buatlah program seperti di bawah ini dimulai dari lcd_init(16)!

    lcd_init(16);

    lcd_gotoxy(0,0);

    lcd_putsf("data");

    while (1)

    { lcd_gotoxy(5,0);

    lcd_putsf("TES");

    delay_ms(500);

    lcd_gotoxy(5,0);

    lcd_putsf("OK ");

    delay_ms(500);

    }

    }

    3. Compile dan run the chip program. Perhatikan apa yang terjadi disaat PIND.2

    ditekan dan dilepas. Perhatikan juga disaat PIND.3 ditekan dan dilepas! Jelaskan !

    Pada pencobaan IV ini sama seperti pencobaan sebelumnya, program

    memiliki #include berfungsi untuk mengatur waktu pada

    program sesuai dengan keinginan kita.

    Pilih Alphanumeric LCD untuk menyambungkan LED dengan program.

    Untuk menggunakan fungsi-fungsi LCD, program diawali dengan

    #include

    lcd_init(16);

    Statement diatas merupakan inisialisasi LCD. LCD yang digunakan

    adalah LCD 16x2 sehingga jumblah kolomnya adalah 16.

    lcd_gotoxy(0,0); => data

    lcd_gotoxy(5,0); => TES

    lcd_gotoxy(5,0); => OK

    Statement diatas merupakan posisi display pada LCD, sehingga data akan muncul di kolom ke-0 dan baris ke-0, TES akan muncul di

    kolom ke-5 dan baris ke-0, dan OK akan muncul di kolom ke-5 dan

    baris ke-0. TES dan OK akan muncul bergantian.

    lcd_putsf("data");

    lcd_putsf("TES");

    lcd_putsf("OK");

    Statement diatas untuk menulis string (beberapa karakter) yang

    merupakan konstanta ke LCD yaitu data, TES, dan OK.

    Sehingga program akan dimulai dengan data TES selama 500ms lalu

    di teruskan data OK selama 500ms lalu kembali lagi keawal dan

    begitu seterusnya (looping).

  • 11

    Lampiran Foto

  • 12

    Percobaan V

    #include #include #include #include int i; char y; char buff[30]; void main(void) { PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0x00; PORTC=0xff; DDRC=0xff; PORTD=0xff; DDRD=0x00;

    Compile dan run the chip program. Perhatikan apa yang terjadi disaat PIND.2 ditekan

    dan dilepas. Perhatikan juga disaat PIND.3 ditekan dan dilepas! Jelaskan !

    lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("Count D2="); lcd_gotoxy(0,1); lcd_putsf("Count D3="); while (1) { if ( PIND.2==0) {i++ ; while (PIND.2==0); delay_ms(500); } sprintf(buff,"%d",i); lcd_gotoxy(10,0); lcd_puts(buff); }

    Pada pencobaan ini sama seperti pencobaan sebelumnya, program

    memiliki #include berfungsi untuk mengatur waktu pada

    program sesuai dengan keinginan kita.

    PIND berfungsi sebagai input karena diberikan nilai 0.

    Pilih Alphanumeric LCD untuk menyambungkan LED dengan

    program.Untuk menggunakan fungsi-fungsi LCD, program diawali

    dengan #include

    lcd_init(16);

    Statement diatas merupakan inisialisasi LCD. LCD yang

    digunakan adalah LCD 16x2 sehingga jumblah kolomnya adalah 16.

    lcd_gotoxy(0,0); => Count D2

    lcd_gotoxy(0,1); => Count D3

    Statement diatas merupakan posisi display pada LCD, sehingga Count D2 akan muncul di kolom ke-0 dan baris ke-0 dan Count D3

    akan muncul di kolom ke-0 dan baris ke-1

    lcd_putsf("Count D2=");

    lcd_putsf("TES");

    lcd_putsf("OK");

    Statement diatas untuk menulis string (beberapa karakter) yang

    merupakan konstanta ke LCD yaitu data, TES, dan OK.

    Sehingga program akan dimulai dengan data TES selama 500ms

    lalu di teruskan data OK selama 500ms lalu kembali lagi keawal

    dan begitu seterusnya.

  • 13

    Lcd_putsf(Count D3=);

    Statement diatas untuk menulis string (beberapa karakter)

    yang merupakan konstanta ke LCD yaitu Count D2= dan Count D3=

    //increment dengan tombol

    {if ( PIND.2==0)

    {i++ ;

    while (PIND.2==0);

    delay_ms(500);

    }

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

    lcd_gotoxy(10,0);

    lcd_puts(buff);

    }

    Program akan berjalan jika PIND.2 ditekan atau berfungsi

    sebagai input, program akan berjalan counting up maka Count

    D2 = 0 akan berjalan menjadi Count D2 = 1, dan begitu

    seterudnya akan terjadi counting up tanpa batas.

  • 14

    Lampiran Foto

    Percobaan VI

  • 15

    Pembatasan counting hingga keadaan tertentu {if ( PIND.2==0) {i++ ; while (PIND.2==0); delay_ms(500); } sprintf(buff,"%d",i); lcd_gotoxy(10,0); lcd_puts(buff); } if (i>=5) {PORTC=0x00; } } }

    Compile dan run the chip program. Perhatikan apa yang terjadi disaat PIND.2 ditekan

    dan dilepas. Perhatikan juga disaat PIND.3 ditekan dan dilepas! Jelaskan !

    \

    Pada pencobaan ini sama seperti pencobaan sebelumnya, program

    memiliki #include berfungsi untuk mengatur waktu pada

    program sesuai dengan keinginan kita.

    PIND berfungsi sebagai input karena diberikan nilai 0.

    Pilih Alphanumeric LCD untuk menyambungkan LED dengan

    program.Untuk menggunakan fungsi-fungsi LCD, program diawali

    dengan #include

    lcd_init(16);

    Statement diatas merupakan inisialisasi LCD. LCD yang digunakan

    adalah LCD 16x2 sehingga jumblah kolomnya adalah 16.

    lcd_gotoxy(0,0); => Count D2

    lcd_gotoxy(0,1); => Count D3

    Statement diatas merupakan posisi display pada LCD, sehingga Count D2 akan muncul di kolom ke-0 dan baris ke-0 dan Count D3

    akan muncul di kolom ke-0 dan baris ke-1

    lcd_putsf("Count D2=");

    lcd_putsf("TES");

    lcd_putsf("OK");

    Statement diatas untuk menulis string (beberapa karakter) yang

    merupakan konstanta ke LCD yaitu data, TES, dan OK.

  • 16

    Lcd_putsf(Count D3=);

    Statement diatas untuk menulis string (beberapa karakter)

    yang merupakan konstanta ke LCD yaitu Count D2= dan Count D3=

    {if ( PIND.2==0) {i++ ;

    while (PIND.2==0);

    delay_ms(500);

    }

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

    lcd_gotoxy(10,0);

    lcd_puts(buff);

    }

    if (i>=5)

    {PORTC=0x00;

    }

    }

    Program akan berjalan jika PIND.2 ditekan atau berfungsi

    sebagai input, program akan berjalan counting up maka count

    D2 = 0 akan berjalan menjadi Count D2 = 1, dan akan couting

    up seterusnya. Pada saat count D2= 5 dan seterusnya PINC.0

    sampai PINC.7 akan menyala semua karena diberi nilai 0/aktif

    low.

  • 17

    Lampiran Foto

  • 18

    Percobaan VII

    //counting up dan counting down dimanapada angka 5 muncul ok dan selain itu OK.nya HILANG if ( PIND.2==0) {i++ ; while (PIND.2==0){} delay_ms(500); } if ( PIND.3==0) {i-- ; while (PIND.3==0){} delay_ms(500); } if(i

  • 19

    Compile dan run the chip program. Perhatikan apa yang terjadi disaat PIND.2 ditekan

    dan dilepas. Perhatikan juga disaat PIND.3 ditekan dan dilepas! Jelaskan !

    Pada pencobaan VII ini, sama seperti pencobaan sebelumnya,

    program memiliki #include berfungsi untuk mengatur waktu

    pada program sesuai dengan keinginan kita.

    PIND berfungsi sebagai input karena diberikan nilai 0.

    Pilih Alphanumeric LCD untuk menyambungkan LED dengan

    program.Untuk menggunakan fungsi-fungsi LCD, program diawali

    dengan #include

    lcd_init(16);

    Statement diatas merupakan inisialisasi LCD. LCD yang digunakan

    adalah LCD 16x2 sehingga jumblah kolomnya adalah 16.

    lcd_gotoxy(0,0); => Count D2

    lcd_gotoxy(0,1); => Count D3

    Statement diatas merupakan posisi display pada LCD, sehingga Count D2 akan muncul di kolom ke-0 dan baris ke-0 dan Count D3 akan

    muncul di kolom ke-0 dan baris ke-1

    lcd_putsf("Count D2=");

    Lcd_putsf(Count D3=);

    Statement diatas untuk menulis string (beberapa karakter) yang

    merupakan konstanta ke LCD yaitu Count D2= dan Count D3=

    Program akan berjalan jika PIND.2 ditekan atau berfungsi sebagai

    input, program akan berjalan counting up maka Count D2 = 0 akan

    berjalan menjadi Count D2 = 1 tanpa ada tulisan OK lalu pada saat

    Count D2=5 maka tulisan OK akan muncul lalu selanjutnya Count

    D2=6 tulisan OK akan hilang lagi

    Lalu jika PIN.D 3 ditekan atau berfungsi sebagai input, program

    akan berjalan counting down.

  • 20

    Lampiran Foto