BUKU PEDOMAN KEGIATAN MENGAJAR

PRAKTIKUM KENDALI MIKRO

Disusun oleh:

SYAHID, ST, M.ENG

PROGRAM STUDI TEKNIK LISTRIK
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
SEMARANG
2016

Mikrokontroller – Syahud, S, M.Eng.

KATA PENGANTAR

Puji syukur alhamdulillah kehadirat Alloh SWT yang masih memberikan kesempatan dan
melimpahkan kenikmatan sehingga penyusun dapat menyelesaikan penulisan Buku Pedoman
Kegiatan Mengajar.

Pembelajaran di Perguruan Tinggi adalah kegiatan yang terprogram dalam disain (fasiliting ,
Empowering dan enabling), untuk menciptakan mahasiswa belajar secara efektif, yang
menekankan pada sumber belajar. Pembelajaran merupakan proses pengembangan kreativitas
berfikir yang dapat meningkatkan kemampuan berfikir mahasiswa serta dapat meningkatkan dan
mengkonstruksikan pengetahuan baru sebagai upaya meningkatkan penguasaan dan
pengembangan yang baik terhadap materi kuliah.

Maksud dari penyusunan buku pedoman kegiatan pembelajaran adalah agar Dosen dan
Mahasiswa mengetahui dan memahami rambu rambu/aturan tentang pelaksanaan kegiatan belajar
mengajar sehingga Dosen dan Mahasiswa telah mengetahui sejak awal tugas dan fungsinya serta
dapat mempersiapkan diri untuk melaksanakan kegiatan pembelajaran dengan baik dan benar.

Penulis mengharapkan saran dan koreksi dari pembaca demi kesempurnaan penyusunan buku ini.
Penulis juga menyampaikan terima kasih kepada semua pihak yang telah membantu baik secara
langsung atau tidak langsung sehingga buku ini bisa selesai dibuat.

Penulis

Mikrokontroller – Syahud, S, M.Eng.

DAFTAR ISI
halaman

HALAMAN JUDUL i
KATA PENGANTAR ii
DAFTAR ISI iii
BAB I : MIKROKONTROLLER ATMEGA8535 1

BAB II : PEMROGRAMAN MIKROKONTROLER AVR 8

BAB III : INSTALASI PERANGKAT KERAS DAN PERANGKAT LUNAK 12

BAB IV : LED 24

BAB V : SW PUSH BUTTON 33

BAB VI : LCD KARAKTER 2X16 38

BAB VII : KEYPAD 45

DAFTAR PUSTAKA

Mikrokontroller – Syahud, S, M.Eng.

DASAR TEORI 2.TUJUAN INSTRUKSIONAL KHUSUS Setelah Menyelesaikan praktek ini mahasiswa dapat : 1. tambahan komponen diatas secara praktis hampir tidak dibutuhkan lagi. berbeda dengan PC (Personal Computer ) yang memiliki beragam fungsi. Tidak seperti sistem komputer yang mampu menangani berbagai macam program aplikasi. Mengetahui dan memahami aplikasi mikrokontroller ATMega 8535 II . artinya program-program pengguna disimpan dalam ruang RAM yang relative besar. perbedaan lainnya terletak pada perbandingan RAM dan ROM. Berbeda dengan penggunaan microprocessor yang masih memerlukan komponen luar tambahan seperti RAM. Pada sistem komputer perbandingan RAM dan ROM nya besar. Microcontroller sebagai sebuah “one chip solution” pada dasarnya adalah rangkaian terintregrasi (Integrated Circuit-IC) yang telah mengandung secara lengkap berbagai komponen pembentuk sebuah komputer. M. Mengetahui dan memahami tentang jenis-jenis dan keluarga mikrokontroller. artinya program kontrol disimpan dalm ROM (bias Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar.1 Mikrokontroler Mikrokontroler merupakan suatu terobasan teknologi mikroprosesor dan mikrokomputer yang merupakan teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang yang sangat kecil. .Eng. sedangkan RAM digunakan sebagai tempat penyimpanan sementara . 3. perbandingan ROM dan RAM –nya yang besar. 2. termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan. mikrokontroler merupakan system computer yang mempunyai satu atau beberapa tugas yang sangat spesifik. 4. mikrokontrler hanya bisa digunakan untuk suatu aplikasi tertentu saja. Timer. S. Mengetahui dan memahami arsitektur mikrokontroller ATMega 8535 . Mengetahui dan memahami mikrokontroller ATMega 8535. BAB I MIKROKONTROLLER ATMEGA8535 I. Lebih lanjut. ROM. sedangkan rutin-rutin antar muka perangkat keras disimpan dalam ruang ROM yang kecil. dan sebagainya-untuk sistem microcontroller. Sedangkan pada mikrokontroler. Hal ini disebabkan semua komponen penting tersebut telah ditanam bersama dengan sistem prosesor ke Mikrokontroller – Syahud.

Saat itu. sedangkan sistem microprocessor dikenal dengan istilah yang lebih terbatas yaitu Computer On a Chip-komputer dalam keping tunggal. Sedangkan untuk sistem microcontroller. Selain itu. Hampir tidak dapat disangkal. Penggunaan Mikrokontroller – Syahud. dan lain sebagainya). Microcontroller dengan ukuran lebih besar (misal 16 dan 32 bit) umumnya hanya digunakan untuk aplikasi-aplikasi khusus pada bidang pengolahan citra atau bidang kontrol yang memerlukan kepresisian tinggi. Sedangkan perangkat lunak yang digunakan umumnya berbasis bahasa assembler yang relatif sulit dipelajari. Mengapa demikian?. ditinjau dari aspek perangkat lunak pemrogramannya.Eng. microcontroller yang digunakan cukup berbasis 4 sampai 8 bit. Seiring dengan perkembangan teknologi solid state dan perangkat lunak komputer secara umum. jumlah RAM. sistem microcontroller hanya dapat diprogram secara khusus dengan perangkat yang dinamakan EPROM programmer. M. Dengan alasan itu sistem microcontroller dikenal juga dengan istilah populer the real Computer On a Chip. Sedangkan program aplikasi yang dijalankan pada sistem microprosesor biasanya bersifat sementara dan berorientasi pada pengolahan data. dewasa ini akan sukar dijumpai seseorang yang masih menggunakan komputer dengan microprocessor berbasis 8 atau 16 bit (misal microprocessor 8088 dan 8086 produk perusahaan Intel).komputer utuh dalam keping tunggal.2 PERKEMBANGAN MICROCONTROLLER Pada awal perkembangannya (yaitu sekitar tahun 1970-an). salah satu alasannya— Perangkat lunak komputer yang beredar saat ini umumnya mensyaratkan kecepatan CPU yang sangat tinggi (dalam orde Mega bahkan GigaHz) serta memori dengan kapasitas sangat besar (dalam orde MegaByte) yang mana hal tersebut tidak mungkin dapat dipenuhi oleh sistem microprocessor lama tersebut. 2. sumber daya perangkat keras serta perangkat lunak microcontroller yang beredar masih sangat terbatas. . baik gratis maupun komersil yang dapat digunakan. Untuk aplikasi kontrol sederhana dan tingkat menengah. panjang register.dalam IC tunggal microcontroller bersangkutan. Berdasarkan fungsinya. microcontroller secara umum digunakan untuk menjalankan program yang bersifat permanen pada sebuah aplikasi yang spesifik (misal aplikasi yang berkaitan dengan pengontrolan dan monitoring). Dengan menggunakan metode ini kita dapat memprogram sistem microcontroller sekaligus mengujinya pada sistem minimum atau papan pengembang (development board) secara langsung tanpa perlu lagi perangkat “pembakar“ program atau emulator secara terpisah. program yang dijalankan biasanya tidak memerlukan sumber daya sebanyak dan sebesar itu. saat ini pemrograman sistem microcontroler dirasakan relatif mudah dilakukan. dewasa ini banyak alternatif bahasa aras tinggi dari pihak ke-tiga. Perbedaan fungsi kedua sistem diatas secara praktis mengakibatkan kebutuhan minimal yang harus dipenuhi juga akan berbeda (misal ditinjau dari kecepatan detak operasi. terutama dengan digunakannya metode pemrograman ISP (In system Programming). S.

. I/O. dimana semua instruksi dikemas dalam kode 16-bit dan sebagian besar instruksi dieksekusi dalam 1 siklus clock atau dikenal dengan teknologi RISC (Reduced Instruction Set Computing).3 Mikrokontroler ATMega8535 Mikrokontroler merupakan keseluruhan sistem komputer yang dikemas menjadi sebuah chip di mana di dalamnya sudah terdapat Mikroprosesor.Apakah banyak dukungan pihak ketiga dalam penggunaan microcontroller tersebut. ada baiknya hal-hal berikut ini dijadikan bahan pertimbangan : . dewasa ini microcontroller AVR 8 bit produk perusahaan Atmel adalah salah satu microcontroller yang banyak merebut minat kalangan profesional dan juga cocok dijadikan sarana berlatih bagi para pemula. Untuk memutuskan microcontroller mana yang akan dijadikan sarana berlatih dan akan diperdalam secara serius. M. AT89S51/52 dan AVR produk Atmel. Mikrokontroller AVR (Alf and Vegard’s Risc processor) memiliki arsitektur 8 bit. pemasok compiler serta debbuger untuk pemrogramannya.bahasa aras tinggi ini (seperti Pascal.Apakah banyak referensi dan contoh-contoh program untuk panduan anda berlatih (misalnya dari sumber-sumber internet dan buku) . 2008:1). Pada dasarnya yang membedakan masing-masing adalah kapasitas Mikrokontroller – Syahud. Dengan berbagai macam kelebihan yang dimiliki serta hal-hal yang menjadi bahan pertimbangan diatas. basic dan sebagainya) selain akan menghemat waktu pengembangan. dan sebagainya) . kode program yang disusun juga akan bersifat lebih modular dan terstruktur. dkk. COP-8 produk National.Eng. HC11 produk Motorola dan lain sebagainya). Secara umum. dewasa ini banyak microcontroller dari berbagai vendor yang dapat dijadikan sarana untuk berlatih (misal microcontroller PIC produk Microchip. S. Hal ini selain karena ragam fitur yang ditawarkan.Apakah banyak forum-forum diskusi (terutama di Internet) tempat anda dan programer lain berbagi pengalaman. keluarga ATMega dan AT86RFxx. 2. berbeda dengan Mikroprosesor yang berfungsi sebagai pemroses data (Heryanto. yaitu keluarga AT90Sxx. Bagi para pemula yang berminat memperdalam microcontroller baik sekedar untuk tujuan penyaluran hobi atau kelak untuk tujuan yang lebih profesional. C.Apakah microcontroller tersebut mudah dijumpai dipasaran . microcontroller AVR ini juga cocok diprogram dengan menggunakan bahasa pemrograman aras tinggi (terutama bahasa C). AVR dapat dikelompokan ke dalam 4 kelas. Memori bahkan ADC. Selain itu berkaitan dengan rancangan arsitekturnya. juga disebabkan kemudahan untuk memperoleh microcontroller tersebut (berikut papan pengembangnya) di pasaran dengan harga yang relatif murah. (misalnya perusahaan-perusahaan pembuat papan pengembang.

Mikrokontroller – Syahud.1 Mikrokontroler ATMega8535 Gambar 1. Berikut ini gambar Mikrokontroler Atmega8535. Dari segi arsitektur dan instruksi yang digunakan. peripheral dan fungsinya (Heryanto. jika ADC tidak digunakan. M. Gambar 1. dkk. 2008:1). Port ini juga berfungsi sebagai port I/O dua arah. . mereka bisa dikatakan hampir sama.Eng. S.memori.2 Konfigurasi Pin ATMega8535 Konfigurasi Pin ATMega8535 Secara umum konfigurasi dan fungsi pin ATMega8535 dapat dijelaskan sebagai berikut 1 VCC Input sumber tegangan (+) 2 GND Ground (-) 3 Port A (PA7 … PA0) Berfungsi sebagai input analog dari ADC (Analog to Digital Converter).

10 AVCC Input tegangan untuk Port A dan ADC. Fungsi lain port ini selengkapnya bisa dibaca pad a buku petunjuk ”AVR ATMega8535”. S. 2 Kapabilitas memori flash 8 KB. 7 RESET Input reset. 5 Port C (PC7 … PC0) Berfungsi sebagai port I/O dua arah.4 Fitur Mikrokontroler ATMega8535 Adapun kapabilitas detail dari ATmega8535 adalah sebagai berikut. MISO dan SCK yang dipergunakan pada proses downloading.4 Port B (PB7 … PB0) Berfungsi sebagai port I/O dua arah. SRAM sebesar 512 byte. Port PB5. yang dipergunakan untuk komunikasi serial. M. 5 Enam pilihan mode sleep untuk menghemat penggunaan daya listrik. 2. 8 XTAL1 Input ke amplifier inverting osilator dan input ke sirkuit clock internal. Port PD0 dan PD1 juga berfungsi sebagai RXD dan TXD. 11 AREF Tegangan referensi untuk ADC.Eng. 3 ADC internal dengan fidelitas 10 bit sebanyak 8 channel. Fungsi lain port ini selengkapnya bisa dibaca pada buku petunjuk ”AVR ATMega8535”. 2. 6 Port D (PD7 … PD0) Berfungsi sebagai port I/O dua arah.5 Arsitektur ATMega8535 Blok-Diagram Mikrokontroller – Syahud. PB6 dan PB7 juga berfungsi sebagai MOSI. 1 Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz. dan EEPROM (Electrically Erasable Programmable Read Only Memori) sebesar 512 byte. 9 XTAL2 Output dari amplifier inverting osilator. 4 Portal komunikasi serial (USART) dengan kecepatan maksimal 2. Fungsi lain port ini selengk apnya bisa dibaca pada buku petunjuk ”AVR ATMega8535”.5 Mbps. .

CPU yang terdiri atas 32 buah register. 4. Gambar 1. Mikrokontroller – Syahud.Port C dan Port D.Port B. Tiga buah Timer/Counter dengan kemampuan pembanding. Saluran I/O sebanyak 32 buah.Eng. yaitu Port A. 3. S. . ADC 8 channel 10 bit. M.3 Blok diagram fungsional ATmega8535 Dari gambar blok diagram tersebut dapat dilihat bahwa ATMega8535 memiliki bagian-bagian sebagai berikut : 1. 2.

M. 10. Antarmuka komparator analog. SRAM sebesar 512 byte. EEPROM sebesar 512 byte yang dapat diprogram saat operasi. 7. 6. Port antarmuka SPI (Serial Peripheral Interface). Memori Flash sebesar 8 KB dengan kemampuan Read While Write. S. 12.Eng. Watchdog timer dengan osilator internal. Port USART untuk komunikasi serial Mikrokontroller – Syahud. . 8. Interrupt internal dan eksternal 9. 11.5.

Tak pelak lagi bahasa C saat ini mulai menggeser penggunaan bahasa aras rendah assembler. Karena kepopulerannya. bahasa C merupakan bahasa pemrograman yang sangat fleksibel dan tidak terlalu terikat dengan berbagai aturan yang sifatnya kaku. Microsoft C. Satu-satunya hal yang membatasi penggunaan bahasa C dalam sebuah aplikasi adalah semata-mata kemampuan imaginasi programmer-nya saja. BAB II PEMROGRAMAN MIKROKONTROLER AVR I . Untuk menjaga portabilitas. Pascal. vendor-vendor perangkat lunak kemudian mengembangkan compiler C sehingga menjadi beberapa varian berikut: Turbo C. Forth dan sebagainya) semakin populer dan banyak digunakan untuk memprogram sistem microcontroller. Sebagai ilustrasi.Zortech C dan lain sebagainya. Dasar Teori Dewasa ini penggunaan bahasa pemrograman aras tinggi (seperti C. Dikembangkan pertama kali oleh Dennis Ritchie dan Ken Thomson pada tahun 1972. Berdasarkan sifatnya yang sangat fleksibel dalam hal keleluasaan pemrogram untuk mengakses perangkat keras. Basic. Bahasa C merupakan salah satu bahasa pemrograman yang paling populer untuk pengembangan program-program aplikasi yang berjalan pada sistem microprocessor (komputer).Eng. Bahasa C merupakan bahasa pemrograman yang paling cocok dibandingkan bahasa-bahasa pemrograman aras tinggi lainnya. Mengetahui dan memahami software codevision AVR. Penggunaan bahasa C akan sangat efisien terutama untuk program microcontroller yang berukuran relatif besar. M. dimana hal yang sama tidak mungkin dapat dilakukan dengan menggunakan bahasa aras tinggi lainnya. Karena sifatnya ini. Mengetahui dan memahami tentang software yang digunakan dalam mikrokontroller.Tujuan Setelah Menyelesaikan materi ini mahasiswa dapat : 1. Power C. seringkali bahasa C dikatagorikan sebagai bahasa aras menengah (mid level language). compiler-compiler C tersebut menerapkan ANSI C (ANSI: American National Standards Institute) sebagai standar bakunya. Relatif dibandingkan dengan bahasa aras tinggi lain. Borland C. Dalam kaitannya dengan pemrograman microcontroller. . Dibandingkan dengan Mikrokontroller – Syahud. Perbedaan antara compiler-compiler tersebut umumnya hanya terletak pada pengembangan fungsi-fungsi library serta fasilitas IDE (Integrated Development Environment)–nya saja. S. dalam program C kita dapat saja secara bebas menjumlahkan karakter huruf (misal ‘A’) dengan sebuah bilangan bulat (misal ‘2’). Mengetahui dan memahami perintah dan sintak dalam software codevision AVR . II.

bahasa assembler. SPI (Serial Peripheral Interface) dan lain sebagainya. Beberapa fungsi library yang penting diantaranya adalah fungsi-fungsi untuk pengaksesan LCD. M. sensor suhu LM75. dan library fungsi standar-berikut penamaannya).1 PERANGKAT LUNAK CODEVISION AVR CodeVisionAVR pada dasarnya merupakan perangkat lunak pemrograman microcontroller keluarga AVR berbasis bahasa C. Ada tiga komponen penting yang telah diintegrasikan dalam perangkat lunak ini: Compiler C. compiler C untuk microcontroller ini memiliki sedikit perbedaan yang disesuaikan dengan arsitektur AVR tempat program C tersebut ditanamkan (embedded).Eng. S. dibandingkan bahasa C untuk aplikasi komputer. . Khusus pada microcontroller AVR. Mikrokontroller – Syahud. penggunaan bahasa C dalam pemrograman memiliki beberapa kelebihan berikut: Mempercepat waktu pengembangan. Perusahaan Atmel merancang sedemikian sehingga arsitektur AVR ini efisien dalam mendekode serta mengeksekusi instruksi-instruksi yang umum dibangkitkan oleh compiler C (Dalam kenyataannya. bersifat modular dan terstruktur. Compiler C yang digunakan hampir mengimplementasikan semua komponen standar yang ada pada bahasa C standar ANSI (seperti struktur program. pengaksesan memori dan sebagainya). Khusus untuk library fungsi.1 Beberapa Compiler C untuk microcontroller AVR 2. Tetapi walaupun demikian. komunikasi I C. CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar yang umum digunakan dalam aplikasi kontrol. disamping library standar (seperti fungsi-fungsi matematik. pengembangan arsitektur AVR ini tidak dilakukan sendiri oleh perusahaan Atmel tetapi ada kerja sama dengan salah satu vendor pemasok compiler C untuk microcontroller tersebut. IC RTC (Real time Clock). jenis tipe data. untuk mereduksi konsekuensi negative diatas. yaitu IAR C) Tabel 2. IDE dan Program generator. Berdasarkan spesifikasi yang dikeluarkan oleh perusahaan pengembangnya. manipulasi String. jenis operator. sedangkan kelemahannya adalah kode program hasil kompilasi akan relative lebih besar (dan sebagai konsekuensinya hal ini terkadang akan mengurangi kecepatan eksekusi).

M. Gambar 2. CodeVisionAVR juga menyediakan sebuah tool yang dinamakan dengan Code Generator atau CodeWizardAVR (lihat gambar 1.2 berikut memperlihatkan beberapa penggal baris kode program yang dibangkitkan secara otomatis oleh CodeWizardAVR.Untuk memudahkan pengembangan program aplikasi. penggunaan tool ini pada dasarnya hampir sama dengan application wizard pada bahasa-bahasa pemrograman Visual untuk komputer (seperti Visual C. Borland Delphi. CodeVisionAVR juga dilengkapi IDE yang sangat user friendly (lihat gambar 1. tool ini sangat bermanfaat membentuk sebuah kerangka program (template). Gambar 2. .2).1). Dinamakan Code Generator. S. karena perangkat lunak CodeVision ini akan membangkitkan kode-kode program secara otomatis setelah fase inisialisasi pada jendela CodeWizardAVR selesai dilakukan. Secara praktis.Eng.1 Tampilan software codevision AVR Selain itu. CodeVisionAVR ini telah mengintegrasikan perangkat lunak downloader (in system programmer) yang dapat digunakan untuk mentransfer kode mesin hasil kompilasi kedalam sistem memori microcontroller AVR yang sedang diprogram. Secara teknis. dan juga memberi kemudahan bagi programmer dalam peng-inisialisasian register-register yang terdapat pada microcontroller AVR yang sedang diprogram. dan sebagainya) Mikrokontroller – Syahud. Selain menu-menu pilihan yang umum dijumpai pada setiap perangkat lunak berbasis Windows.

agar mendapatkan pemahaman yang kuat dalam pemrograman microcontroller AVR.4. Untuk tujuan latihan. Gambar 2. M. Gambar 2.2 Tampilan code wizard Gambar 2. anda sebaiknya mencoba langsung membuat aplikasi program pada microcontroller tersebut.3 Tampilan hasil setting di code wizard 2.Eng.2 PEMROGRAMAN MICROCONTROLLER AVR Seperti halnya belajar pemrograman komputer. S. perangkat lunak CodevisionAVR versi demo pada dasarnya adalah sarana yang cocok dan telah cukup memenuhi kebutuhan minimal anda. . berikut memperlihatkan diagram blok yang mengilustrasikan alur pemrograman microcontroller AVR dengan CodevisionAVR : Mikrokontroller – Syahud.

Gambar 2. pada dasarnya anda dapat menggunakan perangkat lunak lain (di luar CodeVisionAVR) untuk keperluan transfer kode mesin kedalam sistem memori microcontroller AVR. Salah satunya adalah ISP_AVR yang dibuat oleh Holger Buss dan Ingo Busker dari Jerman.com. S. M. Perangkat lunak beserta rangkaian antarmukanya dapat di- download secara gratis pada alamat URL: http://www.Eng. CodevisionAVR produk Pavel Haiduc pada dasarnya telah mengintegrasikan komponen-komponen penting dalam pemrograman microcontroller AVR: Editor. assembler dan ISP (In System Programmer). .4 Alur pemrograman microcontroller AVR dengan menggunakan CodevisionAVR Seperti terlihat pada gambar 1.Compiler C. Khusus dengan ISP.mikrocontroller. salah satu diantaranya adalah Kanda System STK 200/300 Berkaitan dengan perangkat lunak downloader.4. Mikrokontroller – Syahud. ada beberapa jenis perangkat keras programmer dongle (berikut papan pengembangnya) yang telah didukung oleh perangkat lunak CodevisionAVR ini.

.. M. b) Biasa seperti nginstal pada umumnya tinggal: next next next. S. Langkah – langkah untuk menginstal driver program seperti dijelaskan sebagai berikut : a) Hubungkan programmer dengan menggunakan kabel USB ke PC/ laptop sehingga akan muncul dialog box sebagai berikut. c) Kemudian tunjuk ke downloader\windriver yang lokasinya berada di folder progisp168/win.1 INSTALASI DRIVER PROGRAMMER Sebelum mengoperasikan modul mikrokontroller. dan pilih salah satu folder Mikrokontroller – Syahud. driver..komputer atau laptop harus di instal driver terlebih dahulu agar modul dapat dikenali oleh komputer. Mengetahui cara menginstall software codevision AVR. Mengetahui dan memahami perangkat keras modul mikrokontroller Membuat program dengan codevision AVR II. . DASAR TEORI 3.. Mengetahui dan memahami cara menginstall driver mikrokontroller. BAB III INSTALASI PERANGKAT KERAS DAN PERANGKAT LUNAK I .Eng.Tujuan Setelah Menyelesaikan materi ini mahasiswa dapat : 1.

lepas kembali kabel usbnya sesudah itu. masukan kembali kabel usb ketika dimasukan akan ada suara. M.Eng. seperti suara ketika kita memasukkan flash disk kemudian lihat di device manager Mikrokontroller – Syahud. S.d) kemudian tinggal menunggu finish e) Jika sudah finish. .

ini disebut led (busy). Mikrokontroller – Syahud.exe tampilannya sebelum dipdownloader usb asp seperti gambar dibawah ini g) tampilannya setelah dipasang downloader usb asp seperti gambar dibawah ini 3.2 INSTALASI SOFTWARE CODEVISION AVR CodeVisionAVR merupakan sebuah cross-compiler C. M. led standby / sunyala. CodeVisionAVR dapat dijalankan pada sistem operasi Windows 95.Eng.ada satu yang mati. Integrated Development Environtment (IDE). dan Automatic Program Generator yang didesain untuk mikrokontroler buatan Atmel seri AVR. f) Harus ada LIBUSB USBasp lihat LED power . 98. . S. jika sedang berpikir led innyala sekarang buka program progisp.

Klik ganda file setup. Berikutnya kotak dialog Select Destination Location akan menanyakan tempat dimana software akan diletakkan.Eng. Pada kotak dialog Licence Agreement.Cross-compiler C mampu menerjemahkan hampir semua perintah dari bahasa ANSI C. Langkah-langkah Instalasi codevision avr adalah sebagai berikut : 1. dengan tambahan beberapa fitur untukmengambil kelebihan khusus dari arsitektur AVR dan kebutuhan pada sistem embedded. klik OK. pilih I accept the agreement lalu klik tombol next 5. klik tombol next. M. NT4.Me.sejauh yang diijinkan oleh arsitektur dari AVR. Kemudian akan muncul kotak dialog . . 2000.exe pada folder CodeVisionAVR 2. seperti pada Gambar 3. S. Gunakan tempat yang telah ditentukan lalu klik tombol next. dan XP. 4. Untuk pilihan bahasa pilih English. Mikrokontroller – Syahud.

6. Akan muncul kotak dialog yang menginformasikan bahwa tempat tersebut belum ada sebelumnya. Klik tombol Yes untuk membuat tempat baru tersebut 7. Lanjutkan dengan menekan tombol next 8. Program CodeVisionAVR telah siap untuk di-install. S. Tekan tombol Install Mikrokontroller – Syahud. M. . Kemudian muncul kotak dialog untuk menanyakan nama program shortcut pada menu Start dari Windows.Eng.

M. S.Eng. Setelah selesai akan dimunculkan kotak dialog informasi Mikrokontroller – Syahud.9. .

Berikutnya akan ditanya apakah akan menggunakan CodeWizardAVR.Eng. Jalankan aplikasi CodeVisionAVR dengan cara melakukan klik ganda pada shortcut ikon CodeVisionAVR yang terbentuk pada Desktop. pada menubar. Tentu saja lebih menyenangkan bila Anda memilih jawaban “ya” dengan cara menekan tombol Yes Mikrokontroller – Syahud. M. . Untuk memulai membuat project baru. membuat sebuah project sebagai induk desain dengan memilih Project. S. 11. pilih File New 13. kemudian IDE dari CodeVisionAVR akan muncul 12.10. lalu klik tombol OK 14.

M. pilih File Generate. Save and Exit Agar file yang dihasilkan tidak berantakan. S. kemudian akan muncul tampilan CodeWizardAVR 16. buatlah sebuah folder baru Mikrokontroller – Syahud.Eng. . seting CodeWizardAVR siap disimpan dalam file. Pada menu CodeWizardAVR. 15.

M. Secara bersamaan isi file C akan dibuka pada jendela editor 19. Yang terakhir Anda diminta untuk memberikan nama file project CodeWizard yang dihasilkan. File tersebut nantinya akan mempunyai akhiran . File tersebut nantinya akan mempunyai akhiran . Misalnya beri nama “coba”. Kemudian masuk kedalam folder tersebut untuk menyimpan file-file yang dihasilkan oleh CodeWizardAVR. .Eng.cwp.17..C. Yang pertama diminta untuk memberikan nama file C yang dihasilkan. Misalnya beri nama “coba”. Misalnya beri nama “coba”. Yang kedua Anda diminta untuk memberikan nama file project yang dihasilkan.prj. S. Setelah ketiga file disimpan maka pada Project Navigator akan muncul nama project beserta file C- nya. File tersebut nantinya akan mempunyai akhiran . lalu klik tombol Save. 18. Langkah terakhir adalah menulis program seperti contoh gambar dibawah ini Mikrokontroller – Syahud. lalu klik tombol Save. lalu klik tombol Save.

3. modul standar Mikrokontroller – Syahud. S.Eng. . M.3 PERANGKAT KERAS MODUL MIKROKONTROLELER AVR ATMEGA8535 Modul perangkat keras mikrokontroller AVR ATMega8535 adalah sabagai berikut : a.

b. .Eng. S. M. modul pengembangan Mikrokontroller – Syahud.

maka resistor pull-up akan diaktifkan. Bit DDxn terdapat pada I/O address DDRx. dan bit PINxn terdapat pada I/O address PINx. dan PINxn. S. dimana program dapat ditulis menggunakan bahasa-C. PORTxn. Bila DDxn diset 0 maka Px berfungsi sebagai pin input. dapat menggunakan fungsi output pada mikrokontroler AVR 3. Dapat membuat program dengan output LED II. akan dipelajari cara mengembangkan sebuah system menggunakan mikrokontroler AVR buatan Atmel menggunakan software CodeVisionAVR.CodeVisionAVR merupakan software C-cross compiler. Setelah program dalam bahasa-C ditulis dan dilakukan kompilasi tidak terdapat kesalahan (error) maka proses download dapat dilakukan. Bila DDxn diset 1. Atmega 8535 mempunyai empat buah port yang bernama PortA. Untuk mematikan resistor pull-up. dan PortD. Huruf ‘x’ mewakili nama huruf dari port sedangkan huruf ‘n’ mewakili nomor bit. Dengan menggunakan pemrograman bahasa-C diharapkan waktu disain (deleloping time) akan menjadi lebih singkat. PortC. Pin port adalah tri-state setelah kondisi reset. Mikrokontroller – Syahud. BAB IV LED I. Bit DDxn dalam register DDRx (Data Direction Register) menentukan arah pin. PortB. M. Keempat port tersebut merupakan jalur bi-directional dengan pilihan internal pull-up. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0.Eng. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1. maka Px berfungsi sebagai pin output. PORTxn=0) ke kondisi output high (DDxn=1. dapat membuat program dan mendownload ke modul mikrokontroller 2. Pada percobaan ini anda akan mengendalikan LED ON dan OFF. Alat dan Bahan  Modul mikrokontroller  PC atau laptop  power supply DC III. Tujuan Instruksional Khusus : Setelah Menyelesaikan praktek ini mahasiswa dapat : 1. yaitu DDxn. Dasar Teori: Pada praktikum ini. PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output. Tiap port mempunyai tiga buah register bit. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 0. bit PORTxn terdapat pada I/O address PORTx. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin input. .

n adalah nilai konstan • void delay_ms(unsigned int n) menghasilkan delay selama n mili-detik. interrupsi harus dimatikan terlebih dahulu. Peralihan dari kondisi input dengan pull-up ke kondisi output low juga menimbulkan masalah yang sama. 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. Jika ini bukan suatu masalah. M.h yang harus diIncludekan sebelum digunakan. Fungsi Delay Menghasilkan delay dalam program-C. Berada pada header delay. Maka harus menggunakan kondisi tri-state (DDxn=0. Tabel Konfigurasi Pin Port Tabel diatas menunjukkan konfigurasi pin pada portport mikrokontroler. Bit 2 – PUD = Pull-up Disable. PORTxn=1). kondisi pull-up enabled dapat diterima sepenuhnya. Biasanya. PORTxn=0). S. PORTxn=1) atau kondisi output low (DDxn=1. Juga sangat penting untuk menyebutkan frekuensi clock chip IC AVR yang digunakan pada menu Project-Configure-C Compiler-Code Generation. selama lingkungan impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-up.Eng. PORTxn=0) sebagai kondisi transisi. . PORTxn=0) atau kondisi output high (DDxn=1. maka bit PUD pada register SFIOR dapat diset 1 untuk mematikan semua pull-up dalam semua port. Sebelum memanggil fungsi. Fungsi delay yang disediakan adalah: • void delay_us(unsigned int n) menghasilkan delay selama n µ-detik. bila tidak maka delay akan lebih lama dari yang diharapkan.PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0. n adalah nilai konstan Mikrokontroller – Syahud.

M.Gambar rangkaian percobaan LED II. Mulai project Codevision AVR. S. Jalankan program codevision AVR 2. . Langkah Kerja 1.Eng. File > New > Pilih Project > OK Use codeWizardAVR? >NO< Mikrokontroller – Syahud.

S.h> void main(void) { DDRC=0xFF. } simpan dengan nama file led1 kemudian compile. . ketikkan program berikut a. M. PORTC=0x0F. Buat file tempat penulisan source code yang berektensi . pilih File > New > Pilih Source > OK. menu Project -Compile Mikrokontroller – Syahud. yaitu. simpan project kemudian akan muncul jendela berikut 4.Eng. 5.c. percobaan menghidupkan LED sejumlah 4 buah #include <mega8535.3. Percobaan LED ON.

while (1) { PORTC=0xFF. char i. PORTC=0x00. M. menu Project -Compile Mikrokontroller – Syahud.0x40. Percobaan LED dengan data Tabel #include <mega8535. S.h> void main(void) { char urutan[8]={0x1. .0x20.0x8.i++) { PORTC=urutan[i]. Percobaan LED On/ Off dengan fungsi delay #include <mega8535.h> #include <delay. PORTC=0xFF. delay_ms(1000). menu Project -Compile c.i<8. } } impan dengan nama file led2 kemudian compile.0x2.0x80}. delay_ms(1000). } } } impan dengan nama file led3 kemudian compile.Eng. while(1) { for (i=0.h> void main(void) { DDRC= 0xFF.0x4. delay_ms(1000). DDRC=0xFF.h> #include <delay.0x10.b.

S.Eng. buka program progISP168 b. Pilih load flash kemudian pilih file. . Dowload program ke modul mikrokontroller dengan langkah – langkah sebagai berikut a. Cek koneksi komputer ke modul mikrokontroller dengan cara lihat dalam program state apakah PRG ISP nyala atau tidak. M.hex yang di buat Mikrokontroller – Syahud.6. jika sudah nyala berarti komputer dan modul sudah terhubung dan siap untuk melakukan download program c.

M.d. . S. Kemudian pilih erase dan auto Mikrokontroller – Syahud.Eng.

M. S. .Eng. Tampilan setelah ditekan AUTO dan progra berhasil di download e. Amati hasilnya pada modul Mikrokontroller – Syahud.

Buat program untuk menjalankan LED secara bergantian satu-satu mulai dari pinggir ke tengah 4. Tugas 1.Eng. S. Buat Laporan dari semua program yang dibuat Mikrokontroller – Syahud. M. Buat program untuk menjalankan LED secara bergantian diua-dua mulai dari LED no 1 sampai LED no 8 3.III. Buat program untuk menjalankan LED secara bergantian satu-satu mulai dari tengah sampai pinggir 2. . Buat program untuk menjalankan LED dari pinggir ke tengah kemudian balik lagi dari tengah ke pinggir 5.

Gambar Rangkaian LED terhubung ke port C Mikrokontroller – Syahud. M. Setelah program dalam bahasa-C ditulis dan dilakukan kompilasi tidak terdapat kesalahan (error) maka proses download dapat dilakukan. . dapat menggunakan fungsi input dan output pada mikrokontroler AVR 6. Dengan menggunakan pemrograman bahasa-C diharapkan waktu disain (deleloping time) akan menjadi lebih singkat.Eng. dimana program dapat ditulis menggunakan bahasa-C. S. Dasar Teori: Pada praktikum ini. CodeVisionAVR merupakan software C-cross compiler. dapat membuat program dan mendownload ke modul mikrokontroller 5. Alat dan Bahan  Modul mikrokontroller  PC atau laptop  power supply DC V. Pada percobaan ini anda akan mengendalikan LED dengan menggunakan Saklar Push Button. BAB V SW PUSH BUTTON IV. akan dipelajari cara mengembangkan sebuah system menggunakan mikrokontroler AVR buatan Atmel menggunakan software CodeVisionAVR.. Dapat membuat program dengan input push button dan output LED IV. Tujuan Instruksional Khusus : Setelah Menyelesaikan praktek ini mahasiswa dapat : 4.

.h> void main(void) { DDRC=0xFF. File > New > Pilih Project > OK Use codeWizardAVR? yes 3. Mikrokontroller – Syahud. ketikkan program berikut a. M.Eng. S. Jalankan program codevision AVR 2. Mulai project Codevision AVR. #include <mega8535.Gambar Rangkaian Push Button terhubung ke port B Konfigurasi menggunakan codewizard AVR V. Percobaan Input/Ouput Pada percobaan ini PORTB difungsikan sebagai input dan PORTC difungsikan sebagai output. Langkah Kerja 1.

0b00111100. menu Project -Compile b. #include <mega8535.} else {PORTC=0x00.} else if (PINB.h> void main(void) { DDRC=0xFF.0==0) {PORTC=0x01. . Dengan menggunakan instruksi PINB.Eng.} else if (PINB. 0b00100100. Mikrokontroller – Syahud. DDRB=0x00.h> #include <delay.1==0){PORTC=0x02. PORTB=0xFF. PORTB=0xFF.} } } Simpan dengan nama file sw2 kemudian compile. Pada percobaan ini. dengan X adalah nilai bit. while (1) { PORTC=PINB.} else if (PINB. S. DDRB=0x00.3==0){PORTC=0x08. } } simpan dengan nama file SW1 kemudian compile. menu Project -Compile c.h> //declare global arrays for two patterns unsigned char p1[4] = { 0b10000001.X. anda akan belajar bagaimana mengambil data per bit. while(1) { if (PINB. Percobaan Input/ Output dengan fungsi BIT. 0b00011000 }. M.2==0){PORTC=0x04. setiap penekanan SW akan menampilkan pola LED tertentu. unsigned char p2[4] = { 0b11111111. 0b01000010. #include <mega8535. 0b01111110. 0b00011000 }. Percobaan SW dengan pemilihan kombinasi LED Pada percobaan ini anda akan mengambil data dengan menggunakan SW push button.

//output data delay_ms(300). M. void main() { unsigned char i.i++) { PORTC=p2[i]. Pilih load flash kemudian pilih file. //turn off all LEDs } }.1==0) { for(i=0.hex yang di buat Mikrokontroller – Syahud. Dowload program ke modul mikrokontroller dengan langkah – langkah sebagai berikut a. //output data delay_ms(300). //wait for some time } PORTC=0. //enable pull ups for PORTB. //PB as output PORTC= 0x00. menu Project -Compile 4. //turn off all LEDs } //# if SW1 is pressed show pattern 2 if(PINB. . } Simpan dengan nama file sw3 kemudian compile. S.1 = 1. //only first two pins while(1) { //# if SW0 is pressed show pattern 1 if(PINB.i<3.i++) { PORTC=p1[i]. //wait for some time } PORTC=0.0==0) { for(i=0.i<3. jika sudah nyala berarti komputer dan modul sudah terhubung dan siap untuk melakukan download program c.Eng. //PC as input PORTB. Cek koneksi komputer ke modul mikrokontroller dengan cara lihat dalam program state apakah PRG ISP nyala atau tidak. //loop counter DDRC = 0xFF. buka program progISP168 b.0 = 1. //keep all LEDs off DDRB = 0x00.

. Buat program untuk menghidupkan LED dengan urutan nomor yang berbeda dengan urutan nomor push button 2. Buat program untuk menjalankan LED secara bergantian satu-satu mulai dari pinggir ke tengah yang diaktifkan dengan SW no 3 4. Buat Laporan dari semua program yang dibuat Mikrokontroller – Syahud. M. S. Buat program untuk menjalankan LED secara bergantian diua-dua mulai dari LED no 1 sampai LED no 8 yang diaktifkan dengan SW no 4 3. Buat program untuk menjalankan LED dari pinggir ke tengah kemudian balik lagi dari tengah ke pinggir yang diaktifkan dengan SW no 7 5. Kemudian pilih erase dan auto e.Eng. d. Tugas 1. Amati hasilnya pada modul VI.

Alat dan Bahan  Modul mikrokontroller  PC atau laptop  power supply DC III. Dapat membuat program dengan input push button dan output Seven Segmen II. dengan menggunakan scanning data.Eng. Dasar Teori: Pada percobaan ini akan menggunakan display 7 segmen sebanyak 8 buah. M. . dengan driver transistor PNP dan decoder 74LS138 untuk scanning 7 segmen. S. maka jumlah port yang dibutuhkan menjadi sedikit. Tujuan Instruksional Khusus : Setelah Menyelesaikan praktek ini mahasiswa dapat : 1. Display 7 segmen yang digunakan pada percobaan ini adalah 7 segmen common anoda. Dapat membuat program dengan ouput seven segmen 2. Gambar seven segmen Mikrokontroller – Syahud. BAB VI SEVEN SEGMEN I. Dapat menggunakan fungsi input dan output pada mikrokontroler AVR 3.

Data Display Seven Segmen Pada tabel tersebut tampak bahwa untuk menghidupkan sebuah segmen. Rangkaian decoder dan driver 7 Segmen Mikrokontroller – Syahud. . harus dikirimkan data logika high ”1”. M. S. harus dikirimkan data logika low ”0” dan sebaliknya untuk mematikan segmen.Eng.

yang sedang mengeluarkan logika low ”0”.h> #include<delay. Pada gambar tersebut seven segment commont anoda dikendalikan dengan menggunakan transistor PNP melalui decoder 74LS138. Mulai project Codevision AVR. apabila ada logika low pada basis transistor. File > New > Pilih Project > OK Use codeWizardAVR? yes 3. ketikkan program berikut a. S. Agar display tampak nyala secara bersamaan maka ketiga display tersebut harus dihidupkan secara bergantian dengan waktu tunda tertentu. Langkah Kerja 1.Eng. Jalankan program codevision AVR 2. . M. Menampilkan karakter angka di satu seven segmen #include <mega8535.h> unsigned char data. maka 7 segment akan nyala dan sebaliknya akan padam. selalu hanya satu display yang akan dihidupkan. sehingga dari 8 buah display tersebut. Mikrokontroller – Syahud. Tabel kebenaran 74LS138 Pada tabel kebenaran tersebut tampak bahwa seven segmen yang hidup tergantung pada output dari dekoder 74LS138. Konfigurasi menggunakan codewizard AVR VII.

break.Eng. case 8: PORTC=0b10000000.h> unsigned char data. S. Untuk setiap kenaikan angka. void convert(){ switch(data) { // gfedcba case 0: PORTC=0b11000000. case 7: PORTC=0b11111000. case 2: PORTC=0b10100100. case 5: PORTC=0b10010010. PORTD. #include <mega8535.break. M. case 3: PORTC=0b10110000. } Mikrokontroller – Syahud.break. data ditampilkan secara berurutan mulai dari 0 sd 9. case 4: PORTC=0b10011001.break.break. case 5: PORTC=0b10010010.break.7=1. PORTD. case 1: PORTC=0b11111001. case 9: PORTC=0b10010000.break. case 1: PORTC=0b11111001.break. case 4: PORTC=0b10011001.break. PORTD. Percobaan Display 7 segmen increment data 0 sd 9 Pada percobaan ini data ditampilkan ke sebuah 7 segmen. case 3: PORTC=0b10110000. convert(). void convert(){ switch(data) { // gfedcba case 0: PORTC=0b11000000. menu Project -Compile b. default: PORTC=0xff.break.break. .5=1. case 2: PORTC=0b10100100.break. } } simpan dengan nama file segmen1 kemudian compile.h> #include<delay. } } void main (void) { DDRC=DDRD=PORTC=0xff. while(1) { data=5.break.6=1.break. case 6: PORTC=0b10000010.break. dengan waktu tunda 1 detik.break.

} dataTemp=data.h> #include <delay.2==1) { if (PINB.}. data=data+1. PORTD.Display 7 Segmen dengan Simulasi Setting data Pada percobaan ini anda akan belajar bagaimana mensimulasikan setting data dengan display pada 7 segmen. DDRD=0xFF. if(data==10){data=0.break.0==0) { data=data+1. int data. while(1) { convert(). default: PORTC=0xff.break. case 7: PORTC=0b11111000. case 6: PORTC=0b10000010.h> void convert(). DDRB=0x00.Eng.1==0) { data=data-1. delay_ms(1000). PORTB=0xFF. #include <mega8535.6=1. Mikrokontroller – Syahud. case 8: PORTC=0b10000000. menu Project -Compile c. case 9: PORTC=0b10010000.dataSat. } else if (PINB. PORTC=0xFF. M.break.break. } Simpan dengan nama file segmen2 kemudian compile. data=00. PORTD.dataTemp. S. } } void main (void) { } DDRC=DDRD=PORTC=0xff.dataPul. .5=1. while(PINB. void main(void) { DDRC=0xFF.

break.hex yang di buat d.break. Dowload program ke modul mikrokontroller dengan langkah – langkah sebagai berikut a. menu Project -Compile 4. delay_ms(2000). case 4: PORTC=0b10011001. delay_ms(30).break. // sat = sisa dari data dibagi 10 dataPul = dataTemp / 10.5=1. S. case 7: PORTC=0b11111000. Pilih load flash kemudian pilih file. . case 8: PORTC=0b10000000.break.6=0.break.break. } } Simpan dengan nama file segmen3 kemudian compile. dataTemp=dataPul. delay_ms(30). case 9: PORTC=0b10010000.break. Cek koneksi komputer ke modul mikrokontroller dengan cara lihat dalam program state apakah PRG ISP nyala atau tidak. buka program progISP168 b. Amati hasilnya pada modul Mikrokontroller – Syahud. PORTD. Kemudian pilih erase dan auto e. } PORTC=0x00.Eng. case 1: PORTC=0b11111001. case 2: PORTC=0b10100100. } void convert(){ switch(dataTemp) { // pg fe dcba case 0: PORTC=0b11000000. jika sudah nyala berarti komputer dan modul sudah terhubung dan siap untuk melakukan download program c. default: PORTC=0xff. PORTD. convert(). M. case 5: PORTC=0b10010010.break. case 6: PORTC=0b10000010. convert(). PORTD.break.6=0. case 3: PORTC=0b10110000.break. dataSat = dataTemp % 10. dataTemp=dataSat.5=0. PORTD.

Buat program untuk menuliskan karakter angka dan huruf pada delapan seven segmen c.VIII. . Buat program untuk menuliskan tulisan kelas anda mulai seven segmen no 3 dengan secara bergantian e. Buat program untuk menuliskan karakter pada seven segmen yang diaktifkan dengan menekan push button d. Tugas a. Buat program untuk menuliskan karaktek pada 3 buah seven segmen b. M. Buat Laporan dari semua program yang dibuat Mikrokontroller – Syahud.Eng. S.

Modul LCD Character dapat dengan mudah dihubungkan dengan mikrokontroller seperti ATMega8535. Pada percobaan iini akan menggunakan LCD karakter 2 x16. BAB VII LCD KARAKTER 2 X 16 I. Dapat membuat program dengan input push button dan output LCD karakter 2x 16 II. M. LCD yang akan kita praktikumkan ini mempunyai lebar display 2 baris 16 kolom atau biasa disebut sebagai LCD Character 2x16. dengan interface pada PORTC. S. Alat dan Bahan  Modul mikrokontroller  PC atau laptop  power supply DC III. Dapat menggunakan fungsi input dan output pada mikrokontroler AVR untuk memprogram LCD karakter 2x16 3. Dasar Teori: Pada percobaan ini akan dipelajari interface LCD (liquid crystal display ) dengan mikrokontroller.yang didifinisikan sebagai berikut: Gambar LCD Karakter 2x16 Memori LCD Mikrokontroller – Syahud.Eng. LCD merupakan komponen display yang dapat menampilkan berbagai macam karakter. Jenis LCD ada berbagai macam. Codevision menyediakan fungsi-fungsi untuk keperluan pengelolaan LCD. Tujuan Instruksional Khusus : Setelah Menyelesaikan praktek ini mahasiswa dapat : 1. dengan 16 pin konektor. dan yang paling sering digunakan adalah LCD Karakter 2 x 16. Dapat membuat program dengan ouput LCD karakter 2x16 2. .

Eng. Posisi karakter berikutnya adalah alamat 01h dan seterusnya. Demikianlah karakter pertama di sudut kiri atas adalah menempati alamah 00h. kita harus melakukan inisialisasi dan mengkonfigurasikannya. M. Pada peta memori tersebut. INISIALISASI Sebelum menggunakan modul LCD. Angka pada setiap kotak adalah alamat memori yang bersesuaian dengan posisi dari layar. pemilihan ukuran font karakter 5x8 atau 5x7 dan lain-lain. jumlahnya sebanyak 16 karakter per baris dengan dua baris. . Semua teks yang kita tuliskan ke modul LCD adalah disimpan didalam memory ini.Memori DDRAM digunakan untuk menyimpan karakter yang akan ditampilkan. Hal ini dijalankan dengan mengirimkan sejumlah instruksi ke LCD. daerah yang berwarna kuning ( 00 s/d 0F dan 40 s/d 4F ) adalah display yang tampak. dan modul LCD secara berturutan membaca memory ini untuk menampilkan teks ke modul LCD itu sendiri. Konfigurasi Codevision dan koneksi hardware Fungsi LCD Mikrokontroller – Syahud. dengan instruksi sebagai berikut. Sebagaimanan yang anda lihat. S. Antara lain: pengaturan lebar data interface 8 bit atau 4 bit data bus.

menghapus layar dan meletakkan posisi karakter pada baris ke-0 kolom ke-0.h yang harus di-include-kan sebelum digunakan.h> Fungsi-fungsi untuk mengakses LCD diantaranya adalah : a. dan bernilai 0 bila tidak terdapat modul LCD. c.h> #include <delay. IX. d. void lcd_clear(void) Menghapus layar LCD dan meletakkan posisi karakter pada baris ke-0 kolom ke-0.Eng. Langkah Kerja 1. Nilai yang dikembalikan adalah 1 bila modul LCD terdeteksi. e. Jalankan program codevision AVR 2. Nomor baris dan kolom dimulai dari nol. Hal ini juga dapat dengan mudah dilakukan dengan menggunakan CodeWizardAVR. S. Mulai project Codevision AVR. 16). Sebelum melakukan include terlebih dahulu sebutkan port mikrokontroller yang akan dihubungkan ke LCD. . Fungsi ini harus dipanggil pertama kali sebelum menggunakan fungsi yang lain. M. unsigned char lcd_init(unsigned char lcd_columns) Untuk menginisialisasi modul LCD. Kursor tidak ditampakkan. b. Percobaan Cetak Karakter pada baris 1 #include <mega8535.Fungsi LCD terletak pada header lcd. void lcd_puts(char *str) Menampilkan string yang disimpan pada SRAM pada LCD.h> // Alphanumeric LCD Module functions #asm Mikrokontroller – Syahud.equ __lcd_port=0x15 #endasm /* sekarang fungsi LCD dapat di-include*/ #include <lcd. unsigned char y) Meletakkan posisi karakter pada kolom ke-x baris ke-y. File > New > Pilih Project > OK Use codeWizardAVR? yes 3. Jumlah kolom pada LCD harus disebutkan (misal. void lcd_gotoxy(unsigned char x. ketikkan program berikut a. /* modul LCD dihubungkan dengan PORTC */ #asm . void lcd_putchar(char c) Menampilkan karakter c pada LCD.

h> // Declare your global variables here void main(void) { PORTB=0xFF.PORTC #endasm // #include <lcd. } } simpan dengan nama file lcd1 kemudian compile. lcd_putsf("Selamat Datang"). DDRC=DDRD=PORTB=0xFF.y.hasil_2. DDRB=0x00. S.0).h> #include <stdio.h> // Alphanumeric LCD Module functions bisa di copy dari codeWizard CAVR #asm . // inisialisasi lcd. kolom modul lcd =16. while (1) { lcd_gotoxy(0. // ke kolom x=0 dan baris y=0 lcd_putsf("Ngetes LCD").PORTC #endasm int LCD.equ __lcd_port=0x15 .0). //menampilkan tulisan Ngetes LCD Mikrokontroller – Syahud.Eng. LCD=1. Percobaan manipulasi nilai #include <mega8535.hasil. // LCD module initialization lcd_init(16).hasil_1. .h> #include <delay. unsigned char x. lcd_gotoxy(0. void main (void) { //PORT initialization as input or output DDRA=DDRB=0x00.equ __lcd_port=0x15 . char lcd_buffer[33]. lcd_init(16).h> #include <lcd. . M. menu Project -Compile b. PORTA=PORTC=0x00.

menulis kosong di lcd lcd_gotoxy(x. lcd_puts(lcd_buffer)."hsl:%i". //inisialisasi lcd. lcd_puts(lcd_buffer). S. menu Project -Compile Pada program diatas. lcd_puts(lcd_buffer). lcd_clear(). goto ulang. sprintf(lcd_buffer.equ __lcd_port=0x15 .1).y adalah nilai) lcd_putsf(“ coba ”). x=1.hasil_1). //melompat ke kolom x dan baris y (x. hasil_1=hasil.PORTC #endasm lcd_init(16). //kelabel ulang } Simpan dengan nama file lcd2 kemudian compile.1). delay_ms(500). terdapat beberapa perintah. ulang: //label ulang hasil=x+y.y). lcd_gotoxy(8.h> //meng-include kan fungsi-fungsi lcd // Alphanumeric LCD Module functions bisa di copy dari codeWizard CAVR // inisialisasi lcd dipasang diport mana #asm .hasil).. hasil_2=hasil_1.Eng. //menuliskan ke lcd. delay_ms(1500).0).y=1. lcd_gotoxy(0."hsl-1:%i".0). // kebaris ke 2 y=1 lcd_putsf("Program C & AVR"). #include <lcd.hasil_2)."hsl-2:%i".lcd_gotoxy(0. yang digunakan adalah 16 baris lcd_clear(). x++. sprintf(lcd_buffer. . M. baik itu spasi Mikrokontroller – Syahud. sprintf(lcd_buffer. apa yang tertulis di dalam tanda petik dua. lcd_gotoxy(0. //meng-clear lcd.

Percobaan manipulasi nilai II #include <mega8535. // inisialisasi lcd. S. .'r'.Eng. unsigned char i.hasil_1). // ke kolom x=0 dan baris y=0 sprintf(lcd_buffer. //menampilkan variable di lcd #include <stdio."hsl-1:%i". delay_ms(200). char lcd_buffer[33].0). %i = variable yang ditampilkan berupa integer %c=variable yang ditampilkan berupa caracter c. while(1) { for(i=0.i++) { lcd_clear().h> #include <lcd.'i'.h> // Alphanumeric LCD Module functions bisa di copy dari codeWizard CAVR #asm . M.'c'. Percobaan manipulasi data III Mikrokontroller – Syahud. menu Project -Compile %f=menampilkan tipe float %d=menampilkan bilangan bulat /n=pindah ke baris selanjutnya d. kolom modul lcd =16."%c". void main(void) { lcd_init(16). //mempersiapkan buffer sprintf(lcd_buffer.tulis[i]).h> #include <delay. } } } Simpan dengan nama file lcd3 kemudian compile. //menampilkan isi buffer perintah-perintah dalam menampilkan di lcd.equ __lcd_port=0x15 .PORTC #endasm unsigned char tulis[5]={'m'. lcd_gotoxy(i.h> #include <stdio.h> //dipersiapkan dulu untuk fungsi sprintf char lcd_buffer[33]. lcd_puts(lcd_buffer).'o'}.i<5. //menampilkan tulisan hsl-1 dengan variable hasil_1 cd_puts(lcd_buffer).

#include <mega8535.h>
#include <lcd.h>
#include <stdio.h>
#include <delay.h>
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
unsigned char data1=9;
signed char data2=-10;
char lcd_buffer[33];
int data;
float data3;
void main(void)
{
data1=data1+data2;
lcd_init(16);
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"hasilnya=%i",data1);
lcd_puts(lcd_buffer);
delay_ms(1200);
data=data1/2;
lcd_clear();
sprintf(lcd_buffer,"9/2=%i",data);
lcd_puts(lcd_buffer);
delay_ms(1200);
data=20.4;
lcd_clear();
sprintf(lcd_buffer,"20.4=%i",data);
lcd_puts(lcd_buffer);
delay_ms(1200);
data3=5/2;
lcd_clear();
sprintf(lcd_buffer,"5/2=%f",data3);
lcd_puts(lcd_buffer);
delay_ms(1200);
}
Simpan dengan nama file lcd4 kemudian compile, menu Project -Compile
e. Percobaan Cetak Karakter Interaksi dengan Saklar
#include <mega8535.h>
#include <delay.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
//
#include <lcd.h>
// Declare your global variables here
void main(void)

Mikrokontroller – Syahud, S, M.Eng.

{
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,0);
lcd_putsf("Button Released");
delay_ms(500);
}
else
{
lcd_gotoxy(0,0);
lcd_putsf("Button Pressed");
delay_ms(500);
}
}
Simpan dengan nama file lcd5 kemudian compile, menu Project -Compile
f. Percobaan Cetak Karakter Interaksi dengan Saklar
#include <mega8535.h>
#include <delay.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
// Declare your global variables here

void main(void)
{
PORTB=0xFF;

Mikrokontroller – Syahud, S, M.Eng.

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);
}
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);
}
}
Simpan dengan nama file lcd6 kemudian compile, menu Project -Compile

Mikrokontroller – Syahud, S, M.Eng.

Buat program untuk menuliskan tulisan kelas anda di LCD dengan menekan push button e. buat laporan dari praktek yang anda kerjakan f. Kemudian pilih erase dan auto e. jika sudah nyala berarti komputer dan modul sudah terhubung dan siap untuk melakukan download program c. Cek koneksi komputer ke modul mikrokontroller dengan cara lihat dalam program state apakah PRG ISP nyala atau tidak. Tugas a. S. Buat program untuk menuliskan tulisan berjalan dari kiri ke kanan pada baris satu c. 4. M. Dowload program ke modul mikrokontroller dengan langkah – langkah sebagai berikut a. Buat Laporan dari semua program yang dibuat Mikrokontroller – Syahud. Buat program untuk menuliskan tulisan berjalan pada baris dua mulai dari tengah LCD d. Amati hasilnya pada modul X.hex yang di buat d. . Pilih load flash kemudian pilih file. Buat program untuk menuliskan karaktek pada semua baris dan kolom LCD b.Eng. buka program progISP168 b.

. bahwa sebenarnya keypad merupakan tombol-tombol yang dirangkai menjadi sebuah paket dengan teknik menghubungkan satu tombol dengan tombol yang lain dengan teknik matrix. S. memiliki kolom dan baris lebih dari satu. LCD karakter 2x 16 dan seven segmen II. Dapat menggunakan fungsi input dan output pada mikrokontroler AVR untuk memprogram keypad 3. Dasar Teori: Keypad merupakan komponen elektronik yang digunakan sebagai masukan. M. Alat dan Bahan  Modul mikrokontroller  PC atau laptop  power supply DC III. BAB VIII KEYPAD I. Berikut secara ilusrasi penghubungan tombol-tombol pada keypad. Teknik matrix adalah bisa dikatakan array. Dapat membuat program dengan input Keypad 2. Rangkaian skematik keyapad seperti gambar berikut Mikrokontroller – Syahud. Berdasarkan penjelasan tersebut.Tujuan Instruksional Khusus : Setelah Menyelesaikan praktek ini mahasiswa dapat : 1. Dapat membuat program dengan input push keypad dan output LED. disususun dari beberapa tombol/switch dengan teknik matrix.Eng.

Secara algoritma peng-akses-an keypad dapat dituliskan seperti berikut: Kirim data biner pada kolom ke-1 keypad Ambil data biner (4bit) pada baris keypad Mikrokontroller – Syahud. tablet. Sedangkan bahan penyusun keypad yang bersifat resistif/kapasitif digunakan sebagai panel sentuh pada alat-alat elektronik. serta masih banyak lainnya. remot ac. switch karbon. Biasanya itu digunakan untuk alat-alat digital yang hanya memiliki tegangan 0 dan 5V. aksi penekanan. seperti hp. Penerapan bahan banyak kita jumpai seperti pada keypad remot tv. pada area yang lebih kecil didapatkan resolusi atau tombol yang lebih banyak.Eng. Keypad dengan bahan carbon dipakai untuk kebutuhan tombol-tombol dengan arus kecil. S. Pemrograman keypad dibutuhkan dua arah komunikasi dalam mengambil data-data masukan dari keypad. M. . seperti switch metal. smart phone. Tampilan fisik keypad seperti gambar berikut : Rangkaian koneksi keypad dengan mikrokontroller Penyusun tombol pada keypad dapat dibuat dari bermacam-macam bahan/komponen. Bahan switch metal pada keypad digunakan untuk kebutuhan keypad atau tombol-tombol dengan arus yang besar. Penggunaan bahan tersebut disesuaikan dengan kebutuhan akan sensifitas. computer dan masih banyak lainnya. joy stick. dan kebutuhan akan suatu tombol khusus. dan resistif/kapasitif (touch panel). Dengan bahan resistif/kapasitif dalam pembuatan keypad.

.Eng.. Gambar rangkaian koneksi keypad ke mikrokontroller”. Pengubahan ini dapat dilakukan secara langsung ataupun ada anak program yang berfungsi untuk mengubah/menterjemahkannya. Pengiriman tersebut dimaksudkan sebagai signal yang akan dilewatkan salah satu saklar apabila tombol ditekan/tertutup. Mikrokontroller – Syahud.Tunda (us) . S. selanjutnya sebaliknya. Kirim data biner pada kolom ke-n keypad Ambil data biner (4bit) pada baris keypad Tunda (us) Pembacaan data masukan dari keypad sesuai dengan algoritma diatas harus didahului dengan pengiriman data kolom.+-dst). Kebanyakan progran mendeteksi signal masukan dari keypad menggunakan sinyal rendah (0/low). M. yaitu PORT B seperti yang digambarkan “. Secara pengaturan pada codewizard dapat dilakukan dengan langkah seperti yang diilustrasikan sebagai berikut . Nilai/karakter bisa kita buat sesuai kemauan programmer (tidak ada aturan yang pasti) meliputi karakter huruf (a-Z).. angka (0-9) dan symbol (“. apabila ingin mendeteksi masukan dengan cepat maka tunda ditiadakan. Pemasangan keypad dengan mikrokontroller dapat dihubungkan hanya pada salah satu PORT saja. Guna menterjemahkan symbol/karakter yang akan dilekatkan pada tombol-tombol keypad maka dibutuhkan program tambahan sebagai pengubah dari deteksi sinyal masukan menjadi karakter. Penggunaan instruksi tunda (delay) bisa flexible.

Jalankan program codevision AVR 2. Percobaan Keypad dengan display LED #include <mega8535. M. ketikkan program berikut a. File > New > Pilih Project > OK Use codeWizardAVR? yes 3. . Mengacu pada gambar diatas Langkah pertama (Scanning kolom 1 PB0) keluarkan output ke kolom 1(PB0) kemudian deteksi penekanan baris1 (PB4) kemudian deteksi penekanan baris2 (PB5) kemudian deteksi penekanan baris3 (PB6) kemudian deteksi penekanan baris4 (PB7) Langkah kedua (Scanning kolom 2 PB1) keluarkan output ke kolom 2 (PB1) kemudian deteksi penekanan baris1 (PB4) kemudian deteksi penekanan baris2 (PB5) kemudian deteksi penekanan baris3 (PB6) kemudian deteksi penekanan baris4 (PB7) Langkah ketiga (Scanning kolom 3 PB2) keluarkan output ke kolom 3 (PB2) kemudian deteksi penekanan baris1 (PB4) kemudian deteksi penekanan baris2 (PB5) kemudian deteksi penekanan baris3 (PB6) kemudian deteksi penekanan baris4 (PB7) Langkah kempat (Scanning kolom 4 PB3) keluarkan output ke kolom 4 (PB3) kemudian deteksi penekanan baris1 (PB4) kemudian deteksi penekanan baris2 (PB5) kemudian deteksi penekanan baris3 (PB6) kemudian deteksi penekanan baris4 (PB7) h Kerja 1. S. Mulai project Codevision AVR. algoritma cara mengakses keypad: Tentukan terlebih dahulu kolom sebagai output dari mikrokontroler sedangkan baris sebagai input kemikrokontroler.Eng.h> Mikrokontroller – Syahud.

PORTC=dtkey. case 8: dtkey=0x0.6=0. }. break. void detek_key(void). . break. PORTB. switch (dt) { case 1: dtkey=0x1. } void detek_key(void) { PORTB.h> // Declare your global variables here unsigned char dt. PORTB. }. break.Eng.#include <delay. Mikrokontroller – Syahud. M.5=1.h> // Alphanumeric LCD Module functions #asm . break. dt=(~PINB & 0x0F). }. case 4: dtkey=0x8.4=1. S. break. break. PORTB. break. case 2: dtkey=0x4.4=0. dtkey.equ __lcd_port=0x15 #endasm #include <lcd. void main(void) { // LCD module initialization while (1) { // Place your code here detek_key(). PORTB. break. case 8: dtkey=0xa. case 4: dtkey=0x7. delay_ms(5). switch (dt) { case 1: dtkey=0x2.h> #include <stdio. case 2: dtkey=0x5. dt=(~PINB & 0x0F).5=0.

switch (dt) { case 1: dtkey=0x3. PORTB. }. }. } simpan dengan nama file keypad1 kemudian compile. dt=(~PINB & 0x0F). case 2: dtkey=0x6. switch (dt) { case 1: dtkey=0xc.h> // Declare your global variables here Mikrokontroller – Syahud. break. break. case 8: dtkey=0xb.7=0.Eng. case 2: dtkey=0xd. break.6=1. case 4: dtkey=0x9. data akan didisplaykan ke 7 segmen. setiap penekanan tombol pada keypad. case 8: dtkey=0xf. S.h> #include <delay.h> #include <stdio. break. PORTB.7=1. dan keypad terhubung ke PORTB #include <mega8535. Percobaan Keypad dengan 7 Segmen Pada percobaan ini. break. break. dt=(~PINB & 0x0F).h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 #endasm #include <lcd. M. PORTD. break. break. . Pada percobaan ini perlu dilakukan konfigurasi pada interface 7 segmen yang terhubung ke PORTC dan PORTD. case 4: dtkey=0xe. menu Project -Compile b.

convert(). unsigned char data. }. PORTD.Eng. void main(void) { PORTB=0xFF. case 2: dtkey=0x4. DDRC=0xFF. . switch (dt) { case 1: dtkey=0x1. delay_ms(5). DDRB=0xF0. M. data=dtkey. dtkey. PORTC=0x00.4=0. PORTD. dt=(~PINB & 0x0F). void detek_key(void).5=0. // LCD module initialization while (1) { // Place your code here detek_key(). case 4: dtkey=0x7. } void detek_key(void) { PORTB. S. break.unsigned char dt. break.6=0. void convert(). Mikrokontroller – Syahud.

dt=(~PINB & 0x0F). case 2: dtkey=0x6. . break.7=0. Mikrokontroller – Syahud. case 4: dtkey=0x9. }. break. break.6=1. case 4: dtkey=0x8. dt=(~PINB & 0x0F).5=0. case 8: dtkey=0xb. PORTD. switch (dt) { case 1: dtkey=0xc. PORTB. PORTB.4=1. break. switch (dt) { case 1: dtkey=0x3. S. break. PORTB.6=0. PORTB. break. }. break. M. break. }. case 8: dtkey=0xa. case 2: dtkey=0x5.Eng. case 2: dtkey=0xd. break. break. PORTB. break. case 8: dtkey=0x0. switch (dt) { case 1: dtkey=0x2.5=1. dt=(~PINB & 0x0F). break.

case 9: PORTC=0b10010000.break. case 8: PORTC=0b10000000. case 1: PORTC=0b11111001. PORTB. case 5: PORTC=0b10010010. buka program progISP168 b. default: PORTC=0xff. . break.break.break. Cek koneksi komputer ke modul mikrokontroller dengan cara lihat dalam program state apakah PRG ISP nyala atau tidak. } void convert(){ switch(data) { // pg fe dcba case 0: PORTC=0b11000000. case 4: PORTC=0b10011001. } } Simpan dengan nama file keypad2 kemudian compile. break. case 4: dtkey=0xe. S.break. menu Project -Compile 5. case 6: PORTC=0b10000010.break.break.break.break.break.7=1. jika sudah nyala berarti Mikrokontroller – Syahud. M. case 8: dtkey=0xf. case 2: PORTC=0b10100100.break.Eng. case 7: PORTC=0b11111000. }. case 3: PORTC=0b10110000. Dowload program ke modul mikrokontroller dengan langkah – langkah sebagai berikut a.

modifikasi program untuk mengaktifkan led berjalan dengan menekan salah satu tombol keypad 2. S. . buat laporan dari praktek yang anda kerjakan Mikrokontroller – Syahud. M.hex yang di buat d.Eng. Kemudian pilih erase dan auto e. komputer dan modul sudah terhubung dan siap untuk melakukan download program c.Tugas 1. Amati hasilnya pada modul V. Pilih load flash kemudian pilih file. modifikasi program untuk menampilakn karakter yang berbeda pada seven segmen dengan menekan tombol yang berbeda pada keypad 3. Buat program menampilkan karakter pada LCD dengan menekan tombol keypad 4.

Jakarta [5] http://www. 2006. S. Pemrograman Mikrokontroler AVR: Bahasa Assembly dan C.Informatika. Belajar Sendiri Mikrokontroler AVR Seri ATMega8535: Simulasi. Hardware dan Aplikasi. Yogyakarta [3] Syahrul. Infromatika. Jakarta [4] Syahrul.Eng. 2012. 2014. Andi Offset. . DAFTAR PUSTAKA [1] Ardi Winoto.atmel.com/devices/ATMEGA8535. Infromatika. Mikrokontroler AVR ATMega8/32/16/8535 dan Pemrogramannya dengan Bahasa C pada WinAVR. Jakarta [2] Lingga Wardana. Mikrokontroler AVR ATMEGA8535 + CD.aspx Mikrokontroller – Syahud. 2008. M.