PETUNJUK PRAKTIKUM
SISTEM MIKROPROSESOR
Laboratorium Dasar Teknik Elektro
SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2017
3
PETUNJUK PRAKTIKUM SISTEM MIKROPROSESOR
Mervin T. Hutabarat Waskita Adijarto Yudi Gondokaryono Harry Septanto Sandra Irawan Nina Lestari Firmansyah Puspanegara M. Aznan Firmansyah Laboratorium Dasar Teknik Elektro
SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2017
5
i
KATA PENGANTAR Puji syukur ke hadirat Tuhan YME, sejak tanggal 1 Oktober 2011 yang lalu Program Studi Teknik Elektro telah mendapat akreditasi ABET. Perbaikan-perbaikan praktikum yang sebelumnya merupakan salah satu titik lemah prodi ini ternyata mendapat apresiasi yang baik dari para asesor ABET. Perbaikan yang telah dilakukan harus menjadi satu sistem perbaikan yang berkelanjutan. Oleh karena itu, Petunjuk Praktikum Elektronika ini pun disusun dalam pola pikir tersebut. Perubahan yang dilakukan dalam penyusunan materi Petunjuk Praktikum ini dari Petunjuk Praktikum tahun lalu merupakan perubahan atau perbaikan minor saja terutama pada redaksi kalimat yang tidak langsung dimengerti mahasiswa dengan baik. Perubahan lain yang tidak menyangkut materi dilakukan untuk membangun kebiasaan kerja yang memperhatikan faktor keselamatan kerja (safety). Dalam petunjuk praktikum ini, prosedur kerja untuk mematikan seluruh hubungan listrik yang tidak diperlukan setelah selesai praktikum diberi penekanan. Dengan mengikuti prosedur tersebut diharapkan terbentuk kebiasaan praktikan untuk melakukannya juga pada praktikum lanjutan. Pada kesempatan ini, kami ingin menyampaikan terima kasih yang besar-besarnya pada semua pihak yang telah terlibat dalam penyusunan petunjuk praktikum ini. Secara khusus untuk anggota Tim Penyusun Petunjuk Praktikum Sistem Mikroprosesor, Mas Harry Septanto dan Pak Dr. Waskita Adijarto, yang sudah memberikan tenaga, pikiran dan waktunya untuk perbaikan praktikum dalam Program Studi Teknik Eletro ini. Ucapan terima kasih juga disampaikan untuk dukungan rekan-rekan teknisi di Laboratorium Dasar Teknik Elektro, Pak Sandra Irawan dan Mbak Nina Lestari. Akhir kata, semoga semua usaha yang telah dilakukan berkontribusi pada dihasilkannya lulusan Program Studi Teknik Elektro sebagai engineer dengan standar internasional. Bandung, Januari 2017 Tim Penyusun Petunjuk Praktikum Sistem Mikroprosesor Ketua Tim,
Ir. Mervin T. Hutabarat, M.Sc., Ph.D.
ii
iii
DAFTAR ISI KATA PENGANTAR ................................................................................................................. i DAFTAR ISI .............................................................................................................................. iii MODUL 1 .................................................................................................................................... 1 I/O DASAR................................................................................................................................. 1 TUJUAN .................................................................................................................................. 1 KONFIGURASI I/O ATMega 8535 ..................................................................................... 1 Skematik I/O (Datasheet ATMega8535 Hal. 51) ........................................................... 1 Konfigurasi Pin Port (Datasheet ATMega8535 Hal. 53) ............................................... 2 PUD pada SFIOR (Datasheet ATMega8535 Hal. 59) ..................................................... 2 Rekomendasi untuk inisialisasi pada pin input (Datasheet ATMega8535 Hal. 56) . 2 Deskripsi register (misalnya Port A) (Datasheet ATMega8535 Hal. 66) .................... 2 TUGAS PENDAHULUAN ................................................................................................... 2 I.A
PORT A SEBAGAI OUTPUT .................................................................................... 3
Persiapan ............................................................................................................................. 3 TUGAS I.A.1 ....................................................................................................................... 3 TUGAS I.A.2 ....................................................................................................................... 3 I.B
FASILITAS DELAY PADA AVR GCC .................................................................... 3
Persiapan ............................................................................................................................. 3 TUGAS I.B.1 ........................................................................................................................ 4 TUGAS I.B.2 ........................................................................................................................ 4 TUGAS I.B.3 ........................................................................................................................ 4 TUGAS I.B.4 ........................................................................................................................ 5 I.C
PORT A SEBAGAI OUTPUT DAN PORT D SEBAGAI INPUT ......................... 5
Persiapan ............................................................................................................................. 5 TUGAS I.C.1 ........................................................................................................................ 5 TUGAS I.C.2 ........................................................................................................................ 6 PERTANYAAN ANALISIS .................................................................................................. 6 MODUL II ................................................................................................................................... 7 TIMER, COUNTER, INTERRUPT ........................................................................................... 7 TUJUAN .................................................................................................................................. 7 KONFIGURASI TIMER/COUNTER DAN INTERRUPT ................................................ 7
iv
DAFTAR ISI Deskripsi register Timer/Counter 8 bit (Timer/Counter 0) (Hal. 83) ........................ 7 Konfigurasi mode operasi (Hal. 83)................................................................................. 7 Pengaturan Perilaku pin OCO (misalnya untuk mode non-PWM) (Hal. 84)............ 8 Pengaturan sumber clock (Hal. 85) .................................................................................. 8 Register-register penting lain (Hal. 85) ........................................................................... 8 KONFIGURASI EXTERNAL INTERRUPT ........................................................................ 9 TUGAS PENDAHULUAN ................................................................................................. 10 II.A
DELAY DENGAN TIMER/ COUNTER............................................................... 10
Persiapan ........................................................................................................................... 10 TUGAS II.A.1 .................................................................................................................... 10 TUGAS II.A.2 .................................................................................................................... 11 II.B
EXTERNAL CLOCK SEBAGAI COUNTER......................................................... 11
Persiapan ........................................................................................................................... 11 TUGAS II.B.1 ..................................................................................................................... 12 TUGAS II.B.2 ..................................................................................................................... 12 II.C
APLIKASI INTERRUPT DENGAN TIMER/COUNTER ................................... 13
Persiapan ........................................................................................................................... 13 TUGAS II.C.1 .................................................................................................................... 13 TUGAS II.C.2 .................................................................................................................... 14 II.D
EXTERNAL INTERRUPT ....................................................................................... 14
Persiapan ........................................................................................................................... 14 TUGAS II.D.1 .................................................................................................................... 14 TUGAS II.D.2 .................................................................................................................... 15 PERTANYAAN ANALISIS ................................................................................................ 15 MODUL III ................................................................................................................................ 17 KOMUNIKASI USART DAN EVALUASI MODUL I-III ................................................... 17 TUJUAN ................................................................................................................................ 17 KONFIGURASI TIMER/ COUNTER DAN INTERRUPT ............................................. 17 USART Data Register (Hal. 164-165) ............................................................................. 17 USART Control and Status Register A (Hal. 165-166) ................................................ 17 USART Control and Status Register B (Hal. 166-167) ................................................. 17 USART Control and Status Register B (Hal. 167) ........................................................ 17 Register-register penting lain (Hal. 167 - 170) .............................................................. 18 TUGAS PENDAHULUAN ................................................................................................. 19
v III.A
MENERIMA DATA DARI PC ............................................................................ 19
Persiapan ........................................................................................................................... 19 TUGAS III.A.1 ................................................................................................................... 19 TUGAS III.A.2 ................................................................................................................... 20 III.B
MENGIRIM DATA KE PC ...................................................................................... 20
Persiapan ........................................................................................................................... 20 TUGAS III.B.1 ................................................................................................................... 20 TUGAS III.B.2 ................................................................................................................... 20 III.C
PENGIRIMAN DAN PENERIMAAN DATA DARI DAN KE PC.................... 21
Persiapan ........................................................................................................................... 21 TUGAS III.C.1 ................................................................................................................... 21 TUGAS III.C.2 ................................................................................................................... 21 III.D
REVIEW MODUL I-III ......................................................................................... 22
TUGAS III.D.1 ................................................................................................................... 22 PERTANYAAN ANALISIS ................................................................................................ 23 MODUL IV ................................................................................................................................ 25 SEVEN SEGMENT, KEYPAD DAN LCD ............................................................................ 25 TUJUAN ................................................................................................................................ 25 SCANNING SEVEN SEGMENT........................................................................................ 25 SCANNING KEYPAD......................................................................................................... 26 LCD ........................................................................................................................................ 27 TUGAS PENDAHULUAN ................................................................................................. 27 IV.A
PERCOBAAN SCANNING SEVEN SEGMENT ............................................. 27
Persiapan ........................................................................................................................... 27 TUGAS IV.A.1................................................................................................................... 27 TUGAS IV.A.2................................................................................................................... 29 IV.B
SCANNING KEYPAD ............................................................................................. 29
Persiapan ........................................................................................................................... 29 TUGAS IV.B.1 ................................................................................................................... 29 TUGAS IV.B.2 ................................................................................................................... 30 IV.C
LCD ........................................................................................................................ 30
Persiapan ........................................................................................................................... 30 TUGAS IV.C.1 Menjalankan AVR LCD Lib Demo .................................................. 30 TUGAS IV.C.2 ................................................................................................................... 31
vi
DAFTAR ISI TUGAS IV.C.3 ................................................................................................................... 32 TUGAS IV.C.4 ................................................................................................................... 33 PERTANYAAN ANALISIS ................................................................................................ 33 DAFTAR PUSTAKA ................................................................................................................ 35 APENDIKS A ............................................................................................................................ 37 PETUNJUK PENGGUNAAN WINAVR dan AVRDUDE ................................................. 37 MENJALANKAN WINAVR DAN AVRDUDE .............................................................. 37 Meng-install WinAVR ..................................................................................................... 37 Menginstall Driver GiveIO ............................................................................................. 38 Membuat Program dengan Programmers Notepad [Winavr] .................................. 39 Menyiapkan Makefile ...................................................................................................... 42 Meng-compile Program dan Membuat File *.Hex ...................................................... 48 Mendownload *.hex ke ATMega8535 ........................................................................... 49 Manual WinAVR dan Deskripsi Library AVR-GCC .................................................. 50 MENGATUR FUSE DENGAN AVRDUDE ..................................................................... 50 Deskripsi Fuse ATMega8535 .......................................................................................... 50 Penggunaan Sumber dan Nilai Clock dengan Pengaturan Fuse .............................. 51 Membaca Pengaturan Fuse Atmega8535 dengan Avrdude ...................................... 51 Mengubah Pengaturan Fuse Atmega8535 dengan Avrdude..................................... 52 Memahami Kode-Kode Pada Avrdude ........................................................................ 52 APENDIKS B ............................................................................................................................ 53 KIT PRAKTIKUM .................................................................................................................... 53 SISTEM MINIMUM ATMEGA8535 .................................................................................. 53 Tata Letak .......................................................................................................................... 53 Informasi PIN ................................................................................................................... 54 DT-51 TRAINER BOARD ................................................................................................... 54 Tata Letak .......................................................................................................................... 54 Konektor ............................................................................................................................ 55 PENGKABELAN LCD KE SISTEM MINIMUM ATMEGA8535................................... 55 Kabel Konektor ................................................................................................................. 55 Langkah-Langkah Pemasangan ..................................................................................... 56 APENDIKS C ............................................................................................................................ 57 KODE ASCII ............................................................................................................................. 57 APENDIKS D ............................................................................................................................ 59
vii HYPERTERMINAL.................................................................................................................. 59 APENDIX E ............................................................................................................................... 61 Instalasi Driver USB-ASP di Windows 7 .............................................................................. 61
viii
Tabel Sanksi Praktikum
TABEL SANKSI PRAKTIKUM Berlaku mulai: 29 Agustus 2016
Kasus
Level Akademik
Saat dan setelah praktikum
Semua kegiatan plagiasi (mencontek): tugas pendahuluan, test dalam praktikum, laporan praktikum Sengaja tidak mengikuti praktikum
Sanksi Gugur praktikum
Pengurangan nilai per modul
Tidak hadir praktikum Terlambat hadir praktikum
Berat
Saat praktikum
Pakaian tidak sesuai: kemeja, sepatu Tugas pendahuluan tidak dikerjakan/hilang/tertinggal
Gugur modul
Pertukaran jadwal tidak sesuai aturan/ketentuan Tidak mempelajari modul sebelum praktikum/tidak mengerti isi modul Saat Praktikum
Ringan
3. 4.
5. 6. 7. 8.
-25 nilai akhir -100% nilai BCL
Name Tag tertinggal/hilang
-10 nilai akhir
Kartu praktikum tertinggal/hilang Kartu praktikum tidak lengkap data dan foto Loker tidak dikunci/kunci tertinggal Tidak minta paraf asisten di BCL/kartu praktikum
-25 nilai akhir
Terlambat mengumpulkan BCL Tidak bawa kartu praktikum saat pengumpulan BCL Tidak minta paraf admin saat pengumpulan BCL
1. 2.
Dikeluarkan dari praktikum
BCL tertinggal/hilang
Terlambat mengumpulkan laporan Setelah Praktikum
-25 nilai akhir
-10 nilai akhir -10 nilai akhir -25 nilai akhir -1/min nilai akhir, maks -50 -1/min nilai BCL, maks -50 -50 nilai BCL -50 nilai BCL
Catatan: Pelanggaran akademik menyebabkan gugur praktikum, nilai praktikum E Dalam satu praktikum, praktikan maksimal boleh melakukan a. 1 pelanggaran berat dan 1 pelanggaran ringan; atau b. 3 pelanggaran ringan Jika jumlah pelanggaran melewati point 2, praktikan dianggap gugur praktikum. Praktikan yang terkena sanksi gugur modul wajib mengganti praktikum pada hari lain dengan nilai modul tetap 0. Waktu pengganti praktikum ditetapkan bersama asisten. Jika praktikan tidak mengikuti ketentuan praktikum (pengganti) dengan baik, akan dikenakan sanksi gugur praktikum. Setiap pelanggaran berat dan ringan dicatat/diberikan tanda di kartu praktikum Waktu acuan adalah waktu sinkron dengan NIST Sanksi yang tercantum di tabel adalah sanksi minimum. Sanksi yang belum tercantum akan ditentukan kemudian.
1
MODUL 1 I/O DASAR TUJUAN
Praktikan memahami datasheet ATMega 8535 Praktikan mampu membuat aplikasi input dan output pada AVR dengan menggunakan bahasa pemprograman C pada WinAVR Praktikan memahami pengesetan fuse yang berkaitan dengan penggunakan besar dan jenis kristal
KONFIGURASI I/O ATMega 8535 Gambar dan table berikut ini dikutipkan dari datasheet ATMega 8535: Skematik I/O (Datasheet ATMega8535 Hal. 51)
2 Konfigurasi Pin Port (Datasheet ATMega8535 Hal. 53)
PUD pada SFIOR (Datasheet ATMega8535 Hal. 59)
Rekomendasi untuk inisialisasi pada pin input (Datasheet ATMega8535 Hal. 56)
Deskripsi register (misalnya Port A) (Datasheet ATMega8535 Hal. 66)
TUGAS PENDAHULUAN 1. Jelaskan fungsi dari setiap bit dari register SFIOR! 2. Apa fungsi dilakukannya pull up pada pin input?
3
I.A PORT A SEBAGAI OUTPUT Persiapan
Sebelum Power Supply dihubungkan pada kit praktikum, atur terlebih dahulu pada tegangan 9volt. Kemudian, hubungkan pada kit praktikum Hubungkan PORT A (ATMega8535) pada PORT OUTPUT (Trainer Board); lihat Apendiks B Pelajari Apendiks A Petunjuk Penggunaan WinAVR Hubungkan Sismin ATMega8535dengan PC mengunakan downloader usbasp. Cocokkan label pin pada PORT ISP sebelum menghubungkannya agar tidak terbalik. Install driver usbasb (Baca Appendiks E)
TUGAS I.A.1 Tanpa memperhatikan pengaturan fuse (Apendiks A), jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchartnya. #include
int main(void) { DDRA = 0xFF;//inisialisasi PORTA sebagai OUTPUT PORTA = (1<
Apabila kondisi OUTPUT LED DISPLAY sesuai dengan nilai PORTA maka percobaan yang dilakukan benar. TUGAS I.A.2 Modifikasi program di atas sehingga menghasilkan keluaran led (OUTPUT LED DISLAY) sesuai dengan representasi biner dari nomor kelompok Anda.
I.B FASILITAS DELAY PADA AVR GCC Persiapan
Pastikan Persiapan pada 1.A telah terpenuhi. Pelajari fasilitas delay AVR GCC. Penjelasan selengkapnya diuraikan di dalam avr-libc Manual [WinAVR].
4
TUGAS I.B.1 Pastikan sumber clock yang digunakan sesuai dengan cara mengatur fuse (Apendiks A). jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchartnya. #include #define F_CPU 7372800UL // sesuai dengan nilai eksternal clock #include int main(void) { DDRA = 0xFF; PORTA = 0xFF; while(1) { PORTA = 0b00110011; _delay_ms(500); PORTA = 0b11001100; _delay_ms(500); } return 0; }
Apabila kondisi OUTPUT LED DISPLAY menyala bergantian setiap (sekitar) 500 milidetik sesuai dengan kedua nilai PORTA di atas maka percobaan yang dilakukan benar. TUGAS I.B.2 Modifikasi contoh program Tugas 1.B. 1 sehingga menghasilkan keluaran led (OUTPUT LED DISLAY) secara bergantian sesuai dengan representasi biner dari tiga-angka-terakhir NIM anggota kelompok Anda. TUGAS I.B.3 Pastikan sumber clock yang digunakan sesuai dengan cara mengatur fuse (Apendiks A). jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchartnya. #include #define F_CPU 7372800UL // sesuai dengan nilai eksternal clock #include int main(void) { unsigned char i = 0xFE;
5 DDRA = 0xFF; PORTA = i; while(1) { PORTA = i; _delay_ms(120); i=(i<<1)|(i>>7); } return 0; }
Apabila kondisi OUTPUT LED DISPLAY menunjukkan nyala LED yang memutar maka percobaan yang dilakukan benar. TUGAS I.B.4 Modifikasi contoh program Tugas I.B.3 sehingga hasilnya tidak menunjukan nyala-mati LED yang memutar. Tetapi, setelah sampai ujung kiri akan kembali ke kanan dan sebaliknya.
I.C PORT A SEBAGAI OUTPUT DAN PORT D SEBAGAI INPUT Persiapan
Pastikan Persiapan pada I.A telah terpenuhi Hubungkan PORT D (ATMega8535) pada PORT INPUT (Trainer Board)
TUGAS I.C.1 Jalankan contoh program di bawah ini, analisis dan buatlah flowchart-nya. #include int main(void) { unsigned char i; DDRA = 0xFF; //inisialisasi PORTA sebagai OUTPUT DDRD = 0x00; //inisialisasi PORTD sebagai INPUT SFIOR = 0<
Apabila kondisi OUTPUT LED DISPLAY sesuai dengan SWITCH INPUT maka percobaan yang dilakukan benar.
6 TUGAS I.C.2 Modifikasi program di atas sehingga kondisi berikut ini terpenuhi:
Apabila input samadengan representasi biner tiga angka NIM terakhir Anda, maka kondisi led seperti pada Tugas I.B.2; Apabila input samadengan representasi biner tiga angka NIM terakhir teman sekelompok Anda, maka kondisi led seperti pada Tugas I.B.4; Apabila input tidak-samadengan kedua representasi di atas, maka kondisi led seperti pada Tugas I.A.2 .
PERTANYAAN ANALISIS 1. Jelaskan mekanisme pengesetan pin output sedemikian hingga mengeluarkan nyala lampu sesuai dengan yang diinginkan. Lengkapi dengan penjelasan register yg digunakan! 2. Bagaimana rekomendasi untuk inisialisasi pada pin input? 3. Jelaskan bagaimana pengesetan pin input! Apa pengaruh resistor pull up?
7
MODUL II TIMER, COUNTER, INTERRUPT TUJUAN
Praktikan memahami datasheet ATMega 8535 Praktikan mampu membuat aplikasi Timer/ Counter dan Interrupt pada AVR dengan menggunakan bahasa pemprograman C pada WinAVR Praktikan mampu membuat aplikasi External Interrupt pada AVR dengan menggunakan bahasa pemprograman C pada WinAVR
KONFIGURASI TIMER/COUNTER DAN INTERRUPT Gambar dan table berikut ini dikutipkan dari datasheet ATMega 8535. Deskripsi register Timer/Counter 8 bit (Timer/Counter 0) (Hal. 83)
Bit 7 – FOC0: Force Output Compare Bit 6, 3 – WGM01:0: Waveform Generation Mode Bit 5:4 – COM01:0: Compare Match Output Mode Bit 2:0 – CS02:0: Clock Select Konfigurasi mode operasi (Hal. 83)
Lihat pula hal. 83 untuk memahami definisi MAX, BOTOM dan TOP.
8 Pengaturan Perilaku pin OCO (misalnya untuk mode non-PWM) (Hal. 84)
Pengaturan sumber clock (Hal. 85)
Register-register penting lain (Hal. 85)
9
KONFIGURASI EXTERNAL INTERRUPT Register-register untuk keperluan external interrupt diuraikan pada hal. 68-70 di datasheet ATMega8535. Di sini diberikan kutipan-kutipannya.
Bit 7 – INT1: External Interrupt Request 1 Enable Bit 6 – INT0: External Interrupt Request 0 Enable Bit 5 – INT2: External Interrupt Request 2 Enable
Bit 7 – INTF1: External Interrupt Flag 1 Bit 6 – INTF0: External Interrupt Flag 0 Bit 5 – INTF2: External Interrupt Flag 2
10
TUGAS PENDAHULUAN 1. Untuk timer 1 pada ATMega8535, berapa nilai TCNT awal yang dibutuhkan untuk membuat interupsi program yang terjadi setiap 1 detik? (asumsikan clock yang digunakan clock eksternal 7372800 Hz, prescalar 1024, dan menggunakan metode overflow)
II.A DELAY DENGAN TIMER/ COUNTER Persiapan
Sebelum Power Supply dihubungkan pada kit praktikum, atur terlebih dahulu pada tegangan 9volt. Kemudian, hubungkan pada kit praktikum. (Hati-hati polaritas terbalik dapat merusak kit!) Hubungkan Training board dengan PC mengunakan downloader usbasp Hubungkan PORT A (ATMega8535) pada PORT OUTPUT (Trainer Board) Pastikan sumber clock menggunakan Kristal 8MHz dengan cara mengatur fuse
TUGAS II.A.1 Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchartnya. #include void init_tim(void); void Delay(void); int main(void) { DDRA=0xFF; PORTA = 0x00; init_tim(); while (1) { PORTA = 0x0F; Delay(); PORTA = 0xF0; Delay(); } return 0; } void init_tim(void) {
11 //mode operasi CTC, sumber clock prescaller 256 TCCR1A = 0; TCCR1B = 0b00001100; //overflow interrupt disable TIMSK|=(0<
Apabila kondisi OUTPUT LED DISPLAY menyala bergantian setiap 1 detik antara 4bit MSB dan 4bit LSB maka percobaan yang dilakukan benar. TUGAS II.A.2 Modifikasi program di atas sehingga antara 4bit LSB dengan 4 bit MSB berkedip secara bergantian dengan waktu periode kedip sekitar x detik, dimana x = (modulus 5 dari nomor kelompok) + 2.
II.B EXTERNAL CLOCK SEBAGAI COUNTER Persiapan Hubungkan prosesor ATMega8535 dengan Trainer Board (pada PORTCONTROL) sehingga pin T1 ATMega8535 (lihat datasheet ATMega 8535) terhubung dengan sebuah Interrupt Input (IS1, IS2, IS3 atau IS4) pada Trainer Board (lihat Apendiks B).
12 TUGAS II.B.1 Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchartnya. #include #include #define F_CPU 7372800UL #include
// 8MHz
void init_tim(void); int main(void) { init_tim(); DDRA=0xFF; while (1) { //penentuan nilai awal timer TCNT0 = 123; //penentuan nilai compare OCR0 = 124; //menanti compare match while(bit_is_clear(TIFR,OCF0)) { PORTA = 0b10101010; } //meng-nol-kan flag TIFR|=_BV(OCF0); PORTA = 0b01010101; _delay_ms(500); } return 0; } void init_tim(void) { //mode operasi dan sumber clock TCCR0=0b00000110; //overflow interrupt disable TIMSK=(0<
Apabila kondisi OUTPUT LED DISPLAY berubah setelah 2 kali penekanan tombol INTERRUPT & COUNTER INPUT maka percobaan yang dilakukan benar. TUGAS II.B.2 Modifikasi program diatas sehingga LED menyala semua selama x detik ketika tombol ditekan sejumlah x kali, dimana x = (modulus 5 dari nomor kelompok) + 3. Keterangan: fasilitas delay AVR-gcc tidak digunakan.
13
II.C APLIKASI INTERRUPT DENGAN TIMER/COUNTER Persiapan Pastikan PORT A (ATMega8535) terhubung dengan PORT OUTPUT (Trainer Board) TUGAS II.C.1 Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchartnya. #include #define F_CPU 7372800UL #include #include void init_int(void); ISR(TIMER1_OVF_vect) { unsigned char i; PORTA=0xFF; _delay_ms(200); TIFR=(1<
Bila program ini dijalankan dengan benar, kondisi OUTPUT LED DISPLAY berbeda ketika terjadi interrupt dan ketika belum terjadi. Interupt terpanggil setiap satu detik.
14 TUGAS II.C.2 Modifikasi program Tugas II.C.1 menggunakan Timer/Counter1 sehingga interrupt terjadi setiap x detik, dimana x = (modulus 5 dari nomor kelompok) + 2.
II.D EXTERNAL INTERRUPT Persiapan
Pastikan PORT A (ATMega8535) terhubung dengan PORT OUTPUT (Trainer Board) Hubungkan PORT D ATMega8535 dengan Trainer Board (pada PORT CONTROL) sehingga pin INT0 ATMega8535 terhubung dengan sebuah Interrupt Input (IS1) dan INT1 ke IS2 pada Trainer Board. Gunakan.
TUGAS II.D.1 Jalankan contoh program di bawah ini, analisis dan buatlah flowchart-nya. #include #define F_CPU 7372800UL #include #include void Init_Ext_Int(void); ISR(INT0_vect) { unsigned char i=0x01,n; for(n=0;n<8;++n) { PORTA = i; _delay_ms(250); i=(i<<1)|(i>>7); } } int main(void) { Init_Ext_Int(); sei(); DDRA=0xFF; while (1) { PORTA = 0b10101010; _delay_ms(500); PORTA = 0b01010101; _delay_ms(500); } return 0; } void Init_Ext_Int(void) { MCUCR=0x02;
15 MCUCSR=0x00; GICR=0x40; GIFR=0x40; }
Bila program ini dijalankan dengan benar, kondisi OUTPUT LED DISPLAY berbeda ketika interrupt eksternal dilakukan.
TUGAS II.D.2 Buatlah program dengan kondisi sebagai berikut:
Program utama akan menampilkan data ”FFh” bergantian dengan data ”00h”, masing-masing selama ½ detik. Jika terjadi interrupt dari INT0, program akan menampilkan data ”99h” bergantian dengan data ”66h”,masing-masing selama ½ detik. Setelah itu kembali ke program utama. Jika terjadi interrupt dari INT1, program akan menampilkan data ”XXh” bergantian dengan data ”YYh”,masing-masing selama ½ detik.. Setelah itu kembali ke program utama dengan XX adalah dua digit terakhir NIM praktikan 1 dan YY adalah dua digit terakhir NIM praktikan 1. Keterangan: boleh menggunakan fasilitas delay AVR-gcc.
PERTANYAAN ANALISIS 1. Apa yang dimaksud dengan prescaler? Dan apa fungsi prescaler dalam penggunaan timer? 2. Apa perbedaan delay dengan menggunakan timer dan dengan menggunakan delay_ms? 3. Apa fungsi register TIMSK, TCNT, OCR, dan TIFR pada penggunaan timer? 4. Pada praktikum modul 2 ini digunakan dua buah mode timer, yaitu CTC dan Normal. Jelaskan perbedaan kedua mode timer tersebut! 5. Apa yang terjadi jika TIMER Interrupt dan External Interrupt terjadi pada saat yang bersamaan? 6. Jelaskan kegunaan fungsi ISR() !
16
17
MODUL III KOMUNIKASI USART DAN EVALUASI MODUL I-III TUJUAN
Praktikan memahami datasheet ATMega 8535 Praktikan mampu membuat aplikasi komunikasi USART
KONFIGURASI TIMER/ COUNTER DAN INTERRUPT Gambar dan table berikut ini dikutipkan dari datasheet ATMega 8535: USART Data Register (Hal. 164-165)
USART Control and Status Register A (Hal. 165-166)
USART Control and Status Register B (Hal. 166-167)
USART Control and Status Register B (Hal. 167)
18 Register-register penting lain (Hal. 167 - 170)
19
TUGAS PENDAHULUAN 1. Tuliskan persamaan yang digunakan untuk menentukan nilai UBRR dengan menggunakan fasilitas double USART transmission speed dan jelaskan setiap variable yang digunakan!
III.A MENERIMA DATA DARI PC Persiapan
Sebelum Power Supply dihubungkan pada kit praktikum, atur terlebih dahulu pada tegangan 9volt. Kemudian, hubungkan pada kit praktikum Hubungkan PORT A (ATMega8535) dengan PORT OUTPUT (Trainer Board) Hubungkan ISP Training board ATMega 8535 dengan PC mengunakan downloader usbasp dan juga port serial BD9 ke PC. Pastikan sumber clock menggunakan Kristal eksternal 7372800 Hz dengan cara mengatur fuse terlebih dahulu (lihat Appendiks A) Jalankan HyperTerminal (lihat Apendiks D) (Gunakan TeraTerm sebagai terminal alternatif)
TUGAS III.A.1 Jalankan contoh program di bawah ini. Amati hasilnya dan buatlah flowchartnya. #include int main (void) { //tentukan nilai baudrate yang sesuai dengan inisialisasi ini UCSRA=0x00; UCSRB=0x10; UCSRC=0x86; UBRRL=47; while (1) { loop_until_bit_is_set(UCSRA,7); PORTA=UDR; UCSRA|=_BV(7); } return 0; }
Bila program ini dijalankan dengan benar, kondisi OUTPUT LED DISPLAY akan bersesuaikan dengan tombol PC yang ditekan.
20 TUGAS III.A.2 Modifikasi contoh program Tugas III.A.1. sehingga kondisinya sebagai berikut:
III.B
Baudrate = 2400bps Mengaktifkan fasilitas double USART transmission speed
MENGIRIM DATA KE PC
Persiapan Sama seperti III.A TUGAS III.B.1 Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchartnya. #include int main (void) { UCSRA=0x00; UCSRB=0x08; UCSRC=0x86; UBRRL=47; char kal[]=" Praktikum Sistem Mikroprosesor "; unsigned char i=0; for (i=0;kal[i]!='\0';++i) { loop_until_bit_is_set(UCSRA,5); UDR=kal[i]; } return 0; }
Bila program ini dijalankan dengan benar, pada layar Hyperterminal akan ditampilkan teks setiap tombol RESET ditekan. TUGAS III.B.2 Modifikasi program diatas sehingga pada layer Hyperterminal ditampilkan nama Anda dan pasangan kelompok Anda secara bergantian setiap x detik dan terus menerus, dengan x = (modulus 5 dari nomor kelompok) + 2. Keterangan: fasilitas delay AVR-gcc tidak digunakan.
21
III.C
PENGIRIMAN DAN PENERIMAAN DATA DARI DAN KE PC
Persiapan
Sama Seperti III.A
TUGAS III.C.1 Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchartnya. #include #include #define F_CPU 7372800UL #include ISR(USART_RX_vect) { unsigned char kar; kar = UDR; PORTA = kar; loop_until_bit_is_set(UCSRA,5); UDR = kar; } int main (void) { UCSRA=0x00; UCSRB=0x98; UCSRC=0x86; UBRRL=47; sei(); while(1) { if bit_is_set(UCSRA,3) { loop_until_bit_is_set(UCSRA,5); } } return 0; }
TUGAS III.C.2 Buatlah aplikasi seperti contoh program di atas, namun ketika user memberikan input dari PC berupa angka 1, maka ATMega mengirimkan NIM praktikan pertama sedangkan jika diberikan input berupa angka 2 maka ATMega mengirimkan NIM praktikan lainnya dan menampilkannya pada terminal.
22
III.D
REVIEW MODUL I-III
TUGAS III.D.1 Buatlah sebuah program yang berfungsi untuk memeriksa password yang diberikan melalui komunikasi serial dan toggle switch (SWITCH INPUT) dengan spesifikasi sebagai berikut:
Ada dua buah kata kunci yang akan diberikan kepada sistem; Pada saat idle, yaitu Mode Idle, OUTPUT LED DISPLAY menampilkan nyala sebuah LED seperti pada Tugas I.B.4 Jika sebuah tombol (INTERRUPT INPUT) ditekan, maka sistem akan berpindah pada Mode Kata Kunci 1, dimana sistem siap menerima kata kunci 1; Pada Mode Kata Kunci 1, sistem hanya menyediakan waktu 5 detik untuk menerima input kata kunci yang direpresentasikan oleh SWITCH INPUT. Sementara itu, OUTPUT LED DISPLAY akan merepresentasikan kenaikan waktu per-detik (dimulai dari detik ke-nol) dengan nyala led yang terus bertambah (dari hanya nyala led Bit0, lalu Bit0 dan Bit1 hingga led Bit0 sampaidengan Bit4 menyala). Setelah 5 detik berlalu, program mengecek apakah kata kunci yang direpresentasikan dengan SWITCH INPUT apakah benar atau salah. Jika salah, maka sistem kembali ke Mode Idle. Jika kata kunci 1 benar, semua led pada “OUTPUT LED DISPLAY” akan menyala sejenak (500ms) kemudian mati; Setelah itu sistem akan berpindah pada Mode Counter; Pada Mode Counter, ada sebuah tombol yang digunakan sebagai penghitung. OUTPUT LED DISPLAY menampilkan representasi biner dari jumlah penekanan tombol (COUNTER INPUT). Jika tombol itu telah ditekan sebanyak 5 kali, maka program akan berpindah ke Mode Kata Kunci 2. Pada Mode Kata Kunci 2, sistem akan menerima input kata kunci (sebuah karakter) dari komunikasi serial dalam jangka waktu 5 detik. Sementara itu, OUTPUT LED DISPLAY akan merepresentasikan kenaikan waktu per-detik (dimulai dari detik ke-nol) dengan nyala led yang terus bertambah (dari hanya nyala led Bit0, lalu Bit0 dan Bit1 hingga led Bit0 sampaidengan Bit4 menyala). Program mengecek apakah kata kunci yang dimasukan melalui HyperTerminal tadi adalah benar atau salah. Jika salah, akan kembali ke Mode Idle; Jika kata kunci 2 benar, program akan membuat seluruh led pada OUTPUT LED DISPLAY nyala dan mati, bergantian tiap detik, sebanyak 2 kali. Setelah itu kembali ke Mode Idle
Catatan: Port, mode timer dan kombinasi kata kunci yang digunakan bebas.
23
PERTANYAAN ANALISIS 1. 2. 3. 4. 1) 2) 5.
Apa protokol serial komunikasi yang digunakan pada praktikum kali ini? Berapa Baudrate yang digunakan pada tugas III.A.1? Jelaskan perhitungannya! Jelaskan maksud dari nilai-nilai register yang digunakan pada praktikum kali ini! Jelaskan langkah-langkah penggunaan USART untuk: mengirim data menerima data Jelaskan setiap komponen yang digunakan dalam mengerjakan Tugas III.D.1
24
25
MODUL IV SEVEN SEGMENT, KEYPAD DAN LCD TUJUAN
Praktikan memahami datasheet ATMega 8535 Praktikan mampu membuat aplikasi Seven Segment, Keypad dan LCD
SCANNING SEVEN SEGMENT Salah satu teknik untuk menjalankan perangkat Seven Segment adalah teknik Scanning. Dengan teknik scanning ini, sejumlah seven segmen dapat dijalankan secara bergantian (dengan frekuensi tertentu) melalui jumlah port yang minimum. Pada praktikum ini akan dipelajari teknik scanning untuk menjalankan dua buah seven segment pada Trainer Board. Aturan untuk menjalankan kedua seven segmen tersebut adalah sebagai berikut:
Untuk menjalankan seven segment 1 ( berlabel DIGIT1) maka pin DO1 (dari Port ”I/P S KEY”) harus diberi logika “0”; Sedangkan untuk dapat menjalankan seven segment 2 (DIGIT1) maka pin DO2 (dari port ”I/P S KEY”) harus diberi logika “0”.
Dengan demikian, untuk menyalakan masing-masing seven segemen tersebut, diatur logika ”0” untuk pin D01 dan D02 secara bergantian. Selain dua aturan di atas, untuk menampilkan angka (0 – 9) dan titik (.) dengan seven segment pada Trainer Board tersebut yaitu dengan mengatur logika pin dari port ”Data 7S”. Rangkaian seven segment tesebut berisfatactive high(logika “1” = nyala, logika “0” = padam), dengan urutan dari MSB ke LSB adalah DP (titik), G, F, E, D, C, B, A.
26
SCANNING KEYPAD Pada prinsipnya, teknik scanning pada keypad mirip dengan teknik scanning pada seven segmen. Namun, pada scanning keypad, selain dilakukan pengaturan logika pin secara bergantian, juga dilakukan secara bergantian pemeriksaan/ pembacaan pin oleh mikrokontroler untuk mengetahui tombol keypad mana yang sedang ditekan. DT-51 Trainer Board memiliki keypad 2x2 dengan kondisi sebagai berikut:
Pin penerima output dari mkrokontroler adalah pin KBO1 (dari port “I/P S KEY”) dan KBO2 (dari port “I/P S KEY”) yang bersifat active low. Sedangkan pin yang memberikan input pada mikrokontroler adalah KBI1 (dari port “I/P S KEY”) dan KBI2 (dari port “I/P S KEY”) yang bersifat active low.
Berikut ini adalah tahap-tahap untuk menjalankan keypad 2x2:
Pertama, berikan logika “0” pada pin KBO1 (sementara pin KBO2 berlogika “1”). Lalu, periksa logika dari data input KBI1. Jika logika pin KBI1 berubah dari “1” ke “0” berarti KEY1 telah ditekan (perhatikan rangkain listriknya). Selanjutnya KBI2 diperiksa; jika logikanya berubah dari “1” ke “0” berarti berarti KEY3 telah ditekan. Kedua, berikan logika “0” pada KBO2 (sementara pin KBO1 berlogika “1”). Kemudian tiap-tiap data input-nya diperiksa, seperti pemeriksaan pada tahap pertama.
27
LCD LCD yang digunakan dalam praktikum ini adalah LCD yang berbasis pada HD44780 LCD controller. Sebelum praktikum, praktikan diharuskan untuk membaca dan memahami proses untuk menjalankan LCD yang diuraikan pada datasheet HD44780 tersebut. Datasheet HD44780 disediakan di http://labdasar.ee.itb.ac.id Pada praktikum ini, percobaan tentang LCD akan dilakukan dengan menggunakan library beserta demo project-nya yang dapat didownload free di sini: http://winavr.scienceprog.com/download/AVR_LCD_Lib_Demo.zip
TUGAS PENDAHULUAN 1. Buatlah gambar rangkaian penggunaan LCD 16x2 dan keypad 4X4 menggunakan PORT C dan PORT D pada ATMega8535!
IV.A PERCOBAAN SCANNING SEVEN SEGMENT Persiapan
Sebelum Power Supply dihubungkan pada kit praktikum, atur terlebih dahulu pada tegangan 9volt. Kemudian, hubungkan pada kit praktikum Hubungkan Training board ATMega 8535 dengan PC mengunakan downloader usbasp Hubungkan PORT A (ATMega8535) dengan DATA 7S(Trainer Board). Hubungkan PORT D (ATMega8535) dengan I/P S KEY (Trainer Board).
TUGAS IV.A.1 Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchartnya. #include #define F_CPU 7372800UL #include char angka; char kodehex; unsigned int SSegmen(char angka); int main (void) { DDRA = 0xFF; DDRD = 0xFF;
28 while (1) { PORTD =(0<
Apabila sevent segment menampilkan “7.2” maka percobaan yang dilakukan benar.
29 TUGAS IV.A.2 Modifikasi Contoh Program di atas sehingga berjalan dengan kondisi berikut:
IV.B
Pertama, seven segment akan menampilkan ”50.” 1 detik kemudian, seven segment akan menampilkan ”40.” 1 detik kemudian, seven segment akan menampilkan ”30.” 1 detik kemudian, seven segment akan menampilkan ”20.” 1 detik kemudian, seven segment akan menampilkan ”10.” 1 detik kemudian, program kembali menampilkan ”F.F.” yang berkedipkedip 3x dengan selang waktu setengah detik. Kemudian padam.
SCANNING KEYPAD
Persiapan
Hubungkan PORT A dengan PORT OUTPUT (Trainer Board). Hubungkan PORT D dengan I/P S KEY (Trainer Board).
TUGAS IV.B.1 Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchartnya. #include #define F_CPU 7372800UL #include int main (void) { DDRA=0xFF; PORTA=0x00; DDRD=(1<
30 if(bit_is_clear(PIND,1)) PORTA=0b00000111; _delay_ms(50); } return 0; }
Program di atas dijalankan dengan benar jika Key1 ditekan,bit 0 OUTPUT LED DISPLAY menyala; dan jika Key2 ditekan,bit 0 dan 1 OUTPUT LED DISPLAY menyala; dan jika Key3 ditekan,bit 0, 1 dan 2 OUTPUT LED DISPLAY menyala; dan jika Key4 ditekan,bit 0, 1, 2 dan 3 OUTPUT LED DISPLAY menyala. TUGAS IV.B.2 Modifikasi Contoh Program diatas sehingga memenuhi kondisi berikut ini:
IV.C
Ketika tombol keypad belum ditekan samasekali, seven segment akan menampilkan angka ”00” Jika Key1 ditekan maka seven segment akan menampilkan angka ”11” Jika Key2 ditekan maka seven segment akan menampilkan angka ”22” Jika Key3 ditekan maka seven segment akan menampilkan angka ”33” Jika Key4 ditekan maka seven segment akan menampilkan angka ”44”.
LCD
Persiapan
Hubungkan PORT C pada Training board ATMega8535 dengan port LCD, cocokkan nama pin-nya terlebih dahulu, jangan sampai terbalik. Hubungkan PORT D (ATMega8535) pada I/P S KEY (Trainer Board).
TUGAS IV.C.1 Menjalankan AVR LCD Lib Demo Jalankan AVR LCD Lib Demo dengan membuka terlebih dahulu avrlcd.pnproj, kemudian adaptasikan Makefile-nya. Hal pertama yang harus diperhatikan dalam menggunakan library tersebut untuk percobaan pada praktikum ini adalah bahwa pada praktikum ini LCD dijalankan dengan menggunakan Port C. Sementara pada library tersebut, LCD dijalankan dengan Port D. Pengubahan dari Port D ke Port C dilakukan dengan mengedit 4 baris perintah pada file lcd_lib.h menjadi sebagai berikut: #define #define #define #define
LDP PORTC LCP PORTC LDDR DDRC LCDR DDRC
31 Jalankan program dan berikan penjelasan singkat tentang contoh program tersebut, termasuk flowchart pada file main.c TUGAS IV.C.2 Contoh program di bawah ini merupakan program pada file main.c yang dimodifikasi. #include #include #include #include
"lcd_lib.h"
//Strings stored in AVR Flash memory const uint8_t LCDtombol1[] PROGMEM="***Tekan Tombol Scanning Keypad***\0"; //delay 1s void delay1s(void) { uint8_t i; for(i=0;i<100;i++) { _delay_ms(10); } } int main(void) { LCDinit();//init LCD bit, dual line, cursor right LCDclr();//clears LCD DDRA=0xFF; PORTA=0x00; DDRD=(1<
32
} _delay_ms(50); if(bit_is_clear(PIND,1)) { LCDclr(); LCDGotoXY(8, 1); LCDsendChar('a'); delay1s(); LCDclr(); } _delay_ms(50); PORTD =(0<
TUGAS IV.C.3 Modifikasi contoh program di atas sehingga SCANNING KEYPAD 2x2 dan LCD bekerja sebagai berikut:
Sebelum ada tombol yang ditekan, LCD menampilkan tulisan “Percobaan LCD” Setiap penekanan tombol berlabel KEY1, KEY2, KEY3 atau KEY4, secara berurutan, LCD merepresentasikan angka 1, 2, 3 atau 4. Jika secara berurutan ditekan, misalnya, tombol dengan label KEY1, KEY3 dan KEY2 maka LCD menampilkan “132”.
33
Setelah penekanan tombol keypad sebanyak 4 kali dan kelipatannya, layar LCD bergeser 2 karakter ke kiri.
TUGAS IV.C.4 Seperti pada Tugas IV.C.3, tetapi menggunakan KEYPAD 4x4
PERTANYAAN ANALISIS 1. Mengapa teknik scanning digunakan pada percobaan menggunakan 7segment dan keypad? 2. Apa yang terjadi pada pembacaan keypad jika 2 keypad ditekan, jika a. Keypad yang ditekan dalam satu baris b. Keypad yang ditekan dalam satu kolom Mengapa demikian? 3. Apa yang dimaksud dengan mode pin high impedance? Apa perbedaannya dengan mode input biasa?
34
35
DAFTAR PUSTAKA Datasheet ATMega 8535, www.atmel.com
36
DAFTAR PUSTAKA
37
APENDIKS A PETUNJUK PENGGUNAAN WINAVR DAN AVRDUDE WinAVR (winavr.sourceforge.net) adalah seperangkat software opensource, termasuk di dalamnya adalah Programmers Notepad (http://sourceforge.net/projects/pnotepad/) dan AVRDude (http://savannah.nongnu.org/projects/avrdude/), untuk membuat, mengcompile dan mendownload program Atmel AVR dalam bahasa C. Pada situs winavr.sourceforge.net, selain disediakan installer WinAVR yang dapat didownload secara gratis, juga disediakan manual WinAVR. Namun demikian, berikut ini akan diulas secara singkat, mulai instalasi WinAVR, membuat program, hingga bagaimana memprogram ke dalam prosesor AVR. Langkah-langkah praktis disajikan secara berkesinambungan dari 1 hingga 39.
MENJALANKAN WINAVR DAN AVRDUDE Meng-install WinAVR 1.
Jalankan program installer WinAVR; pada contoh ini digunakan WinAVR versi 20090313 (tampak pada nama file-nya)
2.
Installer WinAVR kemudian akan menunjukan dialog berikut:
3.
Lalu, tekan OK jika diinginkan bahasa Inggris sebagai bahasa pengantarnya.
4.
Proses instalasi selanjutnya adalah berisi Lisence Agreement yang harus kita ikuti, kemudian pemilihan lokasi instalasi WinAVR
5.
Selanjutnya, pastikan seluruh (tiga) komponen dipilih untuk diinstal. Pemilihan ini ditandai dengan tanda centang ()
PETUNJUK PENGGUNAAN WINAVR dan AVRDUDE
38
6.
Ikuti hingga selesai.
Menginstall Driver GiveIO Driver GiveIO harus diinstall terlebih dahulu agar pemprograman dengan AVRDude dapat dilakukan. 7.
Jalankan Command Promt dengan mengetikan “cmd” pada Kotak Run
8.
Lalu, tekan Enter (untuk Win XP) atau Ctrl+Shift+Enter (untuk Win Vista atau Win 7), sehingga Command Prompt yang muncul dengan mode Administrator
9.
Kemudian, ketik “install_giveio” dan tekan Enter
39 10. Apabila pada Command Promt ditampilkan sebagaimana gambar di atas, maka instalasi driver GiveIO telah berhasil. Namun, apabila tidak seperti itu, kemungkinan besar karena Command Prompt tidak berjalan dalam mode Administrator. Berikut contoh instalasi GiveIO yang gagal:
Membuat Program dengan Programmers Notepad [Winavr] 11. Jalankan Programmers Notepad [WinAVR]
12. Buatlah New Project: File NewProject
13. Beri nama New Project tersebut, misalnya “Modul1”
14. Pilih Folder dimana New Project akan disimpan: a.
Klik Kotak “…”
PETUNJUK PENGGUNAAN WINAVR dan AVRDUDE
40
b.
Misalkan folder baru ditempatkan pada Drive C, kemudian, klik “Make New Folder” lalu beri nama folder “Modul1”
c.
Kemudian pilih folder baru tersebut sehingga “Folder: New folder” berubah menjadi “Folder: Modul1”
d.
Akhiri dengan klik OK
e.
Klik OK sekali lagi maka project baru dengan nama “Modul1” telah siap.
41
15. Selanjutnya adalah menyiapkan file editor dengan nama “Tugas1A1.c” a.
Klik: FileSave As…
b.
Beri nama file “Tugas1A1.c”
c.
Pastikan file “Tugas1A1.c” berada pada folder baru yang tadi dibuat, yaitu folder “C:\Modul1”. Kemudian, akhiri dengan klik Save
16. Ikutsertakan file “Tugas1A1.c” pada project “Modul1”
PETUNJUK PENGGUNAAN WINAVR dan AVRDUDE
42 a.
Klik kanan (Porject)(New Project Group)Modul1pilih Add Files
b.
Pilih file “Tugas1A1.c” tadi
c.
Akhiri dengan klik Open
17. Ketikkan baris-baris program Tugas1A1 sebagaimana gambar berikut:
Menyiapkan Makefile Program yang telah diketik tadi tidak dapat di-compile jika belum disiapkan file “Makefile” yang berada pada folder yang sama dengan file “Tugas1A1.c”, yaitu pada folder “C:\Modul1”. 18. Jalankan MFile [WinAVR]
43
19. Atur “TARGET = Tugas1A1” dengan langkah: a.
Makefileklik Main file name…
b.
Pada kotak Main file Ketikan nama “Tugas1A1”, sebagaimana gambar berikut:
c.
Akhiri dengan klik OK
20. Pilih jenis prosesor: MakefileMCU type ATmega a.
Pilih atmega8535
PETUNJUK PENGGUNAAN WINAVR dan AVRDUDE
44
b.
Tampilan setelah dipilih atmega8535
21. Pilih programmer yang MakefileProgrammer a.
digunakan
pada
praktikum
ini:
Karena programmer usbasp tidak terdaftar, maka pilih sembrang, misal ponyser.
45
b.
Kursor nanti akan langsung AVRDUDE_PROGRAMMER=ponyser
mengarah
c.
Lalu buka menu MakefileEnable Editing of Makefile
kepada
PETUNJUK PENGGUNAAN WINAVR dan AVRDUDE
46 d.
Lalu ganti nilai AVRDUDE_PROGRAMMER dari ponyser menjadi usbasp
22. Pilih Port yang digunakan oleh programmer tadi: MakefilePort a.
Pastikan/ pilih usb
b.
Tampilan setelah dipilih usb
23. Atur nilai Kristal yang digunakan dengan cara mengedit “Makefile” dengan mengetikan nilai Kristal tersebut a.
Makefileklik Enable Editing of Makefile
47
b. Lalu, edit “Makefile” dengan mengetikan nilai Kristal yang sesuai, misalnya 1 Mhz, sehingga tertulis “F_CPU = 1000000”
24. Simpan file “Makefile” tersebut di folder file “Tugas1A1.c” tadi berada a. FileSave As …
b. Pastikan berada pada foler “C:\Modul1”
48
PETUNJUK PENGGUNAAN WINAVR dan AVRDUDE
c. Akhiri dengan klik Save 25. Terakhir, tutup program Mfile: FileExit
Meng-compile Program dan Membuat File *.Hex Berikut ini adalah langkah untuk meng-compile sekaligus membuat file *.hex (pada kasus ini adalah file “Tugas1A1.hex”) yang akan didownload ke ATMega8535 26. Pilih Tools [WinAVR] Make All
27. Apabila tidak ada kesalahan pada program, maka pada Output ditampilkan “Process Exit Code : 0” seperti gambar berikut:
49
28. Apabila terjadi kesalahan, pada Output diberikan informasi kesalahan tersebut. Berikut ini adalah contohnya:
29. Perbaiki kesalahan yang terjadi, kemudian kembali ke langkah 26. Mendownload *.hex ke ATMega8535 30. Pastikan programmer telah terhubung dengan Sismin AVR dan programmer telah terhubung dengan PC 31. Pilih Tools [WinAVR] Programm
32.Apabila proses memprogram/ mendownload “Tugas1A1.hex”ke prosesor ATMega8535 berhasil, maka pada Output ditampilkan “Process Exit Code : 0” seperti gambar berikut:
PETUNJUK PENGGUNAAN WINAVR dan AVRDUDE
50
33. Apabila proses memprogram tidak berhasil, periksa kembali koneksi antara programmer dan PC serta programmer dan Sismin AVR; periksa juga kemungkinan lainnya. Kemudian, kembali ke langkah 30. 34. Setelah proses memprogram sukses, amatilah hasilnya. Manual WinAVR dan Deskripsi Library AVR-GCC Manual WinAVR dan deskripsi library pada AVR-GCC dapat dilihat secara offline dengan menjalankan WinAVR User Manual (untuk manual WinAVR) dan menjalankan avr-libc Manual [WinAVR] (untuk desktripsi library pada AVR-GCC).
MENGATUR FUSE DENGAN AVRDUDE Dengan menjalankan langkah 31. di atas, sesungguhnya prosesor tersebut diprogram dengan AVRDude (http://www.nongnu.org/avrdude/). Selain dapat memprogram seperti contoh di atas, AVRDude juga dapat digunakan untuk membaca dan mengatur fuse prosesor AVR. Deskripsi Fuse ATMega8535 Berikut ini adalah cuplikan deskripsi fuse ATMega8535 (Datasheet ATMega8535 hal. 238-239, http://www.atmel.com/dyn/Products/product_card.asp?part_id=2008):
51
Penggunaan Sumber dan Nilai Clock dengan Pengaturan Fuse Prosesor ATMega8535 memiki konfigurasi fuse awal (default) seperti pada table di atas sehingga bekerja dengan clock internal 1Mhz (tinjau konfigurasi Fuse Low Byte); lihat pula datasheet ATMega8535 hal. 29-30. Pada praktikum ini akan digunakan pula sumber clock eksternal (kristal) 7372800 Hz (lihat Hardware Sismin), sehingga pengaturan ulang fuse harus dilakukan; lihat pula datasheet ATMega8535 hal 25-27. Pada bagian ini akan diberikan petunjuk untuk membaca dan mengubah pengaturan fuse pada ATMega8535 dengan AVRDude Membaca Pengaturan Fuse Atmega8535 dengan Avrdude 35. Jalankan Command Prompt dengan mengikuti Langkah 7 dan 8 di atas 36. Pada Command Prompt, ketik perintah berikut, diikuti dengan tekan Enter: avrdude –c usbasp –p atmega8535 –P usb –v
37. Berikut adalah contoh potongan tampilan hasilnya:
52
PETUNJUK PENGGUNAAN WINAVR dan AVRDUDE
Mengubah Pengaturan Fuse Atmega8535 dengan Avrdude 38. Agar prosesor bekerja sumber clock dari clock eksternal (Kristal) 7372800 Hz, ketik perintah berikut, diikuti dengan tekan Enter: avrdude –c usbasp lfuse:w:0xEF:m
–p
atmega8535
–P
usb
-U
hfuse:w:0xD9:m
Memahami Kode-Kode Pada Avrdude 39. Untuk memahami arti kode-kode , misalnya –c, -P dsb., pada Command Prompt ketik “avrdude” diikuti dengan tekan:
-U
53
APENDIKS B KIT PRAKTIKUM SISTEM MINIMUM ATMEGA8535 Tata Letak
54
KIT PRAKTIKUM
Informasi PIN PORT I/O
PORT LCD
P1 P3 P5 P7 PC6 LED+ PC4
P0 P2 P4 P6
GND PC5 PC7
PORT ISP
VEE PC1/ GND R/W
GND GND GND VCC GND
VCC PC2/ E PC0/ RS
MOSI
RST
MISO
SCK
DT-51 TRAINER BOARD Tata Letak
55 Konektor
PENGKABELAN LCD KE SISTEM MINIMUM ATMEGA8535 Kabel Konektor Kabel yang digunakan untunk menghubungkan LCD ke Sistem Minimum ATMega 8535 ditampilkan pada gambar berikut ini.
8-Pin Female Header
2x8-Pin Female Header
56
KIT PRAKTIKUM Langkah-Langkah Pemasangan 1.
Hubungkan sepasang 8-Pin Female Header dari kabel konektor ke LCD
2.
Putar/ pelintir kabel konektor 1800
3.
Hubungkan 2x8-Pin Female Header dari kabel konektor tersebut ke Sistem Minimum ATMega8535
57
APENDIKS C
APENDIKS C KODE ASCII
58
KODE ASCII
59
APENDIKS D
APENDIKS D HYPERTERMINAL Di dalam praktikum ini, Anda akan melakukan percobaan komunikasi antara mikrokontroler AVR ATMega8535 dan komputer melalui protocol RS-232. Pada bagian komputernya, Anda akan menggunakan program terminal dari Windows XP yaitu HyperTerminal. Berikut adalah langkah-langkah menyiapkan HyperTerminal:
Start All Programs Accessories Communications HyperTerminal Dialog box yang pertama kali muncul adalah “Location Information”. Klik CANCEL Pada dialog box “Connection Desciption”, ketik sebarang karakter pada kolom “Name:”dan pilih sebarang Icon, lalu klik OK Pada dialog box “Connect To”, pilih COM1 pada baris “Connect using”, lalu klik OK Pada dialog box “COM1 Properties”, lakukan pengaturan seperti di bawah ini, lalu klik OK. Bits per second:
sesuaikan dengan pengaturan pada AVR
Data bits:
8
Parity:
None
Stop bits:
1
Flow controls:
None
Klik icon CONNECT untuk memulai komunikasi.
60
61
APENDIX E
APENDIX E INSTALASI DRIVER USB-ASP DI WINDOWS 7 1. Sambungkan kabel USB, antara komputer / laptop kepada downloader USB ASP. Pastikan kondisi led merah pada downloader USB ASP dalam kondisi ON.
2. Setelah itu sistem akan membaca hardware dari downloader USB ASP
3. Jika ini adalah koneksi pertama dari downloader USB ASP, maka langkah selanjutnya untuk mengintal/mengupgrade driver tersebut melalui Device Manager. Lalu pilih Other devices, klik kanan di USBAsp dan pilih Update Driver Software.
4. Pilih Browse my computer for driver software
62
Instalasi Driver USB-ASP di Windows 7
5. Cari folder driver USB ASP tersebut
6. Setelah itu pilih Install this driver software anyway
Instalasi Driver USB-ASP di Windows 7
7. Jika berhasil terinstall maka akan muncul menu seperti dibawah ini
8. Selain itu juga di Device Manager, driver USB Asp akan terinstall sempurna
63
64
Instalasi Driver USB-ASP di Windows 7
Proses Download Flash & EEProm AVR 8-Bit Menggunakan USB ASP
1. Klik ganda aplikasi USB ASP (AVR Dude GUI Ver 1.3)
2. Beberapa setting yang harus dilakukan
3. Untuk mendowload file Hexa dan Eeprom
Instalasi Driver USB-ASP di Windows 7
4. Jika Flash dan atau EEprom berhasil di download ke mikro tujuan (dalam hal ini ATmega8535), maka indikator menu yang muncul
5. Jika Flash dan atau EEprom gagal di download ke mikro tujuan (dalam hal ini ATmega8535) atau ada kesalahan koneksi di kabel, maka indikator yang muncul adalah
65
66
Instalasi Driver USB-ASP di Windows 7