PROGRAM STUDI TEKNIK LISTRIK JURUSAN TEKNIK ELEKTRO POLITEKNIK NEGERI UJUNG PANDANG 2012
i
LEMBAR PENGESAHAN
Nama Mata Kuliah Kode Mata Kuliah Nama Job Dosen Penyusun NIP Waktu Pelaksanaan
: Praktikum Elektronika Digital dan Mikrokontroler : TL341323 : Liquid Cristal Displays (LCDs) : Muhammad Thahir, S.ST.,MT : 19661107 199303 1 003 : 13 Juni 15 Oktober 2012
Job sheet ini telah diperiksa dan disetujui untuk digunakan sebagai bahan kuliah bagi mahasiswa Politeknik Negeri Ujung Pandang
Makassar, 15 Oktober 2012 Menyetujui Ketua Unit P3AI, Ketua Jurusan Teknik Elektro,
ii
KATA PENGANTAR
Puji syukur kami panjatkan kehadirat Allah SWT yang telah memberikan rahmat serta karunia-Nya kepada kami sehingga kami berhasil menyelesaikan Modul Job LCD with ATMega, Job Sheet Praktikum Elektronika Digital dan Mikrokontroler ini yang alhamdulillah tepat pada waktunya. Modul Praktikum ini berisikan petunjuk dan contoh-contoh cara memprogram serta cara mengembangkan sebuah sistem menggunakan 8 bit mikrokontroler AVR buatan ATMEL dengan bahasa pemrograman bahasa C dengan menggunakan Software CodeVisionAVR. Penulis menyadari bahwa Job sheet ini masih jauh dari sempurna, oleh karena itu kritik dan saran dari semua pihak yang bersifat membangun selalu kami harapkan demi kesempurnaan Job Sheet ini. Akhir kata, penulis menyampaikan terima kasih kepada pihak panitia penyelenggara dalam hal ini Politeknik Negeri Ujung Pandang, dan kepada P3AI Politeknik Negeri Ujung Pandang. Semoga Allah SWT. Memberi ridha dan manfaat dari semua yang telah dilakukan Amin.
iii
DAFTAR ISI
LEMBAR PENGESAHAN .............................................................................................................. ii KATA PENGANTAR......................................................................................................................iii DAFTAR TABEL............................................................................................................................ v DAFTAR GAMBAR .......................................................................................................................vi TINJAUAN MATA KULIAH ........................................................................................................... 1 I. II. TUJUAN PRAKTEK ........................................................................................................... 2 TEORI DASAR .................................................................................................................. 2 2.1 2.2. 2.5. 2.5.1. 2.5.2. III. IV. V. Mikrokontroler AVR.............................................................................................. 2 LCDs (Liquid Crystal Displays) ............................................................................ 2 Bahasa Pemrograman ............................................................................................. 3 AVRstudio ......................................................................................................... 3 CodeVisionAVR C Compiler ............................................................................ 4
DAFTAR ALAT DAN BAHAN ............................................................................... 4 GAMBAR RANGKAIAN ......................................................................................... 5 PROSEDUR PERCOBAAN ...................................................................................... 5
5.1. Sebelum Proses Praktikum .......................................................................................... 5 5.2. Selama Kegiatan Praktikum ........................................................................................ 5 5.3. Setelah Kegiatan Praktikum ...................................................................................... 16 VI. VII. VIII. KESELAMATAN KERJA ...................................................................................... 16 DATA PERCOBAAN ............................................................................................. 16 TUGAS .................................................................................................................... 20
iv
DAFTAR TABEL
Tabel 1. Fungsi pin LCD........................................................................................................... 3 Tabel 2. Form Penilaian .......................................................................................................... 21
DAFTAR GAMBAR
Gambar 2. 1. LCD 2x16 ............................................................................................................. 3 Gambar 4. 1. Gambar rangkaian ATmega16 dengan LCD HD 44780 ...................................... 5 Gambar 5. 1. Jendela CodeVisionAVR ..................................................................................... 6 Gambar 5. 2. Buat projek baru ................................................................................................... 6 Gambar 5. 3. Pilihan menggunakan CodewizardAVR .............................................................. 6 Gambar 5. 4. Pilihan type AVR ................................................................................................. 7 Gambar 5. 5. Setting type chip, frequensi, I/O port ................................................................... 7 Gambar 5. 6. Generate dan save hasil setting ............................................................................ 8 Gambar 5. 7. Menambahkan header file delay.h........................................................................ 8 Gambar 5. 8. Compile program dan memastikan tidak ada error .............................................. 9 Gambar 5. 9. Mengaktifkan download program ke chip.......................................................... 10 Gambar 5. 10. Jendela awal AVRStudio 4 .............................................................................. 11 Gambar 5. 11. New Project wth AVR GCC ............................................................................ 11 Gambar 5. 12. Create nama project .......................................................................................... 12 Gambar 5. 13. Save project di lokasi yang dipilih ................................................................... 12 Gambar 5. 14. Memilih type Chip yang digunakan ................................................................. 13 Gambar 5. 15. Jendela editor untuk menulis instruksi program............................................... 13 Gambar 5. 16. Project option ................................................................................................... 14 Gambar 5. 17. Menulis syntax program yang diinginkan ........................................................ 14 Gambar 5. 18. Jendela SinaProg .............................................................................................. 15
vi
Setelah menyelesaikan praktikum, mahasiswa mampu: 1. Menjelaskan arsitektur umum dan keistimewaan Mikrokontroler AVR ATMega16 2. Mengakses perangkat digital I/O Liquid Cristal Displays (LCDs) 3. Memprogram perangkat digital I/O dengan berbagai macam cara 4. Mengaplikasikan fungsi dari digital I/O pada mikrokontroler AVR ATMega16 5. Mengerjakan tugas yang diberikan dengan menggunakan Bahasa C. II. TEORI DASAR 2.1 Mikrokontroler AVR
AVR merupakan seri mikrokontroler CMOS 8 Bit buatan Atmel yang berbasis Reduce Instruction Set Computer (RISC) dimana hampir semua instruksinya dieksekusi dalam satu siklus clock. AVR sendiri memiliki 32 register general purpose, timer/counter fleksible dengan mode compare, interrupt internal dan eksternal, serial USART, programmable Watchdog Timer dan mode power saving, dimana diantaranya memiliki ADC dan PWM internal. Kemudahan yang ditawarkan dari mikrokontroler AVR ini adalah adanya In-System Programmable Flash on-chip yang mengijinkan user untuk memprogram ulang memori program dalam system dengan menggunakan hubungan serial SPI. Chip AVR yang akan digunakan dalam praktikum adalah ATMega16. 2.2. LCDs (Liquid Crystal Displays)
LCD (Liquid Crystal Display) adalah modul penampil karakter sederhana yang terbentuk dari sejumlah pixel monochrome ataupun berwarna. Modul LCD yang digunakan tersebut dilengkapi dengan mikrokontroler HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD. Modul LCD yang digunakan memiliki CGROM (Character Generator Read Only Memory), CGRAM (Character Generator RandomAccess Memory), dan DDRAM (Display Data Random Access Memory).
2.5.
Bahasa Pemrograman
Bahasa pemrograman yang umum dipakai untuk memprogram mikrokontroler ialah bahasa C dikarenakan bahasa ini lebih mudah dimengerti oleh manusia. Akan tetapi bahasa ini kurang machine friendly sehingga untuk beberapa akses membutuhkan code dalam bahasa assembly. 2.5.1. AVRstudio AVR studio adalah software firmware buatan ATMEL yang digunakan khusus untuk membuat program assembly dan simulasi mikrokontroler AVR. AVR
3
studio diperbaharui oleh ATMEL untuk versi terakhit dapat didownload di www.atmel.com . 2.5.2. CodeVisionAVR C Compiler CodeVisionAVR Hyperterminal memiliki yang dapat fitur-fitur yang terbilang lengkap seperti antara
digunakan
untuk
berkomunikasi
mikrokontroler dengan komputer serta tools untuk melakukan proses burning dan flashing kedalam mikrokontroler. Untuk proses debugging sendiri, CodeVisionAVR telah menyediakan link pada AVRStudio yang memang telah memiliki fitur tersebut. Selain itu hasil kompilasi program dari CodeVisionAVR yang berupa file dengan ekstensi *.cof juga dapat disimulasikan langsung di AVRStudio. III. DAFTAR ALAT DAN BAHAN
Daftar Alat dan bahan yang dipergunakan dalam Praktikum: 1. 2. 3. 4. 5. 6. 7. 1 set PC lengkap dengan program aplikasi CodevisionAVR atau AVR Studio4 1 unit Modul Mikrokontroler ATMega16 1 unit Modul LCD 1 unit modul Saklar (Push Button) Power Supply +5 Vdc Kabel Jumper secukupnya Obeng Terminal
IV.
Gambar 4. 1. Gambar rangkaian ATmega16 dengan LCD HD 44780 V. PROSEDUR PERCOBAAN 5.1. Sebelum Proses Praktikum 5.1.1. Absensi oleh pembimbing/instrukstur 5.1.2. Pengarahan oleh pembimbing 5.1.3. Baca dan Pahami job sheet yang diberikan dalam kegiatan praktikum. 5.1.4. Pinjam/Bon peralatan dan bahan praktikum. 5.1.5. Pastikan bahan dan peralatan sesuai dengan kegiatan praktikum yang akan dilaksanakan.
5.2. Selama Kegiatan Praktikum Selama kegiatan praktikum terdapat dua prosedur yang harus di patuhi oleh praktikan yaitu: Prosedur umum dengan software CodeVisionAVR: 5.2.1. Siapkan bahan dan peralatan yang akan digunakan. 5.2.2. Rangkai modul yang akan digunakan sesuai gambar rangkaian. 5.2.3. Jalankan program Aplikasi CodeVisionAVR
5
Gambar 5. 1. Jendela CodeVisionAVR 5.2.4. Buat projek baru. FILE NEW pilih Project lalu klik tombol OK
Gambar 5. 2. Buat projek baru 5.2.5. Klik tombol YES pada jendela dialog apakah akan menggunakan CodeWizardAVR untuk mempermudah merancang kerangka program, kemudian pilih jenis AVR dan KLIK tombol OK
Gambar 5. 4. Pilihan type AVR 5.2.6. Setting jenis mikrokontroler yang digunakan ATMEGA16, frequensi 12 MHz, serta fungsi PORTA sebagai output yang terkoneksi dengan LCD.
Gambar 5. 5. Setting Alphanumeric LCD pada PORTA 5.2.7. Simpan hasil setting. PROGRAM generate, save and exit
Gambar 5. 6. Generate dan save hasil setting 5.2.8. Simpan nama source file,nama project file, nama codewizard file dengan nama running_led. 5.2.9. Pada header program sisipkan instruksi berikut #include <delay.h> // header file untuk instruksi delay
Gambar 5. 7. Menambahkan header file delay.h 5.2.10. Pada main program sisipkan instruksi seperti pada data Percobaan: 5.2.11. Kompilasi program dengan mengklik ProgramCompile dan memastikan tidak ada error.
Gambar 5. 8. Compile program dan memastikan tidak ada error 5.2.12. Jika sukses configure hasil compilasi untuk di download ke mikrokontroler . PROGRAMconfigure dan klik AFTER BUILD dan centang Program the Chip dan klik OK.
Gambar 5. 9. Mengaktifkan download program ke chip 5.2.13. 5.2.14. 5.2.15. 5.2.16. Build program, PROGRAM BUILD Download hasil kompilasi ke mikrokontroler Lapor kepada pembimbing jika percobaan selesai untuk dilakukan pengetesan Amati dan analisa hasil percobaan dan membuat laporan sementara
Prosedur umum dengan software AVR Studio 4: 5.2.17. Buka program AVR Studio 4 gambar 5.10 Pilih New Project. , sehingga tampil seperti
10
Gambar 5. 10. Jendela awal AVRStudio 4 5.2.18. Buat project baru dengan menggunakan tipe Atmel AVR Assembler jika ingin membuat project dalam bahasa Assembler atau AVR GCC jika ingin membuat dalam program bahasa C. Pilih AVR GCC karena praktikum ini menggunakan program bahasa C.
Gambar 5. 11. New Project wth AVR GCC 5.2.19. Tulis nama project pada bagian bawah Project name, centang Create initial file dan Create Folder. Secara otomatis Initial file akan memiliki nama yang sama dengan nama projectnya dengan tambahan ekstensi .c dan semua file dalam project tersebut tersimpan dalam folder yang sama yang telah dibuat.
11
Gambar 5. 12. Create nama project 5.2.20. Pilih lokasi yang digunakan untuk menyimpan project. Browse jika ingin mengubah lokasi yang ada dan pilih Select pada lokasi yang diinginkan.
Gambar 5. 13. Save project di lokasi yang dipilih 5.2.21. Klik Next >> sehingga muncul tampilan seperti gambar 5.14 Pilih AVR Simulator pada bagian Debug Platform dan Pilih ATmega16 pada bagian Device. Dan Klik Finish untuk memunculkan editor seperti pada gambar 5.15.
12
Gambar 5. 15. Jendela editor untuk menulis instruksi program 5.2.22. Pengaturan frekuensi CPU yang digunakan oleh mikrokontroler dilakukan dengan mengklik Project Configuration Options sehingga muncul jendela seperti gambar 5.16 Kemudian isi frekuensi yang digunakan sesuai dengan yang ada di modul mikrokontroler. Klik OK jika sudah selesai.
13
Gambar 5. 16. Project option 5.2.23. Tulis program di editor (instruksi program lihat data percobaan). Berbeda dengan CodeVisionAVR penulisan header delay adalah: #include <avr/io.h> #include <util/delay.h> Sytax untuk delay : _delay_ms(1000); atau membuat/memanipulasi fungsi delay
Gambar 5. 17. Menulis syntax program yang diinginkan 5.2.24. Build Program atau tekan F7 sampai tidak ada yang error seperti informasi berikut:
14
5.2.25.
Selanjutnya download file hex hasil compile menggunakan software SinaProg. Setting pada software SinaProg sebagai berikut:
Gambar 5. 18. Jendela SinaProg 5.2.26. Pilih Hex File yang akan di download dengan mengklik icon folder dan mengatur konfigurasi seperti berikut: a. Device : ATmega16; sesuai type chip yang digunakan b. Fuses : Int. 1 MHz c. Programmer: AVR910; Port: Sesuaikan dengan kondisi; Baudrate:115200 Klik program flash untuk mendownload hasil kompilasi ke mikrokontroler Lapor kepada pembimbing jika percobaan selesai untuk dilakukan pengetesan
15
5.2.27. 5.2.28.
5.2.29.
Prosedur khusus : 5.2.30. Atur I/O dari mikrokontroler sesuai dengan fungsi I/O yang akan digunakan sebagai input atau output dengan cara merubah isi Data Direction Register (DDRx) Aktifkan internal pull-up jika pin I/O mikrokontroler digunakan sebagai input dan pastikan saklar terhubung ke ground. Setting PORT yang akan dihubungkan dengan LCD dan perhatikan kaki atau pin LCD yang digunakan. Gunakan perintah berikut untuk menulis di LCD (CodeVisionAVR).Untuk AVRstudio dapat menggunakan fungsi yang ada pada data percobaan. a. Posisi karakter di LCD lcd_gotoxy(kolom,baris); b. Menulis karakter A di LCDlcd_putchar(A); c. Menulis kata/kalimat di LCDlcd_putsf(kata/kalimat);
5.3. Setelah Kegiatan Praktikum 5.3.1. Bersihkan peralatan yang telah digunakan 5.3.1. Bersihkan meja kerja serta ruangan kerja 5.3.3. Non aktifkan semua peralatan dan fasilitas penunjang yang digunakan 5.3.4. Kembalikan bahan dan peralatan yang telah digunakan 5.3.5. Pengarahan oleh pembimbing VI. KESELAMATAN KERJA Petunjuk keselamatan kerja: 6.1. Setiap mahasiswa harus menggunakan pakaian dan perlengkapan praktikum dan mematuhi peraturan yang berlaku pada laboratorium di Program Studi Teknik Listrik Politeknik Negeri Ujung Pandang 6.2.Memperhatikan penggunaan power supply, dimana suplai listrik harus dalam keadaan OFF pada saat melakukan perakitan modul rangkaian. VII. DATA PERCOBAAN Modul I/O yang digunakan pada praktikum ini adalah 1 unit modul LCDs dan Saklar push Button yang terhubung pada I/O port ATMega16 dimana output yang digunakan pada PORTA dan input pada PORTB. Buat program aplikasi menampilkan tulisan Hello
16
//MCU port connected to LCD data pins //MCU port connected to LCD control pins
//MCU direction register for port connected to LCD data pins #define LDDR DDRA //MCU direction register for port connected to LCD control pins #define LCDR DDRA #define LCD_CLR #define LCD_HOME //Sends Char to LCD void LCD_send_char(unsigned char ch) { LDP=(ch&0xf0); //tulis nible atas //data 0 1 //DB0: clear display //DB1: return to home position
LCP|=1<<LCD_RS; LCP|=1<<LCD_E; //e1 _delay_ms(1); LCP|=0<<LCD_E; //e0 _delay_ms(1); LDP=((ch&0x0f)<<4); LCP|=1<<LCD_RS; LCP|=1<<LCD_E; _delay_ms(1); LCP|=0<<LCD_E; _delay_ms(1); } //Sends Command to LCD
void LCD_send_command(unsigned char cmd) { LDP=(cmd&0xf0); //tulis nible atas LCP|=0<<LCD_RS; LCP|=1<<LCD_E; //e0 _delay_ms(1); LCP|=0<<LCD_E; //e1 _delay_ms(1); //perintah/instruksi
17
LDP=((cmd&0x0f)<<4); //nible bawah LCP|=0<<LCD_RS; LCP|=1<<LCD_E; _delay_ms(1); LCP|=0<<LCD_E; _delay_ms(1); } void LCD_init(void) //Inisilaisasi LCD { _delay_ms(15); LDP=0x00; LCP=0x00; LDDR|=1<<LCD_D7|1<<LCD_D6|1<<LCD_D5|1<<LCD_D4; LCDR|=1<<LCD_E|1<<LCD_RW|1<<LCD_RS; LCD_send_command(0x28); //4-bit 2-line 4x8 LCD_send_command(0x0c); //disply on, cursor off, bling off LCD_send_command(0x06); //shift inc, unsivible } void LCD_string(char* str) {unsigned char x=0; while(str[x]!=0){_delay_ms(1); LCD_send_char(str[x]); x++;} } void delay_ms(int ms) { for(int i=0;i<ms;i++){ _delay_ms(1);}; } int main (void) { delay_ms(200); LCD_init(); LCD_send_command(LCD_CLR); LCD_send_command(LCD_HOME); LCD_send_command(0x80+0); LCD_string("..HELLO..."); LCD_send_command(0xc0+0); LCD_string("TUGAS 1"); while(1){ for(char i=0;i<16;i++){ delay_ms(1000); LCD_send_command(0x1c); } for(char j=0;j<16;j++){
18
delay_ms(1000); LCD_send_command(0x18); } }
#include <mega16.h> #include <delay.h> // Alphanumeric LCD functions #include <alcd.h> void main(void) { ........ // Alphanumeric LCD initialization // Connections are specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTA Bit 0 // RD - PORTA Bit 1 // EN - PORTA Bit 2 // D4 - PORTA Bit 4 // D5 - PORTA Bit 5 // D6 - PORTA Bit 6 // D7 - PORTA Bit 7 // Characters/line: 16 lcd_init(16); lcd_init(16); lcd_gotoxy(0,0); lcd_putsf(" HELLO"); lcd_gotoxy(0,1); lcd_putsf(" TUGAS 1"); delay_ms(2000); lcd_clear(); while (1) { // Place your code here lcd_gotoxy(0,0); lcd_putchar('H'); delay_ms(100); lcd_gotoxy(1,0); lcd_putchar('E'); delay_ms(100);
19
VIII. TUGAS 7.1.Membuat laporan resmi berdasarkan hasil kegiatan 7.2.Memodifikasi percobaan dengan merubah tampilan LCD menjadi running tex dan mengkombinasikannya dengan saklar atau look up table method. 7.3.Menjelaskan Setiap baris syntax dari semua percobaan yang dilakukan dan menarik kesimpulan atas percobaan yang telah dilakukan
20
FORM PENILAIAN
Tabel 2. Form Penilaian NAMA MAHASISWA / STB JENIS PENILAIAN : PRAKTIKUM : Keaktifan (10 %) Absensi (5 %) Kerapihan (5 %) Kesuksesan (40 %) EVALUASI (UJI TULIS) + Demo Kerja Alat (15 %) LAPORAN (20 % ) + ASISTENSI (5 %) TOTAL PENILAIAN ANGKA HURUF
21