percobaan atmega
DESCRIPTION
saya upload ini cuma untuk memenuhi syarat scribd yang menyusahkan, kita udah upload tapi dibuat untung sama scribd, capek deh.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