KATA PENGANTAR Puji syukur Alhamdulillah kami panjatkan kehadirat Allah SWT. yang telah melimpahkan Rahmat dan Hidayah-Nya sehingga penyusunan buku “Modul Ajar Praktikum Interfacing” dapat selesai dengan baik dan lancar. Ucapan terima kasih yang sebesar-besarnya penyusun sampaikan untuk istriku dan kedua buah hatiku tercinta yang selalu bersabar dalam setiap kesulitan dan memberikan motivasi serta semangat kepada penyusun untuk menyelesaikan buku modul ajar ini. Tak lupa juga penyusun ucapkan terima kasih kepada seluruh pihak yang telah membantu baik secara langsung maupun tidak dalam proses penyusunannya. Dengan selesainya penyusunan buku “Modul Ajar Praktikum Interfacing” ini, penyusun mengharapakan supaya buku modul ajar ini dapat membantu proses belajar mengajar di Politeknik Perkapalan Negeri Surabaya (PPNS) pada umumnya dan khususnya di jurusan Teknik Kelistrikan Kapal (TKK) dapat berjalan sesuai dengan kompetensi yang diharapkan. Buku modul ajar praktikum ini telah disesuikan dengan perangkat laboratorium dan kurikulum di program studi Teknik Otomasi PPNS. Penyusunan buku modul ajar praktikum ini disajikan dalam bentuk yang mudah dipahami oleh mahasiswa sehingga penyampaian materi dapat lebih mudah diserap serta dapat dijadikan acuan dalam pembelajaran yang bersifat mandiri. Akhirnya penyusun menyadari bahwa buku modul ajar ini tak lepas dari kesalahan dan jauh dari kesempurnaan. Karena kemsempurnaan itu hanyalah milik Allah SWT. semata dan semua kekurangan karena keterbatasan penyusun. Oleh sebab itu semua masukan, kritik dan saran untuk perbaikan sangat penyusun harapkan. Semoga buku modul ajar praktikum “Praktikum Interfacing” ini dapat memberikan konstribusi dan manfaat yang besar bagi civitas akademika Politeknik Perkapalan Negeri Surabaya dan semua pembaca yang membutuhkan.
Surabaya, Maret 2013
Penyusun
i
DAFTAR ISI KATA PENGANTAR
i
DAFTAR ISI
ii
DAFTAR ISTILAH
iv
PENDAHULUAN A. Kompetensi
1
B. Gambaran Umum Materi
1
C. Waktu
1
D. Prasyarat
1
E. Petunjuk Penggunaan Modul Ajar
2
MODUL 1: PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR 1.1 Sub Kompetensi
3
1.2 Uraian Materi
3
1.3 Rangkuman
19
1.4 Referensi
21
1.5 Latihan Soal
21
1.6 Lembar Kerja
22
1.7 Lembar Kerja Praktikum
25
1.8 Jawaban Latihan Soal
50
MODUL 2: AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) 2.1 Sub Kompetensi
51
2.2 Uraian Materi
59
2.3 Rangkuman
60
2.4 Referensi
60
2.5 Latihan Soal
60
2.6 Lembar Kerja
61
2.7 Lembar Kerja Praktikum
62
2.8 Jawaban Latihan Soal
74
ii
MODUL 3: AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER) 3.1 Sub Kompetensi
75
3.2 Uraian Materi
75
3.3 Rangkuman
82
3.4 Referensi
83
3.5 Latihan Soal
83
3.6 Lembar Kerja
84
3.7 Lembar Kerja Praktikum
85
3.8 Jawaban Latihan Soal
92
MODUL 4: AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD 4.1 Sub Kompetensi
93
4.2 Uraian Materi
93
4.3 Rangkuman
97
4.4 Referensi
97
4.5 Latihan Soal
97
4.6 Lembar Kerja
98
4.7 Lembar Kerja Praktikum
99
4.8 Jawaban Latihan Soal
107
MODUL 5: AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC) 5.1 Sub Kompetensi
108
5.2 Uraian Materi
108
5.3 Rangkuman
111
5.4 Referensi
112
5.5 Latihan Soal
112
5.6 Lembar Kerja
113
5.7 Lembar Kerja Praktikum
114
5.8 Jawaban Latihan Soal
121
LAMPIRAN
iii
DAFTAR ISTILAH
CPU
(Central Processing Unit) sebagai unit pusat pemroses data. (Read Only Memory) sebagai unit penyimpan data yang
ROM
hanya dapat dibaca datanya saja dan tidak dapat ditulis oleh CPU.
RAM
I/O
Microprocessor
(Random Accsess Memory) sebagai unit penyimpan data sementara yang dapat dibaca dan ditulis datanya oleh CPU. (Input/Output) sebagai sarana komunikasi dengan perangkat luar. Processor yang mempunyai kecepatan yang rendah dan digunakan untuk keperluan tertentu. Controller board yang telah dilengkapi dengan processor
Microcontroller
dan fitur-fitur I/O sebagai sarana komunikasi dengan perangkat luar.
Downloader
Perangkat yang dipakai untuk mengisi atau menulis program ke dalam microcontroller. (Complex Instruction Set Computing) tipe processor yang
CISC
memiliki jumlah instruksinya lebih banyak / komplek tetapi fitur internalnya seadanya. (Reduced Instruction Set Computing) tipe processor yang
RISC
memiliki jumlah instruksinya lebih sedikit akan tetapi fitur internalnya lebih kaya.
iv
PENDAHULUAN
A. KOMPETENSI Memberikan keahlian kepada mahasiswa bagaimana melakukan komunikasi data dan mengendalikan
perangkat
keras
(Hardware)
seperti
Microcontroller
dan
Microprocessor khususnya seri Atmel AVR secara sistematis dan terstruktur dengan menggunakan perangkat lunak (Software) pemrograman WinAVR yang berbasis bahasa C. Komunikasi data dan pengendalian antara perangkat keras dengan perangkat keras atau komputer (Personal Computer) dengan perangkat keras dapat dikuasai dan difahami dengan baik.
B. GAMBARAN UMUM MATERI Materi
yang
diajarkan
mencakup
arsitektur
dasar
Microcontroller
dan
Microprocessor seri Atmel AVR, dasar-dasar data I/O (Input/Output), dasar-dasar sistem komunikasi dan pengendalian perangkat keras baik secara serial maupun paralel, dasar-dasar pemrograman Atmel AVR dengan menggunakan WinAVR yang berbasis bahasa C, mengenal perangkat-perangkat lunak (Software) pendukung pemrograman Atmel AVR lainnya, serta beberapa penerapan Atmel AVR pada suatu aplikasi.
C. WAKTU Mata kuliah ini berbobot 2 sks atau 3.33 jam tatap muka setiap minggunya. Sehingga untuk bisa mencapai kompetensi yang telah ditentukan, mahasiswa harus mengikuti kegiatan tatap muka sebanyak 3.33 jam x 16 kali tatap muka. Atau sebesar 53.33 jam.
D. PRASYARAT Untuk mempermudah pencapaian kompetensi yang diharapkan, mahasiswa harus mempunyai pemahaman dengan baik tentang prinsip dasar komponen-komponen elektronika, rangkaian analog dan digital, menguasai dasar-dasar sistem komunikasi data baik serial maupun paralel, menguasai dasar-dasar sistem pengaturan, memahami dan mengusai pembacaan datasheet komponen-komponen elektronika, menguasai komputer aplikasi dan memahami dasar-dasar pemrograman dengan menggunakan bahasa C.
MODUL AJAR PRAKTIKUM INTERFACING
1
PENDAHULUAN
E. PETUNJUK PENGGUNAAN MODUL AJAR Modul ajar Praktikum Interfacing ini telah disusun secara sistematis dengan mengacu pada SAP yang berlaku. Untuk itu mahasiswa dalam menggunakan modul ajar ini harus memperhatikan beberapa hal berikut : 1. Membawa modul ajar ini setiap mengikuti perkuliahan. 2. Membaca dengan baik setiap isi yang ada di dalam modul ajar. 3. Membuat daftar catatan kecil untuk sesuatu hal yang belum dimengerti. Untuk kemudian ditanyakan kepada dosen. 4. Mengerjakan semua latihan soal yang terdapat di dalam modul. 5. Mengisi lembar kerja praktek/praktikum/tugas yang terdapat di dalam modul ini. 6. Mendengarkan dan mengerjakan intruksi yang diberikan oleh pengajar. 7. Membuat laporan hasil-hasil praktikum yang telah dilakukan disertai dengan analisa dan kesimpulan dari hasil percobaan.
MODUL AJAR PRAKTIKUM INTERFACING
2
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
1.1. Sub Kompetensi Kemampuan yang akan dimiliki oleh mahasiswa setelah memahami isi modul ini adalah sebagai berikut : -
Mahasiswa mampu memahami dasar-dasar arsitektur Microcontroller keluarga Atmel AVR, menginstalasi driver downloader AVR, menginstalasi perangkat lunak WinAVR sebagai editor program AVR, memahami dasardasar pemrograman Atmel AVR berbasis bahasa C dengan menggunakan WinAVR.
1.2. Uraian Materi 1.2.1. Sekilas tentang Atmel AVR Microcontroller merupakan paket sistem kontrol sederhana berbentuk (Single Chip) yang dilengkapi dengan fitur memori dan peripheral pendukung lain. Sedangkan Microprocessor yang tidak dilengkapi dengan fitur tersebut.
Pembahasan mengenai Microcontroller tidak terlepas dari pemahaman tentang komputer yang kita kenal saat ini. Banyak kesamaan yang dapat ditemukan antara Microcontroller dan komputer. Kesamaan-kesamaan tersebut antara lain: •
Memiliki CPU (Central Processing Unit) sebagai unit pusat pemroses data.
•
Memiliki ROM (Read Only Memory) sebagai unit penyimpan data yang hanya dapat dibaca datanya saja oleh CPU.
•
Memiliki RAM (Random Accsess Memory) sebagai unit penyimpan data sementara yang dapat dibaca dan ditulis datanya oleh CPU.
•
Memilki I/O (Input/Output) sebagai sarana komunikasi dengan perangkat luar seperti diagram blok yang ditunjukkan pada gambar 1.
Sedangkan perbedaan antara Microcontroller dengan komputer seperti dijelaskan berikut ini: − Kecepatan proses CPU pada Microcontroller lebih rendah yaitu pada kisaran orde MHz (Mega Hertz) dibandingkan dengan komputer yang berorde GHz (Gega Hertz).
MODUL AJAR PRAKTIKUM INTERFACING
3
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
− ROM pada komputer atau lebih sering disebut BIOS (Basic Input Output System) tidak dapat langsung digunakan tetapi memerlukan data tambahan yang tersimpan pada harddisk. Sedangkan ROM pada Microcontroller dapat langsung dioperasikan tanpa menggunakan tempat penyimpanan data lain. − Ukuran RAM internal pada Microcontroller jauh lebih kecil yaitu berkisar pada orde KB (Kilo Byte) dibandingkan dengan RAM pada computer yaitu berkisar pada orde GB (Gega Byte). − Pemakaian I/O pada Microcontroller dapat langsung digunakan tanpa menggunakan unit atau komponen tambahan. Sedangkan pemakaian I/O pad komputer harus melalui unit pengolahan I/O yang sering disebut Chipset.
Komputer INPUT − − −
Keyboard Mouse …
CPU − − −
AMD (Sempron, Duron) Intel (Pentium IV, i3, i5,i7) …
OUTPUT − − −
Monitor Speaker …
Microcontroller INPUT − − −
Keypad Sensor …
CPU − −
Atmel (8051,AVR) PIC (16F84A, 16F877A)
−
OUTPUT − − −
Motor LED …
Gambar 1.1. Diagram blok I/O pada Microntroller dan komputer.
Dari beberapa kesamaan dan perbedaaan antara Microcontroller dengan komputer seperti tersebut maka dapat dikatakan bahwa Microcontroller merupakan miniatur dari sistem komputer atau juga dapat dikatakan Microcontroller merupakan sistem komputer yang disederhanakan.
Untuk lebih memahami pembahasan tentang Microcontroller, maka perlu juga kita mengetahui perbandingan tujuan dan pemanfaatan penerapan aplikasi menggunakan
MODUL AJAR PRAKTIKUM INTERFACING
4
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Microcontroller dengan komputer ditinjau dari beberapa aspek kebutuhan seperti ditunjukkan pada tabel 1.1.
Tabel 1.1. Perbandingan penerapan aplikasi antara Microcontroller dengan komputer ditinjau dari berbagai aspek kebutuhan, No. 1. 2.
KEBUTUHAN APLIKASI Harga Kompeksitas
3.
Portabilitas
4.
Dimensi
MICROCONTROLLER
KOMPUTER
Relatif murah Dipakai hanya untuk aplikasiaplikasi sederhana Dapat dipakai sebagai perangkat yang portable Relatif kecil (Compact)
Relatif mahal Dapat dipakai pada aplikasi yang kompleks Tidak dapat dipakai pada aplikasi yang Relatif besar
Setelah mengenal perbandingan penerapan aplikasi antara Microcontroller dan komputer sebagaimana dijelaskan sebelumnya, ada baiknya kita juga mengetahui arsitektur dasar Microcontroller seperti ditunjukkan pada gambar 1.2.
CPU
OSC
Program Memory
SFR
Instruction
Timer
Address
CPU Operation RAM
Instruction Decoder
Program Counter
ALU Accumulator ADC Control Logic
INPUT OUTPUT PORT
EEPROM
+
-
Gambar 1.2. Diagram blok Microntroller yang disederhanakan.
MODUL AJAR PRAKTIKUM INTERFACING
5
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Pada gambar 1.2 yang merupakan diagram blok sederhana dari arsitektur dasar Microcontroller terdapat blok-blok unit yang mempunyai kegunaan dan fungsifungsi tersendiri. Kegunaan blok-blok tersebut dijelaskan sebagai berikut: a) CPU yang terdiri dari : − SFR (Special Function Register) merupakan register khusus yang berfungsi untuk menyimpan data-data khusus sementara seperti konfigurasi I/O selama proses berlangsung. − RAM
internal berfungsi untuk menyimpan data-data aplikasi
sementara yang bersifat umum. − ADC (Analog to Digital Converter) berfungsi untuk mengubah data yang bertipe analag menjadi digital yang kemudian akan diproses oleh prosesor. − CPU Operation yang terdiri dari beberapa unit mempunyai fungsi masing-masing seperti dijelaskan sebagai berikut:
Instruction Decoder
berfungsi untuk menerjemahkan
instruksi yang ada di dalam Program Memory.
ALU (Arithmetic Logic Unit) berfungdi untuk melakukan instruksi perhitungan suatu operasi.
Accumulator berfungsi untuk menghubungkan sinyal kontrol operasi ke bagian Control Logic.
Control Logic berfungsi untuk menghubungkan sinyal-sisnyal kontrol hasil operasi ke periferal I/O yang terhubung.
b) OSC (Oscillator) berfungsi sebagai clock atau menyuplai sinyal detak Microcontroller. c) Timer dan Counter berfungsi sebagai pencacah waktu pada suatu operasi. d) I/O (Input Output) Port berfungsi media masuk dan keluarnya data suatu proses operasi. e) EEPROM berfungsi sebagai penyimpan data seperti RAM yang akan tetap menyimpan data walaupun tidak ada sumber daya atau dengan pengertian data terakhir yang tersimpan tidak akan hilang saat tidak ada sumber tegangan.
MODUL AJAR PRAKTIKUM INTERFACING
6
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
f) Program Memory berfungsi menyimpan data instruksi suatu operasi yang akan diproses. g) Program Counter berfungsi untuk melakukan perhitungan urutan instruksiinstruksi mana saja yang akan di eksekusi.
Setelah mengenal arsitektur dasar Microcontroller, maka selanjutnya perlu juga kita mengetahui tipe-tipe dari Microcontroller tersebut. Secara umum tipe-tipe Microcontroller dapat dikategorikan ke dalam 2 (dua) kelas yaitu: 1. Tipe CISC (Complex Instruction Set Computing) dimana jumlah instruksinya lebih banyak / komplek tetapi fitur internalnya seadanya. Contoh: Seri AT89 yang mempunyai 255 instruksi. 2. Tipe RISC (Reduced Instruction Set Computing) dimana jumlah instruksinya lebih sedikit akan tetapi fitur internalnya lebih kaya. Contoh: Seri PIC16F yang mempunyai jumlah instruksi berkisar 30 instruksi.
Beberapa perusahaan yang membuat Microcontroller yang telah dikenal antara lain adalah Atmel, Intel, Reinesance, Motorola, dan Zilog. Microcontroller seri AVR (Alfand Vegard's Risc processor) merupakan keluarga Microcontroller keluaran pabrikan Atmel yang banyak dan popular saat ini termasuk kedalam tipe RISC karena hanya memiliki sekitar 130-an instruksi.
Banyaknya jenis Microcontroller AVR itu sendiri dikarenakan kebutuhan akan aplikasi yang akan diterapkan berbeda-beda. Perusahaan Atmel memproduksi 5 (lima) tipe seri AVR yaitu: 1. TinyAVR Berukuran kecil mempunyai jumlah pin mulai 8 sampai 32 pin, mempunyai fitur sistem komunikasi 8 bit, memory flash sebesar 16 Kbytes, dilengkapi dengan SRAM dan EEPROM sebesar 512 Bytes. 2. MegaAVR Berukuran lebih besar mempunyai jumlah pin 40, fitur yang dimiliki yaitu sistem komunikasi 8 bit sudah dilengkapi dengan pengali perangkat keras
MODUL AJAR PRAKTIKUM INTERFACING
7
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
(Hardware Multiplier), kapasitas penyimpan data 256 KBytes, kapasitas EEPROM 4 KBytes, dan kapasitas SRAM 8KBytes. 3. AVR XMEGA Mempunyai fitur antara lain sistem komunikasi 8/16 bit dengan unjuk kerja tinggi dan canggih dilengkapi dengan sistem DMA dan Event yang baik serta memiliki ciri khas konsumsi daya kecil dengan performa tinggi. 4. AVR32 UC3 Mempunyai fitur antara lain sistem komunikasi 32 bit, berdaya rendah, kapasitas memori flash 512 Kbytes dan SRAM 128 Kbytes. 5. AVR32 AP7 Mempunyai fitur antara lain sistem komunikasi 32 bit, berdaya rendah, kapasitas SRAM 32 Kbytes. Di indonesia yang populer saat ini adalah tipe TinyAVR dan MegaAVR dikarenakan harganya yang relatif terjangkau dan aplikasi yang diterapkan menggunakan prosesor AVR tersebut tidak terlalu kompleks.
1.2.2. Arsitektur AVR ATMega 16 Modul pelatihan (AVR Trainner Board) yang digunakan sebagai penunjang mata kuliah ini adalah seri AVR bertipe ATMega 16. Penjelasan mengenai bagian-bagian AVR Trainner Board secara garis besar dapat dilihat pada bagian Lampiran pada modul ajar ini.
1.2.2.1. Fitur Dasar ATmega16 Microprocessor ATmega16 AVR memiliki fitur-fitur dasar sebagaimana dijelaskan berikut ini: 1. Port I/O 32 jalur (Port A, Port B, Port C, Port D masing - masing 8 bit) 2. ADC 8 channel dengan resolusi 10 bit 3. 3. buah timer / counter 4. Osilator internal 5. Flash PEROM 16 Kb 6. EEPROM 512 byte 7. SRAM 512 byte
MODUL AJAR PRAKTIKUM INTERFACING
8
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
8. Interupsi Eksternal dan Internal 9. Port USART untuk komunikasi serial. Untuk lebih memahami fitur-fitur yang ada pada AVR ATMega16 secara detil, maka disarankan melihat datasheet yang disertakan pada modul ajar ini pada bagian Lampiran.
1.2.2.2. Struktur Memori Secara khusus AVR ATmega16 mempunyai ruang memori data dan memori program yang terpisah. Memori data terdiri 3 bagian : -
32 buah General Purspose Register (GPR) / register umum
-
64 buah register I/O
-
512 byte SRAM Internal
-
Memori program sebesar 8 Kbyte dalam Flash PEROM dengan alamat 000H sampai FFFH.
1.2.2.3. Konfigurasi Hardware ATmega16 Bentuk fisik dari IC AVR ATMega 16 secara umum ada 2 (dua) macam yaitu bertipe PDIP dan SMD seperti ditunjukkan pada gambar 1.3 dan gambar 1.4. Pada gambargambar tersebut juga ditunjukkan konfigurasi pin-pin yang dimiliki.
Gambar 1.3. Diagram pin ATMega16 bertipe PDIP.
MODUL AJAR PRAKTIKUM INTERFACING
9
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
ATmega16 memiliki konfigurasi pin 40 kaki yang terdiri dari masing-masing pin I/O (32 pin) serta mempunyai fungsi khusus tergantung penggunaannya. Pada tabel 1.2 dijelaskan secara singkat fungsi dari masing-masing pin pada Microprocessor AVR ATMega16.
Gambar 1.4. Diagram pin ATMega16 bertipe SMD.
Tabel 1.2. Fungsi masing-masing pin pada AVR ATMega16. PIN Vcc GND
FUNGSI Masukan tegangan catu daya Ground
Port A (PA7..PA0)
Port A berfungsi sebagai masukan analog ke ADC internal pada mikrokontroler ATMega16, selain itu juga berfungsi sebagai port I/O dua arah 8-bit, jika ADC-nya tidak digunakan. Masing-masing pin menyediakan resistor pull-up internal yang bisa diaktifkan untuk masing-masing bit.
Port B (PB7..PB0)
Port B berfungsi sebagai sebagai port I/O dua arah 8-bit.Masingmasing pin menyediakan resistor pull-up internal yang bisa diaktifkan untuk masingmasing bit. Port B juga memiliki berbagai macam fungsi alternatif, seperti ditunjukkan
MODUL AJAR PRAKTIKUM INTERFACING
10
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
pada Tabel 1.3
Port C (PC7..PC0)
Port D (PD7..PD0)
/RESET
XTAL1 XTAL2
AVCC
AREF
Port C berfungsi sebagai sebagai port I/O dua arah 8-bit. Masingmasing pin menyediakan resistor pull-up internal yang bisa diaktifkan untuk masingmasing bit. Port C juga digunakan sebagai antarmuka JTAG, seperti ditunjukkan pada Tabel 1.4 Port D berfungsi sebagai sebagai port I/O dwi-arah 8-bit.Masingmasing pin menyediakan resistor pull-up internal yang bisa diaktifkan untuk masingmasing bit. Port D juga memiliki berbagai macam fungsi alternatif, seperti ditunjukkan pada Tabel 1.5 Masukan Reset. Level rendah pada pin ini selama lebih dari lama waktu minimum yang ditentukan akan menyebabkan reset, walaupun clock tidak dijalankan. Masukan ke penguat osilator terbalik (inverting) dan masukan ke rangkaian clock internal. Keluaran dari penguat osilator (inverting) Merupakan masukan tegangan catu daya untuk Port A sebagai ADC, biasanya dihubungkan ke Vcc, walaupun ADCnya tidak digunakan. Jika ADC digunakan sebaiknya dihubungkan ke Vcc melalui tapis lolos-bawah (low-pass filter). Tegangan referensi untuk ADC
Pada Tabel 1.3 sampai tabel 1.5 ditunjukkan masing-masing alternatif fungsi dari Port B, Port C dan Port D. Dalam modul ajar ini dijelaskan fungsi masing-masing port terkecuali untuk JTAG Interface.
MODUL AJAR PRAKTIKUM INTERFACING
11
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Tabel 1.3. Fungsi-fungsi alternatif dari PORTB.
Tabel 1.4. Fungsi-fungsi alternatif dari PORTC.
Tabel 1.5. Fungsi-fungsi alternatif dari PORTD.
MODUL AJAR PRAKTIKUM INTERFACING
12
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Untuk lebih menambah wawasan tentang arsitektur dasar ATmega16 coba amati gambar 1.5 berikut .
Gambar 1.5. Diagram blok arsitektur ATMega16.
MODUL AJAR PRAKTIKUM INTERFACING
13
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
1.2.3. AVR910 Dowloader Sebuah Microcontroller akan dapat beroperasi jika didalam prosesornya telah tertanam sebuah program atau kumpulan dari instruksi-instruksi. Instruksi-instruksi tersebut berasal dari kode-kode program yang dibuat dengan menggunakan editor program dengan bahasa pemrograman tersetentu misalnya Basic atau C, kemudian program tersebut dikompilasi dan siap dimasukkan ke Microcontroller. Untuk memasukkan program kompilasi tersebut ke dalam Microcontroller diperlukan sebuah media yang disebut Programmer atau Downloader.
Downloader AVR910 USB yang digunakan pada modul pelatihan ini, merupakan perangkat keras yang digunakan sebagai sarana antarmuka dalam melakukan pemrograman Microcontroller jenis AVR. Pemrograman AVR pada umumnya dilakukan dengan menghubungkan LPT atau serial. Untuk downloader ini, pemrograman dilakukan dengan USB melalui pin MISO, MOSI, SCK dan RST. Untuk dapat menggunakan AVR910 USB sebagai downloader maka diperlukan driver dalam komputer yang digunakan. Rangkaian skematik dari downloader tersebut seperti ditunjukkan pada gambar 1.6. Sedangkan untuk penjelasan lebih detil tentang downloader tersebut dapat dilihat pada datasheet yang ada dibagian Lampiran.
Gambar 1.6. Skematik AVR910 USB berbasis ATMega8.
MODUL AJAR PRAKTIKUM INTERFACING
14
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Spesifikasi AVR 910 USB adalah sebagai berikut: − Antar muka yang digunakan adalah USB, sehingga dapat digunakan pada PC, Notebook atau Laptop yang tidak mempunyai LPT atau serial − Tidak membutuhkan catu daya eksternal − Kompiler yang digunakan adalah Codevision AVR, AVR Studio, WinAVR atau kompiler yang lain yang mempunyai fasilitas AVR 910
1.2.4. Dasar Pemrograman C dengan WinAVR Bahasa pemrograman Microcontroller dapat menggunakan bahasa Assembly, BASIC, C dan masih banyak lagi. Pada modul ini pemrograman Microcontroller menggunakan bahasa pemrograman C.
Untuk memahami pemrograman dalam bahasa C, berikut ini disajikan beberapa poin-poin penting yang perlu dipelajari yaitu: 1. Struktur penulisan bahasa C seperti ditunjukkan kode program berikut ini. #include < [library1.h] > #define [nama1] [nilai];
// Opsional // Opsional
[global variables] [functions]
// Opsional // Opsional
int main(void) // Program Utama { [Deklarasi local variable/constant] [Isi Program Utama] }
2. Tipe-tipe data dalam bahas C seperti dijelaskan berikut ini: − char : 1 byte ( -128 s/d 127 ) − unsigned char : 1 byte ( 0 s/d 255 ) − int: 2 byte ( -32768 s/d 32767 ) − unsigned int: 2 byte ( 0 s/d 65535 ) − long: 4 byte ( -2147483648 s/d 2147483647 ) − unsigned long: 4 byte ( 0 s/d 4294967295 ) − float: bilangan desimal − array: kumpulan data-data yang sama tipenya.
MODUL AJAR PRAKTIKUM INTERFACING
15
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
3. Deklarasi Variabel dan Konstanta −
Variabel adalah memori penyimpanan data yang nilainya dapat diubahubah. Penulisan : [tipe data] [nama] = [nilai];
− Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah. Penulisan : const [nama] = [nilai]; − Global variable atau constant dapat diakses di seluruh bagian program. − Local variable atau constant hanya dapat diakses oleh fungsi tempat dideklarasikannya. 4. Pernyataan Statement atau pernyataan adalah setiap operasi dalam pemrograman, harus diakhiri dengan [;] atau [}]. Pernyataan tidak akan dieksekusi bila diawali dengan tanda [//] untuk satu baris. Lebih dari 1 baris gunakan pasangan [/*] dan [*/]. Pernyataan yang tidak dieksekusi disebut juga komentar. Contoh: suhu=adc/255*100; //contoh rumus perhitungan suhu
5. Fungsi Function atau fungsi adalah bagian program yang dapat dipanggil oleh program utama. Penulisan kode: [tipe data hasil] [nama function]([tipe input 1],[tipe input 2])
{ [pernyataan_1]; [pernyataan_2]; ... }
6. Pernyataan berkondisi if else: digunakan untuk menyeleksi satu atau beberapa kondisi. Penulisan kode: if ( [persyaratan] ) { [statement1]; [statement2]; ... } else { [statement3]; [statement4]; ... }
switch case: digunakan untuk seleksi dengan banyak kondisi. MODUL AJAR PRAKTIKUM INTERFACING
16
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Penulisan kode: switch ( [nama variabel] ) { case [nilai1]: [statement1]; break; case [nilai2]: [statement2]; break; ... }
7. Perulangan for : digunakan untuk pengulangan dengan jumlah yang sudah diketahui berapa kali diulang. Penulisan kode: for ( [nilai awal] ; [syarat] ; [operasi nilai] ) { [statement1]; [statement2]; ... }
while: digunakan untuk pengulangan (looping) jika masih memenuhi suatu kondisi tertentu. Penulisan kode: while ( [persyaratan] ) { [statement1]; [statement2]; ... }
do while: digunakan untuk pengulangan jika dan selama memenuhi syarat tertentu, namun min 1 kali. Penulisan kode: do { [statement1]; [statement2]; ... } while ([persyaratan])
MODUL AJAR PRAKTIKUM INTERFACING
17
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
8. Operasi Logika dan Bilangan Biner Operator Logika: AND: && NOT: ! OR : || Biner : AND: & OR : | XOR : ^ Shift right: >> Shift left : << Operator relasi: Lebih besar sama dengan: >= Lebih kecil/besar: < , > Lebih kecil sama dengan : <= 9. Operasi Aritmetika Operator +, -, *, / +=, -=, *=, /=
% ++, --
Keterangan Tambah, kurang, kali dan bagi Nilai di sebelah kiri operator ditambah, dikurangi, dikali atau dibagi dengan nilai di sebelah kanan operator. Sisa pembagian Ditambah 1 (increment) atau dikurangi satu (decrement)
Contoh: a = 5 * 6 + 2 / 2 – 1 hasilnya 30 a *= 5 jika nilai awal a=30, maka hasilnya 150 a += 3 jika nilai awal a=30, maka hasilnya 33 a++ jika nilai awal a=5, maka hasilnya 6 a-- jika nilai awal a=5, maka hasilnya 4, dst
10. Pengulangan terus-menerus atau Infinite Looping Infinite Looping merupakan suatu pengulangan yang dilakuka terus-menerus tanpa batas, hingga rangkaian tidak lagi mendapatkan sumber catu daya. Umumnya Infinite Looping diletakkan pada program utama seperti contoh kode program berikut ini: MODUL AJAR PRAKTIKUM INTERFACING
18
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
void main() { // pernyataan-pernyataan program while (1); // infinite loop { // pernyataan2 } }
Catatan: Untuk keluar dari infinite looping gunakan perintah break;
WinAVR (http://winavr.sourceforge.net/) merupakan perangkat lunak yang bersifat opensource sebagai tools pengembangan untuk seri RISC dari Microprocessor Atmel AVR pada platform Window berbasis GNU GCC Compiler untuk bahasa C dan C++. Tool-tool yang termasuk didalamnya antara lain Programmers Notepad sebagai media editor (http:/sourceforge.net/projects/pnotepad/), M-File sebagai editor pembuat makefile rule sebelum dikompilasi dan AVRDude sebagai tools untuk kompilasi dan mendownload program Microcontroler seri RISC Atmel AVR dalam bahasa C (http://savannah.nongnu.org/projects/avrdude/) seperti ditunjukkan pada gambar 1.7.
Gambar 1.7. Tools yang disediakan WinAVR GCC.
Pada
situs
WinAVR
selain
disediakan
installer
WinAVR
yang
dapat
didownload secara gratis, juga disediakan intruksi manual WinAVR.
1.3. Rangkuman Microcontroller merupakan sistem pengendali yang sederhana
dan dapat
dianalogikan juga sebagai bentuk sistem komputer sederhana yang disesuaikan dengan kebutuhan. Berbeda dengan Microprocessor, pada Microcontroller telah
MODUL AJAR PRAKTIKUM INTERFACING
19
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
dilengkapi dengan fitur memori dan peripheral pendukung lain yang dipaket menjadi satu bentuk IC (Single Chip). Kemiripan Microcontroller dan komputer antara lain terletak pada kesamaan mempunyai CPU, ROM, RAM, dan I/O. Sedangkan perbedaan antara keduanya terletak pada : − Kecepatan proses CPU. − Kapasitas ROM/RAM. − Kemudahan akses I/O. Aspek kebutuhan yang menjadi pertimbangan pada penerapan aplikasi antara Microcontroller dan komputer antara lain: − Aspek harga. − Aspek kompleksitas aplikasi. − Aspek portabilitas. − Aspek dimensi alat.
Seri Microcontroller AVR yang diproduksi Atmel terdiri dari 5 (lima) jenis yaitu: 1. TinyAVR 2. MegaAVR 3. AVR XMEGA 4. AVR32 UC3 5. AVR32 AP7
Microcontroller ATmega16 merupakan seri megaAVR dengan sistem komunikasi 8 bit, memiliki memori flash internal sebesar 16 Kbytes, dan mempunyai 4 (empat) port keluaran (Output) yaitu PORTA (PA0-PA7), PORTB (PB0-PB7) , PORTC (PC0-PC7) dan PORTD (PD0-PD7).
Untuk memasukkan instruksi kode program ke dalam Microcontroller diperlukan tools yang disebut downloader. Pada modul pelatihan ini dipakai downloader AVR910 USB. Bahasa pemrograman untuk menuliskan kode instruksi pada modul ini menggunakan bahasa C dan tools yang dipakai sebagai editornya adalah WinAVR.
MODUL AJAR PRAKTIKUM INTERFACING
20
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
1.4. Referensi a) Agfianto Eko Putra (2009), Tip dan trik Mikrontroler AT89 dan AVR. Penerbit Gavamedia. b) Budiharto, Widodo (2006), Panduan Praktikum Mikrokontroler AVR ATmega 16. Elex Media Komputindo. c) Takashi, (2007), AVR GCC Tutorial. German: (www.mikrocontroller.net). d) Atmel Co., (2010). Datasheet AVR ATmega16.
1.5. Latihan Soal 1.
Apakah perbedaan mendasar yang anda ketahui antara Microprocessor dan Microcontroller ?
2.
Sebutkan persamaan dan perbedaan antara Microcontroller dan komputer (Personal Computer)?
3.
Sebutkan seri keluarga Microcontroller AVR yang anda ketahui?
4.
Apakah fungsi dari Downloader atau sering juga disebut Programmer ?
5.
Sebutkan macam-macam downloader bertipe USB yang anda ketahui?
6.
Sebutkan perangkat lunak downloader yang anda ketahui?
7.
Selain WinAVR, ada beberapa perangkat lunak yang digunakan untuk menuliskan kode program AVR. Sebutkan adan jelaskan secara singkat masingmasing perangkat lunak tersebut!
MODUL AJAR PRAKTIKUM INTERFACING
21
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
1.6. Lembar Kerja ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... .........................................................................................................................................
MODUL AJAR PRAKTIKUM INTERFACING
22
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... .........................................................................................................................................
MODUL AJAR PRAKTIKUM INTERFACING
23
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... .........................................................................................................................................
MODUL AJAR PRAKTIKUM INTERFACING
24
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
1.7. Lembar Kerja Praktikum 1.7.1
Alat dan Bahan
Alat
: No.
Nama
1.
3. 4.
Komputer AVR Trainer Board yang dilengkapi dengan AVR910 Downloader Driver AVR910 USB downloader Installer WinAVR
No.
Nama
2.
Jenis Perangkat Keras
Jumlah 1
Keras
1
Lunak Lunak
1 1
Bahan :
1. 2. 3.
1.7.2
Kabel USB Printer Kabel data pelangi Kabel power 220VAC
Jenis Perangkat Keras Keras Keras
Jumlah 1 4 1
Prosedur Keselamatan
Untuk mencegah hal-hal yang tidak diinginkan, Ikutilah prosedur keselamatan kerja berikut ini selama praktikum berlangsung: 1. Sebelum menggunakan perangkat hendaknya periksa dahulu kelengkapannya. 2. Sebelum menyalakan perangkat periksa dan pastikan koneksi kabel dan konektor-konektor yang terhubung. 3. Periksa dahulu tombol power perangkat dan pastikan dalam keadaan OFF sebelum dikonfigurasi. 4. Periksa kembali konfigurasi kabel dan konektor dan pastikan tidak ada yang terbalik polaritasnya.
1.7.3
Langkah Kerja
Ikuti langkah-langkah kerja praktikum berikut ini sesuai dengan prosedur: 1. Konfigurasi perangkat sesuai dengan sub bab gambar kerja setelah sub bab ini. 2. Instal driver AVR910 USB downloader sesuai dengan prosedur yang ada setelah sub bab ini. 3. Instal Software WinAVR sesuai dengan prosedur setelah sub bab ini. MODUL AJAR PRAKTIKUM INTERFACING
25
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
4. Instal driver Giveio sesuai prosedur setelah sub bab berikut. 5. Buat program dengan tool Programmer Notepad (WinAVR) sesuai prosedur. 6. Kompilasi program WinAVR untuk menghasilkan file *.hex sesuai dengan prosedur. 7. Download program ke AVR ATmega16 sesuai dengan prosedur. 8. Kerjakan tugas praktikum pada sub bab berikutnya. 9. Buat analisa dan laporan dari hasil praktikum yang telah dilakukan.
1.7.3.1 Prosedur Instalasi driver AVR910 USB downloader Berikut ini adalah cara instalasi AVR 910 USB pada PC atau notebook dengan operasi Windows XP 32/64 bit: 1. Hubungkan AVR 910 dengan PC atau notebook anda menggunakan kabel USB Printer. 2. PC atau notebook anda akan mengenali adanya perangkat keras (hardware) baru yang terpasang yang ditandai dengan pesan ‘Found New Hardware’ pada layar monitor sebelah kanan bawah. 3. Kemudian PC atau notebook akan meminta driver dari perangkat keras tersebut dan meminta anda untuk menginstal driver dengan munculnya dialog wizard seperti gambar 1.8.
Gambar 1.8. Wizard dialog instalasi driver.
MODUL AJAR PRAKTIKUM INTERFACING
26
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
4. Pilih Install from a list or specific location (Advanced), lalu tekan tombol Next, tekan Browser lalu pilih folder Driver\2k_xp_32 yang ada pada CD. Kemudian tekan Next seperti ditunjukkan gambar 1.9 sampai gambar 1.11.
Gambar 1.9. Wizard dialog pilihan lokasi file driver.
Gambar 1.10. Wizard dialog setelah diinstal driver.
MODUL AJAR PRAKTIKUM INTERFACING
27
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Gambar 1.11. Wizard dialog setelah driver selesai diinstal.
5. Setelah langkah di atas selesai, maka PC atau notebook anda telah siap menggunakan AVR 910 USB. Untuk memastikan, buka device manager melalui control panel, performance and Maintenance, kemudian System, pilih Hardware kemudian tekan Device Manager. Perhatikan driver AVR910 USB pada bagian port seperti gambar 1.12.
Gambar 1.12. Wizard dialog device manager.
MODUL AJAR PRAKTIKUM INTERFACING
28
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
1.7.3.2 Prosedur Instalasi Program WinAVR
1. Jalankan program installer WinAVR, pada praktikum ini yang digunakan adalah WinAVR versi 20100110 (tampak pada nama file‐nya seperti gambar 1.13).
Gambar 1.13. Nama file installer WinAVR.
2. Kemudian akan muncul dialog pilihan instalasi bahasa seperti gambar 1.14 berikut ini:
Gambar 1.14. Dialog pilihan bahasa instalasi.
3. Lalu, tekan OK jika diinginkan bahasa Inggris sebagai bahasa pengantar instalasinya. 4. Proses instalasi selanjutnya adalah berisi Lisence Agreement yang harus kita ikuti, kemudian pada pemilihan lokasi instalasi WinAVR. (Ubah lokasi instalasi menjadi C:\WinAVR seperti ditunjukkan gambar 1.15 ). 5. Selanjutnya, pastikan seluruh (tiga) komponen dipilih untuk diinstal. Pemilihan ini ditandai dengan tanda centang (√) seperti ditunjukkan gambar 1.16. 6. Ikuti proses instalasi hingga selesai.
MODUL AJAR PRAKTIKUM INTERFACING
29
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Gambar 1.15. Dialog pilihan lokasi instalasi WinAVR.
Gambar 1.16. Dialog pilihan komponen instalasi WinAVR.
1.7.3.3 Prosedur Instalasi Driver GiveIO Driver GiveIO
dibutuhkan agar pemprograman
dengan
AVRDude dapat
digunakan dengan WinAVR. Berikut ini langkah –langkah instalasi driver GiveIO: 1. Jalankan Command Prompt dengan mengetikan “cmd” pada kotak Run pada menu “Start -> Run” seperti ditunjukkan gambar 1.17.
MODUL AJAR PRAKTIKUM INTERFACING
30
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Gambar 1.17. Tampilan menu ‘Run’ pada windows. 2. Lalu, tekan Enter (untuk Win XP) atau Ctrl+Shift+Enter (untuk Win Vista atau Windows 7), sehingga Command Prompt yang muncul dengan mode Administrator seperti terlihat pada gambar 1.18 berikut:
Gambar 1.18. Tampilan menu ‘Command Run’ untuk administrator. Jika command prompt belum dalam mode administrator maka instalasi GiveIO tidak dapat dilakukan berikut gambar contoh yang salah belum pada mode administrator seperti gambar 1.19.
Gambar 1.19. Tampilan menu ‘Command Run’ untuk selain administrator. 3. Kemudian ubah direktori ke C:\WinAVR\bin dengan mengetikkan pada
MODUL AJAR PRAKTIKUM INTERFACING
31
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
command prompt “cd c:\winavr\bin” kemudian tekan enter hasilnya seperti gambar 1.20 berikut ini.
Gambar 1.20. Tampilan menu ‘Command Run’ lokasi direktori WinAVR.
4. Kemudian, ketik “install_giveio” dan tekan Enter dan hasilnya seperti terlihat pada gambar 1.21 berikut.
Gambar 1.21. Tampilan menu ‘Command Run’ instalasi giveio yang telah berhasil. 5. 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
MODUL AJAR PRAKTIKUM INTERFACING
32
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
mode Administrator. Gambar 1.22 berikut merupakan contoh instalasi GiveIO yang gagal.
Gambar 1.22. Tampilan menu ‘Command Run’ instalasi giveio yang telah gagal.
1.7.3.4 Prosedur Pemrograman AVR dengan Programmer Notepad 1. Jalankan Programmers Notepad pada start menu program WinAVR seperti ditunjukkan gambar 1.23.
Gambar 1.23. Programmer Notepad pada start menu program WinAVR. 2. Buatlah New Project dengan menekan urutan menu: “File New Project “ seperti ditunujkkan pada gambar 1.24.
Gambar 1.24. Pilihan project baru pada Programmer Notepad. MODUL AJAR PRAKTIKUM INTERFACING
33
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
3. Beri nama New Project tersebut, misalnya “Modul1” seperti ditunjukkan gambar 1.25 berikut.
Gambar 1.25. Pemberian nama project baru pada Programmer Notepad. 4. Pilih Folder dimana New Project akan disimpan: a. Klik Kotak “…”
Gambar 1.26. Pilihan folder project baru pada Programmer Notepad.
b. Misalkan folder baru ditempatkan pada Drive C, kemudian, klik “Make New Folder” lalu beri nama folder “Modul1”
Gambar 1.27. Pembuatan folder baru pada Programmer Notepad. MODUL AJAR PRAKTIKUM INTERFACING
34
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
c. Kemudian pilih folder baru tersebut sehingga “Folder: New folder” berubah menjadi “Folder: Modul1” kemudian klik OK seperti tampak pada gambar 1.28. d. Klik OK sekali lagi maka project baru dengan nama “Modul1” telah siap seperti tampak pada gambar 1.29..
Gambar 1.28. Penamaan folder baru pada Programmer Notepad.
Gambar 1.29. Konfirmasi folder yang telah dibuat pada Programmer Notepad.
5. Selanjutnya adalah menyiapkan file editor bahasa C dengan nama “Tugas1.c” a. Klik: File->Save As…
Gambar 1.30. Pilihan menu ‘File’ pada Programmer Notepad. MODUL AJAR PRAKTIKUM INTERFACING
35
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
b. Beri nama file “Tugas1.c” seperti tampak pada gambar 1.31. c. Pastikan file “Tugas1.c” berada pada folder baru yang tadi dibuat, yaitu folder “Modul1”. Kemudian, akhiri dengan klik Save.
Gambar 1.31. Kotak dialog penamaan ‘Save As’ pada Programmer Notepad.
6. Ikutsertakan file “Tugas1.c” pada project “Modul1” dengan cara sebgai berikut: a. Klik kanan (Porject)(New Project Group)Modul1->pilih Add Files
Gambar 1.32. Cara menambahakan file C ke dalam project baru.
b. Pilih file “Tugas1.c” yang telah dibuat. c. Akhiri dengan klik Open seperti ditunjukkan pada gamabr 1.33. d. Kemudian akan muncul sebuah editor kosong yang bernaman “Tugas1.c” dan telah siap untuk dituliskan kode program seperti tampak pada gambar1.34.
MODUL AJAR PRAKTIKUM INTERFACING
36
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Gambar 1.33. Kotak dialog penambahan file C ke dalam project baru yang telah dibuat pada Programmer Notepad.
Gambar 1.34. Ruang kosong editor file C yang siap untuk deprogram.
Gambar 1.35. Contoh kode program yang dituliskan pada Tugas1.c. MODUL AJAR PRAKTIKUM INTERFACING
37
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
7. Ketikkan baris‐baris program Tugas1 seperti pada bagian tugas 1 pada modul 1 praktikum ini atau sebagaimana tampak pada gambar 1.35.
1.7.3.5 Prosedur pembuatan MakeFile untuk kompilasi progam Program yang telah ditulis tadi tidak dapat di‐compile langsung jika belum disiapkan
file “Makefile” yang berada pada folder yang sama dengan file
“Tugas1.c”, yaitu pada folder “Modul1”.
Langkah-langkah untuk membuat MakeFile adalah sebagai berikut: 1. Jalankan MFile [WinAVR] seperti tampak pada gambar 1.36.
Gambar 1.36. Menu program pembuatan MakeFile pada Programmer Notepad.
2. Atur “TARGET = Tugas1” dengan langkah: a. Pilih menu “Makefile --> Main file name…” seperti pada gambar 1.37. b.
Gambar 1.37. Menambahkan main filename untuk MakeFile.
c. Pada kotak Main file -> Ketikan nama “Tugas1”, sebagaimana ditunjukkan pada gambar 1.38. d. Akhiri dengan klik OK seperti tampak pada gambar 1.38. e. Kemudian jika sudah selesai akan tampak pada gambar 1.39.
MODUL AJAR PRAKTIKUM INTERFACING
38
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Gambar 1.38. Konfirmasi dialog untuk menambahkan main filename.
Gambar 1.39. TARGET Filename pada MakeFile yang telah ditambahkan.
3.
Selanjutnya pilih jenis microcontroller yang akan dijadikan target pemrograman dengan memilih sub menu “Makefile --> MCU type --> ATmega”. a. Pilih atmega16 karena yang
dipakai pada modul pelatihan ini adalah
ATmega16 seperti tampak pada gambar 1.40.
MODUL AJAR PRAKTIKUM INTERFACING
39
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Gambar 1.40. Sub menu pilihan jenis Microcontroller pada mfile.
b. Kemudian muncul tampilan setelah dipilih atmega16 seperti tampak pada gambar 1.41.
Gambar 1.41. Tampilan jenis Microcontroller setelah dipilih.
4.
Pilih programmer atau downloader yang digunakan untuk memprogram AVR dengan memilih sub menu : “Makefile --> Programmer”. a. Pilih avr910 programmer sesuai dengan modul pelatihan ini seperti tampak pada gambar 1.42.
MODUL AJAR PRAKTIKUM INTERFACING
40
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Gambar 1.42. Tampilan menu untuk memilih jenis Programmer.
b. Kemudian tampilan setelah dipilih avr910 tampak seperti gambar 1.43.
Gambar 1.43. Tampilan jenis Programmer setelah dipilih.
5.
Pilih Port yang digunakan oleh programmer tersebut dengan memilih menu: “Makefile --> Port” seperti pada gambar 1.44. a. Pastikan/ pilih com yg sesuai dengan driver AVR910 pada device manager.
MODUL AJAR PRAKTIKUM INTERFACING
41
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Gambar 1.44. Tampilan menu pilihan port Programmer yang digunakan.
b. Tampilan setelah dipilih com tampak seperti gambar 1.45.
Gambar 1.45. Tampilan pilihan port Programmer setelah selesai dipilih.
6.
Atur nilai Kristal yang digunakan dengan mengetikan nilai Kristal tersebut secara langsung seperti langkah-langkah berikut:
MODUL AJAR PRAKTIKUM INTERFACING
42
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
a. Pilih menu “Makefile --> Enable Editing of Makefile” seperti tampak pada gambar 1.46.
Gambar 1.46. Tampilan menu pilihan “Enable Editing of Makefile”.
b. Kemudian, edit “Makefile” dengan mengetikan nilai Kristal yang sesuai, misalnya 8 Mhz, sehingga tertulis “F_CPU = 8000000” seperti tampak pada gambar 1.47.
Gambar 1.47. Tampilan setelah nilai Kristal selesai diedit.
7.
Simpan file “Makefile” tersebut di folder file “Tugas1.c” berada yaitu folder “Modul1” dengan langkah-langkah sebagai berikut: a. Pilih menu “File --> Save As …” seperti pada gambar 1.48.
MODUL AJAR PRAKTIKUM INTERFACING
43
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Gambar 1.48. Tampilan menu penyimpanan makefile.
b. Pastikan berada pada foler “Modul1”
Gambar 1.49. Tampilan tempat penyimpanan makefile menjadi satu folder.
c. Akhiri dengan klik Save (Catatan: Jangan mengubah nama file biarkan tetap Makefile)
8.
Terakhir, tutup program Mfile dengan memilih menu : “File --> Exit”
Gambar 1.50. Tampilan untuk keluar dari makefile.
MODUL AJAR PRAKTIKUM INTERFACING
44
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
1.7.3.6 Prosedur Kompilasi Program WinAVR Berikut ini adalah langkah untuk meng‐compile sekaligus membuat file *.hex (pada contoh kasus ini adalah file “Tugas1.hex”) yang akan didownload ke ATMega16. Langkah-langkah untuk menkompilasi program WinAVR adalah sebgai berikut: 1. Kembali programmers notepad editor yang telah dibuat pada bagian sebelumnya 2. Pada menu WinAVR pilih “Tools --> [WinAVR] Make All” seperti ditunjukkan pada gambar 1.51.
Gambar 1.51. Tampilan menu untuk kompilasi program pada WinAVR.
3. Apabila
tidak
ada
kesalahan
pada
program,
maka
pada
Output
ditampilkan “Process Exit Code : 0” seperti gambar 1.52 berikut:
Gambar 1.52. Tampilan pesan keluaran setelah program berhasil dikompilasi.
4. Apabila terjadi kesalahan, pada Output diberikan informasi kesalahan tersebut. Seperti ditunjukkan pada gambar 1.53.
MODUL AJAR PRAKTIKUM INTERFACING
45
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
Gambar 1.53. Tampilan pesan keluaran apabila terjadi kesalahan pada program.
5. Perbaiki kesalahan yang terjadi, kemudian kembali ke langkah 1 (satu).
1.7.3.7 Prosedur Download Program ke Microcontroller AVR Berikut ini merupakan langkah-langkah untuk download program ke Microcontroller AVR pada modul ini digunakan pada ATmega16: 1. Pastikan programmer telah terhubung dengan AVR Trainer Board dan AVR910 USB programmer telah terhubung dengan USB pada PC. 2. Kemudian pada menu pilih “Tools --> [WinAVR] Programm” seperti tampak pada gambar 1.54.
Gambar 1.54. Tampilan menu pilihan program kompilasi pada WinAVR.
3. Apabila
proses
memprogram/
mendownload
“Tugas1.hex”
ke
prosesor ATMega16 berhasil, maka pada Output ditampilkan “Process Exit Code: 0”.
MODUL AJAR PRAKTIKUM INTERFACING
46
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
4. Apabila proses memprogram tidak berhasil, periksa kembali koneksi antara programmer
dan
PC
serta
programmer
dan
AVR Trainer
Board periksa juga kemungkinan koneksi yang lain. Kemudian, kembali ke langkah 1 (satu). 5. Setelah proses memprogram sukses, amatilah hasilnya.
1.7.4. Gambar Kerja Gambar 1.55 menunjukkan koneksi antara PC/Notebook dengan AVR Trainer Board melalui kabel USB Printer.
AVR Trainer Board AVR910
Gambar 1.55. Koneksi PC ke AVR Trainer Board melalui kabel USB Printer.
Skematik dari rangkaian modul LED pada AVR Trainer Board seperti ditunjukkan pada gambar 1.56.
Gambar 1.56. Skematik rangkaian modul LED pada AVR Trainer Board.
MODUL AJAR PRAKTIKUM INTERFACING
47
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
1.7.5. Lembar Tugas Kerjakan tugas-tugas praktikum dibawah ini secara berurutan! (Catatan: Tugas-tugas praktikum tersebut menggunakan modul LED yang sudah tersedia pada AVR Trainer Board sebagai Output dari Microcontroller dimana skematik rangkaian modul LED tesebut seperti ditunjukkan gambar 1.56. Gunakan kabel data pelangi sebagai koneksi dari port yang dipakai pada AVR Trainer Board ke port ampenol pada modul LED). 1. Tanpa memperhatikan pengaturan fuse, jalankan contoh program di bawah ini, analisis dan buatlah flowchart‐nya. #include
int main(void) { //inisialisasi PORTA sebagai OUTPUT DDRA = 0xFF;
//nilai OUTPUT pada PORTA PORTA = (1<
}
return 0;
2. Modifikasi program di atas sehingga menghasilkan keluaran LED pada port B, C, dan D. Buatlah analisa dengan membandingkan programnya dengan program pada tugas 1. 3. Jalankan program berikut dan amati hasilnya kemudian buat analisanya. #include
int main(void) { //inisialisasi PORTA sebagai OUTPUT DDRA = 0xFF; //nilai OUTPUT pada PORTA PORTA =0xFF;
}
return 0;
4. Modifikasi program di atas menggunakan port B, C, dan D.
MODUL AJAR PRAKTIKUM INTERFACING
48
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
5. Jalankan program di bawah ini dan amati hasilnya, kemudian buatlah analisanya dengan membandingkan dengan program pada tugas 3. #include
int main(void) { //inisialisasi PORTA sebagai OUTPUT DDRA = 255; //nilai OUTPUT pada PORTA PORTA =255;
}
return 0;
6. Modifikasi program di atas menggunakan port B, C, dan D. 7. Jalankan program di bawah ini dan amati hasilnya, kemudian buatlah analisanya dengan membandingkan dengan program pada tugas 3 dan 5. #include
int main(void) { //inisialisasi PORTA sebagai OUTPUT DDRA = 0b11111111; //nilai OUTPUT pada PORTA PORTA =0b11111111;
}
return 0;
8. Modifikasi program di atas menggunakan port B, C, dan D. 9. Buatlah laporan resmi dari analisa-analisa pada percobaan diatas dengan format laporan dan cover seperti dicontohkan pada lampiran A dalam modul ini.
MODUL AJAR PRAKTIKUM INTERFACING
49
MODUL 1. PENGETAHUAN DASAR AVR DAN PEMROGRAMAN WINAVR
1.8. Jawaban Latihan Soal 1.
Sudah dijelaskan pada uraian materi.
2.
Sudah dijelaskan pada uraian materi.
3.
Sudah dijelaskan pada uraian materi.
4.
Sudah dijelaskan pada uraian materi.
5.
USBASP, AVR911, JTAG
6.
CodeBlast, AVRDude GUI, Khazama, Extreme Burner
MODUL AJAR PRAKTIKUM INTERFACING
50
MODUL 2 AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) Penyusun: Noorman Rinanto, S.T., M.T. NIP
PROGRAM STUDI TEKNIK OTOMASI JURUSAN TEKNIK KELISTRIKAN KAPAL POLITEKNIK PERKAPALAN NEGERI SURABAYA 2012
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD)
2.1. Sub Kompetensi Kemampuan yang akan dimiliki oleh mahasiswa setelah memahami isi modul ini adalah sebagai berikut : -
Mahasiswa mampu mengendalikan port output AVR yang diaplikasikan pada perangkat display berupa Seven Segment dan LCD (Liquid Crystal Display) serta memahami sistem kerja kedua perangkat display tersebut menggunakan bahasa C pada editor WinAVR.
2.2. Uraian Materi 2.2.1. I/O Register Sebelum penjelasan materi tentang seven segment dan LCD perlu diketahui materi tentang dasar I/O pada modul AVR. AVR dengan paket 40-pin PDIP seperti modul pelatihan yang digunakan pada modul ajar ini menggunakan ATmega 16 yang memiliki 32 I/O lines. Masing-masing I/O lines pada AVR mempunyai fungsi yang khusus seperti ADC, Analog Comparator, PWM, USART dan External Interrupt. Selain fungsifungsi khusus tersebut I/O juga memiliki fungsi dasar yaitu sebagai keluar dan masuknya data ‘0’ yang berupa tegangan level 0 volt dan data ‘1’ yang berupa tegangan 5 volt. Jika port I/O tersebut berfungsi sebagai input maka AVR akan memfungsikan port tersebut untuk membaca level tegangan 0 volt atau 5 volt dari perangkat luar. Sedangkan jika port I/O difungsikan sebagai output maka port akan mengeluarkan tegangan 0 volt atau 5 volt tergantung pada instruksi program AVR. Microcontroller AVR memiliki 3 (tiga) register yang berkaitan dengan fungsi dasar I/O, yaitu: 1. Register DDRx Data Direction Register atau lebih sering disebut DDRx merupakan register yang berfungsi sebagai pengatur arah port microcontroller baik untuk input atau output, dimana (x) adalah port microcontroller yang dipakai. Nilai register ini adalah 8 bit. Setiap bit tersebut mewakili tiap pin pada port microcontroller. Jika pin ingin difungsikan sebagai input maka register ini diberi nilai ‘0’ (nol) begitu sebaliknya jika pin ingin difungsikan sebagai output maka register ini diberi nilai ‘1’ (satu). Sebagai contoh jika pin pada
MODUL AJAR PRAKTIKUM INTERFACING
51
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) port A ingin difungsikan sebagai input maka perintah untuk register ini dapat ditulis dengan berbagai format numeric sebagai berikut: − DDRA = 0x00; (heksadesimal), − DDRA = 0b11111111; (binari), − DDRA = 0; (desimal) Untuk lebih memahami register DDRx, berikut diberikan sebuah contoh pada port A dimana pada pin ke 0 (A.0) difungsikan sebagai input dan pin yang lain sebagai output maka perintahnya adalah sebagai berikut: − DDRA = 0xFE; (heksadesimal), − DDRA = 0b11111110; (binari), − DDRA = 254; (desimal)
2. Register PORTx Register PORTx merupakan jalur masuk atau keluar dari data yang digunakan pada microcontroller, dimana (x) adalah tipe port yang dipakai misal port yang digunakan adalah port A maka penulisan perintahnya adalah PORTA. Jika Port digunakan sebagai input, maka register ini berfungsi sebagai penentu apakah kondisi Port di Pull Up atau Floating. Jika Port digunakan sebagai output, maka register ini menentukan kondisi Port High atau Low. Untuk memahami apa yang dimaksud demgan Pull Up coba perhatikan gambar 2.1.
Gambar 2.1. Register port Pull Up pada Microcontroller.
MODUL AJAR PRAKTIKUM INTERFACING
52
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) Pada gambar 2.1 dapat dilihat bahwa PIN.1 dihubungkan ke VCC (tegangan 5 Volt) melalui resistor (R), maka kondisi inilah yang di maksud dengan (pullup). Saat tidak ada tegangan dari luar, PIN.1 akan cenderung berkondisi HIGH (logika 1). Sedangkan PIN.2 dibiarkan begitu saja sehingga kondisi logika dari PIN.2 begitu rentan terhadap pengaruh tegangan disekitarnya. PIN.2 bisa berlogika HIGH, bisa juga berlogika LOW, kondisi PIN.2 inilanh yang disebut mengambang (floating). Kondisi floating biasanya dipakai saat PIN sebuah mikrokontroler memerlukan nilai logika input dari perangkat luar seperti misalnya sensor. Hal tersebut diperlukan karena jika sebuah PIN pada microcontroller di pullup, maka dikhawatirkan kondisi logika PIN tersebut mengganggu kondisi logika pin-pin sensor yang bersangkutan.
3. Register PINx Register PINx digunakan untuk membaca masukan pada pin tertentu atau semua PIN pada PORT yang bersangkutan, dimana (x) adalah PORT yang dipakai. Sebagai contoh jika ingin membaca masukan pada PORT A pada pin 3 penulisan perintahnya adalah data = PINA.3, dimana data merupakan variable dalam program yang digunakan untuk menyimpan data logika PIN tersebut. Sedangkan untuk mendapatkan data input logika dari seluruh PIN pada PORT tertentu cukup dengan menuliskan peritah data = PINA.
Untuk lebih memudahkan pemahaman tentang register-register pada microcontroller tersebut, berikut diberikan contoh-contoh perintahnya: − DDRA=0x00; − PORTA = 0xFF; − Data = PINA; Ini berarti seluruh pin-pin pada PORTA dijadikan sebagai masukan dan di-pullup, artinya pada rangkaian yang terkait, jika menggunakan tombol atau pushbutton, jika tidak ditekan akan terbaca HIGH dan jika ditekan akan terbaca LOW. Sedangakan isi variable data sesuai dengan kondisi logika PORT A.
MODUL AJAR PRAKTIKUM INTERFACING
53
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) Contoh lainnya: − DDRB= 0x00; − PORTB=0x0F; − Data = PINB; Ini artinya seluruh pin-pin PORTB dijadikan masukan, dengan konfigurasi 0x0F(Hexadecimal) atau 0b00001111 (Binary) dengan kata lain PORTB.0 sampai PORTB.3 di-pullup, Sedangkan PORTB.4 sampai PORTB.7 dikonfigurasi floating. Sedangkan variable data akan berisi kondisi logika dari semua pin pada PORT B yang ada. Untuk lebih memahami tentang topik AVR output pada modul ini digunakan 3 (tiga) buah modul keluaran yaitu: 1. Modul LED (8 bit) 2. Modul Seven Segment (4 digit) 3. Modul LCD (4 bit dan 8 bit)
2.2.2. Modul LED Modul keluaran LED (Light Emitting Diode) AVR Trainer Board telah dijelaskan dan dicoba pada modul 1 menggunakan 8 (delapan) buah LED yang dihubungkan secara parallel ke tiap port keluaran Microprocessor AVR. Rangkaian schematic seperti ditunjukkan pada gambar 1.56 dan foto modul keluaran LED pada AVR Trainer Board ditunjukkan pada gambar 2.2.
Gambar 2.2 Modul keluaran LED pada AVR Trainer Board.
MODUL AJAR PRAKTIKUM INTERFACING
54
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) Pada gambar 1.56 yang merupakan schematic rangkaian modul keluaran LED tampak bahwa semua LED bersifat common cathode atau semua cathode LED mendapatkan power GND (Ground). Dengan demikian LED akan menyala jika keluaran port AVR HIGH (+5V). Tahanan R1-R8 berfungsi untuk mengurangi tegangan yang mengalir ke LED dimana tegangan yang dibutuhkan LED untuk menyala sekitar 0.7V.
2.2.3. Modul Seven Segment Modul keluran seven segment pada AVR Trainer Board terdiri dari 4 (empat) buah seven segment common Anode yang datanya disusun secara seri dan pengendalian seven segment menggunakan switching transistor tipe NPN. Rangkaian schematic modul keluaran ini seperti ditunjukkan pada gambar 2.3 dan foto modul pada AVR Trainer Board seperti tampak pada gambar 2.4.
Gambar 2.3 Rangkaian schematic modul keluaran seven segment.
Gambar 2.4 Modul keluaran seven segment pada AVR Trainer Board.
MODUL AJAR PRAKTIKUM INTERFACING
55
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) Prinsip kerja dari rangkaian modul keluaran seven segment tersebut menggunakan teknik scanning yaitu data angka yang akan ditampilkan dikirim secara seri atau berurutan kemudian untuk memilih digit yang berupa ribuan, ratusan, puluhan dan satuan dipilih dengan menyalakan transistor secara bergantian. Data yang dikirim berupa data 4 bit karena sudah terdapat IC TTL BCD converter yang terkoneksi dengan port AVR pada bit ke 0-3 dan pengendali transistor yang berjumlah 4 bit yang terkoneksi pada port AVR pada bit ke 4-7. Sebagai contoh jika ingin menampilkan angka 1234 pada modul keluran ini makan data yang dikirim terlebih dahulu dipisahkan (parse) menurut kelompok ribuan, ratusan, puluhan dan satuan kemudian dijumlah dengan nilai pengendali transistor yang diingkan. Jika angka 1 untuk digit ribuan maka data yang dikirim dalam binary pada bit ke [0…3 ]adalah [0001] maka transistor pada bit ke 4 harus dinyalakan dan transistor yang lain dengan nilai binary [1000] kemudian kedua data tersebut dijumlahkan atau dilakukan operasi OR, sehingga didapat data 8 bit dalam binary [00011000]. Demikian seterusnya sampai semua data dapat ditampilkan. Untuk lebih memahami lihat tabel 2.1 dengan contoh pengendaliannya.
Tabel 2.1 Contoh pengendalian modul keluaran seven segments Port AVR 7 SEGMENTS
D7 DIGIT 3 1 1 1 0
D6 D5 D4 CONTROL 7 SEGMENT DIGIT2 DIGIT 1 DIGIT 0 1 1 0 1 0 1 0 1 1 1 1 1
D3
D2 D1 D0 DISPLAY 7 SEGMENT DIGIT 3 DIGIT2 DIGIT 1 DIGIT 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1
HEX E0H D1H B2H 73H
Keterangan RIBUAN RATUSAN PULUHAN SATUAN
Angka 0 Angka 1 Angka 2 Angka 3
2.2.4. Modul LCD Modul keluaran LCD (Liquid Crystal Display) yang digunakan pada modul AVR Trainer Board menggunakan LCD tipe 2x16, dima kode 2x16 bermakna LCD tersebut mempunyai lebar layar 2 baris karakter dan 16 kolom karakter sehingga jumlah karakter yang dapat ditampilkan penuh dalam satu waktu berjumlah 32 karakter. LCD tersebut mempunyai pin keluaran berjumlah 16 seperti ditunjukkan pada gambar 2.5. Untuk penjelasan masing-masing pin pada LCD tersebut dapat dilihat pada tabel 2.2.
MODUL AJAR PRAKTIKUM INTERFACING
56
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD)
Gambar 2.5 Konfigurasi pin LCD
Tabel 2.2 Fungsi pin pada LCD (Liquid Crytal Display).
MODUL AJAR PRAKTIKUM INTERFACING
57
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) Prinsip kerja dari LCD tersebut adalah sebagai berikut: ›
Tampilan karakter pada LCD diatur oleh pin EN, RS dan RW, dimana jalur EN disebut juga pin Enable. Jalur ini digunakan untuk memberitahu LCD bahwa sedang ada pengiriman sebuah data.
›
Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low “0” dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika “1” dan tunggu untuk sejumlah waktu tertentu (sesuai dengan datasheet dari LCD tersebut) dan berikutnya set EN ke logika low “0” lagi.
›
Jalur RS adalah jalur Register Select. Ketika RS berlogika low “0”, data akan dianggap sebagi sebua perintah atau instruksi khusus (seperti clear screen, posisi kursor dll). Ketika RS berlogika high “1”, data yang dikirim adalah data text yang akan ditampilkan pada display LCD. Sebagai contoh, untuk menampilkan huruf “T” pada layar LCD maka RS harus diset logika high “1”.
›
Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0), maka informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika high ”1”, maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin RW selalu diberi logika low ”0”.
›
Mode pengiriman data pada LCD dapat terdiri dari 4 atau 8 jalur/bit (bergantung pada mode operasi yang dipilih oleh user). Pada kasus bus data 8 bit, jalur yang digunakan sebagai data adalah DB0 s/d DB7, dan pada data 4 bit jalur yang digunakan adalah data DB4 s/d DB7.
›
Jika LCD mendukung backlight LED maka pin ke 16 pada LCD diberi logika HIGH.
Rangkaian schematic untuk modul LCD pada AVR Trainer Board ini seperti ditunjukkan pada gambar 2.6. Pada rangkaian schematic tersebut dapat dilihat jika menginginkan LCD beroperasi dengan data 4 bit, maka port keluaran AVR yang dipakai hanya cukup 1 port saja. Dimana 4 bit untuk data dan 4 bit lainnya untuk pin control (RS, EN, dan RW). Sedangkan jika menginginkan LCD beroperasi dengan 8 bit data, maka dibutuhkan 2 (dua) port AVR. Dimana satu port berfungsi sebagai pin control dan satu port lain berfungsi sebagai pin data 8 bit.
MODUL AJAR PRAKTIKUM INTERFACING
58
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD)
Gambar 2.6 Rangkaian schematic modul keluaran LCD
Gambar 2.7 Modul keluaran LCD pada AVR Trainer Board
2.3. Rangkuman Modul keluaran LED pada AVR Trainer Board menggunakan 8 bit data yang dihubungkan dengan port AVR, dimana LED akan menyala ketika bit pada port AVR mengeluarkan nilai HIGH (1) dikarenakan LED mempunyai common Cathode atau posisi cathode LED dihubungkan dengan GND (Ground). Modul keluaran seven segments pada AVR Trainer Board menggunakan teknik scanning untuk menyalakannya, dimana data yang dikirimkan dipisahkan antara nilai ribuan, ratusan, puluhan dan satuan. Jadi terdapat 4 (empat) digit seven segments yang penyalaannya dilakukan secara bergantian menggunakan switching transistor
MODUL AJAR PRAKTIKUM INTERFACING
59
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) tipe NPN. Data yang dikirim pada modul keluaran seven segments tersebut berupa 4 bit data binary pada posisi MSB dan 4 bit data binary pada posisi bit LSB. Modul keluaran LCD pada AVR Trainer Board dapat difungsikan untuk menulis dan membaca data dalam dua tipe data yaitu 4 bit dan 8 bit. Dimana untuk data 4 bit hanya dibutuhkan satu port AVR dan untuk 8 bit data dibutuhkan 2 (dua) port AVR.
2.4. Referensi a) Agfianto Eko Putra (2009), Tip dan trik Mikrontroler AT89 dan AVR. Penerbit Gavamedia. b) Budiharto, Widodo (2006), Panduan Praktikum Mikrokontroler AVR ATmega 16. Elex Media Komputindo. c) Takashi, (2007), AVR GCC Tutorial. German: (www.mikrocontroller.net). d) Atmel Co., (2010). Datasheet AVR ATmega16.
2.5. Latihan Soal 1.
Bagaimana caranya untuk memfungsikan port AVR sebagai input dan output?
2.
Berapa bit data yang bisa dikeluarkan masing-masing port pada AVR Trainer Board tersebut? Jelaskan alasannya!
3.
Tenik apa yang dipakai untuk menampilkan angka pada seven segments pada AVR Trainer Board tersebut?
4.
Berapa macam tipe data yang dapat digunakan untuk menampilkan data pada modul LCD pada AVR Trainer Board? Sebutkan dan jelaskan perbedaanya!
MODUL AJAR PRAKTIKUM INTERFACING
60
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD)
2.6. Lembar Kerja ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... .........................................................................................................................................
MODUL AJAR PRAKTIKUM INTERFACING
61
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD)
2.7. Lembar Kerja Praktek/Praktikum 2.7.1
Alat dan Bahan
Alat
: No.
Nama
1.
3. 4.
Komputer/Notebook AVR Trainer Board yang dilengkapi dengan AVR910 Downloader Driver AVR910 USB downloader WinAVR Editor Notepad
No.
Nama
2.
Jenis Perangkat Keras
Jumlah 1
Keras
1
Lunak Lunak
1 1
Bahan :
1. 2. 3.
2.7.2
Kabel USB Printer Kabel data pelangi Kabel power 220VAC
Jenis Perangkat Keras Keras Keras
Jumlah 1 4 1
Prosedur Keselamatan
Untuk mencegah hal-hal yang tidak diinginkan, Ikutilah prosedur keselamatan kerja berikut ini selama praktikum berlangsung: 1. Sebelum menggunakan perangkat hendaknya periksa dahulu kelengkapannya. 2. Sebelum menyalakan perangkat periksa dan pastikan koneksi kabel dan konektor-konektor yang terhubung. 3. Periksa dahulu tombol power perangkat dan pastikan dalam keadaan OFF sebelum dikonfigurasi. 4. Periksa kembali konfigurasi kabel dan konektor dan pastikan tidak ada yang terbalik polaritasnya.
2.7.3
Langkah Kerja
Ikuti langkah-langkah kerja praktikum berikut ini sesuai dengan prosedur: 1. Ketikan program menggunakan notepad WinAVR. 2. Konfigurasi compiler WinAVR pada menggunakan M-File. 3. Kompilasi program yang sudah anda buat pada notepad editor WinAVR.
MODUL AJAR PRAKTIKUM INTERFACING
62
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) 4. Download file berekstensi *.hex hasil kompilasi ke Microcontroller dengan perangkat keras AVR 910 USB downloader dan perangakat lunak downloader AVRdude. 5. Sambungkan AVR Trainer Board ke sumber tegangan AC 220V dengan menggunakan kabel power dan pastikan dahulu kondisi switch pada power supply modul dalam keadaan “OFF”. Untuk memastikan apakah sumber tegangan AC sudah mengalir bisa dengan menekan tombol power supply keposisi “ON” dan lampu akan menyala. Jika belum menyala coba periksa koneksi kabel dan colokan pada power supply. 6. Sambungkan port AVR yang dipakai ke bagian port modul dengan menggunakan kabel data pelangi. 7. Nyalakan modul dengan menekan tombol power supply ke posisi “ON” dan amati hasilnya. 8. Buatlah analisa dan kesimpulan dari praktikum yang dikerjakan.
2.7.4
Gambar Kerja
Gambar 2.8 menunjukkan koneksi antara komputer dengan modul AVR Trainer Board.
AVR Trainer Board
AC 220V
AVR910
Gambar 2.8 Koneksi computer dengan modul AVR Trainer Board
Gambar 2.9 menunjukkan koneksi port pin AVR ke port modul I/O AVR Trainer Board menggunakan kabel data pelangi.
MODUL AJAR PRAKTIKUM INTERFACING
63
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD)
Ke port modul input/ouput
Gambar 2.9 Koneksi microcontroller ke modul input/output
2.7.5
Lembar Tugas
A. Modul LED 1. Buatlah
program
yang
menghasilkan
modul
keluaran
LED
sesuai dengan representasi biner dari nomor kelompok Anda. 2. Jalankan contoh program delay di bawah ini: #include #define F_CPU 8000000UL #include
// Internal Clock
int main(void) { DDRA = 0xFF; PORTA = 0xFF;
}
while(1) { PORTA = 0b00110011; _delay_ms(500); PORTA = 0b11001100; _delay_ms(500); } return 0;
3. Modifikasi contoh program Tugas 2 sehingga menghasilkan keluaran led (OUTPUT LED DISLAY)
secara bergantian sesuai dengan representasi
biner dari tiga‐angka‐terakhir NRP anggota kelompok Anda.
MODUL AJAR PRAKTIKUM INTERFACING
64
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) 4. Jalankan contoh program di bawah ini: #include #define F_CPU 8000000UL #include
// 8 MHz
int main(void) { unsigned char i = 0xFE; DDRA = 0xFF; PORTA = i; while(1) { PORTA = i; _delay_ms(120); i=(i<<1)|(i>>7); } return 0; }
5. Modifikasi contoh program tugas 4 sehingga hasilnya tidak menunjukan nyala‐mati lampu yang memutar. Tetapi, setelah sampai ujung kiri akan kembali ke kanan dan sebaliknya.
B. Modul Seven Segment 6. Kerjakan contoh program berikut ini: #include #include
int main(void) { int data,sat,pul,rat; DDRA = 0xFF; while(1) { PORTA= 0X73; delay_ms(1); PORTA= 0XB2; delay_ms(1); PORTA= 0XD1; delay_ms(1); PORTA= 0XE0; delay_ms(1); } return 0; }
MODUL AJAR PRAKTIKUM INTERFACING
65
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) 7. Kerjakan program berikut: #include #include int main(void) {
int i,data,sat,pul,rat,rib; DDRA = 0xFF; DDRC = 0X00; while(1) {
data = PINC;
sat = data % 10; pul = data / 10; pul = pul % 10; rat = data / 100; rat = rat % 10; rib = data / 1000;
}
}
// sat = sisa dari data dibagi 10
PORTA= 0X70 | sat; delay_ms(1); PORTA= 0XB0 | pul; delay_ms(1); PORTA= 0XD0 | rat; delay_ms(1); PORTA= 0XE0 | rib; delay_ms(1);
8. Modifikasi dari tugas sebelumnya untuk menampilkan nomer kelompok kalian dan 4 digit NRP anggota kelompok secara bergantian dengan selang waktu 2 detik. 9. Buat program untuk menggeser angka dari kanan kekiri secara berurutan dari mulai angka 01234 -> 12345 -> ….. -> 7890 kemudian berulan lagi. 10. Buat arah geser dari kiri kekanan tugas nomor 9. 11. Modifikasi tugas nomer 8 dengan tampilan tidak bergantian tapi bergeser dari kanan kekiri dan kemudian dari kiri ke kanan dengan selang waktu 2 detik.
MODUL AJAR PRAKTIKUM INTERFACING
66
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) C. Modul LCD 12. Kerjakan contoh program LCD 8 bit berikut ini dan kemudian analisa: /* NOTE: ================================== D7 D6 D5 D4 D3 D2 D1 D0 8 4 2 1 8 4 2 1 = HEKSA ---------------------------------DATA : PORTB RS : PORTA0 R/-W : PORTA1 ENABLE: PORTA2 ----------------------------------*/ #include #include #define ENABLE_LCD PORTA |= 0x04 #define DISABLE_LCD PORTA &= ~0x04 #define SET_LCD_DATA PORTA |= 0x01 #define SET_LCD_CMD PORTA &= ~0x01 #define LCD_DATA_PORT PORTB void AVR_port_init(void); void LCD_init(void); void LCD_WriteCommand (unsigned char CMD); void LCD_WriteData (unsigned char Data); // Inisialisasi port AVR 16/32/8535 void AVR_port_init(void) { DDRA = 0xFF; // PORTA OUTPUT PORTA = 0x00; // SEMUA PORTA DIAKTIFKAN DDRB = 0xFF; // PORTB OUTPUT PORTB = 0x00; // SEMUA PORTB DIAKTIFKAN DDRC = 0x00; // PORTC INPUT PORTC = 0x00; // SEMUA PORTC DIAKTIFKAN
}
DDRD = 0x00; // PORTD INPUT PORTD = 0x00; // SEMUA PORTD DIAKTIFKAN
MODUL AJAR PRAKTIKUM INTERFACING
67
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) // Inisialisasi LCD // DISPCLR = 01H // FUNCSET = 38H // ENTRMOD = 06H // DISPON = 0CH
void LCD_init(void) { _delay_ms(100); LCD_WriteCommand (0x38); LCD_WriteCommand (0x06); LCD_WriteCommand (0x0f); LCD_WriteCommand (0x01); _delay_ms(10); }
// tunggu selama 100 ms // 8 data lines = FUNCSET // cursor setting = ENTRMOD // display ON = DISPON // clear LCD memory = DISPCLR // tunggu 10ms untuk membersihkan LCD
// Prosedur untuk command instruction void LCD_WriteCommand (unsigned char Command) { SET_LCD_CMD; // Set LCD in command mode LCD_DATA_PORT = Command; // Load data to port ENABLE_LCD; // Write data to LCD _delay_ms(10); DISABLE_LCD; // Disable LCD _delay_ms(10); // wait for 1ms } // Prosedur untuk data instruction void LCD_WriteData (unsigned char Data) { SET_LCD_DATA; // Set LCD in data mode LCD_DATA_PORT = Data; // Load data to port ENABLE_LCD; // Write data to LCD _delay_ms(10); DISABLE_LCD; // Disable LCD _delay_ms(10); // wait for 1ms } //******************* MAIN FUNCTION ******************* int main(void) { //int data,rib,rat,pul,sat;
AVR_port_init(); LCD_init(); LCD_WriteCommand (0x80); LCD_WriteData ('L'); LCD_WriteCommand (0x81); LCD_WriteData ('C'); LCD_WriteCommand (0x82); LCD_WriteData ('D'); LCD_WriteCommand (0x0C0); LCD_WriteData (0x31); LCD_WriteCommand (0x0C1); LCD_WriteData (0x32); LCD_WriteCommand (0x0C2); LCD_WriteData (0x33);
}
return 0;
// pesan tempat di baris 1 kolom 0 // data ASCII 0 = 30H // pesan tempat di baris 1 kolom 1 // data ASCII 0 = 30H // pesan tempat di baris 1 kolom 2 // data ASCII 0 = 30H // pesan tempat di baris 2 kolom 0 // data ASCII 1 = 31H // pesan tempat di baris 2 kolom 1 // data ASCII 1 = 31H // pesan tempat di baris 2 kolom 2 // data ASCII 1 = 31H
MODUL AJAR PRAKTIKUM INTERFACING
68
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) 13. Modifikasi dari program no.12 untuk menampilkan nilai status decimal dari input tombol switch pada port D dibaris kedua dan baris pertama ditampilkan nomer kelompok anda. 14. Untuk memahami pengendalian LCD data 4 bit kerjakan program dibawah ini dan analisa: #include #include #include <stdlib.h> #include
//========================================== // LCD PORTD //------------------------------------------------------------------------#define LCD_RS_HI PORTD|=(1<<0) #define LCD_RS_LO PORTD&=~(1<<0) #define LCD_EN_HI PORTD|=(1<<2) #define LCD_EN_LO PORTD&=~(1<<2) #define LCD_D4_HI PORTD|=(1<<4) #define LCD_D4_LO PORTD&=~(1<<4) #define LCD_D5_HI PORTD|=(1<<5) #define LCD_D5_LO PORTD&=~(1<<5) #define LCD_D6_HI PORTD|=(1<<6) #define LCD_D6_LO PORTD&=~(1<<6) #define LCD_D7_HI PORTD|=(1<<7) #define LCD_D7_LO PORTD&=~(1<<7) #define line1 0x00 #define line2 0x40 //===========================================
void LCD_STROBE(void) { LCD_EN_HI; LCD_EN_LO; }
void LCD_write(unsigned char datalcd) { if(datalcd & 0x80) {LCD_D7_HI;} else {LCD_D7_LO;} if(datalcd & 0x40) {LCD_D6_HI;} else {LCD_D6_LO;} if(datalcd & 0x20) {LCD_D5_HI;} else {LCD_D5_LO;} if(datalcd & 0x10) {LCD_D4_HI;} else {LCD_D4_LO;} LCD_STROBE(); if(datalcd & 0x08) {LCD_D7_HI;} else {LCD_D7_LO;} if(datalcd & 0x04) {LCD_D6_HI;} else {LCD_D6_LO;} if(datalcd & 0x02) {LCD_D5_HI;} else {LCD_D5_LO;} if(datalcd & 0x01) {LCD_D4_HI;} else {LCD_D4_LO;} LCD_STROBE(); _delay_ms(5); }
MODUL AJAR PRAKTIKUM INTERFACING
69
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) void LCD_clrscr(void) // Hapus layar LCD { LCD_RS_LO; LCD_write(0x01); _delay_ms(2); }
void LCD_putc(unsigned char c) // penulisan data lcd berupa karakter { LCD_RS_HI; LCD_write(c); } void LCD_puts(const char *s) { register char c; while ( (c = *s++) ) { LCD_putc(c); } }
// penulisan data lcd berupa string
void LCD_puts_pp(const char *progmem_s) // penulisan data LCD yang ada pada program memori { register char c; while(1) { c = pgm_read_byte(progmem_s++); if(c==0) break; LCD_putc(c); } } void LCD_goto(unsigned char poslcd) { LCD_RS_LO; LCD_write(0x80 + poslcd); }
void init_LCD(void) { LCD_RS_LO; _delay_ms(15); LCD_D4_HI; LCD_D5_HI; LCD_STROBE(); _delay_ms(5); LCD_STROBE(); _delay_us(100); LCD_STROBE(); _delay_ms(5); LCD_D4_LO; LCD_STROBE(); _delay_us(40); LCD_write(0x28); LCD_write(0x0C); LCD_write(0x01); _delay_ms(10); }
void init_devices(void) { DDRD=255; //det port D sebagai output LCD }
MODUL AJAR PRAKTIKUM INTERFACING
LCD_write(0x06);
70
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) //====================program utama =========================== int main(void) {
_delay_ms(100); init_devices(); init_LCD();
while(1) { LCD_goto(line1); LCD_puts("COBA LCD 8 BIT");
LCD_goto(line2); LCD_puts("Pr.INTERFACING");
} return 0;
} //==============================================================
15. Modifikasi tugas sebelumnya untuk menampilkan animasi informasi dengan ketentuan sebagai berikut : a. Pertama kali muncul informasi mata kuliah pada baris 1 dan baris kedua nama kelompok . contoh : “P. INTERFACING” “ KELOMPOK 1 “ b. 1 (satu) detik kemudian muncul nama anggota kelompok 2 orang pertama pada baris 1 dan baris 2 dan kemudian 1 (satu) detik berikutnya muncul nama anggota kelompok berikutnya begitu seterusnya sampai seluruh nama anggota kelompok muncul. 16. Modifikasi tugas 15(a) dengan menambahkan efek berkedip selama 3 detik. 17. Modifikasi tugas 15(b) dengan menambahkan efek bergeser ke kiri atau kekanan untuk menampilkan nama anggota kelompok setiap pergantian layar. 18. 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 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,
MODUL AJAR PRAKTIKUM INTERFACING
71
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) 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 LDP PORTC #define LCP PORTC
#define LDDR DDRC #define LCDR DDRC
Buatlah program untuk menampilkan tulisan nomor kelompok anda dengan menggunakan library diatas dengan panduan contoh program source code dari library tersebut.
Catatan: Buat analisa dan kesimpulan dari semua percobaan yang telah kalian lakukan dalam laporan praktikum sesuai format pada lampiran A dalam modul ini.
MODUL AJAR PRAKTIKUM INTERFACING
72
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD) ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... .........................................................................................................................................
MODUL AJAR PRAKTIKUM INTERFACING
73
MODUL 2. AVR OUTPUT MENGGUNAKAN MODUL DISPLAY (LED, SEVEN SEGMENT, LCD)
2.8. Jawaban Latihan Soal 1.
Sudah dijelaskan pada modul 1.
2.
Modul AVR Trainer Board menggunakan Microprocessor ATmega 16 yang mempunyai 4 (port) yaitu port A s/d D, dimana tiap portnya memiliki 8 bit jalur data (Lihat pin konfigurasi ATmega 16 pada lampiran datasheet).
3.
Sudah dijelaskan pada uraian materi.
4.
Sudah dijelaskan pada uraian materi.
MODUL AJAR PRAKTIKUM INTERFACING
74
MODUL 3 AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER ( MOTOR DC DAN STEPPER) Penyusun: Noorman Rinanto, S.T., M.T. NIP
PROGRAM STUDI TEKNIK OTOMASI JURUSAN TEKNIK KELISTRIKAN KAPAL POLITEKNIK PERKAPALAN NEGERI SURABAYA 2012
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER)
3.1 Sub Kompetensi Kemampuan yang akan dimiliki oleh mahasiswa setelah memahami isi modul ini adalah sebagai berikut : -
Mahasiswa mampu mengendalikan port output AVR yang diaplikasikan pada perangkat pengendalian motor DC dan motor Stepper serta memahami sistem kerja kedua perangkat tersebut menggunakan bahasa C pada editor WinAVR.
3.2 Uraian Materi 3.2.1. Motor DC Motor DC merupakan jenis motor yang menggunakan tegangan searah sebagai sumbernya. Dengan memberikan beda tegangan pada kedua terminal tersebut, motor akan berputar pada satu arah, dan bila polaritas dari tegangan tersebut dibalik maka arah putaran motor akan terbalik pula. Polaritas dari tegangan yang diberikan pada dua terminal menentukan arah putaran motor sedangkan besar dari beda tegangan pada kedua terminal menentukan kecepatan motor. Motor DC memiliki 2 bagian dasar seperti ditunjukkan pada gambar 3.1 : 1. Bagian yang tetap/stasioner yang disebut stator. Stator ini menghasilkan medan magnet, baik yang dibangkitkan dari sebuah koil (elektro magnet) ataupun magnet permanen. 2. Bagian yang berputar disebut rotor. Rotor ini berupa sebuah koil dimana arus listrik mengalir.
Stator Rotor
Gambar 3.1. Struktur bagian motor DC.
MODUL AJAR PRAKTIKUM INTERFACING
75
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER)
3.2.2. Jenis Motor DC Jenis motor DC yang banyak dipakai antara lain: 1.
Conventional DC Motor yang mempunyai ciri memiliki sikat (brush) pada bagian rotornya seperti ditunjukkan pada gambar 3.1.
2.
Brushless DC Motor yang mempunyai ciri tidak sikat (brush) pada bagian rotornya sehingga agak sulit dalam pengendaliannya namun lebih unggul dalam kecepatan dibanding Conventional DC Motor.
3.
Stepper DC Motor yaitu motor DC yang pengendalian arah putarannya dilakukan secara per step by step dikarenakan tidak memiliki komutator sehingga mudah dalam pengendalian posisiny akan tetapi kurang dalam hal torsi yang dihasilkan.
4.
Servo DC Motor yaitu motor DC yang pengendaliannya hanya menggunakan posisi derajat kemiringan tidak sampai satu putaran (360°). Motor ini sering dipakai pada aplikasi penggerak robot.
Pada praktikum ini motor DC yang dipakai yaitu Conventional DC Motor dan Stepper DC Motor. Gambar 3.2 menunjukkan bentuk fisik dari berbagai macam jenis motor DC yang sering kita jumpai.
Gambar 3.2 Bentuk fisik dari beberapa jenis motor DC.
MODUL AJAR PRAKTIKUM INTERFACING
76
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER)
3.2.3. Modul Driver Motor DC Jenis motor DC yang dipakai pada modul pengendali AVR Trainer Board ini menggunakan jenis Conventional DC Motor. Dimana motor DC tersebut memiliki ciri mempunyai sikat sehingga mudah untuk dikendalikan. Pada umumnya pengendalian motor DC tersebut terdiri dari 2 (dua) macam pengendalian, yaitu: a. Pengendalian arah putaran motor. b. Pengendalian kecepatan putaran motor.
A. Pengendalian arah putaran motor Pada prinsipnya motor DC mempunyai dua arah putaran yaitu searah jarum jam /Clockwise (CW) atau berlawanan dengan jarum jam / Counter Clockwise (CCW). Arah putaran tersebut dapat dikendalikan dengan membalikan polaritas sumber tegangan motor DC. Untuk lebih memahami prinsip pengendalian arah putaran motor DC perhatikan gambar 3.3 dimana polaritas motor DC yang diberi tegangan batere dilakukan dengan menekan tombol S1 dan S2.
CCW
CW
Gambar 3.3 Prinsip kerja pengendalian arah putran motor DC.
MODUL AJAR PRAKTIKUM INTERFACING
77
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER) Pada gambar 3.3 terlihat motor akan berputar CW jika S1 ditekan ke posisi (+) batere dan S2 pada posisi (-) batere, begitu sebaliknya jika menginginkan putaran CCW. Pengendalian arah putaran motor DC pada modul ini menggunakan teknik yang disebut H-Bridge, yaitu teknik yang menggunakan transistor sebagai jembatan arus untuk mengendalikan arah putaran motor berbentuk huruf H. Untuk lebih memahami konsep H-Bridge ini perhatikan gambar 3.4.
Gambar 3.4 Konsep pengendalian motor DC dengan transistor H-Bridge.
Pada teknik H-Brigde transistor yang dipakai switching bisa bertipe NPN atau PNP, atau sebagian bertipe NPN dan sebagaian lagi PNP. Pada modul ini transistor A dan D bertipr PNP dan transistor B dan C bertipe NPN. Untuk memutar motor searah jarum jam (CW), maka transistor A dan C dinyalakan dan transistor B dan D dimatikan. Begitu juga sebaliknya jika ingin memutar motor DC berlawanan dengan jarum jam (CCW), maka transistor A dan C dimatikan dan transistor B dan D dinyalakan. Rangkaian schematic yang digunakan pada modul ini menggunakan konsep HBridge seperti ditunjukkan pada gambar 3.5 dan foto modul driver motor DC ini dapat dilihat pada gambar 3.6. Pada gambar 3.5 dapat dilihat ada penambahan IC latch untuk 74HCT573 untuk menguatkan arus yang dihasilkan dari port AVR.
MODUL AJAR PRAKTIKUM INTERFACING
78
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER)
Gambar 3.5 Rangkaian schematic modul driver motor DC AVR Trainer Board.
Gambar 3.6 Foto bagian modul driver motor DC AVR Trainer Board.
B. Pengendalian kecepatan putaran motor Untuk mengatur kecepatan motor DC, maka digunakan Pulse Width Modulation (PWM) yang mengatur waktu penyalaan TON dan waktu pemadaman TOFF tegangan motor. Seperti ditunjukkan gambar 3.7 waktu penyalaan dan pemadaman motor DC diatur supaya menghasilkan kecepatan motor tertentu.
Gambar 3.7 Grafik pulsa penyalaan dan pemandaman PWM.
MODUL AJAR PRAKTIKUM INTERFACING
79
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER)
3.2.4. Modul Driver Motor Stepper Motor Stepper merupakan perangkat elegtromagnetik yang pengendaliannya menggunakan konversi dari pulsa listrik ke pergerakan mekanis secara diskrit. Putaran motor dikendalikan secara step by step dengan fase atau sudut tertentu menggunakan urutan pulsa bergantung dari karakteristik jenis motor yang digunakan. Perbandingan karakteristik jenis motor stepper yang umum dijumpai seperti terlihat pada tabel 3.1. Tabel 3.1 Karakteristik jenis motor stepper.
Seperti pengendalian motor DC yang telah dijelaskan sebelumnya, pengendalian motor stepper juga mempunyai 2 (dua) macam pengendalian yaitu: 1. Pengendalian arah putaran motor. 2. Pengendalian kecepatan putaran motor.
A. Pengendalian arah putaran motor stepper Analogi konsep pengendalian arah putaran motor stepper menggunakan prinsip pergantian penyalaan sakelar secara berurutan seperti ditunjukkan pada gambar 3.8.
Gambar 3.8 Prinsip pengendalian arah putaran motor stepper.
MODUL AJAR PRAKTIKUM INTERFACING
80
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER) Pada gambar 3.8 tersebut diketahui untuk mengarahkan motor stepper supaya berputar searah jarum jam (CW), maka sakelar [A, A’, B, B’] dinyalakan secara bergantian secara berurutan yaitu [1, 0, 0, 0] kemudian [0, 1, 0, 0] dan seterusnya secara berulang-ulang. Sedangkan untuk memutar motor stepper berlawanan arah jarum jam (CCW), maka proses penyalaan urutan sakelarnya kebalikan dari proses sebelumnya yaitu [0, 0, 0, 1] kemudian [0, 0, 1, 0] dan seterusnya. Untuk lebih memudahkan pemahaman tetang pengendalian arah putaran motor stepper ini silahkan lihat tabel fase pulsa exitasi pada tabel 3.2.
Tabel 3.2 Fase pulsa eksitasi motor stepper.
Sedangkan rangkaian schematic pengendalian motor stepper yang terdapat pada modul ini seperti ditunjukkan pada gambar 3.10 dan foto modul pengendali motor stepper ditunjukkan pada gambar 3.9.
Gambar 3.9 Foto modul pengendali motor stepper pada AVR Trainer Board.
MODUL AJAR PRAKTIKUM INTERFACING
81
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER)
Gambar 3.10 Rangkaian schematic modul pengendali motor stepper.
B. Pengendalian kecepatan putaran motor stepper Pengendalian kecepatan putaran motor stepper pada modul AVR Trainer Board ini adalah dengan mengatur waktu tunda (delay) tiap perulangan pulsa eksitasi. Dengan mengatur besarnya waktu tunda tiap step pada pulsa eksitasi seperti yang telah dikjelaskan sebelumnya, maka akan mengurangi atau mempercepat putaran motor stepper. Jika waktu tunda yang diberikan pada pulsa eksistasi besar maka putaran motor akan lambat begitu juga sebaliknya jika waktu tunda yang diberikan kecil, maka putaran motor stepper akan lebih cepat.
3.3 Rangkuman Dalam modul pengendali motor DC dan motor stepper pada AVR Trainer Board ini ada 2 (dua) hal yang perlu dikendalikan yaitu: 1. Pengendalian arah putaran motor 2. Pengendalian kecepatan putaran motor. Pengendalian arah putaran motor pada moto DC dan stepper adalah dengan membalik polaritas tegangan motor. Sedangkan untuk mengatur kecepatan motor DC
MODUL AJAR PRAKTIKUM INTERFACING
82
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER) dan motor stepper adalah dengan mengatur waktu penyalaan dan pemadaman pulsa tegangan motor atau dengan mengatur waktu tunda (delay).
3.4 Referensi a) Agfianto Eko Putra (2009), Tip dan trik Mikrontroler AT89 dan AVR. Penerbit Gavamedia. b) Budiharto, Widodo (2006), Panduan Praktikum Mikrokontroler AVR ATmega 16. Elex Media Komputindo. c) Takashi, (2007), AVR GCC Tutorial. German: (www.mikrocontroller.net). d) Atmel Co., (2010). Datasheet AVR ATmega16.
3.5 Latihan Soal 1.
Bagaimana caranya untuk mengatur arah putaran motor pada motor DC? Jelaskan!
2.
Bagaimana
caranya
untuk
mengatur
kecepatan
motor
DC?
Jelaskan
menggunakan PWM! 3.
Bagaimana caranya mengatur arah putaran motor stepper? Jelaskan!
4.
Bagaimana caranya mengatur kecepatan putaran motor stepper? Jelaskan!
MODUL AJAR PRAKTIKUM INTERFACING
83
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER)
3.6 Lembar Kerja ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... .........................................................................................................................................
MODUL AJAR PRAKTIKUM INTERFACING
84
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER)
3.7 Lembar Kerja Praktek/Praktikum 3.7.1
Alat dan Bahan
Alat
: No.
Nama
1.
3. 4.
Komputer/Notebook AVR Trainer Board yang dilengkapi dengan AVR910 Downloader Driver AVR910 USB downloader WinAVR Editor Notepad
No.
Nama
2.
Jenis Perangkat Keras
Jumlah 1
Keras
1
Lunak Lunak
1 1
Bahan :
1. 2. 3.
3.7.2
Kabel USB Printer Kabel data pelangi Kabel power 220VAC
Jenis Perangkat Keras Keras Keras
Jumlah 1 4 1
Prosedur Keselamatan
Untuk mencegah hal-hal yang tidak diinginkan, Ikutilah prosedur keselamatan kerja berikut ini selama praktikum berlangsung: 1. Sebelum menggunakan perangkat hendaknya periksa dahulu kelengkapannya. 2. Sebelum menyalakan perangkat periksa dan pastikan koneksi kabel dan konektor-konektor yang terhubung. 3. Periksa dahulu tombol power perangkat dan pastikan dalam keadaan OFF sebelum dikonfigurasi. 4. Periksa kembali konfigurasi kabel dan konektor dan pastikan tidak ada yang terbalik polaritasnya.
3.7.3
Langkah Kerja
Ikuti langkah-langkah kerja praktikum berikut ini sesuai dengan prosedur: 1. Ketikan program menggunakan notepad WinAVR. 2. Konfigurasi compiler WinAVR pada menggunakan M-File. 3. Kompilasi program yang sudah anda buat pada notepad editor WinAVR.
MODUL AJAR PRAKTIKUM INTERFACING
85
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER) 4. Download file berekstensi *.hex hasil kompilasi ke Microcontroller dengan perangkat keras AVR 910 USB downloader dan perangakat lunak downloader AVRdude. 5. Sambungkan AVR Trainer Board ke sumber tegangan AC 220V dengan menggunakan kabel power dan pastikan dahulu kondisi switch pada power supply modul dalam keadaan “OFF”. Untuk memastikan apakah sumber tegangan AC sudah mengalir bisa dengan menekan tombol power supply keposisi “ON” dan lampu akan menyala. Jika belum menyala coba periksa koneksi kabel dan colokan pada power supply. 6. Sambungkan port AVR yang dipakai ke bagian port modul dengan menggunakan kabel data pelangi. 7. Nyalakan modul dengan menekan tombol power supply ke posisi “ON” dan amati hasilnya. 8. Buatlah analisa dan kesimpulan dari praktikum yang dikerjakan.
3.7.4
Gambar Kerja
Gambar 3.11 menunjukkan koneksi antara komputer dengan modul AVR Trainer Board.
AVR Trainer Board
AC 220V
AVR910
Gambar 3.11 Koneksi computer dengan modul AVR Trainer Board
Gambar 3.12 menunjukkan koneksi port pin AVR ke port modul I/O AVR Trainer Board menggunakan kabel data pelangi.
MODUL AJAR PRAKTIKUM INTERFACING
86
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER)
Ke port modul input/ouput
Gambar 3.12 Koneksi microcontroller ke modul input/output
3.7.5
Lembar Tugas
A. Modul Driver Motor DC 1. Jalankan contoh program untuk menjalankan motor DC searah jarum jam (CW) dengan keluaran pada port A di bawah ini: #include #define F_CPU 8000000UL #include
// Internal Clock
int main(void) { DDRA = 0xFF; PORTA = 0xFF;
}
while(1) { PORTA = 0b00000101; _delay_ms(500); } return 0;
2. Modifikasi contoh program sebelumnya sehingga motor DC dapat berputar berlawanan arah jarum jam (CCW)! 3. Buatlah program dengan memodifikasi contoh program sebelumnya supaya motor DC dapat berputar CW dan CCW secara bergantian dengan selang waktu perpindahan 1 detik.
MODUL AJAR PRAKTIKUM INTERFACING
87
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER) 4. Jalankan contoh program untuk mengatur kecepatan motor DC dengan menunda waktu ‘ON’ dan ‘OFF’, dimana duty cycle (DC) = 50% searah jarum jam (CW) di bawah ini: #include #define F_CPU 8000000UL #include
// Internal Clock
int main(void) { DDRA = 0xFF; PORTA = 0xFF; while(1) {
PORTA = 0x00; _delay_ms(500); PORTA = 0x05; _delay_ms(500);
}
} return 0;
5. Modifikasi contoh program tugas 4 sehingga menghasilkan kecepatan motor DC dengan duty cycle = 75% dan arah putaran motor berlawanan dengan jarum jam (CCW)! 6. Buatlah program untuk mengendalikan arah putaran dan kecepatan motor DC dengan aturan sebagai berikut: a. Motor berputar selama 5 detik dengan arah putaran CW , DC = 60% b. Motor diam selama 1 detik. c. Motor berputar selama 5 detik dengan arah putaran CCW , DC = 30% d. Motor diam selama 1 detik. e. Motor berputar selama 5 detik dengan arah putaran CW , DC = 30% f. Motor diam selama 1 detik. g. Motor berputar selama 5 detik dengan arah putaran CCW , DC = 60% h. Motor diam selama 1 detik. i. Ulang proses (a).
MODUL AJAR PRAKTIKUM INTERFACING
88
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER) B. Modul Driver Motor Stepper 7. Kerjakan contoh program berikut ini: #include #include
unsigned int i,tunda; int kanan(void){ for(i=0;i<=50;i++){ PORTA= 0; _delay_ms(tunda); PORTA= 1; _delay_ms(tunda); PORTA= 2; _delay_ms(tunda); PORTA= 4; _delay_ms(tunda); PORTA= 8; _delay_ms(tunda); } return 0; }
int kiri(void){ for(i=0;i<=50;i++){ PORTA= 8; _delay_ms(tunda); PORTA= 4; _delay_ms(tunda); PORTA= 2; _delay_ms(tunda); PORTA= 1; _delay_ms(tunda); PORTA= 0; _delay_ms(tunda); } return 0; }
int stop(void){ PORTA = 0; _delay_ms(1000); return 0; }
int main(void){ DDRA = 0xFF; // SEMUA PI DI PORT A SEBAGAI OUTPUT tunda = 10;
}
while(1){ kanan(); stop();kiri(); } return 0;
MODUL AJAR PRAKTIKUM INTERFACING
89
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER) 8. Modifikasi dari program no.7 dimana kecepatan diubah-ubah dengan memanipulasi nilai tunda atau delay dan proses switching driver motor stepper ditampilkan pada modul LED. 9. Modifikasi dari program no.7 dimana kecepatan diubah-ubah dengan memanipulasi nilai tunda atau delay dan ditampilkan pada modul seven segment.
Catatan: Buat analisa dan kesimpulan dari semua percobaan yang telah kalian lakukan dalam laporan praktikum sesuai format pada lampiran A dalam modul ini.
MODUL AJAR PRAKTIKUM INTERFACING
90
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER) ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... .........................................................................................................................................
MODUL AJAR PRAKTIKUM INTERFACING
91
MODUL 3. AVR OUTPUT MENGGUNAKAN MODUL MOTOR DRIVER (MOTOR DC DAN STEPPER)
3.8 Jawaban Latihan Soal 1.
Sudah dijelaskan pada uraian materi
2.
Sudah dijelaskan pada uraian materi
3.
Sudah dijelaskan pada uraian materi.
4.
Sudah dijelaskan pada uraian materi.
MODUL AJAR PRAKTIKUM INTERFACING
92
MODUL 4 AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD Penyusun: Noorman Rinanto, S.T., M.T. NIP
PROGRAM STUDI TEKNIK OTOMASI JURUSAN TEKNIK KELISTRIKAN KAPAL POLITEKNIK PERKAPALAN NEGERI SURABAYA 2012
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD
4.1 Sub Kompetensi Kemampuan yang akan dimiliki oleh mahasiswa setelah memahami isi modul ini adalah sebagai berikut : -
Mahasiswa mampu mengendalikan port input AVR yang diaplikasikan pada perangkat modul switch dan keypad serta memahami sistem kerja kedua perangkat tersebut menggunakan bahasa C pada editor WinAVR.
4.2 Uraian Materi 4.2.1 Modul Switch Pada modul 2 telah dijelaskan bagaimana memfungsikan port AVR menjadi input yaitu dengan memberikan nilai LOW (0) pada register DDRx. Dimana (x) merupakan nama port register yang dikehendaki yaitu pada Atmega 16 (Port A-D). Sedangkan untuk memfungsikan port AVR menjadi output, maka register DDRx diberi nilai HIGH (1). Untuk mengingat kembali uraian yang ada pada modul 2 tersebut coba perhatikan contoh inisialisasi register port berikut yang difungsikan sebagai input: -
DDRA=0x00;
// register DDRx berfungsi sebagai input
-
PORTA = 0xFF;
// semua bit PORT A dibuat pull up
-
Data = PINA;
Ini berarti seluruh pin-pin pada PORTA dijadikan sebagai masukan dan di-pullup, artinya pada rangkaian yang terkait, jika menggunakan tombol atau pushbutton, jika tidak ditekan akan terbaca HIGH dan jika ditekan akan terbaca LOW. Sedangakan isi variable data sesuai dengan kondisi logika PORT A. Contoh lainnya: − DDRB= 0x00;
// register DDRx berfungsi sebagai input
− PORTB=0x0F;
// sebagian bit PORT B dibuat pull up
− Data = PINB; Ini artinya seluruh pin-pin PORTB dijadikan masukan, dengan konfigurasi 0x0F(Hexadecimal) atau 0b00001111 (Binary) dengan kata lain PORTB.0 sampai PORTB.3 di-pullup, Sedangkan PORTB.4 sampai PORTB.7 dikonfigurasi floating. Sedangkan variable data akan berisi kondisi logika dari semua pin pada PORT B yang ada.
MODUL AJAR PRAKTIKUM INTERFACING
93
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD Berikut ini sebuah contoh pada port A dimana pada pin ke 0 (A.0) difungsikan sebagai input dan pin yang lain sebagai output maka perintahnya adalah sebagai berikut: − DDRA = 0xFE; (heksadesimal), − DDRA = 0b11111110; (binari), − DDRA = 254; (desimal) Rangkaian schematic modul switch yang digunakan pada praktikum ini seperti ditunjukkan pada gambar 4.1 dan foto modul tersebut seperti ditunjukkan pada gambar 4.2.
Gambar 4.1 Rangkaian schematic modul switch.
MODUL AJAR PRAKTIKUM INTERFACING
94
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD
Gambar 4.2 Foto modul switch pada AVR Trainer Board.
Pada gambar 4.1 tipe switch yang digunakan adalah switch toggle yang kondisinya logiknya sesuai dengan keadaan tombol jika ditekan keatas maka switch akan “ON” dan jika ditekan kebawah maka switch akan “OFF”. Penggunaan kapasitor berfungsi sebagai peredam bounching effect yang biasa terjadi pada tombol dimana efek tersebut timbul jika keadaan sakelar belum stabil posisi “ON” atau “OFF”. Resistor array 1K ohm digunakan untuk meredam arus besar yang mungkin timbul saat penekanan tombol.
4.2.2 Modul Keypad Modul keypad yang digunakan AVR Trainer Board pada praktikum ini mempunyai karakteristik matrix 4x4 (4 baris dan 4 kolom). Teknik yang digunakan pada input modul keypad ini adalah teknik scanning yang mempunyai cirri untuk mengetahui status tombol yang ditekan maka dilakukan pergantian scan terhadap kondisi port AVR secara berurutan. Untuk lebih memahami input modul keypad coba perhatikan rangkaian schematic pada gambar 4.3 dan foto modul keypad seperti ditunjukkan pada gambar 4.4. Pada gambar 4.3 diketahui baris dan kolom yang masuk ke port AVR discanning secara bergantian mulai baris 0 s/d 3 [R0-R3] dan dibandingkan dengan kolom 0 s/d 3 [C0-C3]. Port AVR yang digunakan 8 bit dibagi menjadi 2 (dua) bagian. Bagian MSB menunjukkan status baris 0 s/d 3 dan LSB menunjukkan status data kolom 0 s/d 4. Jika salah satu tombol ditekan maka akan pada port aka nada data HIGH (1). Jika tidak maka kondisi pembacaan data baik baris dan kolom akan terbaca LOW (0).
MODUL AJAR PRAKTIKUM INTERFACING
95
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD
Gambar 4.3 Rangkaian schematic modul keypad 4x4.
Gambar 4.4 Foto modul keypad pada AVR Trainer Board.
MODUL AJAR PRAKTIKUM INTERFACING
96
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD
4.3 Rangkuman Untuk mengubah fungsi port AVR menjadi input adalah dengan memberikan nilai LOW (0) pada register DDRx. Sedangkan untuk memfungsikan port AVR menjadi output adalah dengan memberikan nilai HIGH (1) pada DDRx. Bounching Effect yang sering terjadi pada tombol dapat diatasi dengan menambahkan kapasitor atau dengan menambahkan rutin program delay pada AVR. Teknik scanning pada modul keypad digunakan untuk mengetahui status penekanan tombol yang dilakukan dimana proses pembacaan status port tersebut dilakukan secara bergantian dan urut.
4.4 Referensi a) Agfianto Eko Putra (2009), Tip dan trik Mikrontroler AT89 dan AVR. Penerbit Gavamedia. b) Budiharto, Widodo (2006), Panduan Praktikum Mikrokontroler AVR ATmega 16. Elex Media Komputindo. c) Takashi, (2007), AVR GCC Tutorial. German: (www.mikrocontroller.net). d) Atmel Co., (2010). Datasheet AVR ATmega16.
4.5 Latihan Soal 1.
Bagaimana cara memfungsikan port AVR menjadi input? Jelaskan!
2.
Bagaimana cara memfungsikan port AVR menjadi output? Jelaskan!
3.
Apa yang dimaksud dengan bounching effect pada switch? Jelaskan!
4.
Bagaimana caranya untuk mengatasi bounching effect tersebut? Jelaskan!
5.
Teknik apakah yang digunakan untuk mengetahui status penekanan tombol pada keypad? Jelaskan!
MODUL AJAR PRAKTIKUM INTERFACING
97
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD
4.6 Lembar Kerja ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... .........................................................................................................................................
MODUL AJAR PRAKTIKUM INTERFACING
98
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD
4.7 Lembar Kerja Praktek/Praktikum 4.7.1
Alat dan Bahan
Alat
: No.
Nama
1.
3. 4.
Komputer/Notebook AVR Trainer Board yang dilengkapi dengan AVR910 Downloader Driver AVR910 USB downloader WinAVR Editor Notepad
No.
Nama
2.
Jenis Perangkat Keras
Jumlah 1
Keras
1
Lunak Lunak
1 1
Bahan :
1. 2. 3.
4.7.2
Kabel USB Printer Kabel data pelangi Kabel power 220VAC
Jenis Perangkat Keras Keras Keras
Jumlah 1 4 1
Prosedur Keselamatan
Untuk mencegah hal-hal yang tidak diinginkan, Ikutilah prosedur keselamatan kerja berikut ini selama praktikum berlangsung: 1. Sebelum menggunakan perangkat hendaknya periksa dahulu kelengkapannya. 2. Sebelum menyalakan perangkat periksa dan pastikan koneksi kabel dan konektor-konektor yang terhubung. 3. Periksa dahulu tombol power perangkat dan pastikan dalam keadaan OFF sebelum dikonfigurasi. 4. Periksa kembali konfigurasi kabel dan konektor dan pastikan tidak ada yang terbalik polaritasnya.
4.7.3
Langkah Kerja
Ikuti langkah-langkah kerja praktikum berikut ini sesuai dengan prosedur: 1. Ketikan program menggunakan notepad WinAVR. 2. Konfigurasi compiler WinAVR pada menggunakan M-File. 3. Kompilasi program yang sudah anda buat pada notepad editor WinAVR.
MODUL AJAR PRAKTIKUM INTERFACING
99
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD 4. Download file berekstensi *.hex hasil kompilasi ke Microcontroller dengan perangkat keras AVR 910 USB downloader dan perangakat lunak downloader AVRdude. 5. Sambungkan AVR Trainer Board ke sumber tegangan AC 220V dengan menggunakan kabel power dan pastikan dahulu kondisi switch pada power supply modul dalam keadaan “OFF”. Untuk memastikan apakah sumber tegangan AC sudah mengalir bisa dengan menekan tombol power supply keposisi “ON” dan lampu akan menyala. Jika belum menyala coba periksa koneksi kabel dan colokan pada power supply. 6. Sambungkan port AVR yang dipakai ke bagian port modul dengan menggunakan kabel data pelangi. 7. Nyalakan modul dengan menekan tombol power supply ke posisi “ON” dan amati hasilnya. 8. Buatlah analisa dan kesimpulan dari praktikum yang dikerjakan.
4.7.4
Gambar Kerja
Gambar 4.5 menunjukkan koneksi antara komputer dengan modul AVR Trainer Board.
AVR Trainer Board
AC 220V
AVR910
Gambar 4.5 Koneksi computer dengan modul AVR Trainer Board
Gambar 4.6 menunjukkan koneksi port pin AVR ke port modul I/O AVR Trainer Board menggunakan kabel data pelangi.
MODUL AJAR PRAKTIKUM INTERFACING
100
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD
Ke port modul input/ouput
Gambar 4.6 Koneksi microcontroller ke modul input/output
4.7.5
Lembar Tugas
A. Modul Switch 1. Jalankan contoh program di bawah ini dengan port A sebagai output dan port B sebagai input, analisis dan buatlah flowchart‐nya. #include int main(void){
unsigned char i;
DDRA = 0xFF; //inisialisasi PORTA sebagai OUTPUT
DDRB = 0x00; //inisialisasi PORTB sebagai INPUT
SFIOR = 0<
i = PINB; PORTA = i;
return 0; }
MODUL AJAR PRAKTIKUM INTERFACING
101
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD 2. Modifikasi program di atas sehingga kondisi berikut ini terpenuhi: − Apabila input samadengan
representasi biner tiga angka NRP
terakhir Anda, maka kondisi led berjalan dari kiri ke kanan; − Apabila input samadengan representasi biner tiga angka NIM terakhir teman sekelompok Anda, maka kondisi led berjalan dari kanan ke kiri; − Apabila input tidak‐samadengan kedua representasi di atas, maka kondisi led berkedip. 3. Buatlah program yang menampilkan angka digit binary pada seven segment sesuai dengan nilai input tombol switch yang ditekan pada modul switch. 4. Seperti tugas no. 3 buat akan tetapi angka penekanan tombol ditampilkan pada modul LCD. 5. Dengan menggunakan modul driver stepper buat program pengendali arah putaran motor sesuai dengan aturan sebagai berikut: a. Jika bit ke (0) ditekan motor Stepper berputar dengan arah CW. b. Jika bit ke (7) ditekan motor Stepper berputar dengan arah CCW. 6. Modifikasi program no. 5 untuk menjalankan modul motor DC.
B. Modul Keypad 7. Kerjakan contoh program berikut ini: #include #include
void LCD_init(void); void LCD_WriteCommand (unsigned char CMD); void LCD_WriteData (unsigned char Data); void LCD_DisplayString_F(char row, char column, const unsigned char *string); void LCD_Cursor(char row, char column); #define ENABLE_LCD PORTD |= 0x04 #define DISABLE_LCD PORTD &= ~0x04 #define SET_LCD_DATA PORTD |= 0x01 #define SET_LCD_CMD PORTD &= ~0x01 #define KB_PORT_OUT PORTB #define KB_PORT_IN PINB
MODUL AJAR PRAKTIKUM INTERFACING
102
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD void port_init(void) { DDRA = 0x00; // Port A input PORTA = 0x00; // Semua port A diaktifkan DDRB = 0xf0; PORTB = 0xff;
// Key-board port, higher nibble - output, lower - input // pull-up enabled for higher nibble
DDRC = 0xff; // Port C output PORTC = 0x00;
}
DDRD = 0xff; // Port D output PORTD = 0x00;
//call this routine to initialize all peripherals void init_devices(void) { port_init(); LCD_init(); MCUCR = 0x00; TIMSK = 0x00; //timer interrupt sources } // Inisialisasi LCD void LCD_init(void) { delay_ms(100); // wait for 100ms LCD_WriteCommand (0x38); // 8 data lines LCD_WriteCommand (0x08); // display off LCD_WriteCommand (0x01); // clear LCD memory delay_ms (10); // 10ms delay after clearing LCD LCD_WriteCommand (0x06); // cursor setting LCD_WriteCommand (0x0f); // display ON }
// Control Instruction ke LCD void LCD_WriteCommand (unsigned char Command) { SET_LCD_CMD; // Set LCD in command mode PORTC = Command; // Load data to port ENABLE_LCD; // Write data to LCD delay_ms (10); DISABLE_LCD; // Disable LCD delay_ms(1); // wait for 1ms }
// Data Instruction ke LCD void LCD_WriteData (unsigned char Data) { SET_LCD_DATA; // Set LCD in data mode PORTC = Data; // Load data to port ENABLE_LCD; // Write data to LCD delay_ms (10); DISABLE_LCD; // Disable LCD delay_ms(1); // wait for 1ms }
MODUL AJAR PRAKTIKUM INTERFACING
103
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD // Menampilkan data string void LCD_DisplayString_F (char row, char column ,const unsigned char *string) { LCD_Cursor (row, column); while (*string) LCD_WriteData(*string++); } // Posisi kursor untuk baris dan kolom void LCD_Cursor (char row, char column) { switch (row) { case 1: LCD_WriteCommand (0x80 + column - 1); break; case 2: LCD_WriteCommand (0xc0 + column - 1); break; default: break; } } // Program utama main() {
unsigned char LowerNibble, keyCode, keyPressed, i; init_devices(); LCD_WriteCommand(0xc0); //moving LCD cursor to second row while(1) { LowerNibble = 0xff; for(i=0; i<4; i++) { delay_ms(1); KB_PORT_OUT = ~(0x10 << i); delay_ms(1); //delay for port o/p settling LowerNibble = KB_PORT_IN | 0xf0; if (LowerNibble != 0xff) { delay_ms(20); //key debouncing delay LowerNibble = KB_PORT_IN | 0xf0; if(LowerNibble == 0xff) goto OUT; keyCode = (LowerNibble & 0x0f) | (0xf0 & ~(0x10 << i));
while (LowerNibble != 0xff) LowerNibble = KB_PORT_IN | 0xf0; delay_ms(20); //key debouncing delay //generating key characetr to display on LCD switch (keyCode) { // kolom 0 case (0xee): keyPressed = '1';break; case (0xed): keyPressed = '4';break; case (0xeb): keyPressed = '7';break; case (0xe7): keyPressed = 'D';break;
MODUL AJAR PRAKTIKUM INTERFACING
104
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD // kolom 1 case (0xde): keyPressed = '2';break; case (0xdd): keyPressed = '5';break; case (0xdb): keyPressed = '8';break; case (0xd7): keyPressed = '0';break;
// kolom 2 case (0xbe): keyPressed = '3';break; case (0xbd): keyPressed = '6';break; case (0xbb): keyPressed = '9';break; case (0xb7): keyPressed = 'E';break;
// kolom 3 case (0x7e): keyPressed = 'A';break; case (0x7d): keyPressed = 'B';break; case (0x7b): keyPressed = 'C';break; case (0x77): keyPressed = 'F';break; default : keyPressed = 'X';
}
}
} LCD_WriteData(keyPressed); OUT:; } }
8. Modifikasi dari program no.7 dimana penekanan tombol angka keypad dapat ditampilkan pada modul LED dan direpresentasikan dalam bentuk binary. 9. Modifikasi dari program no.7 dimana penekanan tombol keypad dapat ditampilkan pada modul seven segments.
Catatan: Buat analisa dan kesimpulan dari semua percobaan yang telah kalian lakukan dalam laporan praktikum sesuai format pada lampiran A dalam modul ini.
MODUL AJAR PRAKTIKUM INTERFACING
105
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... .........................................................................................................................................
MODUL AJAR PRAKTIKUM INTERFACING
106
MODUL 4. AVR INPUT MENGGUNAKAN MODUL SWITCH DAN KEYPAD
4.8 Jawaban Latihan Soal 1.
Sudah dijelaskan pada uraian materi
2.
Sudah dijelaskan pada uraian materi
3.
Sudah dijelaskan pada uraian materi.
4.
Sudah dijelaskan pada uraian materi.
5.
Sudah dijelaskan pada uraian materi.
MODUL AJAR PRAKTIKUM INTERFACING
107
MODUL 5 AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC) Penyusun: Noorman Rinanto, S.T., M.T. NIP
PROGRAM STUDI TEKNIK OTOMASI JURUSAN TEKNIK KELISTRIKAN KAPAL POLITEKNIK PERKAPALAN NEGERI SURABAYA 2012
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC)
5.1 Sub Kompetensi Kemampuan yang akan dimiliki oleh mahasiswa setelah memahami isi modul ini adalah sebagai berikut : -
Mahasiswa mampu mengendalikan port input analog internal ADC AVR yang diaplikasikan pada perangkat modul AVR Trainer Board serta memahami sistem kerja kedua perangkat tersebut menggunakan bahasa C pada editor WinAVR.
5.2 Uraian Materi 5.2.1 Analog Digital Converter (ADC) Mikroprosesor Atmega 16 telah dilengkapi fitur internal Analog to Digital Converter (ADC) sehingga dapat membaca input tegangan analog tanpa menggunakan IC ADC luar. Jumlah pin input ADC pada Atmega 16 ada 8 pin dimana resolusi pembacaannya maksimum sebesar 10 bit. Untuk dapat menggunakan fitur ADC ini maka diperlukan pemahaman tentang register-register yang mempengaruhi ADC. Register-register yang mempengaruhi ADC internal pada Atmega 16 adalah sebagai berikut: •
Register ADMUX
•
Register ADCSRA
•
Register ADCL dan ADCH
5.2.2 Register ADMUX Register ADMUX digunakan untuk menentukan tegangan referensi dari ADC menentukan format data hasil konversi ADC menentukan channel ADC yg akan digunakan. Isi dari register ADMUX seperti yang ditunjukkan pada tabel 5.1.
Tabel 5.1 Isi register ADMUX.
MODUL AJAR PRAKTIKUM INTERFACING
108
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC) Bit 7 (REFS1) dan bit 6 (REFS0) digunakan untuk menentukan tegangan referensi ADC seperti ditunjukkan pada tabel 5.2.
Tabel 5.2 Penjelasan fungsi REFS1 dan REFS0
Bit 5 (ADLAR) digunakan untuk menentukan format data hasil konversi. Bit 3..0 (MUX3..0) digunakan untuk menentukan channel ADC seperti ditunjukkan pada tabel 5.3.
Tabel 5.3 Penjelasam channel MUX pada ADC
5.2.3 Regiter ADCSRA Adapun isi dari register ADCSRA seperti ditunjukkan pada tabel 5.4.
Tabel 5.4 Isi register ADCSRA pada ADC
MODUL AJAR PRAKTIKUM INTERFACING
109
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC) Penjelasan mengenai bit-bit pada register tersebut adalah sebgai berikut: − Bit 7 (ADEN) untuk mengaktifkan ADC. ADEN=0 disable / ADEN=1 enable. − Bit 6 (ADSC) untuk memulai (start) pembacaan ADC. − Bit 5 (ADFR) jika ADFR=1 free running mode , ADFR=0 single conversion. − Bit 4 (ADIF) bit penanda interupsi. Bernilai 1 saat konversi ADC selesai. − Bit 3 (ADIE) berfungsi untuk mengaktifkan interupsi ADC. ADIE=1 enable / ADIE=0 disable. − Bit 2..0(ADPS2..0) menentukan clock ADC atau penskalaan awal sering diset juga pre-scaler. Adapun aturan seleksi prescaler ini seperti ditunjukkan pada tabel 5.5. Tabel 5.5 Pemilihan Prescaler.
5.2.4 Register ADCL dan ADCH Register ADCL dan ADCH merupakan dua register tempat menampung hasil pembacaan ADC. Untuk mengambil nilai data digunakan ADCW (mode 10 bit) dan ADCH (mode 8 bit). Berikut potongan listing program untuk mendapatkan nilai dari masukan analog pada internal ADC. unsigned int getadc(unsigned char channeladc) { unsigned int adcVal; ADMUX=channeladc|0x40; //avcc ADCSRA|=(1<
MODUL AJAR PRAKTIKUM INTERFACING
110
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC) Gambar 5.1 merupakan foto dari modul input ADC pada AVR Trainer Board dimana pada paraktikum ini sinyal analog yang diukur adalah dari hasil pembacaan tegangan pada potensiometer 10K Ohm. Dimana rangkaian schematic dari potensiometer seperti ditunjukkan pada gambar 5.2.
Gambar 5.1 Foto modul input sinyal analog AVR Trainer Board.
Gambar 5.2 Rangkaian schematic pembacaan tegangan pada potensiometer.
5.3 Rangkuman ATmega 16 memiliki fitur internal ADC yang dapat membaca sinyal analog dari luar dengan jumlah masukan 8 channel dan resolusi pembacaan maksimum 10 bit. Register-register yang mempengaruhi ADC antara lain: − Register ADCMUX − Register ADCSRA − Register ADCL dan ADCH
MODUL AJAR PRAKTIKUM INTERFACING
111
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC)
5.4 Referensi a) Agfianto Eko Putra (2009), Tip dan trik Mikrontroler AT89 dan AVR. Penerbit Gavamedia. b) Budiharto, Widodo (2006), Panduan Praktikum Mikrokontroler AVR ATmega 16. Elex Media Komputindo. c) Takashi, (2007), AVR GCC Tutorial. German: (www.mikrocontroller.net). d) Atmel Co., (2010). Datasheet AVR ATmega16.
5.5 Latihan Soal 1.
Sebutkan fitur internal ADC yang ada pada Atmega 16? Jelaskan!
2.
Register-register apa saja yang mempengaruhi ADC? Jelaskan!
3.
Apa perbedaan sinyal analog dan digital? Jelaskan!
4.
Sebutkan salah satu contoh external ADC!
MODUL AJAR PRAKTIKUM INTERFACING
112
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC)
5.6 Lembar Kerja ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... .........................................................................................................................................
MODUL AJAR PRAKTIKUM INTERFACING
113
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC)
5.7 Lembar Kerja Praktek/Praktikum 5.7.1
Alat dan Bahan
Alat
: No.
Nama
1.
3. 4.
Komputer/Notebook AVR Trainer Board yang dilengkapi dengan AVR910 Downloader Driver AVR910 USB downloader WinAVR Editor Notepad
No.
Nama
2.
Jenis Perangkat Keras
Jumlah 1
Keras
1
Lunak Lunak
1 1
Bahan :
1. 2. 3.
5.7.2
Kabel USB Printer Kabel data pelangi Kabel power 220VAC
Jenis Perangkat Keras Keras Keras
Jumlah 1 4 1
Prosedur Keselamatan
Untuk mencegah hal-hal yang tidak diinginkan, Ikutilah prosedur keselamatan kerja berikut ini selama praktikum berlangsung: 1. Sebelum menggunakan perangkat hendaknya periksa dahulu kelengkapannya. 2. Sebelum menyalakan perangkat periksa dan pastikan koneksi kabel dan konektor-konektor yang terhubung. 3. Periksa dahulu tombol power perangkat dan pastikan dalam keadaan OFF sebelum dikonfigurasi. 4. Periksa kembali konfigurasi kabel dan konektor dan pastikan tidak ada yang terbalik polaritasnya.
5.7.3
Langkah Kerja
Ikuti langkah-langkah kerja praktikum berikut ini sesuai dengan prosedur: 1. Ketikan program menggunakan notepad WinAVR. 2. Konfigurasi compiler WinAVR pada menggunakan M-File. 3. Kompilasi program yang sudah anda buat pada notepad editor WinAVR.
MODUL AJAR PRAKTIKUM INTERFACING
114
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC) 4. Download file berekstensi *.hex hasil kompilasi ke Microcontroller dengan perangkat keras AVR 910 USB downloader dan perangakat lunak downloader AVRdude. 5. Sambungkan AVR Trainer Board ke sumber tegangan AC 220V dengan menggunakan kabel power dan pastikan dahulu kondisi switch pada power supply modul dalam keadaan “OFF”. Untuk memastikan apakah sumber tegangan AC sudah mengalir bisa dengan menekan tombol power supply keposisi “ON” dan lampu akan menyala. Jika belum menyala coba periksa koneksi kabel dan colokan pada power supply. 6. Sambungkan port AVR yang dipakai ke bagian port modul dengan menggunakan kabel data pelangi. 7. Nyalakan modul dengan menekan tombol power supply ke posisi “ON” dan amati hasilnya. 8. Buatlah analisa dan kesimpulan dari praktikum yang dikerjakan.
5.7.4
Gambar Kerja
Gambar 5.3 menunjukkan koneksi antara komputer dengan modul AVR Trainer Board.
AVR Trainer Board
AC 220V
AVR910
Gambar 5.3 Koneksi computer dengan modul AVR Trainer Board
Gambar 5.4 menunjukkan koneksi port pin AVR ke port modul I/O AVR Trainer Board menggunakan kabel data pelangi.
MODUL AJAR PRAKTIKUM INTERFACING
115
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC)
Ke port modul input/ouput
Gambar 5.4 Koneksi microcontroller ke modul input/output
5.7.5
Lembar Tugas
1. Jalankan contoh program untuk membaca tegangan potensiomenter pada input analog ADC (A0) di bawah ini: #include #include
#define mode_ADC 0x20
unsigned char baca_adc (unsigned char pin_adc) { ADMUX = pin_adc | mode_ADC; ADCSRA |=0x40; while ((ADCSRA & 0x10)==0); ADCSRA |= 0x10; return ADCH; } void main(void) { DDRC = 0xFF; ADMUX=mode_ADC; ADCSRA=0x85; while(1) { PORTC = baca_adc(0); _delay_ms(100); } }
MODUL AJAR PRAKTIKUM INTERFACING
116
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC) 2. Modifikasi program di atas sehingga hasil pembacaan ADC yang berupa nilai heksa atau biner dapat ditampilkan pada modul seven segment. 3. Jalankan program untuk membaca nilai input ADC pada channel 0 (A0) yang dihasilkan dari potensiometer agar dapat ditampilkan pada LCD 8 bit. #include #include #include <stdio.h>
#define ENABLE_LCD PORTD |= 0x04 #define DISABLE_LCD PORTD &= ~0x04 #define SET_LCD_DATA PORTD |= 0x01 #define SET_LCD_CMD PORTD &= ~0x01 #define mode_ADC 0x00
void port_init(void); void LCD_init(void); void LCD_WriteCommand (unsigned char CMD); void LCD_WriteData (unsigned char Data); unsigned char baca_adc (unsigned char pin_adc); int rib,rat,pul,sat; unsigned int data; char lcd_buffer[33]; int i;
// Inisialisasi port AVR 8535 void port_init(void) { DDRA = 0x00; // PORTA INPUT PORTA = 0x00; // SEMUA PORTA DIAKTIFKAN DDRB = 0x00; // PORTB INPUT PORTB = 0x00; // SEMUA PORTB DIAKTIFKAN DDRC = 0xFF; // PORTC OUTPUT PORTC = 0x00; // SEMUA PORTC DIAKTIFKAN }
DDRD = 0xFF; // PORTD OUTPUT PORTD = 0x00; // SEMUA PORTD DIAKTIFKAN
// Inisialisasi LCD // DISPCLR = 01H // FUNCSET // ENTRMOD = 06H // DISPON void LCD_init(void) { delay_ms(100); LCD_WriteCommand (0x38); LCD_WriteCommand (0x06); LCD_WriteCommand (0x0f); LCD_WriteCommand (0x01); delay_ms(10); }
MODUL AJAR PRAKTIKUM INTERFACING
= 38H = 0CH // tunggu selama 100 ms // 8 data lines = FUNCSET // cursor setting = ENTRMOD // display ON = DISPON // clear LCD memory = DISPCLR // tunggu 10ms untuk membersihkan LCD
117
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC) // Prosedur untuk command instruction void LCD_WriteCommand (unsigned char Command) { SET_LCD_CMD; // Set LCD in command mode PORTC = Command; // Load data to port ENABLE_LCD; // Write data to LCD delay_ms(1); DISABLE_LCD; // Disable LCD delay_ms(1); // wait for 1ms }
// Prosedur untuk data instruction void LCD_WriteData (unsigned char Data) { SET_LCD_DATA; // Set LCD in data mode PORTC = Data; // Load data to port ENABLE_LCD; // Write data to LCD delay_ms(1); DISABLE_LCD; // Disable LCD delay_ms(1); // wait for 1ms } unsigned char baca_adc(unsigned char pin_adc) { ADMUX= pin_adc|mode_ADC; ADCSRA|=0x40; while((ADCSRA & 0x10)==0); ADCSRA |=0x10; /*return ADCH;*/ return ADCW >>1; }
//******************* MAIN FUNCTION ******************* main() {
port_init(); LCD_init(); ADMUX =mode_ADC; ADCSRA =0x85;
while(1) { data = baca_adc(0); sat = data % 10; // sat = sisa dari data dibagi 10 pul = data / 10; pul = pul % 10; rat = data / 100; rat = rat % 10; rib = data / 1000; LCD_WriteCommand (0x80); LCD_WriteData (rib + 0x30); LCD_WriteCommand (0x081); LCD_WriteData (rat + 0x30); LCD_WriteCommand (0x82);
MODUL AJAR PRAKTIKUM INTERFACING
// pesan tempat di baris 1 kolom 0 // data ASCII ribuan // pesan tempat di baris 1 kolom 1 // data ASCII ratusan // pesan tempat di baris 1 kolom 2
118
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC)
}
}
LCD_WriteData (pul + 0x30); // data ASCII puluhan LCD_WriteCommand (0x083); // pesan tempat di baris 1 kolom 3 LCD_WriteData (sat + 0x30); // data ASCII satuan delay_ms(50);
4. Modifikasi program no. 3 agar pembacaan ADC dapat ditampilkan pada LDC dengan mode LCD 4 bit.
Catatan: Buat analisa dan kesimpulan dari semua percobaan yang telah kalian lakukan dalam laporan praktikum sesuai format pada lampiran A dalam modul ini.
MODUL AJAR PRAKTIKUM INTERFACING
119
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC) ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... ......................................................................................................................................... .........................................................................................................................................
MODUL AJAR PRAKTIKUM INTERFACING
120
MODUL 5. AVR INPUT MENGGUNAKAN INTERNAL ANALOG DIGITAL CONVERTER (ADC)
5.8 Jawaban Latihan Soal 1.
Sudah dijelaskan pada uraian materi
2.
Sudah dijelaskan pada uraian materi
3.
Analog = output berupa range antara 0 s/d (x) Volt Digital = output berupa 0 atau 1 (5V).
4.
ADC0804
MODUL AJAR PRAKTIKUM INTERFACING
121
LAMPIRAN
Penyusun: Noorman Rinanto, S.T., M.T. NIP
PROGRAM STUDI TEKNIK OTOMASI JURUSAN TEKNIK KELISTRIKAN KAPAL POLITEKNIK PERKAPALAN NEGERI SURABAYA 2012
Features • High-performance, Low-power Atmel® AVR® 8-bit Microcontroller • Advanced RISC Architecture
•
•
•
•
• • • •
– 131 Powerful Instructions – Most Single-clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 16 MIPS Throughput at 16 MHz – On-chip 2-cycle Multiplier High Endurance Non-volatile Memory segments – 16 Kbytes of In-System Self-programmable Flash program memory – 512 Bytes EEPROM – 1 Kbyte Internal SRAM – Write/Erase Cycles: 10,000 Flash/100,000 EEPROM – Data retention: 20 years at 85°C/100 years at 25°C(1) – Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program True Read-While-Write Operation – Programming Lock for Software Security JTAG (IEEE std. 1149.1 Compliant) Interface – Boundary-scan Capabilities According to the JTAG Standard – Extensive On-chip Debug Support – Programming of Flash, EEPROM, Fuses, and Lock Bits through the JTAG Interface Peripheral Features – Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Real Time Counter with Separate Oscillator – Four PWM Channels – 8-channel, 10-bit ADC 8 Single-ended Channels 7 Differential Channels in TQFP Package Only 2 Differential Channels with Programmable Gain at 1x, 10x, or 200x – Byte-oriented Two-wire Serial Interface – Programmable Serial USART – Master/Slave SPI Serial Interface – Programmable Watchdog Timer with Separate On-chip Oscillator – On-chip Analog Comparator Special Microcontroller Features – Power-on Reset and Programmable Brown-out Detection – Internal Calibrated RC Oscillator – External and Internal Interrupt Sources – Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby and Extended Standby I/O and Packages – 32 Programmable I/O Lines – 40-pin PDIP, 44-lead TQFP, and 44-pad QFN/MLF Operating Voltages – 2.7V - 5.5V for ATmega16L – 4.5V - 5.5V for ATmega16 Speed Grades – 0 - 8 MHz for ATmega16L – 0 - 16 MHz for ATmega16 Power Consumption @ 1 MHz, 3V, and 25°C for ATmega16L – Active: 1.1 mA – Idle Mode: 0.35 mA – Power-down Mode: < 1 μA
8-bit Microcontroller with 16K Bytes In-System Programmable Flash ATmega16 ATmega16L
Rev. 2466T–AVR–07/10
ATmega16(L) Pin Configurations
Figure 1. Pinout ATmega16 PDIP (XCK/T0) PB0 (T1) PB1 (INT2/AIN0) PB2 (OC0/AIN1) PB3 (SS) PB4 (MOSI) PB5 (MISO) PB6 (SCK) PB7 RESET VCC GND XTAL2 XTAL1 (RXD) PD0 (TXD) PD1 (INT0) PD2 (INT1) PD3 (OC1B) PD4 (OC1A) PD5 (ICP1) PD6
PA0 (ADC0) PA1 (ADC1) PA2 (ADC2) PA3 (ADC3) PA4 (ADC4) PA5 (ADC5) PA6 (ADC6) PA7 (ADC7) AREF GND AVCC PC7 (TOSC2) PC6 (TOSC1) PC5 (TDI) PC4 (TDO) PC3 (TMS) PC2 (TCK) PC1 (SDA) PC0 (SCL) PD7 (OC2)
PB4 (SS) PB3 (AIN1/OC0) PB2 (AIN0/INT2) PB1 (T1) PB0 (XCK/T0) GND VCC PA0 (ADC0) PA1 (ADC1) PA2 (ADC2) PA3 (ADC3)
TQFP/QFN/MLF
(MOSI) PB5 (MISO) PB6 (SCK) PB7 RESET VCC GND XTAL2 XTAL1 (RXD) PD0 (TXD) PD1 (INT0) PD2
Disclaimer
PD3 PD4 PD5 PD6 PD7 VCC GND (SCL) PC0 (SDA) PC1 (TCK) PC2 (TMS) PC3 (INT1) (OC1B) (OC1A) (ICP1) (OC2)
NOTE: Bottom pad should be soldered to ground.
PA4 (ADC4) PA5 (ADC5) PA6 (ADC6) PA7 (ADC7) AREF GND AVCC PC7 (TOSC2) PC6 (TOSC1) PC5 (TDI) PC4 (TDO)
Typical values contained in this datasheet are based on simulations and characterization of other AVR microcontrollers manufactured on the same process technology. Min and Max values will be available after the device is characterized.
2 2466T–AVR–07/10
ATmega16(L) Overview
Block Diagram
The ATmega16 is a low-power CMOS 8-bit microcontroller based on the AVR enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the ATmega16 achieves throughputs approaching 1 MIPS per MHz allowing the system designer to optimize power consumption versus processing speed. Figure 2. Block Diagram PA0 - PA7
PC0 - PC7
PORTA DRIVERS/BUFFERS
PORTC DRIVERS/BUFFERS
PORTA DIGITAL INTERFACE
PORTC DIGITAL INTERFACE
VCC
GND
AVCC
MUX & ADC
ADC INTERFACE
TWI
AREF PROGRAM COUNTER
STACK POINTER
PROGRAM FLASH
SRAM
TIMERS/ COUNTERS
OSCILLATOR
INTERNAL OSCILLATOR XTAL1
INSTRUCTION REGISTER
GENERAL PURPOSE REGISTERS
WATCHDOG TIMER
OSCILLATOR
XTAL2
X INSTRUCTION DECODER
Y
MCU CTRL. & TIMING
RESET
Z
CONTROL LINES
ALU
INTERRUPT UNIT
AVR CPU
STATUS REGISTER
EEPROM
PROGRAMMING LOGIC
SPI
USART
+ -
INTERNAL CALIBRATED OSCILLATOR
COMP. INTERFACE
PORTB DIGITAL INTERFACE
PORTD DIGITAL INTERFACE
PORTB DRIVERS/BUFFERS
PORTD DRIVERS/BUFFERS
PB0 - PB7
PD0 - PD7
3 2466T–AVR–07/10
ATmega16(L) The AVR core combines a rich instruction set with 32 general purpose working registers. All the 32 registers are directly connected to the Arithmetic Logic Unit (ALU), allowing two independent registers to be accessed in one single instruction executed in one clock cycle. The resulting architecture is more code efficient while achieving throughputs up to ten times faster than conventional CISC microcontrollers. The ATmega16 provides the following features: 16 Kbytes of In-System Programmable Flash Program memory with Read-While-Write capabilities, 512 bytes EEPROM, 1 Kbyte SRAM, 32 general purpose I/O lines, 32 general purpose working registers, a JTAG interface for Boundaryscan, On-chip Debugging support and programming, three flexible Timer/Counters with compare modes, Internal and External Interrupts, a serial programmable USART, a byte oriented Two-wire Serial Interface, an 8-channel, 10-bit ADC with optional differential input stage with programmable gain (TQFP package only), a programmable Watchdog Timer with Internal Oscillator, an SPI serial port, and six software selectable power saving modes. The Idle mode stops the CPU while allowing the USART, Two-wire interface, A/D Converter, SRAM, Timer/Counters, SPI port, and interrupt system to continue functioning. The Power-down mode saves the register contents but freezes the Oscillator, disabling all other chip functions until the next External Interrupt or Hardware Reset. In Power-save mode, the Asynchronous Timer continues to run, allowing the user to maintain a timer base while the rest of the device is sleeping. The ADC Noise Reduction mode stops the CPU and all I/O modules except Asynchronous Timer and ADC, to minimize switching noise during ADC conversions. In Standby mode, the crystal/resonator Oscillator is running while the rest of the device is sleeping. This allows very fast start-up combined with low-power consumption. In Extended Standby mode, both the main Oscillator and the Asynchronous Timer continue to run. The device is manufactured using Atmel’s high density nonvolatile memory technology. The Onchip ISP Flash allows the program memory to be reprogrammed in-system through an SPI serial interface, by a conventional nonvolatile memory programmer, or by an On-chip Boot program running on the AVR core. The boot program can use any interface to download the application program in the Application Flash memory. Software in the Boot Flash section will continue to run while the Application Flash section is updated, providing true Read-While-Write operation. By combining an 8-bit RISC CPU with In-System Self-Programmable Flash on a monolithic chip, the Atmel ATmega16 is a powerful microcontroller that provides a highly-flexible and cost-effective solution to many embedded control applications. The ATmega16 AVR is supported with a full suite of program and system development tools including: C compilers, macro assemblers, program debugger/simulators, in-circuit emulators, and evaluation kits.
Pin Descriptions VCC
Digital supply voltage.
GND
Ground.
Port A (PA7..PA0)
Port A serves as the analog inputs to the A/D Converter. Port A also serves as an 8-bit bi-directional I/O port, if the A/D Converter is not used. Port pins can provide internal pull-up resistors (selected for each bit). The Port A output buffers have symmetrical drive characteristics with both high sink and source capability. When pins PA0 to PA7 are used as inputs and are externally pulled low, they will source current if the internal pull-up resistors are activated. The Port A pins are tri-stated when a reset condition becomes active, even if the clock is not running.
4 2466T–AVR–07/10
ATmega16(L) Port B (PB7..PB0)
Port B is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The Port B output buffers have symmetrical drive characteristics with both high sink and source capability. As inputs, Port B pins that are externally pulled low will source current if the pull-up resistors are activated. The Port B pins are tri-stated when a reset condition becomes active, even if the clock is not running. Port B also serves the functions of various special features of the ATmega16 as listed on page 58.
Port C (PC7..PC0)
Port C is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The Port C output buffers have symmetrical drive characteristics with both high sink and source capability. As inputs, Port C pins that are externally pulled low will source current if the pull-up resistors are activated. The Port C pins are tri-stated when a reset condition becomes active, even if the clock is not running. If the JTAG interface is enabled, the pull-up resistors on pins PC5(TDI), PC3(TMS) and PC2(TCK) will be activated even if a reset occurs. Port C also serves the functions of the JTAG interface and other special features of the ATmega16 as listed on page 61.
Port D (PD7..PD0)
Port D is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The Port D output buffers have symmetrical drive characteristics with both high sink and source capability. As inputs, Port D pins that are externally pulled low will source current if the pull-up resistors are activated. The Port D pins are tri-stated when a reset condition becomes active, even if the clock is not running. Port D also serves the functions of various special features of the ATmega16 as listed on page 63.
RESET
Reset Input. A low level on this pin for longer than the minimum pulse length will generate a reset, even if the clock is not running. The minimum pulse length is given in Table 15 on page 38. Shorter pulses are not guaranteed to generate a reset.
XTAL1
Input to the inverting Oscillator amplifier and input to the internal clock operating circuit.
XTAL2
Output from the inverting Oscillator amplifier.
AVCC
AVCC is the supply voltage pin for Port A and the A/D Converter. It should be externally connected to VCC, even if the ADC is not used. If the ADC is used, it should be connected to VCC through a low-pass filter.
AREF
AREF is the analog reference pin for the A/D Converter.
5 2466T–AVR–07/10
ATmega16(L) Resources
A comprehensive set of development tools, application notes and datasheets are available for download on http://www.atmel.com/avr. Note:
Data Retention
1.
Reliability Qualification results show that the projected data retention failure rate is much less than 1 PPM over 20 years at 85°C or 100 years at 25°C.
6 2466T–AVR–07/10
LAMPIRAN A (Format Cover Laporan resmi praktikum)
LAPORAN RESMI PRAKTIKUM INTERFACING (JUDUL PRAKTIKUM)
Oleh: Kelompok … 1. Nama anggota (NRP) 2. Nama anggota (NRP)
PROGRAM STUDI TEKNIK OTOMASI JURUSAN TEKNIK KELISTRIKAN KAPAL POLITEKNIK PERKAPALAN NEGERI SURABAYA TAHUN 2012 MODUL AJAR PRAKTIKUM INTERFACING
LAMPIRAN A (Format Isi Laporan resmi praktikum)
PERCOBAAN … (1, 2, 3… dst) JUDUL PRAKTIKUM
A. TUJUAN Mahasiswa mampu dan menguasai …..(diisi sesuai dengan topik percobaan yang dilakukan).
B. ALAT DAN BAHAN Alat
: No. 1. 2.
Nama Alat …
Jenis Perangkat Keras/Lunak
Jumlah …
Bahan : No. 1. 2.
Nama Bahan …
Jenis Perangkat Keras/Lunak
Jumlah 1
C. TEORI Diisi rangkuman dari uraian materi pada modul ajar sesuai dengan topik percobaan yang dilakukan.
D. LANGKAH PERCOBAAN Diisi langkah-langkah percobaan yang dilakukan secara berurutan.
E. HASIL PERCOBAAN Diisi hasil-hasil dari percobaan yang telah dilakukan bisa berupa gambar, tabel atau data lainnya.
F. ANALISA DAN KESIMPULAN Diisi hasil analisa dan kesimpulan dari percobaan yang telah dilakukan.
MODUL AJAR PRAKTIKUM INTERFACING
(Schematic minimum system AVR Trainer Board)
MODUL AJAR PRAKTIKUM INTERFACING
LAMPIRAN B
(Datasheet Microprocessor AVR Atmel ATmega16)
MODUL AJAR PRAKTIKUM INTERFACING
LAMPIRAN C
(Datasheet Microprocessor AVR Atmel ATmega16)
MODUL AJAR PRAKTIKUM INTERFACING
LAMPIRAN C
(Datasheet Microprocessor AVR Atmel ATmega16)
MODUL AJAR PRAKTIKUM INTERFACING
LAMPIRAN C
(Datasheet Microprocessor AVR Atmel ATmega16)
MODUL AJAR PRAKTIKUM INTERFACING
LAMPIRAN C
(Datasheet Microprocessor AVR Atmel ATmega16)
MODUL AJAR PRAKTIKUM INTERFACING
LAMPIRAN C
(Datasheet Microprocessor AVR Atmel ATmega16)
MODUL AJAR PRAKTIKUM INTERFACING
LAMPIRAN C
LAMPIRAN D
(AVR Trainer Board)
AVR Trainer Board
Perlengkapan AVR Trainer Board
MODUL AJAR PRAKTIKUM INTERFACING
1
2
4
3
D
D
LCD 2 X 16 LCD 16PIN C
C
RS R/-W E D0 D1 D2 D3 D4 D5 D6 D7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+5 R1 10K
D1
+5
+5
D0 D1 D2 D3 D4 D5 D6 D7
10PIN
4 BIT DATA LENGTH
B
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
10PIN
+5
1 2 3 RS 4 R/-W 5 E 6 7 8 9 10
+5 D4 D5 D6 D7
+5 B
RS R/-W E
R2 1K
10PIN
8 BIT DATA LENGTH
Title
A
Size
A Number
Revision
A4 Date: File: 1
2
3
26-Mar-2013 D:\INSTAL~1\..\LCD.SCH
Sheet of Drawn By: 4
1
2
4
3
D
B0 B1 B2 B3 B4 B5 B6 B7
+5
10PIN
RST
9
R1 10K
B0/T0 B1/T1 B2/IT2 B3/AD3 B4/SS B5MOSI B6MISO B7/SCK
A0/AD0 A1/AD1 A2/AD2 A3/AD3 A4/AD4 A5/AD5 A6/AD6 A7/AD7
40 39 38 37 36 35 34 33
+12 R14 1K
C
+5 10 11
S1 12
C1 10uF
XT 8MHz 13
D0 D1 D2 D3 D4 D5 D6 D7
D0 D1 D2 D3 D4 D5 D6 D7
1 2 3 4 5 6 7 8 9 10
B
10PIN
RESET
+5
+5
A0 A1 A2 A3 A4 A5 A6 A7
14 15 16 17 18 19 20 21
VCC GND
AVCC
XTAL2
AREF
30 P1
GND
32
Z1 6V2
5.1V
31
10K
XTAL1 D0/RX0 D1/TX0 D2/IT0 D3/IT1 D4OC1B D5OC1A D6/ICP D7/OC2
C7 C6 C5 C4 C3 C2 C1/SDA C0/SCL
29 28 27 26 25 24 23 22
C7 C6 C5 C4 C3 C2 C1 C0
+5
C0 C1 C2 C3 C4 C5 C6 C7
MOSI
C
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9 10
+5
MOSI MISO SCK
B0 B1 B2 B3 B4 B5 B6 B7
1 2 3 4 5 6 7 8 9 10
U1 8535
1 2 3 4 5 6 7 8 9 10
+5
A0 A1 A2 A3 A4 A5 A6 A7
D
B
10PIN
10PIN
Title
A
Size
A Number
Revision
A4 Date: File: 1
2
3
26-Mar-2013 D:\INSTAL~1\..\MIKRO.SCH
Sheet of Drawn By: 4
1
2
4
3
D
D
U2 7447 5 3 4 7 1 2 6
C
DIGIT3
RB1 LT B1 A B C D
a b c d e f g
DIGIT2
DIGIT1
DIGIT0
13 12 11 10 9 15 14
C
+5
P1
+5
P2
+5
P3
+5
P4
R4 +5
R3
1 2 3 4 5 6 7 8 9 10
R2 R1 10PIN B
B
Title
A
Size
A Number
Revision
A4 Date: File: 1
2
3
26-Mar-2013 D:\INSTAL~1\..\SEGMEN.SCH
Sheet of Drawn By: 4