Top Banner
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 1 MODUL BELAJAR MIKRO AVR MENGGUNAKAN ATMEGA16A PERSIAPAN Dalam pemrograman mikrokontroler terdapat dua klasifikasi perangkat yang dibutuhkan, yang pertama adalah perangkat lunak (software) dan yang kedua adalah perangkat keras (hardware) Berikut ini adalah daftar software yang dibutuhkan sebelum memulai kegiatan programming menggunakan trainer AVR. 1. CodeVisionAVR2.05.03 2. USBASP (driver USB downloader) 3. ProgISP1.72 Bentuk fisik satu paket perangkat mikroAVR adalah sebagai berikut: Gambar 1 Trainer MikroAVR Gambar 2 USB downloader Gambar 3 NumPad
24

Percobaan atmega

Nov 19, 2015

Download

Documents

onlinejayacom

saya upload ini cuma untuk memenuhi syarat scribd yang menyusahkan, kita udah upload tapi dibuat untung sama scribd, capek deh.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 1

    MODUL BELAJAR MIKRO AVR MENGGUNAKAN

    ATMEGA16A

    PERSIAPAN

    Dalam pemrograman mikrokontroler terdapat dua klasifikasi perangkat yang dibutuhkan, yang

    pertama adalah perangkat lunak (software) dan yang kedua adalah perangkat keras (hardware)

    Berikut ini adalah daftar software yang dibutuhkan sebelum memulai kegiatan programming

    menggunakan trainer AVR.

    1. CodeVisionAVR2.05.03

    2. USBASP (driver USB downloader)

    3. ProgISP1.72

    Bentuk fisik satu paket perangkat mikroAVR adalah sebagai berikut:

    Gambar 1

    Trainer MikroAVR

    Gambar 2

    USB downloader

    Gambar 3

    NumPad

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 2

    INSTALASI SOFTWARE

    Sebelum memulai kegiatan programming pada trainer mikroAVR, ketiga software sebagaimana

    yang telah disebutkan di bagian awal harus sudah terinstal pada laptop atau PC. Proses instalasi

    CodeVisionAVR2.05.03 dan ProgISP1.72 mudah untuk dilakukan sebagaimana proses instalasi software

    pada umumnya.

    Untuk instalasi driver USB downloader ikuti langkah-langkah berikut. Buka properties My Computer.

    1. Kemudian pilih menu Device Manager.

    2. Kemudian klik kanan pada USB ASP dan pilih update driver software.

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 3

    3. Kemudian klik Browse My Computer for driver software

    4. Set tempat direktori file USBASP. Kemudian klik OK dan Next.

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 4

    MENGOSONGKAN PROGRAM DALAM CHIP

    Trainer mikroAVR baru, kemungkinan sudah terisi program dari vendor pembuatnya. Untuk itu

    program dalam chip ATMEGA16A itu perlu dikosongkan terlebih dahulu. Berikut ini adalah langkah-

    langkah untuk mengosongkan chip ATMEGA16A.

    1. Buka software ProgISP1.72 dan pilih chip ATMEGA16A.

    2. Klik tombol RD (read), untuk membaca apakah trainer mikroAVR sudah terhubung dengan

    laptop atau PC melalui USB downloader.

    3. Setelah terhubung, lakukan penghapusan program pada chip dengan cara klik tombol erase.

    4. Chip ATMEGA16A telah dikosongkan, dan siap untuk diisi dengan program yang baru.

    Ini artinya, mikroAVR telah terhubung dengan laptop/PC

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 5

    BAB I MENAMPILKAN DATA KE PORT D (OUTPUT)

    TUJUAN

    1. Memahami cara membuat file project dengan aplikasi CodeVision AVR 2. Memahami cara menggunakan CodeWizzard 3. Memahami cara menampilkan data ke port output

    PERALATAN

    Personal Computer

    Kit

    Program CodeVision AVR

    PROSEDUR Menampilkan Data Ke Port D

    Percobaan 1. LED ON/OFF Pada percobaan ini, kita akan membuat program untuk menampilkan data 0xFF ke PortD selama 1 detik, kemudian data pada PortD tersebut berubah menjadi 0x00 selama 1 detik berikutnya. Demikian siklus berulang-ulang. Berikut adalah langkah-langkah percobaannya : 1. Jalankan program CodeVisionAVR C Compiler. 2. Pilih Projectuntuk membuat project baru.

    3. Klik Yes untuk menggunakan CodeWizardAVR

    4. Pada CodeWizardAVR pilih menu Chip dan pilih menu pilihan ATMega16 pilih frekuensi Clock sebesar 8 MHz.

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 6

    5. Masih pada CodeWizardAVR, pilih menu Ports, kemudian setting Port D sebagai output dengan output value 0.

    6. Setelah selesai melakukan setting maka klik menu File->Generate, Save and Exit.

    7. Simpan File program anda dengan sebuah nama file misalnya Belajar. Kemudian klik Save. File ini akan disimpan dengan extention .c 8. Simpan file project anda dengan nama project misalnya Belajar. Kemudian klik Save. File ini akan disimpan dengan extention .prj. 9. Simpan file CodeWizzardAVR project files anda dengan nama file misalnya Belajar. Kemudian klik Save. File ini akan disimpan dengan extention .cwp. Selanjutnya anda bisa membuat program pada editor yang sudah disediakan.

    10. Tambahkan library delay dengan menuliskan #include tepat dibawah #include

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 7

    11. Kemudian ketik program dibawah ini

    while (1) { // Place your code here output(); // memanggil sub rutine output(); };

    // sub rutine output di tulis dibawah #include

    void output() { PORTD=0xff; delay_ms(1000); PORTD=0x00; delay_ms(1000); }

    12. Compile, download

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 8

    Percobaan 2. Data Increment Pada percobaan ini, kita akan membuat program untuk menampilkan data pada PortD yang naik satu persatu (increment) mulai dari 0x01 sampai 0xFF dengan interval 1 detik. Berikut adalah langkah langkah percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1. 2. Buat program seperti berikut

    void output() { unsigned char x; x=1; while(1) { PORTD=x; // hasil x di keluarka pada PORTD x++; // Nilai x = x + 1 delay_ms(1000); // tunda selama 1000ms / 1 detik } }

    3. Compile, download dan perhatikan yang terjadi pada PortD 4. PERTANYAAN APA YANG TERJADI PADA DETIK KE 256 5. Analisa ?? . . . . . . . . . . . . . . . . . . 6. Kesimpulan

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 9

    Percobaan 3. Data Decrement Pada percobaan ini, kita akan membuat program untuk menampilkan data pada PortD yang turun satu persatu (decrement) mulai dari 0x00 sampai 0xFF dengan interval 1 detik. Berikut adalah langkah langkah percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1. 2. Buat program seperti berikut

    void output() { unsigned char x; x=0; while(1) { PORTD=x; // hasil x di keluarka pada PORTD x--; // Nilai x = x - 1 delay_ms(1000); // tunda selama 1000ms / 1 detik } }

    3. Compile, download dan perhatikan yang terjadi pada PortD 4. PERTANYAAN APA YANG TERJADI PADA DETIK KE 256 5. Analisa ??

    . . . . . . . . . . . . . . . . . .

    6. Kesimpulan

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 10

    Percobaan 4. Data geser kekiri Pada percobaan ini, kita akan membuat program untuk menampilkan data pada PortA yang digeser kekiri satu persatu (shift left) mulai dari 0x01 dengan 9 kali iterasi dengan interval 1 detik. Berikut adalah langkahlangkah percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1. 2. Buat program seperti berikut

    void output() { unsigned char x,iterasi; x=0x01; for(iterasi=0;iterasi

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 11

    Percobaan 5. Data geser kekanan Pada percobaan ini, kita akan membuat program untuk menampilkan data pada PortD yang digeser kekiri satu persatu (shift left) mulai dari 0x80 dengan 9 kali iterasi dengan interval 1 detik. Berikut adalah langkahlangkah percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1. 2. Buat program seperti berikut

    void output() { unsigned char x,iterasi; x=0x80; for(iterasi=0;iterasi>1; // Nilai x = digeser kekiri 1 x delay_ms(1000); // tunda selama 1000ms / 1 detik } }

    3. Compile, download dan perhatikan yang terjadi pada PortD 4. PERTANYAAN APA YANG TERJADI PADA iterasi ke 0 sampai ke 9 5. Analisa ??

    . . . . . . . . . . . . . . . . . .

    6. Kesimpulan

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 12

    Percobaan 5. Data geser kekanan dan kekiri Pada percobaan ini, kita akan membuat program untuk menampilkan data pada PortD yang digeser kekiri satu persatu (shift left) mulai dari 0x80 dengan 9 kali iterasi dengan interval 1 detik. Berikut adalah langkahlangkah percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1. 2. Buat program seperti berikut

    void output() { unsigned char x,iterasi; x=0x80; for(iterasi=0;iterasi>1; // Nilai x = digeser kekiri 1 x delay_ms(1000); // tunda selama 1000ms / 1 detik } for(iterasi=0;iterasi

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 13

    Percobaan 6. Data geser kekanan dan kekiri Pada percobaan ini, kita akan membuat program untuk menampilkan data pada PortA yang digeser kekiri satu persatu (shift left) mulai dari 0x80 dengan 9 kali iterasi dengan interval 1 detik. Berikut adalah langkahlangkah percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1. 2. Buat program seperti berikut

    void output() { unsigned char x,iterasi; x=0x80; for(iterasi=0;iterasi>1; // Nilai x = digeser kekiri 1 x delay_ms(1000); // tunda selama 1000ms / 1 detik } for(iterasi=0;iterasi

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 14

    BAB II MEMASUKKAN DATA KE PORT C (INPUT)

    TUJUAN 1. Memahami cara membuat file project dengan aplikasi CodeVision AVR 2. Memahami cara menggunakan CodeWizzard 3. Memahami cara menampilkan data ke port output

    PERALATAN

    Personal Computer

    Kit

    Program CodeVision AVR

    PROSEDUR

    Percobaan 1. LED -> TOMBOL Memasukkan Data Ke Port C

    1. BUka Tools -> Code Wizard

    2. File -> Program View

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 15

    3. Hasil Setelah Program Preview

    Select pada PortC dan copy , replace pada program belajar.c

    . Kemudian ketik program dibawah ini while (1) { // Place your code here input(); // memanggil sub rutine output(); };

    // sub rutine output di tulis dibawah #include

    void input() { PORTD=PINC; }

    4. Compile, download

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 16

    5. PERTANYAAN APA YANG TERJADI 6. Analisa ??

    . . . . . . . . . . . . . . . . . . 7. Kesimpulan

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 17

    Percobaan 2. Beda PIN dan PORT Berikut adalah langkah langkah percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1. 2. Buat program seperti berikut

    void input() { PORTD.0=PINC.7; PORTD.1=PINC.6; PORTD.2=PINC.5; PORTD.3=PINC.4; PORTD.4=PINC.3; PORTD.5=PINC.2; PORTD.6=PINC.1; PORTD.7=PINC.0; }

    3. Compile, download 4. PERTANYAAN

    a. Apa beda PORTD.0 dengan PORTD b. Apa Beda PINC.0 dengan PINC

    6. Analisa ??

    . . . . . . . . . . . . . . . . . . 5. Kesimpulan

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 18

    Percobaan 3. Memanfaatkan IF dengan PIN Berikut adalah langkah langkah percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1. 2. Buat program seperti berikut

    void input() { unsigned char x; x=0x01; while(1) { PORTD=x; if(PINC.0==0) { x=x1; if(x==0b00000000){x=0b00000001;} // Pertanyaan 2 ..Fungsinya Apa ?? } delay_ms(100); } }

    6. Compile, download 7. PERTANYAAN

    a. Pertanyaan 1 ..Fungsinya Apa ?? DAN jika baris tersebut di hapus.apa akibatnya.. b. Pertanyaan 2 ..Fungsinya Apa ?? DAN jika baris tersebut di hapus.apa akibatnya..

    6. Analisa ??

    . . . . . . . . . . . . . . . . . . 8. Kesimpulan

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 19

    Percobaan 4. Memanfaatkan IF dengan PIN Berikut adalah langkah langkah percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1. 2. Buat program seperti berikut

    void input() { unsigned char x; x=0x01; while(1) { PORTD=x; if(PINC.0==1) { x=x>>1; if(x==0b00000000){x=0b00000001;} // Pertanyaan 1 ..Fungsinya Apa ?? } if(PINC.1==1) { // Pertanyaan 2 ..Fungsinya Apa ?? x=x2; // Pertanyaan 4 ..Fungsinya Apa ?? if(x==0b00000000){x=0b00000001;} // Pertanyaan 5 ..Fungsinya Apa ?? } if(PINC.7==1) { x=x

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 20

    BAB III

    Display LCD TUJUAN

    1. Memahami cara membuat file project dengan aplikasi CodeVision AVR 2. Memahami cara menggunakan CodeWizzard 3. Memahami cara menampilkan data ke LCD

    PERALATAN

    Personal Computer

    Kit

    Program CodeVision AVR

    PROSEDUR

    Percobaan 1. Inisialisasi LCD Memasukkan Data Ke Port C

    1. BUka Tools -> Code Wizard

    2. File -> Program View

    3. Tulis program tersebut dibawah #include

    // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x18 ;PORTB #endasm

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 21 #include

    Dan // LCD module initialization lcd_init(16); while (1) { // Place your code here tampil(); };

    DAN program dibawah ini ditempatkan dibawah #include

    void tampil() { lcd_gotoxy(0,0); lcd_putsf("MIKROCONTROLLER"); lcd_gotoxy(0,1); lcd_putsf("BELEJAR LCD"); }

    4.PERTANYAAN a. Apa yang terjadi dari program diatas

    5. Analisa ??

    . . . . . . . . . . . . . . . . . . 5. Kesimpulan

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 22

    Percobaan 2. Memahami FUNGSI LCD Berikut adalah langkah langkah percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan Percobaan 1. 2. Buat program seperti berikut 3. dibawah #include di tulis #include 4. Ketik program dibawah ini

    void tampil() { unsigned char *test="ADAM RIDIANTO"; // pertanyaan 1. Fungsinya ? unsigned char a,b,c; // pertanyaan 2. Fungsinya ? unsigned char simpan[3]; // pertanyaan 3. Fungsinya ? a=0; // pertanyaan 4. Fungsinya ? b='0'; // pertanyaan 5. Fungsinya ? c=123; // pertanyaan 6. Fungsinya ? lcd_gotoxy(0,0); // pertanyaan 7. Fungsinya ? lcd_putsf("MIKROCONTROLLER"); // pertanyaan 8. Fungsinya ? lcd_gotoxy(0,1); // pertanyaan 9. Fungsinya ? lcd_putsf("BELAJAR LCD"); // pertanyaan 10. Fungsinya ? delay_ms(100); // pertanyaan 11. Fungsinya ? lcd_clear(); // pertanyaan 12. Fungsinya ? lcd_gotoxy(0,0); // pertanyaan 13. Fungsinya ? lcd_puts(test); // pertanyaan 14. Fungsinya ? delay_ms(100); // pertanyaan 15. Fungsinya ? lcd_clear(); // pertanyaan 16. Fungsinya ? lcd_gotoxy(0,0); // pertanyaan 17. Fungsinya ? lcd_putchar(a); // pertanyaan 18. Fungsinya ? lcd_gotoxy(0,1); // pertanyaan 19. Fungsinya ? lcd_putchar(b); // pertanyaan 20. Fungsinya ? delay_ms(100); // pertanyaan 21. Fungsinya ? lcd_clear(); // pertanyaan 22. Fungsinya ? lcd_gotoxy(0,0); // pertanyaan 23. Fungsinya ? lcd_putchar(c); // pertanyaan 24. Fungsinya ? itoa(c,simpan); // pertanyaan 25. Fungsinya ? lcd_gotoxy(0,1); // pertanyaan 26. Fungsinya ? lcd_puts(simpan); // pertanyaan 27. Fungsinya ? while(1){} // pertanyaan 28. Fungsinya ? }

    3. PERTANYAAN a. Jawab pertanyaan 1 sampai 28 b. Apa perbedaan pertanyaan 4 dan 5 ?? c. Apa perbedaan pertanyaan 10 dan 14 ?? d. Apa perbedaan pertanyaan 18 dan 20 ?? e. Apa perbedaan pertanyaan 24 dan 27 ??

    4. Analisa ??

    . . . . . . . . . . .

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 23

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. Kesimpulan

  • LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem MikroController 24