Petunjuk Praktikum Mikrokontroler Avr_tags.pdf

  • Uploaded by: dw
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Petunjuk Praktikum Mikrokontroler Avr_tags.pdf as PDF for free.

More details

  • Words: 6,552
  • Pages: 76
EXPERIMENT MANUAL

PETUNJUK PRAKTIKUM MIKROKONTROLER AVR ATMEGA8535

Oleh: Tsalits Agus Salim, SST

PROGRAM VOKASI JURUSAN TEKNIK ELEKTROMEDIK UNIVERSITAS MUHAMMADIYAH YOGYAKARTA 2012 Petunjuk Praktikum-Tsalits Agus Salim

Page 1

CODEVISIONAVR

A. Pengenalan CodevisionAVR CodeVisionAVR merupakan sebuah cross-compiler C, Integrated Development Environtment (IDE), dan Automatic Program Generator yang didesain untuk mikrokontroler buatan Atmel seri AVR. CodeVisionAVR dapat dijalankan pada sistem operasi Windows 95, 98, Me, NT4, 2000, dan XP. Cross-compiler C mampu menerjemahkan hampir semua perintah dari bahasa ANSI C, sejauh yang diijinkan oleh arsitektur dari AVR, dengan tambahan beberapa fitur untuk mengambil kelebihan khusus dari arsitektur AVR dan kebutuhan pada sistem embedded. File object COFF hasil kompilasi dapat digunakan untuk keperluan debugging pada tingkatan C, dengan pengamatan variabel, menggunakan debugger Atmel AVR Studio. IDE mempunyai fasilitas internal berupa software AVR Chip In-System Programmer yang memungkinkan Anda untuk melakukan transfer program kedalam chip mikrokontroler setelah sukses melakukan Programmer

kompilasi/asembli didesain

secara untuk

otomatis. bekerja

Software

In-System

dengan

Atmel

STK500/AVRISP/AVRProg, Kanda Systems STK200+/300, Dontronics DT006, Vogel Elektronik VTEC-ISP, Futurlec JRAVR dan MicroTronics ATCPU/Mega2000 programmers/development boards.

Petunjuk Praktikum-Tsalits Agus Salim

Page 2

Untuk keperluan debugging sistem embedded, yang menggunakan komunikasi serial, IDE mempunyai fasilitas internal berupa sebuah Terminal. Selain library standar C, CodeVisionAVR juga mempunyai library tertentu untuk: 

Modul LCD alphanumeric



Bus I2C dari Philips



Sensor Suhu LM75 dari National Semiconductor



Real-Time Clock: PCF8563, PCF8583 dari Philips, DS1302 dan DS1307 dari Maxim/Dallas Semiconductor



Protokol 1-Wire dari Maxim/Dallas Semiconductor



Sensor Suhu DS1820, DS18S20, dan DS18B20 dari Maxim/Dallas Semiconductor



Termometer/Termostat DS1621 dari Maxim/Dallas Semiconductor



EEPROM DS2430 dan DS2433 dari Maxim/Dallas Semiconductor



SPI



Power Management



Delay



Konversi ke Kode Gray

Petunjuk Praktikum-Tsalits Agus Salim

Page 3

CodeVisionAVR juga mempunyai Automatic Program Generator bernama CodeWizardAVR, yang mengujinkan Anda untuk menulis, dalam hitungan menit, semua instruksi yang diperlukan untuk membuat fungsi-fungsi berikut: 

Set-up akses memori eksternal



Identifikasi sumber reset untuk chip



Inisialisasi port input/output



Inisialisasi interupsi eksternal



Inisialisasi Timer/Counter



Inisialisasi Watchdog-Timer



Inisialisasi UART (USART) dan komunikasi serial berbasis buffer yang digerakkan oleh interupsi



Inisialisasi Pembanding Analog



Inisialisasi ADC



Inisialisasi Antarmuka SPI



Inisialisasi Antarmuka Two-Wire



Inisialisasi Antarmuka CAN\



Inisialisasi Bus I2C, Sensor Suhu LM75, Thermometer/Thermostat DS1621 dan Real-Time Clock PCF8563, PCF8583, DS1302, dan DS1307



Inisialisasi Bus 1-Wire dan Sensor Suhu DS1820, DS18S20



Inisialisasi modul LCD

Petunjuk Praktikum-Tsalits Agus Salim

Page 4

B. Persiapan Instalasi CodeVisionAVR Anda dapat memperoleh file instalasi CodeVisionAVR dengan cara mendownload

pada

situs

pembuatnya

yaitu

HP

InfoTech

di

http://www.hpinfotech.com. File yang dapat didownload adalah tipe evaluation yang artinya mempunyai keterbatasan, salah satunya adalah ukuran program yang dapat dikompilasi terbatas. Contoh yang digunakan adalah CodeVisionAVR versi 2.03. Klik ganda file setup.exe yang didapat dari proses download dari situs HP InfoTech.

Gambar 1. Ikon file setup.exe

Untuk pilihan bahasa pilih English, klik OK, seperti pada Gambar 2.

Gambar 2. Pilihan bahasa

Petunjuk Praktikum-Tsalits Agus Salim

Page 5

Kemudian akan muncul kotak dialog seperti pada Gambar 3, klik tombol next.

Gambar 3. Klik tombol next

Selanjutnya pada kotak dialog Licence Agreement, pilih I accept the agreement lalu klik tombol next seperti pada Gambar 4.

Gambar 4. Menyetujui syarat-syarat yang diberikan

Petunjuk Praktikum-Tsalits Agus Salim

Page 6

Berikutnya kotak dialog Select Destination Location seperti pada Gambar 5 menanyakan tempat dimana software akan diletakkan. Gunakan tempat yang telah ditentukan lalu klik tombol next.

Gambar 5. Menentukan lokasi tujuan

Akan muncul kotak dialog yang menginformasikan bahwa tempat tersebut belum ada sebelumnya. Klik tombol Yes untuk membuat tempat baru tersebut seperti yang ditunjukkan oleh Gambar 6.

Gambar 6. Setuju untuk membuat tempat baru

Petunjuk Praktikum-Tsalits Agus Salim

Page 7

Kemudian muncul kotak dialog seperti pada Gambar 7 untuk menanyakan nama program shortcut pada menu Start dari Windows. Lanjutkan dengan menekan tombol next

Gambar 7. Nama folder pada Start Menu

Program CodeVisionAVR telah siap untuk di-install. Tekan tombol Install seperti pada Gambar 8. Maka proses instalasi akan bekerja seperti ditunjukkan oleh Gambar 9. Setelah selesai akan dimunculkan kotak dialog informasi seperti pada Gambar 10.

Gambar 8. Nama folder pada Start Menu Petunjuk Praktikum-Tsalits Agus Salim

Page 8

Gambar 9. Proses instalasi sedang berlangsung

Gambar 10. Informasi tambahan

Klik tombol next pada Gambar 10 untuk mengakhiri proses instalasi. Setelah kotak dialog seperti yang ditunjukkan oleh Gambar 11 muncul, Anda dapat menekan tombol Finish dengan pilihan langsung menjalankan software CodeVisionAVR atau tidak.

Petunjuk Praktikum-Tsalits Agus Salim

Page 9

Gambar 11. Proses instalasi selesai

C. Penggunaan CodeVisionAVR CodeVision AVR mempunyai suatu keunggulan dari compiler lain, yaitu adanya codewizard, fasilitas ini memudahkan kita dalam inisialisasi mikrokontroler yang akan kita gunakan, codevision telah menyediakan konfigurasi yang bisa diatur pada masing-masing chip mikrokontroler yang akan kita gunakan, sehingga kita tidak perlu melihat datasheet untuk sekedar mengonfigurasi mikrokontroler. Berikut ini langkah-langkah menggunakan codevision.

Petunjuk Praktikum-Tsalits Agus Salim

Page 10

1. Membuat Project dengan CodeVisionAVR. Jalankan aplikasi CodeVisionAVR dengan cara melakukan klik ganda pada shortcut ikon CodeVisionAVR yang ada pada Desktop atau klik START MENU cari file exe CodeVisionAVR.

Gambar 12. Icon CodeVisionAVR pada Desktop Sebuah Splash Screen akan muncul seperti ditunjukkan oleh Gambar 13. Informasi tentang versi yang dipakai dan keterangan evaluation akan terlihat.

Gambar 13. Tampilan Splash Screen

Petunjuk Praktikum-Tsalits Agus Salim

Page 11

Beberapa detik kemudian aplikasi CodeVisionAVR akan muncul seperti yang ditunjukkan oleh Gambar 14.

Gambar 14. IDE CodeVisionAVR

Untuk memulai membuat project baru, pada menubar, pilih File → New, seperti yang ditunjukkan oleh Gambar 15a selain itu kita juga dapat membuka dengan cara klik icon seperti ditunjukkan pada gambar 15b yang berada pada Toolbar.

Gambar 15a. Membuat file baru

Petunjuk Praktikum-Tsalits Agus Salim

Page 12

Gambar 15b. Icon untuk membuat file baru

Anda harus membuat sebuah project sebagai induk desain dengan memilih Project, lalu klik tombol OK seperti pada Gambar 16.

Gambar 16. Membuat project baru

Berikutnya

Anda

akan

ditanya

apakah

akan

menggunakan

CodeWizardAVR. Tentu saja lebih menyenangkan bila Anda memilih jawaban “ya” dengan cara menekan tombol Yes seperti pada Gambar 17.

Petunjuk Praktikum-Tsalits Agus Salim

Page 13

Gambar 17. Memilih untuk menggunakan CodeWizardAVR

Tampilan CodeWizardAVR yang sederhana namun lengkap ditunjukkan oleh Gambar 18. Pilih Chip dengan IC yang Anda gunakan. Sebagai contoh Anda memilih Chip ATmega8535. Tab-tab pada CodeWizardAVR menunjukkan fasilitas yang dimiliki oleh chip yang Anda pilih. Cocokkan pula frekuensi kristal yang Anda gunakan pada bagian Clock. Pengisian frekuensi clock digunakan oleh software untuk menghitung rutin-rutin seperti delay agar diperoleh perhitungan yang cukup akurat.

Gambar 18. CodeWizardAVR pada tab Chip

Petunjuk Praktikum-Tsalits Agus Salim

Page 14

Selanjutnya merupakan inisialisasi dari PORT yang ditunjukkan Gambar 19. Terdapat 4 PORT, yaitu PORT A, PORT B, PORT C, dan PORT D. kita bisa menginisialisasi port-port ini sebagai INPUT ataupun sebagai OUTPUT. Selain itu kita dapat memilih aktif HIGH (1) atau aktif LOW (0) untuk OUTPUT ataupun INPUT.

Gambar 19. Setting Port

Untuk selanjutnya yaitu merupakan inisialisasi LCD (Liquid Crystal Display). LCD alphanumeric yang dihubungkan dengan Port C haruslah mempunyai pengkawatan seperti yang ditunjukkan oleh Gambar 20. Pada tab LCD, pilihlah Port C.

Petunjuk Praktikum-Tsalits Agus Salim

Page 15

Gambar 20. Setting LCD pada Port C

Selanjutnya yaitu inisialisasi pada USART (Komunikasi Serial). Pertama pilih/centang pada bagian “Receiver “ dan ” Transmiter”, apabila menginginkan interupsi pada USART maka beri centang pula pada “Rx_Interrupt” dan “Tx_Interrupt”. Untuk Baud Rate pilih “9600”. Dan untuk Communication Parameters pilih “8 Data, 1 Stop, No Pariti. Ini merupakan setting sederhana dari USART. Seperti tampak pada gambar 21.

Gambar 21. Setting USART (Komunikasi Serial)

Petunjuk Praktikum-Tsalits Agus Salim

Page 16

Selanjutnya yaitu seting ADC (Analog to Digital Converter). Pertama centang pada bagian “ADC Enabled dan Use 8 bits”. Kemudian kita pilih Volt Ref, yaitu tegangan referensi dari ADC kita. Disini terdapat 3 pilihan yaitu dari PIN AREF, PIN AVCC, dan Int., Cap. On AREF. Untuk clock pilih 86.400 KHz.

Gambar 22. Setting ADC (Analog to Digital Converter)

Setelah setting yang kita inginkan dari mikrokontroler selesai, maka seting CodeWizardAVR siap disimpan dalam file. Pada menu CodeWizardAVR, pilih File → Generate, Save and Exit, seperti yang ditunjukkan oleh Gambar 23.

Petunjuk Praktikum-Tsalits Agus Salim

Page 17

Gambar 23. Menyimpan setting

Agar file yang dihasilkan tidak berantakan, buatlah sebuah folder baru, untuk nama terserah dari anda. Kemudian masuk kedalam folder tersebut untuk menyimpan file-file yang dihasilkan oleh CodeWizardAVR. Yang pertama Anda diminta untuk memberikan nama file C yang dihasilkan. Misalnya beri nama “coba2”, lalu klik tombol Save. Lebih jelas pada Gambar 24. File tersebut nantinya akan mempunyai akhiran “.C”.

Petunjuk Praktikum-Tsalits Agus Salim

Page 18

Gambar 24. Menyimpan file pertama

Yang kedua Anda diminta untuk memberikan nama file project yang dihasilkan. Misalnya beri nama “coba2”, lalu klik tombol Save. Lebih jelas pada Gambar 25. File tersebut nantinya akan mempunyai akhiran .prj.

Gambar 25. Menyimpan file kedua

Petunjuk Praktikum-Tsalits Agus Salim

Page 19

Yang terakhir Anda diminta untuk memberikan nama file project CodeWizard yang dihasilkan. Misalnya beri nama “coba”, lalu klik tombol Save. Lebih jelas pada Gambar 26. File tersebut nantinya akan mempunyai akhiran .cwp.

Gambar 26. Menyimpan file ketiga

Setelah ketiga file disimpan maka akan muncul lembar kerja kita. Pada bagian atas merupakan nama dari projek kita. Selanjut pada bagian bawah dari nama projek yaitu merupakan program bahasa C yang merupakan program yang telah kita setting pada langkah awal (pada form inisialisasi). Jadi dari program “#include <mega8535.h> sampai // LCD module initialization lcd_init(16);” merupakan program yang telah kita setting pada langkah awal (pada form inisialisasi) yang ditunjukkan oleh Gambar 27-28.

Petunjuk Praktikum-Tsalits Agus Salim

Page 20

Gambar 27. Lembar Kerja Dari Codevision AVR

Sekarang Anda coba untuk menyisipkan instruksi utama. Instruksi ini ditambahkan pada badan program file coba.c, dibawah instruksi “while” seperti yang ditunjukkan oleh Gambar 28.

Gambar 28. Menambahkan inti program

Petunjuk Praktikum-Tsalits Agus Salim

Page 21

Setelah program utama telah ditambahkan, kemudian pilih menu Project → Compile untuk melakukan kompilasi seperti yang ditunjukkan oleh Gambar 29a, atau dengan klik icon seperti pada Gambar 29b pada menu Toolbar. Lalu kotak dialog seperti ditunjukkan Gambar 30 akan muncul. Klik tombol OK.

Gambar 29a. Melakukan kompilasi

Gambar 29b. Icon untuk melakukan kompilasi Setelah kita kompliasi dan tidak ada informasi error (apabila terdapat informasi warning program kita masih dapat dijalankan/tidak apa-apa) pada program kita, selanjutnya klik tombol OK yang berada pada kanan bawah.

Petunjuk Praktikum-Tsalits Agus Salim

Page 22

Gambar 30. Informasi hasil kompilasi

Setelah itu kita buka file tempat dimana kita menyimpan projek kita tadi. Kemudian buka file folder bernama ‘Exe’ seperti ditunjukkan pada Gambar 31.

Gambar 31. Folder ‘Exe’ tempat projek kita

Petunjuk Praktikum-Tsalits Agus Salim

Page 23

Setelah itu akan muncul file ber-extensi ‘hex’. File inilah yang nantinya akan kita downloadkan ke dalam mikrokontroler kita.

Gambar 32. File ‘.hex’ yang nantinya dimasukkan ke mikro

Petunjuk Praktikum-Tsalits Agus Salim

Page 24

PROTEUS

A. Pengenalan PROTEUS Proteus adalah sebuah software untuk mendesain PCB yang juga dilengkapi dengan simulasi pspice pada level skematik sebelum rangkaian skematik diupgrade ke PCB shingga sebelum PCBnya dicetak kita akan tahu apakah PCB yang akan kita cetak sudah benar atau tidak.

Gambar 33. Proteus Isis Schematic Capture Proteus mengkombinasikan program ISIS untuk membuat skematik desain rangkaian dengan program ARES untuk membuat layout PCB dari skematik yang kita buat. Pengalaman saya menggunakan Proteus ini, software ini bagus digunakan untuk desain rangkaian mikrokontroller. Proteus juga bagus untuk belajar elektronika seperti dasar2 elektronika sampai pada aplikasi mikrokontroller. Software ini jika di install menyediakan banyak contoh aplikasi desain yang disertakan sehingga kita bisa belajar dari contoh2 yang sudah ada.

Petunjuk Praktikum-Tsalits Agus Salim

Page 25

Fitur-fitur dari PROTEUS adalah sebagai berikut : 1. Memiliki kemampuan untuk mensimulasikan hasil rancangan baik digital maupun analog maupun gabungan keduanya,Mendukung simulasi yang menarik dan simulasi secara grafis, 2. Mendukung simulasi berbagai jenis microcontroller seperti PIC, 8051 series. 3. Memiliki model-model peripheral yang interactive seperti LED, tampilan LCD, RS232, dan berbagai jenis library lainnya, 4. Mendukung instrument-instrument virtual seperti voltmeter, ammeter, oscciloscope, logic analyser, dll, 5. Memiliki kemampuan menampilkan berbagi jenis analisis secara grafis seperti transient, frekuensi, noise, distorsi, AC dan DC, dll. 6. Mendukung berbagai jenis komponen-komponen analog, 7. Mendukung open architecture sehingga kita bisa memasukkan program seperti C++ untuk keperluan simulasi, 8. Mendukung pembuatan PCB yang di-update secara langsung dari program ISIS ke program pembuat PCB-ARES.

Petunjuk Praktikum-Tsalits Agus Salim

Page 26

B. Cara Menginstal PROTEUS Untuk menginstall proteus kita harus mengatur patch nya, berikut cara instalnya: 1. Pilih Proteus 7.6 sp 4 set up.exe

2. Pilih Next sampai option setup type, pilih "Use a locally installed licensed key

3. “Next”akan tampil jendela berikut

Petunjuk Praktikum-Tsalits Agus Salim

Page 27

4. Tekan “browse for key file” 5. Carilah key pada folder misal C:\Documents and Settings\xp\My Documents\Proteus 7.6 SP4 \ dengan nama file Sonsivri.lxk (letak key tergantung dimana folder master proteus disimpan)

6. Tekan “open”, akan tampil jendela berikut

7. Tekan “instal” kemudian “yes” akan tampak jendela berikut

Petunjuk Praktikum-Tsalits Agus Salim

Page 28

8. Tekan “close”, sampai muncul jendela berikut

9. Pilih Next sampai proses penginstalan selesai

10.

Masuk ke master Proteus 7.6 sp 4, pilih file di bawah ini, lalu copy

Petunjuk Praktikum-Tsalits Agus Salim

Page 29

11.

Masuk ke Program Files, pilih Labcenter Electronics, masuk ke BIN dari Proteus 7 profesional, paste kan file-file yang sudah dicopy

12.

Klik Patch, cari patch pada bagian MODELS, pilih 82XX.DLL dan open.

13. Patch sudah selesai pilih exit, maka program Proteus 7.6 sp 4 sudah dapat digunakan

Petunjuk Praktikum-Tsalits Agus Salim

Page 30

C. Cara Menggunakan PROTEUS 1.

Cara Menggunakan Aplikasi Aplikasi Proteus terdiri dari dua aplikasi yang terpisah yaitu ISIS dan

ARES. ISIS digunakan untuk merancang skematik dari rangkaian yang ingin kita buat sedangkan ARES digunakan untuk perancangan PCB. Pada dokumen ini, penulis akan mencoba memberikan contoh penggunaan kedua aplikasi ini untuk membuat suatu rangkaian LED. Penulis akan mencontohkan bagaimana cara untuk membuat rancangan, membuat komponen, melakukan simulasi dan juga membuat rancangan PCB. Berikut adalah contoh rangkaian sederhana yang akan di rancang:

Petunjuk Praktikum-Tsalits Agus Salim

Page 31

2. Perancangan Skematik Seperti

telah

disinggung

sebelumnya,

untuk

melakukan

perancangan skematik, gunakan ISIS. Jalankan ISIS hingga muncul tampilan sebagai berikut:

Toolbar yang ditandai dengan no.1 (P dan L) digunakan untuk: ●

P –> Mengambil sebuah komponen.



L –> Menambah/menghapus Library.

Toolbar yang ditandai dengan Bagian no.2 digunakan untuk simulasi. Bagian No.3 digunakan untuk menunjukkan list komponen ketika kita akan memilih memilih komponen. Bagian No.4 digunakan untuk meletakkan rancangan skematik rangkaian yang akan kita buat. Selain itu, perhatikan toolbar yang memanjang dari atas ke bawah pada bagian pojok kiri dari aplikasi karena toolbar-toolbar

Petunjuk Praktikum-Tsalits Agus Salim

Page 32

itu merupakan toolbar yang penting dan sering digunakan dalam aplikasi ini. 3. Pengambilan komponen Dari rangkaian berarti kita membutuhkan 1 buah LED, 1 buah Resistor, dan Header (TBLOK) untuk input tegangan 5 V. Di sini penulis menganggap Header belum ada dalam library sehingga perlu dibuat terlebih dahulu (untuk memberikan contoh bagaimana pembuatan suatu package yang belum ada sebelumnya). Tapi sebelumnya, penulis membuat rangkaian yang langsung terhubung dengan poweruntuk melakukan simulasi dan melihat apakah rancangan berjalan dengan benar atau tidak. Pertama, pilih toolbar paling kiri ke mode terminal, kemudian pilih Ground. Untuk menempatkan terminal, cukup klik pada bagian No.4 seperti ditunjukkan pada gambar sebelumnya.

Petunjuk Praktikum-Tsalits Agus Salim

Page 33

Untuk terminal ini, pada contoh digunakan terminal POWER dan GROUND. Langkah berikutnya, pilih toolbar “component” kemudian pilih ‘P’ pada toolbar yang ditandai dengan no.1 pada gambar sebelumnya. Kemudian cari komponen LED dan RESISTOR.

Petunjuk Praktikum-Tsalits Agus Salim

Page 34

Perlu diperhatikan, bahwa untuk komponen LED tidak diberikan footprint yang benar (gambar yang di-highlight). Untuk LED, isi PCB Package dengan LED. Untuk membuka window edit component di atas, cukup double klik pada komponen LED. Selanjutnya, lakukan hal yang sama seperti sebelumnya untuk pengambilan komponen resistor. Untuk resistor, footprint sudah tersedia dengan nama RES40. 4. Wiring Diagram Wiring adalah pembentukan interkoneksi antar komponen yang telah kita ambil tadi sehingga sesuai dengan rangkaian yang kita inginkan. Caranya cukup menggunakan mouse, namun sebelumnya pilih toolbar ke gambar panah . Untuk menarik wire, cukup arahkan pointer mouse anda ke ujung salah satu komponen, klik kemudian tarik ke arah komponen lain yang ingin dihubungkan, kemudian klik lagi.

Petunjuk Praktikum-Tsalits Agus Salim

Page 35

Hasil dan simulasi :

Petunjuk Praktikum-Tsalits Agus Salim

Page 36

PERCOBAAN 1 LED

I. Pendahuluan Pada praktikum ini, anda akan mempelajari cara mengembangkan sebuah system menggunakan mikrokontroler AVR buatan Atmel menggunakan software CodeVisionAVR.CodeVisionAVR merupakan software C-cross compiler, dimana program dapat ditulis menggunakan bahasa-C. Dengan menggunakan pemrograman bahasa-C diharapkan waktu disain (deleloping time) akan menjadi lebih singkat. Setelah program dalam bahasa-C ditulis dan dilakukan kompilasi tidak terdapat kesalahan (error) maka proses download dapat dilakukan. Pada percobaan ini anda akan mengendalikan LED ON dan OFF.

II. Tujuan Setelah menyelesaikan praktikum ini, yang anda peroleh adalah : 1. Dapat menjelaskan arsitektur umum dan keistimewaan dari mikrokontroler AVR ATmega8535. 2. Dapat menceritakan kembali alur pengembangan software pada mikrokontroler AVR menggunakan CodeVisionAVR. 3. Dapat menggunakan fungsi output pada mikrokontroler AVR 4. Dapat mengerjakan tugas yang diberikan dengan bahasa-C. Petunjuk Praktikum-Tsalits Agus Salim

Page 37

III. Dasar Teori Port Sebagai Input / Output Digital Atmega 8535 mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD. Keempat port tersebut merupakan jalur bidirectional dengan pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn, PORTxn, dan PINxn. Huruf ‘x’ mewakili nama huruf dari port sedangkan huruf ‘n’ mewakili nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx. Bit DDxn dalam register DDRx (Data Direction Register) menentukan arah pin. Bila DDxn diset 1, maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px berfungsi sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1) atau kondisi output low (DDxn=1, PORTxn=0). Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan impedansi tinggi

Petunjuk Praktikum-Tsalits Agus Salim

Page 38

tidak memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-up. Jika ini bukan suatu masalah, maka bit PUD pada register SFIOR dapat diset 1 untuk mematikan semua pull-up dalam semua port. Peralihan dari kondisi input dengan pull-up ke kondisi output low juga menimbulkan masalah yang sama. Maka harus menggunakan kondisi tristate (DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi transisi. Tabel Konfigurasi Pin Port

Tabel diatas menunjukkan konfigurasi pin pada port- port mikrokontroler. Bit 2 – PUD = Pull-up Disable, bila bit diset bernilai 1 maka pull-up pada port I/O akan dimatikan walaupun register DDxn dan PORTxn

dikonfigurasikan

untuk

menyalakan

pull-up

(DDxn=0,

PORTxn=1).

Petunjuk Praktikum-Tsalits Agus Salim

Page 39

IV. Peralatan 1. Satu set PC yang dilengkapi dengan software CodeVision AVR dan Proteus.

V. Prosedure Percobaan 1. Proteus Simulation

U1 1 2 3 4 5 6 7 8

R1 10k

C1 10uF

14 15 16 17 18 19 20 21 13 12 9

PB0/T0/XCK PB1/T1 PB2/AIN0/INT2 PB3/AIN1/OC0 PB4/SS PB5/MOSI PB6/MISO PB7/SCK PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP1 PD7/OC2

PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PC0/SCL PC1/SDA PC2 PC3 PC4 PC5 PC6/TOSC1 PC7/TOSC2

XTAL1 XTAL2 RESET

AREF AVCC

40 39 38 37 36 35 34 33

D1

D2

D3

D4

D5

D6

D7

D8

LED-BIBY

LED-BIBY

LED-BIBY

LED-BIBY

LED-BIBY

LED-BIBY

LED-BIBY

LED-BIBY

R2

R3

R4

R5

R6

R7

R8

R9

220

220

220

220

220

220

220

220

22 23 24 25 26 27 28 29

32 30

ATMEGA8535

2. CodeVisionAVR

Petunjuk Praktikum-Tsalits Agus Salim

Page 40

A. Percobaan LED ON Pada percobaan ini akan menghidupkan LED sejumlah 4 buah: Contoh Program: #include <mega8535.h> void main(void) { DDRC=0xFF; PORTC=0x0F; }

B. Percobaan LED On/ Off dengan fungsi delay Pada percobaan ini LED akan ON dan OFF dengan waktu tunda tertentu, yang ditentukan dengan fungsi delay_ms.

#include <mega8535.h> #include <delay.h> void main(void) { DDRC= 0xFF; } while (1) { PORTC=0xFF; delay_ms(1000); PORTC=0x00; delay_ms(1000); }

Petunjuk Praktikum-Tsalits Agus Salim

Page 41

C. Percobaan LED dengan data Tabel Pada percobaan ini kombinasi display LED yang ON ditentukan berdasarkan table pada array urutan[8] dengan perpindahan satu pola ke pola yang lainnya berdasarkan delay. #include <mega8535.h> #include <delay.h> void main(void) { Charurutan[8]={0x1,0x2,0x4 ,0x8,0x10,0x20,0x40,0x80}; char i; DDRC=0xFF; PORTC=0xFF; while(1) { for (i=0;i<8;i++) { PORTC=urutan[i]; delay_ms(1000); } }

D. Tugas Buatlah laporan praktikum untuk percobaan tersebut diatas dalam bentuk PDF, dengan uraian meliputi: 1. Gambar rangkaian dan penjelasannya 2. Rencanakan flowchart untuk masing-masing percobaan tersebut diatas 3. Jelaskan masing-masing program tersebut diatas. 4. Laporan dibuat dalam bentuk PDF, dikerjakan per individu 5. Gambar Simulasi percobaan tersebut dengan dengan menggunakan Proteus, file gambar di PASTE pada laporan praktikum.

Petunjuk Praktikum-Tsalits Agus Salim

Page 42

PERCOBAAN 2 SW PushButton

I. Pendahuluan Pada praktikum ini, anda akan mempelajari cara mengembangkan sebuah system menggunakan mikrokontroler AVR buatan Atmel menggunakan software CodeVisionAVR.. CodeVisionAVR merupakan software C-cross compiler, dimana program dapat ditulis menggunakan bahasa-C. Dengan menggunakan pemrograman bahasa-C diharapkan waktu disain (deleloping time) akan menjadi lebih singkat. Setelah program dalam bahasa-C ditulis dan dilakukan kompilasi tidak terdapat kesalahan (error) maka proses download dapat dilakukan. Pada percobaan ini anda akan mengendalikan LED dengan menggunakan Saklar Push Button.

II. Tujuan Setelah menyelesaikan praktikum ini, yang anda peroleh adalah : 1. Dapat menjelaskan arsitektur umum dan keistimewaan dari mikrokontroler AVR ATmega8535. 2. Dapat menceritakan kembali alur pengembangan software pada mikrokontroler AVR menggunakan CodeVisionAVR.

Petunjuk Praktikum-Tsalits Agus Salim

Page 43

3. Dapat menggunakan fungsi input/ output pada mikrokontroler AVR 4. Dapat mengerjakan tugas yang diberikan dengan bahasa-C.

III. Peralatan 1. Satu set PC yang dilengkapi dengan software CodeVision AVR dan Proteus.

IV. Prosedur Percobaaan 1. Proteus Simulation

U1 1 2 3 4 5 6 7 8 14 15 16 17 18 19 20 21 13 12 9

PB0/T0/XCK PB1/T1 PB2/AIN0/INT2 PB3/AIN1/OC0 PB4/SS PB5/MOSI PB6/MISO PB7/SCK PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP1 PD7/OC2 XTAL1 XTAL2 RESET

PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PC0/SCL PC1/SDA PC2 PC3 PC4 PC5 PC6/TOSC1 PC7/TOSC2

AREF AVCC

40 39 38 37 36 35 34 33

D1

D2

D3

D4

D5

D6

D7

D8

LED-BIBY

LED-BIBY

LED-BIBY

LED-BIBY

LED-BIBY

LED-BIBY

LED-BIBY

LED-BIBY

R2

R3

R4

R5

R6

R7

R8

R9

220

220

220

220

220

220

220

220

22 23 24 25 26 27 28 29 32 30

ATMEGA8535

R1 10k

C1 10uF

Petunjuk Praktikum-Tsalits Agus Salim

Page 44

2. CodeVisionAVR

A. Percobaan Input/Ouput Pada percobaan ini PORTB difungsikan sebagai input dan PORTC difungsikan sebagai output.

#include <mega8535.h> void main(void) { DDRC=0xFF; DDRB=0x00; PORTB=0xFF; while (1) { PORTC=PINB; } }

Petunjuk Praktikum-Tsalits Agus Salim

Page 45

B. Percobaan Input/ Output dengan fungsi BIT. Pada percobaan ini, anda akan belajar bagaimana mengambil data per bit. Dengan menggunakan instruksi PINB.X, dengan X adalah nilai bit.

#include <mega8535.h> void main(void) { DDRC=0xFF; DDRB=0x00; PORTB=0xFF; while(1) { if (PINB.0==0) {PORTC=0x01;} else if (PINB.1==0){PORTC=0x02;} else if (PINB.2==0){PORTC=0x04;} else if (PINB.3==0){PORTC=0x08;} else {PORTC=0x00;} } }

Petunjuk Praktikum-Tsalits Agus Salim

Page 46

C. Percobaan SW dengan pemilihan kombinasi LED Pada

percobaan

ini

anda

akan

mengambil

data

dengan

menggunakan SW push button, setiap penekanan SW akan menampilkan pola LED tertentu. #include <mega8535.h> #include <delay.h> //declare global arrays for two patterns unsigned char p1[4]= { 0b10000001, 0b01000010, 0b00100100, 0b00011000 }; unsigned char p2[4] = { 0b11111111, 0b01111110, 0b00111100, 0b00011000 }; void main() { unsigned char i; //loop counter DDRC = 0xFF; //PortC as output PORTC= 0x00; //keep all LEDs on DDRB = 0x00; //PortB as input PORTB.0 = 1; //enable pull ups for PORTB.1 = 1; //only first two pins

Petunjuk Praktikum-Tsalits Agus Salim

Page 47

while(1) { //# if SW0 is pressed show pattern 1 if(PINB.0==0) { for(i=0;i<3;i++) { PORTC=p1[i]; //output data delay_ms(300); //wait for some time } PORTC=0; //turn on all LEDs } //# if SW1 is pressed show pattern 2 if(PINB.1==0) { for(i=0;i<3;i++) { PORTC=p2[i]; //output data delay_ms(300); //wait for some time } PORTC=0; //turn on all LEDs } }; }

Petunjuk Praktikum-Tsalits Agus Salim

Page 48

D. Tugas Buatlah laporan praktikum untuk percobaan tersebut diatas dalam bentuk PDF, dengan uraian meliputi: 1. Gambar rangkaian dan penjelasannya 2. Rencanakan flowchart untuk masing-masing percobaan tersebut diatas 3. Jelaskan masing-masing program tersebut diatas. 4. Laporan dibuat dalam bentuk PDF, dikerjakan per individu 5. Gambar Simulasi percobaan tersebut dengan dengan menggunakan Proteus, file gambar di PASTE pada laporan praktikum.

Petunjuk Praktikum-Tsalits Agus Salim

Page 49

PERCOBAAN 3 DISPLAY 7 SEGMENT

I. Pendahuluan Seven Segment adalah komponen yang terdiri dari tujuh led yang tersusun sedemikian rupa sehingga dapat digunakan untuk menampilkan angka 0-9 dan titik atau koma. Seven Segment seperti led pada umunya memiliki berbagai macam tampilan warna, yaitu merah, kuning, hijau, dsb dan berbagai macam ukuran. Seven segment berdasarkan input logikanya terbagi menjadi dua macam, yaitu Common Anoda (aktif jika input logika 0) dan Common Cathoda (aktif jika input logika 1). Hal yang perlu diperhatikan dalam setiap komponen 7 segment adalah pin-pin pada yang mewakili urutan segmentnya (A-G dan titik), karena tidak semua kaki 7 segment sama urutannya walaupun sama ukurannya. Salah satu contoh urutan kaki pada seven segment adalah sbb:

Gambar 3.1. Konfigurasi Kaki 7 Segment Petunjuk Praktikum-Tsalits Agus Salim

Page 50

Pada percobaan ini akan menggunakan display 7 segmen sebanyak 4 buah, dengan menggunakan scanning data, maka jumlah port yang dibutuhkan menjadi sedikit. Display 7 segment yang digunakan pada percobaan ini adalah 7 segment common anoda, dengan driver transistor PNP dan decoder/ demultiplexer 74LS138 untuk scanning 7 segment.

II. Tujuan Setelah menyelesaikan praktikum ini, yang anda peroleh adalah : 1. Dapat menceritakan kembali alur pengembangan software pada mikrokontroler AVR menggunakan CodeVisionAVR. 2. Dapat menggunakan fungsi output pada mikrokontroler AVR dengan interface ke 7 segment common anoda 3. Dapat mengerjakan tugas yang diberikan dengan bahasa-C.

III. Dasar Teori Tabel kebenaran 74LS138

Petunjuk Praktikum-Tsalits Agus Salim

Page 51

1. Pada tabel kebenaran tersebut tampak bahwa seven segment yang hidup tergantung pada output dari dekoder 74LS138, yang sedang mengeluarkan logika low ”0”, sehingga dari 8 buah display tersebut, selalu hanya satu display yang akan dihidupkan. Agar display tampak nyala secara bersamaan maka ketiga display tersebut harus dihidupkan secara bergantian dengan waktu tunda tertentu. 2. Pada gambar tersebut seven segment commont anoda dikendalikan dengan menggunakan transistor PNP melalui decoder/de multiplexer 74LS138, apabila ada logika low pada basis transistor, maka 7 segment akan nyala dan sebaliknya akan padam.

Gambar 3.2. Modul Display 7 Segment tunggal

Tabel Data Display 7 Segment

Petunjuk Praktikum-Tsalits Agus Salim

Page 52

Pada tabel tersebut tampak bahwa untuk menghidupkan sebuah segmen, harus dikirimkan data logika low ”0” dan sebaliknya untuk mematikan segment, harus dikirimkan data logika high ”1”.

III. Peralatan 1. Satu set PC yang dilengkapi dengan software CodeVision AVR dan Proteus.

IV. Prosedur Percobaaan 1. Proteus

Q1 R2 C1

Q2

Q3

Q4

R3

R5

R6

100

100

100

R7 100

10k 2N2907

2N2907

2N2907

2N2907

10uF Reset

U2 1 2 3 6 4 5

A B C

Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

E1 E2 E3

15 14 13 12 11 10 9 7

74LS138

R1

R9

10k

100

Reset

R10 U1 13 12 9 1 2 3 4 5 6 7 8 14 15 16 17 18 19 20 21

XTAL1 XTAL2 RESET PB0/T0 PB1/T1 PB2/AIN0 PB3/AIN1 PB4/SS PB5/MOSI PB6/MISO PB7/SCK PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP PD7/OC2

PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PC0 PC1 PC2 PC3 PC4 PC5 PC6/TOSC1 PC7/TOSC2 AREF AGND AVCC

40 39 38 37 36 35 34 33 22 23 24 25 26 27 28 29 32 31 30

100

R11 100

D1 Indikator

R12 220

R13

R4 220

100

R14 100

R15 100

AT90S8535

Petunjuk Praktikum-Tsalits Agus Salim

Page 53

A. Percobaan Display 7 Segment Pada percobaan ini anda akan belajar bagaimana mencetak sebuah karakter ke 7 segmen, konversi data decimal ke 7 segmen, menggunakan fungsi SWITCH. 1. Konfigurasi pada Code Vision

Gambar 3.3. Konfigurasi PORTC dan PORTD

2. Listing Program #include <mega8535.h> #include<delay.h> unsigned char data; void convert(){ switch(data) { // gfedcba case 0: PORTC=0b11000000;break; case 1: PORTC=0b11111001;break; case 2: PORTC=0b10100100;break;

Petunjuk Praktikum-Tsalits Agus Salim

Page 54

case 3: PORTC=0b10110000;break; case 4: PORTC=0b10011001;break; case 5: PORTC=0b10010010;break; case 6: PORTC=0b10000010;break; case 7: PORTC=0b10010000;break; case 8: PORTC=0b10000000;break; case 9: PORTC=0b10010000;break; default: PORTC=0xff; } } void main (void) { DDRC=DDRD=PORTC=0xff; PORTD.5=0; PORTD.6=0; PORTD.7=0; { data=3; convert(); } }

B. Percobaan Display 7 segmen increment data 0 sd 9 Pada percobaan ini data ditampilkan ke sebuah 7 segmen, data ditampilkan secara berurutan mulai dari 0 sd 9, dengan waktu tunda 1 detik. Untuk setiap kenaikan angka.

Petunjuk Praktikum-Tsalits Agus Salim

Page 55

1. Konfigurasi Code Vision

Gambar 3.4. Konfigurasi PORTC dan PORTD

2. Listing Program #include <mega8535.h> #include<delay.h> unsigned char data; void convert(){ switch(data) { // gfedcba case 0: PORTC=0b11000000;break; case 1: PORTC=0b11111001;break; case 2: PORTC=0b10100100;break; case 3: PORTC=0b10110000;break; case 4: PORTC=0b10011001;break; case 5: PORTC=0b10010010;break;

Petunjuk Praktikum-Tsalits Agus Salim

Page 56

case 6: PORTC=0b10000010;break; case 7: PORTC=0b10010000;break; case 8: PORTC=0b10000000;break; case 9: PORTC=0b10010000;break; default: PORTC=0xff; } } void main (void) { DDRC=DDRD=PORTC=0xff; PORTD.5=0; PORTD.6=0; PORTD.7=0; { convert(); data=data+1; if(data==10){data=0;}; delay_ms(1000); } }

C. Display 7 Segmen dengan Simulasi Setting data Pada percobaan ini anda akan belajar bagaimana mensimulasikan setting data dengan display pada 7 segmen.

Petunjuk Praktikum-Tsalits Agus Salim

Page 57

1. Konfigurasi Code Vision

Gambar 3.5. Konfigurasi PORTC dan PORTD

Petunjuk Praktikum-Tsalits Agus Salim

Page 58

2. Listing Program #include <mega8535.h> #include <delay.h> void convert(); int data,dataTemp,dataPul,dataSat; void main(void) { DDRC=0xFF; DDRB=0x00; PORTB=0xFF; PORTC=0xFF; DDRD=0xFF; data=00; while(PINB.2==1) { if (PINB.0==0) { data=data+1; } else if (PINB.1==0) { data=data-1; } dataTemp=data; dataSat = dataTemp % 10;

// sat = sisa dari data dibagi 10

dataPul = dataTemp / 10; dataTemp=dataSat; convert(); PORTD.5=0; PORTD.6=0;

Petunjuk Praktikum-Tsalits Agus Salim

Page 59

PORTD.7=0; dataTemp=dataPul; convert(); PORTD.5=1; PORTD.6=0; PORTD.7=0; delay_ms(30); } PORTC=0x00; delay_ms(2000); } void convert(){ switch(data) { // gfedcba case 0: PORTC=0b11000000;break; case 1: PORTC=0b11111001;break; case 2: PORTC=0b10100100;break; case 3: PORTC=0b10110000;break; case 3: PORTC=0b10110000;break; case 4: PORTC=0b10011001;break; case 5: PORTC=0b10010010;break; case 6: PORTC=0b10000010;break; case 7: PORTC=0b10010000;break; case 8: PORTC=0b10000000;break; case 9: PORTC=0b10010000;break; default: PORTC=0xff; } }

Petunjuk Praktikum-Tsalits Agus Salim

Page 60

D. Tugas Buatlah laporan praktikum untuk percobaan tersebut diatas dalam bentuk PDF, dengan uraian meliputi: 1. Gambar rangkaian dan penjelasannya 2. Rencanakan flowchart untuk masing-masing percobaan tersebut diatas 3. Jelaskan masing-masing program tersebut diatas. 4. Laporan dibuat dalam bentuk PDF, dikerjakan per individu 5. Gambar Simulasi percobaan tersebut dengan dengan menggunakan Proteus, file gambar di PASTE pada laporan praktikum.

Petunjuk Praktikum-Tsalits Agus Salim

Page 61

PERCOBAAN 4 LCD KARAKTER 16x2

I. Pendahuluan Pada percobaan ini anda akan mempelajari interface LCD (liquid crystal display) dengan mikrokontroler AVR ATMEGA8535. LCD merupakan komponen display yang dapat menampilkan berbagai macam karakter. Jenis LCD ada berbagai macam, dan yang paling sering digunakan adalah LCD Karakter 16 x 2. Pada percobaan ini akan menggunakan LCD karakter 16 x 2, dengan interface pada PORTC, Codevision menyediakan fungsi-fungsi untuk keperluan pengelolaan LCD.

II. Tujuan Setelah menyelesaikan praktikum ini, yang anda peroleh adalah : 1. Dapat menceritakan kembali alur pengembangan software pada mikrokontroler AVR ATMEGA8535 menggunakan CodeVisionAVR. 2. Dapat menggunakan fungsi output pada mikrokontroler AVR dengan interface ke LCD Karakter 16 x 2 3. Dapat mengerjakan tugas-tugas yang diberikan dengan bahasa-C.

Petunjuk Praktikum-Tsalits Agus Salim

Page 62

III. Dasar Teori Modul LCD Character 16 x 2 dapat dengan mudah dihubungkan dengan mikrokontroler seperti AVR ATMEGA8535 atau sejenisnya. LCD yang akan kita praktikumkan ini mempunyai lebar display 2 baris 16 kolom atau biasa disebut sebagai LCD Character 16 x 2, dengan 16 pin konektor, yang didefinisikan sebagai berikut:

Gambar 4.1. Modul LCD Karakter 16 x 2

Tabel 4.1 Pin dan Fungsi Modul LCD Karakter 16 x 2

PIN

NAME

FUNCTION

1

VSS

Ground Voltage

2

VCC

+5V

3

VEE

Contrast Voltage Register Select

4

RS

0 = Instruction Register 1 = Data Register Read/ Write, to choose write or read mode

5

R/W

0 = write mode 1 = read mode

6

EN

Petunjuk Praktikum-Tsalits Agus Salim

Enable

Page 63

0 = start to lacht data to LCD character 1= disable 7

DB0

LSB

8

DB1

-

9

DB2

-

10

DB3

-

11

DB4

-

12

DB5

-

13

DB6

-

14

DB7

MSB

15

BPL

Black Panel Light

16

GND

Ground Voltage

Display karakter pada LCD diatur oleh pin EN, RS dan RW: Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa anda sedang mengirimkan 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

Petunjuk Praktikum-Tsalits Agus Salim

Page 64

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”. Memori LCD A. DDRAM ( Display Data RAM ) Memori DDRAM digunakan untuk

menyimpan karakter yang

akan ditampilkan. Semua teks yang kita tuliskan ke modul LCD adalah disimpan didalam memory ini, dan modul LCD secara berturutan membaca memory ini untuk menampilkan teks ke modul LCD itu sendiri.

Gambar 4.2. Lokasi Memori Display LCD Karakter 16 x 2

Pada peta memori tersebut, daerah yang berwarna kuning ( 00 s/d 0F dan 40 s/d 4F ) adalah display yang tampak. Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter per baris dengan dua baris. Angka

Petunjuk Praktikum-Tsalits Agus Salim

Page 65

pada setiap kotak adalah alamat memori yang bersesuaian dengan posisi dari layar. Demikianlah karakter pertama di sudut kiri atas adalah menempati alamah 00h. Posisi karakter berikutnya adalah alamat 01h dan seterusnya.

B. INISIALISASI Sebelum kita dapat menggunakan modul LCD, kita harus melakukan inisialisasi dan mengkonfigurasikannya.

Gambar 4.3. Konfigurasi Codevision dan koneksi hardware

C. Fungsi LCD Fungsi LCD terletak pada header lcd.h yang harus di-include-kan sebelum digunakan. Sebelum melakukan include terlebih dahulu sebutkan

Petunjuk Praktikum-Tsalits Agus Salim

Page 66

port mikrokontroller yang akan dihubungkan ke LCD. Hal ini juga dapat dengan mudah dilakukan dengan menggunakan CodeWizardAVR. /* modul LCD dihubungkan dengan PORTC */ #asm . equ __lcd_port=0x15 #endasm /* Sekarang fungsi LCD dapat di-include*/ #include Fungsi-fungsi untuk mengakses LCD diantaranya adalah : 1. unsigned char lcd_init(unsigned char lcd_columns) Untuk menginisialisasi modul LCD, menghapus layar dan meletakkan posisi karakter pada baris ke-0 kolom ke-0. Jumlah kolom pada LCD harus disebutkan (misal, 16). Kursor tidak ditampakkan. Nilai yang dikembalikan adalah 1 bila modul LCD terdeteksi, dan bernilai 0 bila tidak terdapat modul LCD. Fungsi ini harus dipanggil pertama kali sebelum menggunakan fungsi yang lain. 2. void lcd_clear(void) Menghapus layar LCD dan meletakkan posisi karakter pada baris ke-0 kolom ke-0. 3. void lcd_gotoxy(unsigned char x, unsigned char y) Meletakkan posisi karakter pada kolom ke-x baris ke-y. Nomor baris dan kolom dimulai dari nol.

Petunjuk Praktikum-Tsalits Agus Salim

Page 67

4. void lcd_putchar(char c) Menampilkan karakter pada LCD. 5. void lcd_puts(char *str) Menampilkan string yang disimpan pada SRAM pada LCD.

IV. Peralatan 1. Satu set PC yang dilengkapi dengan software CodeVision AVR dan Proteus.

IV. Prosedur Percobaaan 1. Proteus

Petunjuk Praktikum-Tsalits Agus Salim

Page 68

A. Percobaan Cetak Karakter pada baris 1 Listing Program

#include <mega8535.h> #include <delay.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 ; PORTC #endasm // #include // Declare your global variables here void main(void) { PORTB=0xFF; DDRB=0x00; // LCD module initialization lcd_init(16); while (1) { lcd_gotoxy(0,0); lcd_putsf("Selamat Datang"); } }

Petunjuk Praktikum-Tsalits Agus Salim

Page 69

B. Percobaan manipulasi nilai Listing Program #include <mega8535.h> #include #include <stdio.h> #include <delay.h> // Alphanumeric LCD Module functions bisa di copy dari codeWizard CAVR #asm .equ __lcd_port=0x15 ;PORTC #endasm unsigned char tulis[5]={'m','i','c','r','o'}; char lcd_buffer[33]; unsigned char i; void main(void) {; lcd_init(16); // inisialisasi lcd, kolom modul lcd =16. while(1) { for(i=0;i<5;i++) { lcd_clear(); lcd_gotoxy(i,0);

// ke kolom x=i dan baris y=0

sprintf(lcd_buffer,"%c",tulis[i]); lcd_puts(lcd_buffer); delay_ms(200); } } }

Petunjuk Praktikum-Tsalits Agus Salim

Page 70

%f=menampilkan tipe float %d=menampilkan bilangan bulat Operasi-operasi valid yang dapat dijalankan oleh variables tipe data. Gunakan yang sesuai, pemilihan data memepengaruhi memory yang dipakai dan ketelitian.

C. Percobaan Cetak Karakter Interaksi dengan Saklar Pada percobaan ini interaksi cetak karakter dilakukan dengan penekanan pada sebuah saklar yang terhubung pada PORTB.

1. Konfigurasi pada Code Vision

Gambar 4.4. Konfigurasi LCD dan PORTB

Petunjuk Praktikum-Tsalits Agus Salim

Page 71

2. Listing Program #include <mega8535.h> #include <delay.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 ;PORTC #endasm // #include // Declare your global variables here void main(void) { PORTB=0xFF; DDRB=0x00; // LCD module initialization lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("Welcome"); delay_ms(1000); while (1) if (PINB.0==1) { lcd_gotoxy(0,1); lcd_putsf("Button Released"); delay_ms(500); } else { lcd_gotoxy(0,1); lcd_putsf("Button Pressed"); delay_ms(500); } }

Petunjuk Praktikum-Tsalits Agus Salim

Page 72

D. Percobaan Cetak Karakter Interaksi dengan Saklar 2 Pada percobaan ini interaksi cetak karakter dilakukan dengan penekanan pada sebuah saklar yang terhubung pada PORTB, dengan konfigurasi pada codevision sama dengan percobaan sebelumnya. Listing Program #include <mega8535.h> #include <delay.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 ;PORTC #endasm // #include // Declare your global variables here void main(void) { PORTB=0xFF; DDRB=0x00; // LCD module initialization lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("Welcome"); delay_ms(1000); while (1) if (PINB==0xff) { lcd_gotoxy(0,0); lcd_putsf("No Button"); delay_ms(500);

Petunjuk Praktikum-Tsalits Agus Salim

Page 73

} if else (PINB.0==0) { lcd_gotoxy(0,0); lcd_putsf("Button 0"); delay_ms(500); } if else (PINB.1==0) { lcd_gotoxy(0,0); lcd_putsf("Button 1"); delay_ms(500); } else { lcd_gotoxy(0,0); lcd_putsf("No Button"); delay_ms(500); } }

Petunjuk Praktikum-Tsalits Agus Salim

Page 74

E. Tugas Buatlah laporan praktikum untuk percobaan tersebut diatas dalam bentuk PDF, dengan uraian meliputi: 1. Gambar rangkaian dan penjelasannya 2. Rencanakan flowchart untuk masing-masing percobaan tersebut diatas 3. Jelaskan masing-masing program tersebut diatas. 4. Laporan dibuat dalam bentuk PDF, dikerjakan per individu 5. Gambar Simulasi percobaan tersebut dengan dengan menggunakan Proteus, file gambar di PASTE pada laporan praktikum.

Petunjuk Praktikum-Tsalits Agus Salim

Page 75

Tugas Akhir Mata Kuliah Mikrokontroler 1. Membuat rangkaian Downloader/ Programer (Hardware) 2. Membuat rangkaian minimum Sistem dari AVR Atmega8535 (Hardware) 3. Rancanglah aplikasi dari minimum system yang sudah anda buat tersebut untuk keperluan elektronika medik,(Hardware + Software) (batas pengumpulan selama 3 minggu dan akan dinilai progress per minggunya). Contoh rangkaian Downloader/ Programer

+

VCC C1 4U7

VCC

VCC

VCC

VCC

C3 100n R4 1k

D3 VCC

IC1

R6 1 2 3 4 5 6 7 8 9 10 11 12 13 14

10k

C4 22p

C5

12M

VCC Y1

22p

LED

PC6 (RESET)(SCL/ADC5) PC5 PD0 (RxD) (SDA/ADC4) PC4 PD1 (TxD) (ADC3) PC3 PD2 (INT0) (ADC2) PC2 PD3 (INT1) (ADC1) PC1 PD4 (XCK/T0) (ADC0) PC0 VCC AGND GND AREF PB6 (XT1/TOSC1) AVCC PB7 (XT2/TOSC2) (SCK) PB5 PD5 (T1) (MISO) PB4 PD6 (AIN0) (OC2/MOSI) PB3 PD7 (AIN1) (SS/OC1B) PB2 PB0 (ICP) (OC1A) PB1 ATmega8-DIL28

R1 68 D1

3V6

D2

3V6

28 27 26 25 24 23 22 21 20 19 18 17 16 15

R5 1k

D4 LED

VCC HEADER 6 6 5 4 3 2 1 JP5

R2 68

R3

VCC

2k2

1 2 3 4

VCC

USB JP4

Petunjuk Praktikum-Tsalits Agus Salim

Page 76

Related Documents


More Documents from ""