Tahan Prahara
ii
Kata Pengantar
Assalamualaykum warrahmatullahi wabarakatuh, Puji syukur kami panjatkan ke hadirat Allah SWT, Tuhan Yang Maha Esa atas terselesaikannya Buku Panduan Praktikum Mikrokontroler AVR ATmega8535 ini. Buku panduan ini ditujukan sebagai suatu bahan pegangan bagi mahasiswa-mahasiswa Teknik Elektro Universitas Negeri Semarang. Sangat disadari bahwa praktikum adalah salah satu komponen penting dalam proses belajar-mengajar, terutama dalam kaitannya dengan pengembangan keahlian praktis dan kemampuan analitis yang sangat dibutuhkan bagi para lulusan pada saat terjun ke dalam dunia kerja sebagai seorang sarjana teknik elektro. Target utama yang ingin dicapai dengan penyelengaraan praktikum ini adalah agar mahasiswa mampu memahami cara memprogram dan menggunakan mikrokontroler. Sehingga pada akhirnya para mahasiswa mampu menjelaskan dengan baik bagaimana memprogram mikrokontroler yang dapat diterapkan dalam aplikasi praktis di dalam industri dan masyarakat. Tak lupa saya sampaikan ucapan terima kasih kepada semua pihak yang telah membantu.
iii
DAFTAR ISI
1. PENJELASAN PERANGKAT PRAKTIKUM ........................................................................ 1 1.1 Perangkat Keras ..................................................................................................... 1 1.2 Cara Menghubungkan Perangkat Keras ................................................................ 2 2. BASIC OUTPUT DENGAN LED PADA PORTC.................................................................. 3 2.1 Tujuan Praktikum ................................................................................................... 3 2.2 Prosedur Percobaan .............................................................................................. 3 2.3 Pengamatan ........................................................................................................... 7 3. BASIC INPUT KEYPAD.................................................................................................... 8 3.1 Tujuan Praktikum ................................................................................................... 8 3.2 Prosedur Percobaan .............................................................................................. 8 3.3 Pengamatan ......................................................................................................... 10 4. SERIAL KOMUNIKASI (USART) .................................................................................... 11 4.1 Tujuan Praktikum ................................................................................................. 11 4.2 Prosedur Percobaan ............................................................................................ 11 4.3 Pengamatan ......................................................................................................... 12 5. LCD.............................................................................................................................. 13 5.1 Tujuan Praktikum ................................................................................................. 13 5.2 Prosedur Percobaan ............................................................................................ 13 5.3 Pengamatan ......................................................................................................... 14 6. ADC ............................................................................................................................. 15 6.1 Tujuan Praktikum ................................................................................................. 15 6.2 Prosedur Percobaan ............................................................................................ 15 6.3 Pengamatan ......................................................................................................... 17 7. PWM ........................................................................................................................... 18 7.1 Tujuan Praktikum ................................................................................................. 18 7.2 Prosedur Percobaan ............................................................................................ 18 7.3 Pengamatan ......................................................................................................... 20 8. EEPROM...................................................................................................................... 21 8.1 Tujuan Praktikum ................................................................................................. 21
iv
8.2 Prosedur Percobaan ............................................................................................ 21 8.3 Pengamatan ......................................................................................................... 24 9. INTERUPSI SERIAL ....................................................................................................... 25 9.1 Tujuan Praktikum ................................................................................................. 25 9.2 Prosedur percobaan ............................................................................................ 25 9.3 Pengamatan ......................................................................................................... 26
UNNES AVR V.1 adalah board modul media pembelajaran untuk mikrokontroler Atmel keluarga AVR seperti Atmga8535, ATmega 16, ATmega32. UNNES AVR V.1 mempunyai fitur yang cukup lengkap seperti: 1. 8 channel general purpose I/O pada PORT C 2. 8 channel ADC pada PORT A 3. 1 buah LCD dan 4 buah tombol serbaguna pada PORT B. 4. 2 channel motor DC driver PWM enable pada PORT D 5. 1 Port Serial Komunikasi 6. 1 Port ISP programmer untuk memudahkan dalam proses downloading program.
Gambar 1. 1
Diharapkan dengan tersedianya fitur-fitur yang cukup lengkap dapat mempermudah mahasiswa dalam belajar menguasai mikrokontroler AVR itu sendiri. Untuk memasukkan program ke dalam mikrokontroler diperlukan sebuah alat yaitu downloader. Berikut adalah Serial Downloader AVR910.
Gambar 1. 2
1.2
Langkah-langkah yang harus dilakukan adalah : 1. Hubungkan baterai ke soket VCC 2. Hubungkan serial programmer AVR910 ke port serial pada komputer. Kemudian hubungkan port ISP serial programmer AVR910 tersebut ke port ISP pada board UNNES AVR V.1 3. Pindahkan saklan On/Off pada board UNNES AVR V.1 pada posisi On. 4. Board siap untuk diprogram.
Mampu membuat program untuk menampilkan LED berjalan pada PORT C ATmega8535.
Gambar 2. 1
2.2
Prosedur Percobaan
Langkah-langkah praktikum : 1. Buka program CodevisionAVR. 2. Kemudian klik File New, maka akan muncul 2 pilihan maka pilih Project.
Gambar 2. 2
3. Muncul jendela konfirmasi penggunaan fasilitas CodeWizardAVR, maka klik tombol Yes.
Gambar 2. 3
Gambar 2. 4
5. Klik menu File Generate, Save and Exit. Buatlah folder baru, simpanlah file-file project di folder tersebut. 6. Klik menu Project Configure, klik tab After Build. Beri tanda pada After Build. Kemudian klik OK.
Gambar 2. 5
7. Klik menu Settings Progammer, pilih Atmel AVRProg (AVR910), sesuaikan Communacation Port dan Baud Ratenya. Setelah selesai klik OK.
Gambar 2. 6
Programmer Setting
9. Tekan tombol Ctrl + F9 untuk mengkompile. Jika ditemukan kesalahan maka tombol Program the Chip tidak akan muncul. Tetapi jika tidak ditemukan kesalahan tombol Program the Chip, cek kembali Configure Project Setting pada langkah no. 6.
Gambar 2. 7
10. Klik tombol Program the Chip, tunggu sampai proses downloading selesai. Lihatlah apa yang akan terjadi pada board UNNES AVR V.1.
Gambar 2. 8
2.3
Pengamatan
Jika Tidak terdapat kesalahan maka rangkaian LED yang terhubung pada PORTC akan menyala bergeser bergantian memberikan efek nyala LED berjalan.
3.2
Prosedur Percobaan Langkah-langkah praktikum pada basic input keypad ini sama seperti pada
praktikum basic output LED hanya berbeda pada langkah no.4 yaitu pada pengkofigurasian fasilitas CodeWizardAVR dan pada langkah no.8 yaitu pada penambahan baris program. Konfigurasikan CodeWizardAVR sebagai berikut:
Gambar 3. 1
10
3.3
Pengamatan
Jika tidak terdapat kesalahan dalam pemprograman maka ketika tombol pada PINB.6 ditekan, LED pada PORTC akan menyala bergeser ke kiri. Ketika tombol pada PINB.7 ditekan, LED pada PORTC akan menyala bergeser ke kanan.
11
Mampu membuat program menerima data serial dari komputer, kemudian mengirimkannya kembali data tersebut ke komputer secara USART.
4.2
Prosedur Percobaan
Gambar 4. 1
12
4.3
Pengamatan
Jika tidak terdapat kesalahan dalam pemprograman maka mikrokontroler akan mengirimkan tulisan tekan sembarang tombol ke komputer melalui serial komunikasi. Kemudian setelah kita menekan tombol keyboard pada komputer, mikrokontroller menerima data yang di kirimkan komputer sesuai dengan tombol yang ditekan. Kemudian mengirimkan tulisan tombol yang anda tekan: dan data yang diterima tadi di kirimkan kembali ke komputer.
13
5. LCD
5.1 Tujuan Praktikum
Mampu membuat program menuliskan tulisan pada LCD. Tulisan yang akan ditampilkan adalah SEMALAT BELAJAR berkedip tiap detiknya.
5.2
Prosedur Percobaan
Gambar 5. 1
14
5.3
Pengamatan
Jika tidak terjadi kesalahan dalam pemprograman, maka LCD akan menampilkan tulisan Selamat Belajar By Tahan Prahara berkedip-kedip.
15
6. ADC
6.1 Tujuan Praktikum
Mampu membuat program untuk membaca ADC internal mikrokontroler, kemudian menuliskannya pada LCD dan juga menampilkannya di LED yang tehubung pada PORTC. 6.2 Prosedur Percobaan
Gambar 6. 1
16
Gambar 6. 2
17
lcd_puts(lcd_buffer); delay_ms(100); }
6.3
Pengamatan
Jika tidak terjadi kesalahan dalam pemprograman, mikrokontroler membaca sensor garis paling tengah yang terhubung dengan ADC(3) kemudian menampilkannya di LED yang terhubung pada PORTC dan juga menampilkannya pada LCD dalam bentuk tulisan angka.
18
7. PWM
7.1 Tujuan Praktikum
Mampu membuat program untuk mengeluarkan sinyal PWM pada pin OC1A (PORTD.4) dan pada OC1B(PORTD.5)
7.2
Prosedur Percobaan
Gambar 7. 1
19
Gambar 7. 2
20
// LCD module initialization lcd_init(16); PORTD.6 = 1; PORTD.7 = 0; PORTD.2 = 0; PORTD.3 = 1; OCR1AL = 0; OCR1BL = 50; while (1) { // Place your code here for(i=0; i<255; i++) { sprintf(lcd_buffer, "PWM_kanan=%d OCR1AL, OCR1BL); lcd_clear(); lcd_puts(lcd_buffer); OCR1AL=i; delay_ms(50); } } } //MOTOR KANAN
//MOTOR KIRI
PWM_kiri=%3d",
7.3
Pengamatan
Jika tidak terdapat kesalahan dalam pemprograman, motor kiri robot akan berputar dengan kecepatan tetap, sedangkan motor kanan akan mengalami percepatan hingga kecepatan maksimum kemudian kembali berhenti. Besarnya nilai PWM ditampil di layar LCD.
21
8. EEPROM
8.1 Tujuan Praktikum
Mampu membuat program untuk membaca dan menulis EEPROM. Kemudian menuliskannya ke LCD. 8.2 Prosedur Percobaan
Gambar 8. 1
22
Gambar 8. 2
23
. . PORTC=0xff; DDRC=0b11111000; . // LCD module initialization lcd_init(16); sprintf(lcd_buffer,"EE_Nilai: %d",EE_nilai); tulis ke RAM ditampilkan ke LCD lcd_puts(lcd_buffer); delay_ms(1000); lcd_clear(); nilai = EE_nilai; while (1) { // Place your code here while(Set) { PORTC.7=0; delay_ms(nilai*2); PORTC.7=1; delay_ms(nilai*2); } setting(); }; } void setting() { sprintf(lcd_buffer,"Nilai : %d",nilai); lcd_clear(); lcd_puts(lcd_buffer); while (!Set); //tunggu tombol dilepas delay_ms(500); while(Set) { if (!Up) { nilai++; sprintf(lcd_buffer,"Nilai: %d",nilai); lcd_clear(); lcd_puts(lcd_buffer); delay_ms(200); } else if (!Down) { nilai--; sprintf(lcd_buffer,"Nilai: %d",nilai); lcd_clear(); lcd_puts(lcd_buffer); delay_ms(200); //baca EEPROM
24
} } lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("Tulis EEPROM >>>"); EE_nilai = nilai; //tulis dari RAM ke EEPROM delay_ms(1000); for (x=0;x<3;x++) { lcd_clear(); sprintf(lcd_buffer,"EE_Nilai: %d",EE_nilai); ke RAM kemudian tulis ke LCD lcd_puts(lcd_buffer); delay_ms(1000); lcd_clear(); delay_ms(1000); } }
//baca EEPROM
8.3
Pengamatan
Jika tidak terjadi kesalahan dalam pemprograman, LED yang terhubung pada PORTC.7 akan berkedip. Kecepatan kedip sesuai dengan nilai yang terdapat pada EEPROM. Settingan ini tidak akan berubah walaupun catu daya di matikan. Karena nilai di simpan di EEPROM sebagai backupnya.
25
9. INTERUPSI SERIAL
9.1
Tujuan Praktikum
Mampu membuat program interupsi serial. Mampu membedakan antara sistem kerja interupsi dan polling.
9.2
Prosedur percobaan
Gambar 9. 1
26
9.3
Pengamatan
Jika tidak terjadi kesalahan dalam pemprograman, LED pada PORTC akan berkedip. Dan setiap keyboard pada komputer ditekan maka mikrokontroler mengirimkan kembali data keyboard tadi ke komputer kembali.