prosedur umum untuk

Upload: wakhidin-adyen

Post on 07-Feb-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 Prosedur umum untuk

    1/6

  • 7/21/2019 Prosedur umum untuk

    2/6

    PORTC, dan PORT D. Register digunakan untuk mengatur fungsi dari pin-pin pada tiap port.

    Register dapat dianalogikan sebagai kumpulan switch on/off yang digunakan untuk

    mengaktifkan fungsi apa yang akan dipakai dari port mikrokontroller. Pada setiap port pin

    terdapat 3 buah register 8 bit: DDRxn, PORTxn, dan PINxn.

    Register DDRxn digunakan untuk menentukan arah dari pin yang bersangkutan. Jika DDRxn

    diberikan nilai 1 (high), maka pin digunakan sebagai output. Jika DDRxn diberikan nilai 0(low), maka pin difungsikan sebagai input. Register PORTxn digunakan untuk mengaktifkan

    pull-up resistor (pada saat pin difungsikan sebagai input), dan memberikan nilai keluaran pin

    high/low (pada saat difungsikan sebagai output). PINxn merupakan register yang berfungsi

    untuk mengetahui keadaan tiap-tiap pin pada mikrokontroller. Register ini digunakan untuk

    membaca keadaan pin pada saat difungsikan sebagai input.

    Rangkaian Output LED dan Input Tombol

    Percobaan pertama adalah menyalakan LED sesuai dengan pola tertentu. Sesuai skema, LED

    dikonfigurasikan dalam posisi SINK, artinya LED menyala jika port yang bersesuaian diberi

    logika 0 (tegangan 0 volt atau dianggap ground). Demikian halnya dengan saklar tombol. Jika

    ditekan, maka port yang bersesuaian akan terhubung ke ground.

    Tugas : menyalakan LED yang terhubung ke port B, selang seling ON dan OFF dimulai dari

    port B yang paling besar (PORT B.7)

    Penyelesaian :

    1. Konfigurasikan PORT B sebagai keluaran

    2. Kirimkan urutan bilangan 1 0 1 0 1 0 1 0

    Pelaksanaan tanpa menggunakan CodeWizard AVR:

    1. Hubungkan PC dengan minimum system 8535 melalui port ISP. Nyalakan catu daya.

    2. Buka Codevision AVR, lakukan konfigurasi chip programmer. Pilih menuSetting>>Programmer, lalu pilih type Kanda System STK200+/300.

  • 7/21/2019 Prosedur umum untuk

    3/6

    3. Pilih menu File>>New, pilih Project.

    4. Jika ditawari untuk menggunakan CodeWizardAVR, pilih No saja dulu.

    5. Beri nama project baru dengan nama kenalan (tanpa )

    6. Buat file source C. Pilih menu File>> New, pilih Source.

    7. Ketikkan listing seperti ini.

    #include

    void main(void)

    {

    DDRB=0xFF;

    PORTB=0xFF;

    while(1)

    {

    PORTB=0xAA;

    }

    }8. Simpan dulu file C nya. Beri nama nocw saja.

    9. Lakukan konfigurasi project. Pilih menu Project>>Configure. Tekan tombol Add, lalu pilih

    file dengan nama nocw. Pilih tab C Compiler. Pada pilihan Chip pilih Atmega8535. Ubah

    Clock menjadi 4 MHz. Lalu pilih tab After Make, centang pilihan Program the Chip. Setelah

    semua selesai, klik OK.

    10. Simpan dulu filenya.

    11. Lakukan compile dengan menekan shift+F9. Jika tidak ada pesan error atau peringatan,

    maka klik Program. Tunggu sebentar, semoga tidak ada kesalahan teknis.

    12. Amati keluaran LED pada sismin.

    Pelaksanaan menggunakan CodeWizard AVR:

    1. Hubungkan PC dengan minimum system 8535 melalui port ISP. Nyalakan catu daya.

    2. Buka Codevision AVR, lakukan konfigurasi chip programmer. Pilih menu

    Setting>>Programmer, lalu pilih type Kanda System STK200+/300.

    3. Pilih menu File>>New, pilih Project.

    4. Jika ditawari untuk menggunakan CodeWizardAVR, pilih Yes.

    5. Pada tab Chip, pilih 8535 dengan clock 4 MHz.

    6. Pilih tab Ports, lalu pilih tab Port B. Setelah itu klik semua pilihan di bawah tulisan Data

    Direction dari In berubah menjadi Out. Klik juga semua pilihan di bawah tulisna Pull-

    up/Output Value dari 0 menjadi 1.

    7. Pilih menu File>>Generate, save and exit.8. Beri nama sourcenya dengan nama withcw

    9. Beri nama projectnya dengan nama kenalan2. juga file cwp-nya.

    10. Lihatlah, program awal sudah dibuatkan. Scroll ke bawah, amati tulisan DDRB dan

    PORT B. Bandingkan nilainya dengan listing program sebelumnya. Sama

    11. Scroll lagi ke bawah. Cari tulisan //place your code here. Di bawahnya tuliskan perintah

    PORTB=0xAA;

    12. Simpan dulu file C nya.

    13. Lakukan konfigurasi project. Pilih menu Project>>Configure. Lalu pilih tab After Make,

    centang pilihan Program the Chip. Setelah semua selesai, klik OK.

    14. Lakukan compile dengan menekan shift+F9. Jika tidak ada pesan error atau peringatan,

    maka klik Program. Tunggu sebentar, semoga tidak ada kesalahan teknis.15. Amati keluaran LED pada sismin.

  • 7/21/2019 Prosedur umum untuk

    4/6

    PENJELASAN

    1. Semua port 8 bit memiliki indeks 0 s/d 7. Misalkan PORTB.0, PORTB.1 s/d PORTB.7

    2. Indeks port yang paling besar merupakan bagian Most Significant Bit (MSB).

    3. Indeks port yang paling kecil merupakan bagian Least Significant Bit (LSB).

    4. Penulisan bilangan biner, yang paling kiri adalah MSB, dan sebaliknya.5. Biasakan menuliskan data dalam format Heksadesimal. Syntax-nya adalah 0xXX di mana

    XX merupakan bilangan heksadesimal. Misalkan dituliskan PORTB=0xAA, artinya kita

    memasukkan data AA atau 1 0 1 0 1 0 1 0 ke port B.

    6. DDRB=0xFF artinya kita memasukkan bilangan 1 1 1 1 1 1 1 1 ke Data Direction Register

    B, yang membuat semua pin B menjadi output.

    7. PORTB=0xFF artinya kita memasukkan bilangan 1 1 1 1 1 1 1 1 ke Register PORT B,

    yang membuat semua pin B menjadi berlogika high.

    8. Perintah #include artinya kita menggunakan file Header mega8535.h yang berisi perintah-

    perintah yang dapat dikenali oleh compiler. Nanti kita akan menggunakan header-header

    lainnya.

    9. void main(void) menunjukkan program utama.10. Tulisan yang berada di belakan tanda // dan berwarna biru dianggap sebagai komentar,

    dan tidak dijalankan dalam program. Demikian juga tulisan di antara tanda /* . */

    11. while (1) artinya adalah looping yang tanpa henti.

    LATIHAN 1. LAMPU BERKEDIP

    Masukkan listing berikut ini ke dalam 8535.

    #include

    #include

    void main()

    {

    DDRB=0xFF;

    while(1)

    {

    PORTC=0;

    delay_ms(1000);

    PORTC=0xFF;

    delay_ms(1000);

    }

    }

    PENJELASAN

    1. Pada program di atas, digunakan file header untuk mengijinkan digunakannya

    perintah/fungsi delay_ms(1000).

    2. Perintah ini artinya melakukan delay/penundaan dalam satuan milidetik, sebanyak data

    yang dimasukkan dalam ().

    3. Agar lama delaynya akurat, maka setting clock pada 8535 harus persis sama dengan nilai

    osilator kristal yang dipasang.

    TIPE DATA

    Tipe data yang dapat dioperasikan dalam C untuk aplikasi mikrokontroler adalah :

  • 7/21/2019 Prosedur umum untuk

    5/6

    1. byte. Mulai 0 s/d 255 (8 bit)

    2. char. Mulai -128 s/d 127 (8 bit)

    3. unsigned. Sama dengan byte. (8 bit)

    4. int. Mulai -32768 s/d 32767 (16 bit)

    5. Unsigned int. Mulai 0 s/d 65535 (16 bit)

    6. long int (int versi 32 bit)7. float dan double mulai 1,175e-38 s/d 3,402e38 (32 bit)

    VARIABEL

    Variabel Global, digunakan di seluruh program. Dideklarasikan di luar fungsi, di bagian

    paling atas. Saat program berjalan, jika tidak ditentukan, akan bernilai 0. Variabel Lokal,

    digunakan secara lokal di dalam fungsi tertentu. Dideklarasikan di dalam fungsi tersebut, dan

    tidak diinisialisasikan pada awal program berjalan. Variabel dalam bentuk Array, indeks

    paling kecilnya adalah 0.

    OPERATOR ARITMATIKA

    * Multiplication x*y kalikan x dengan y

    / Division x/y bagi x dengan y% Modulo x%y sisa x dibagi oleh y

    + Addition x+y jumlahkan x dan y

    - Subtraction x-y Kurangkan y dari x

    ++ Increment x++ Increment x setelahnya

    -- Decrement --x Decrement x sebelumnya

    - Negation -x Kalikan x dengan1

    OPERATOR LOGIKA.

    > Greater than x>y 1 jika terpenuhi

    >= Greater than or equal to x>=y 1 jika terpenuhi

    < Less than x

  • 7/21/2019 Prosedur umum untuk

    6/6

    }

    artinya jika expression bernilai true, statement dikerjakan. Kalau false, selesai.

    Struktur for

    For(expression1; expression2; expression3){

    Statement

    }

    Expression1 adalah inisialisasi, Expression3 adalah operasi atau fungsi yang dilakukan,

    Expression2 adalah pengujian. Selama Expression2 terpenuhi, statement dikerjakan. Jika

    tidak, selesai.

    LATIHAN 2. MEMBACA TOMBOL:

    #include#define tombol PIND

    void main()

    {

    DDRB=0xFF;

    DDRD=0x00;

    PORTD=0XFF;

    while(1)

    {

    if((tombol&0x01)==0) PORTB=0x55;

    if((tombol&0x02)==0) PORTB=0xAA;

    if((tombol&0x04)==0) PORTB=0x00;

    if((tombol&0x08)==0) PORTB=0xFF;

    }

    }

    PENJELASAN :

    1. Tombol dipasang di PORTD. Jika ditekan berlogika 0.

    2. Lampu LED dipasang di PORTB. Jika berlogika 0 akan menyala.

    Read more:http://belajar-dasar-pemrograman.blogspot.com/2013/04/dasar-pemrograman-

    atmega8535.html#ixzz31IjK1RtR

    http://belajar-dasar-pemrograman.blogspot.com/2013/04/dasar-pemrograman-atmega8535.html#ixzz31IjK1RtRhttp://belajar-dasar-pemrograman.blogspot.com/2013/04/dasar-pemrograman-atmega8535.html#ixzz31IjK1RtRhttp://belajar-dasar-pemrograman.blogspot.com/2013/04/dasar-pemrograman-atmega8535.html#ixzz31IjK1RtRhttp://belajar-dasar-pemrograman.blogspot.com/2013/04/dasar-pemrograman-atmega8535.html#ixzz31IjK1RtRhttp://belajar-dasar-pemrograman.blogspot.com/2013/04/dasar-pemrograman-atmega8535.html#ixzz31IjK1RtRhttp://belajar-dasar-pemrograman.blogspot.com/2013/04/dasar-pemrograman-atmega8535.html#ixzz31IjK1RtR