Anda di halaman 1dari 68

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.


BAB I
MIKROKONTROLLER ATMEGA8535

I.TUJUAN INSTRUKSIONAL KHUSUS

Setelah Menyelesaikan praktek ini mahasiswa dapat :

1. Mengetahui dan memahami tentang jenis-jenis dan keluarga mikrokontroller.


2. Mengetahui dan memahami mikrokontroller ATMega 8535.
3. Mengetahui dan memahami arsitektur mikrokontroller ATMega 8535 .
4. Mengetahui dan memahami aplikasi mikrokontroller ATMega 8535

II . DASAR TEORI
2.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, Lebih lanjut, mikrokontroler merupakan system
computer yang mempunyai satu atau beberapa tugas yang sangat spesifik, berbeda dengan PC
(Personal Computer ) yang memiliki beragam fungsi.
Tidak seperti sistem komputer yang mampu menangani berbagai macam program aplikasi,
mikrokontrler hanya bisa digunakan untuk suatu aplikasi tertentu saja, perbedaan lainnya terletak
pada perbandingan RAM dan ROM. Pada sistem komputer perbandingan RAM dan ROM nya
besar, artinya program-program pengguna disimpan dalam ruang RAM yang relative besar,
sedangkan rutin-rutin antar muka perangkat keras disimpan dalam ruang ROM yang kecil,
Sedangkan pada mikrokontroler, perbandingan ROM dan RAM nya yang besar, artinya program
kontrol disimpan dalm ROM (bias Masked ROM atau Flash PEROM) yang ukurannya relatif
lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara , termasuk
register-register yang digunakan pada mikrokontroler yang bersangkutan.
Microcontroller sebagai sebuah one chip solution pada dasarnya adalah rangkaian terintregrasi
(Integrated Circuit-IC) yang telah mengandung secara lengkap berbagai komponen pembentuk
sebuah komputer. Berbeda dengan penggunaan microprocessor yang masih memerlukan
komponen luar tambahan seperti RAM, ROM, Timer, dan sebagainya-untuk sistem
microcontroller, tambahan komponen diatas secara praktis hampir tidak dibutuhkan lagi. Hal ini
disebabkan semua komponen penting tersebut telah ditanam bersama dengan sistem prosesor ke

Mikrokontroller Syahud, S, M.Eng.


dalam IC tunggal microcontroller bersangkutan. Dengan alasan itu sistem microcontroller dikenal
juga dengan istilah populer the real Computer On a Chip- komputer utuh dalam keping tunggal,
sedangkan sistem microprocessor dikenal dengan istilah yang lebih terbatas yaitu Computer On a
Chip-komputer dalam keping tunggal.
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). Sedangkan program aplikasi yang dijalankan pada sistem
microprosesor biasanya bersifat sementara dan berorientasi pada pengolahan data. Perbedaan
fungsi kedua sistem diatas secara praktis mengakibatkan kebutuhan minimal yang harus dipenuhi
juga akan berbeda (misal ditinjau dari kecepatan detak operasi, jumlah RAM, panjang register,
dan lain sebagainya). Hampir tidak dapat disangkal, 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). Mengapa demikian?, 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. Sedangkan untuk sistem microcontroller, program yang
dijalankan biasanya tidak memerlukan sumber daya sebanyak dan sebesar itu. Untuk aplikasi
kontrol sederhana dan tingkat menengah, microcontroller yang digunakan cukup berbasis 4
sampai 8 bit. 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.
2.2 PERKEMBANGAN MICROCONTROLLER
Pada awal perkembangannya (yaitu sekitar tahun 1970-an), sumber daya perangkat keras serta
perangkat lunak microcontroller yang beredar masih sangat terbatas. Saat itu, sistem
microcontroller hanya dapat diprogram secara khusus dengan perangkat yang dinamakan
EPROM programmer. Sedangkan perangkat lunak yang digunakan umumnya berbasis bahasa
assembler yang relatif sulit dipelajari. Seiring dengan perkembangan teknologi solid state dan
perangkat lunak komputer secara umum, saat ini pemrograman sistem microcontroler dirasakan
relatif mudah dilakukan, terutama dengan digunakannya metode pemrograman ISP (In system
Programming). 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. Selain
itu, ditinjau dari aspek perangkat lunak pemrogramannya, dewasa ini banyak alternatif bahasa
aras tinggi dari pihak ke-tiga, baik gratis maupun komersil yang dapat digunakan. Penggunaan

Mikrokontroller Syahud, S, M.Eng.


bahasa aras tinggi ini (seperti Pascal, C, basic dan sebagainya) selain akan menghemat waktu
pengembangan, kode program yang disusun juga akan bersifat lebih modular dan terstruktur.
Bagi para pemula yang berminat memperdalam microcontroller baik sekedar untuk tujuan
penyaluran hobi atau kelak untuk tujuan yang lebih profesional, dewasa ini banyak
microcontroller dari berbagai vendor yang dapat dijadikan sarana untuk berlatih (misal
microcontroller PIC produk Microchip, COP-8 produk National, AT89S51/52 dan AVR produk
Atmel, HC11 produk Motorola dan lain sebagainya). Untuk memutuskan microcontroller mana
yang akan dijadikan sarana berlatih dan akan diperdalam secara serius, ada baiknya hal-hal
berikut ini dijadikan bahan pertimbangan :
- Apakah microcontroller tersebut mudah dijumpai dipasaran
- Apakah banyak dukungan pihak ketiga dalam penggunaan microcontroller tersebut, (misalnya
perusahaan-perusahaan pembuat papan pengembang, pemasok compiler serta debbuger untuk
pemrogramannya, dan sebagainya)
- Apakah banyak referensi dan contoh-contoh program untuk panduan anda berlatih (misalnya
dari sumber-sumber internet dan buku)
- Apakah banyak forum-forum diskusi (terutama di Internet) tempat anda dan programer lain
berbagi pengalaman.
Dengan berbagai macam kelebihan yang dimiliki serta hal-hal yang menjadi bahan pertimbangan
diatas, 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. Hal ini selain karena ragam fitur yang ditawarkan, juga
disebabkan kemudahan untuk memperoleh microcontroller tersebut (berikut papan
pengembangnya) di pasaran dengan harga yang relatif murah. Selain itu berkaitan dengan
rancangan arsitekturnya, microcontroller AVR ini juga cocok diprogram dengan menggunakan
bahasa pemrograman aras tinggi (terutama bahasa C).

2.3 Mikrokontroler ATMega8535


Mikrokontroler merupakan keseluruhan sistem komputer yang dikemas menjadi sebuah chip di
mana di dalamnya sudah terdapat Mikroprosesor, I/O, Memori bahkan ADC, berbeda dengan
Mikroprosesor yang berfungsi sebagai pemroses data (Heryanto, dkk, 2008:1).
Mikrokontroller AVR (Alf and Vegards Risc processor) memiliki arsitektur 8 bit, 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). Secara
umum, AVR dapat dikelompokan ke dalam 4 kelas, yaitu keluarga AT90Sxx, keluarga ATMega
dan AT86RFxx. Pada dasarnya yang membedakan masing-masing adalah kapasitas

Mikrokontroller Syahud, S, M.Eng.


memori, peripheral dan fungsinya (Heryanto, dkk, 2008:1). Dari segi arsitektur dan instruksi
yang digunakan, mereka bisa dikatakan hampir sama. Berikut ini gambar Mikrokontroler
Atmega8535.

Gambar 1.1 Mikrokontroler ATMega8535

Gambar 1.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).
Port ini juga berfungsi sebagai port I/O dua arah, jika ADC tidak digunakan.

Mikrokontroller Syahud, S, M.Eng.


4 Port B (PB7 PB0) Berfungsi sebagai port I/O dua arah. Port PB5, PB6 dan PB7 juga
berfungsi sebagai MOSI, MISO dan SCK yang dipergunakan pada proses downloading. Fungsi
lain port ini selengkapnya bisa dibaca pada buku petunjuk AVR ATMega8535.
5 Port C (PC7 PC0) Berfungsi sebagai port I/O dua arah. Fungsi lain port ini selengk apnya
bisa dibaca pada buku petunjuk AVR ATMega8535.
6 Port D (PD7 PD0) Berfungsi sebagai port I/O dua arah. Port PD0 dan PD1 juga berfungsi
sebagai RXD dan TXD, yang dipergunakan untuk komunikasi serial. Fungsi lain port ini
selengkapnya bisa dibaca pad a buku petunjuk AVR ATMega8535.
7 RESET Input reset.
8 XTAL1 Input ke amplifier inverting osilator dan input ke sirkuit clock internal.
9 XTAL2 Output dari amplifier inverting osilator.
10 AVCC Input tegangan untuk Port A dan ADC.
11 AREF Tegangan referensi untuk ADC.

2.4 Fitur Mikrokontroler ATMega8535


Adapun kapabilitas detail dari ATmega8535 adalah sebagai berikut,
1 Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.
2 Kapabilitas memori flash 8 KB, SRAM sebesar 512 byte, dan EEPROM (Electrically Erasable
Programmable Read Only Memori) sebesar 512 byte.
3 ADC internal dengan fidelitas 10 bit sebanyak 8 channel.
4 Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps.
5 Enam pilihan mode sleep untuk menghemat penggunaan daya listrik.

2.5 Arsitektur ATMega8535


Blok-Diagram

Mikrokontroller Syahud, S, M.Eng.


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

Mikrokontroller Syahud, S, M.Eng.


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

Mikrokontroller Syahud, S, M.Eng.


BAB II
PEMROGRAMAN MIKROKONTROLER AVR

I .Tujuan

Setelah Menyelesaikan materi ini mahasiswa dapat :

1. Mengetahui dan memahami tentang software yang digunakan dalam mikrokontroller.


Mengetahui dan memahami software codevision AVR.
Mengetahui dan memahami perintah dan sintak dalam software codevision AVR .

II. Dasar Teori


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

Mikrokontroller Syahud, S, M.Eng.


bahasa assembler, penggunaan bahasa C dalam pemrograman memiliki beberapa kelebihan
berikut: Mempercepat waktu pengembangan, bersifat modular dan terstruktur, sedangkan
kelemahannya adalah kode program hasil kompilasi akan relative lebih besar (dan sebagai
konsekuensinya hal ini terkadang akan mengurangi kecepatan eksekusi). Khusus pada
microcontroller AVR, untuk mereduksi konsekuensi negative diatas, Perusahaan Atmel
merancang sedemikian sehingga arsitektur AVR ini efisien dalam mendekode serta mengeksekusi
instruksi-instruksi yang umum dibangkitkan oleh compiler C (Dalam kenyataannya,
pengembangan arsitektur AVR ini tidak dilakukan sendiri oleh perusahaan Atmel tetapi ada kerja
sama dengan salah satu vendor pemasok compiler C untuk microcontroller tersebut, yaitu IAR C)
Tabel 2.1 Beberapa Compiler C untuk microcontroller AVR

2.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, IDE dan Program generator. Berdasarkan spesifikasi yang
dikeluarkan oleh perusahaan pengembangnya, Compiler C yang digunakan hampir
mengimplementasikan semua komponen standar yang ada pada bahasa C standar ANSI (seperti
struktur program, jenis tipe data, jenis operator, dan library fungsi standar-berikut
penamaannya). Tetapi walaupun demikian, dibandingkan bahasa C untuk aplikasi komputer,
compiler C untuk microcontroller ini memiliki sedikit perbedaan yang disesuaikan dengan
arsitektur AVR tempat program C tersebut ditanamkan (embedded).
Khusus untuk library fungsi, disamping library standar (seperti fungsi-fungsi matematik,
manipulasi String, pengaksesan memori dan sebagainya), CodeVisionAVR juga menyediakan
fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan
perangkat luar yang umum digunakan dalam aplikasi kontrol. Beberapa fungsi library yang
penting diantaranya adalah fungsi-fungsi untuk pengaksesan LCD, komunikasi I C, IC RTC
(Real time Clock), sensor suhu LM75, SPI (Serial Peripheral Interface) dan lain sebagainya.

Mikrokontroller Syahud, S, M.Eng.


Untuk memudahkan pengembangan program aplikasi, CodeVisionAVR juga dilengkapi IDE
yang sangat user friendly (lihat gambar 1.1). Selain menu-menu pilihan yang umum dijumpai
pada setiap perangkat lunak berbasis Windows, 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.

Gambar 2.1 Tampilan software codevision AVR


Selain itu, CodeVisionAVR juga menyediakan sebuah tool yang dinamakan dengan Code
Generator atau CodeWizardAVR (lihat gambar 1.2). Secara praktis, tool ini sangat bermanfaat
membentuk sebuah kerangka program (template), dan juga memberi kemudahan bagi
programmer dalam peng-inisialisasian register-register yang terdapat pada microcontroller AVR
yang sedang diprogram. Dinamakan Code Generator, karena perangkat lunak CodeVision ini
akan membangkitkan kode-kode program secara otomatis setelah fase inisialisasi pada jendela
CodeWizardAVR selesai dilakukan. Gambar 2.2 berikut memperlihatkan beberapa penggal baris
kode program yang dibangkitkan secara otomatis oleh CodeWizardAVR. Secara teknis,
penggunaan tool ini pada dasarnya hampir sama dengan application wizard pada bahasa-bahasa
pemrograman Visual untuk komputer (seperti Visual C, Borland Delphi, dan sebagainya)

Mikrokontroller Syahud, S, M.Eng.


Gambar 2.2 Tampilan code wizard

Gambar 2.3 Tampilan hasil setting di code wizard

2.2 PEMROGRAMAN MICROCONTROLLER AVR


Seperti halnya belajar pemrograman komputer, agar mendapatkan pemahaman yang kuat dalam
pemrograman microcontroller AVR, anda sebaiknya mencoba langsung membuat aplikasi
program pada microcontroller tersebut. Untuk tujuan latihan, perangkat lunak CodevisionAVR
versi demo pada dasarnya adalah sarana yang cocok dan telah cukup memenuhi kebutuhan
minimal anda. Gambar 2.4. berikut memperlihatkan diagram blok yang mengilustrasikan alur
pemrograman microcontroller AVR dengan CodevisionAVR :

Mikrokontroller Syahud, S, M.Eng.


Gambar 2.4 Alur pemrograman microcontroller AVR dengan menggunakan CodevisionAVR
Seperti terlihat pada gambar 1.4, CodevisionAVR produk Pavel Haiduc pada dasarnya telah
mengintegrasikan komponen-komponen penting dalam pemrograman microcontroller AVR:
Editor,Compiler C, assembler dan ISP (In System Programmer). Khusus dengan ISP, ada
beberapa jenis perangkat keras programmer dongle (berikut papan pengembangnya) yang telah
didukung oleh perangkat lunak CodevisionAVR ini, salah satu diantaranya adalah Kanda System
STK 200/300
Berkaitan dengan perangkat lunak downloader, 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. Perangkat lunak beserta rangkaian antarmukanya dapat di-
download secara gratis pada alamat URL: http://www.mikrocontroller.com.

Mikrokontroller Syahud, S, M.Eng.


BAB III
INSTALASI PERANGKAT KERAS DAN PERANGKAT LUNAK

I .Tujuan

Setelah Menyelesaikan materi ini mahasiswa dapat :

1. Mengetahui dan memahami cara menginstall driver mikrokontroller.


Mengetahui cara menginstall software codevision AVR.
Mengetahui dan memahami perangkat keras modul mikrokontroller
Membuat program dengan codevision AVR

II. DASAR TEORI


3.1 INSTALASI DRIVER PROGRAMMER
Sebelum mengoperasikan modul mikrokontroller,komputer atau laptop harus di instal driver
terlebih dahulu agar modul dapat dikenali oleh komputer. 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.

b) Biasa seperti nginstal pada umumnya tinggal: next next next.....


c) Kemudian tunjuk ke downloader\windriver yang lokasinya berada di folder
progisp168/win- driver, dan pilih salah satu folder

Mikrokontroller Syahud, S, M.Eng.


d) kemudian tinggal menunggu finish

e) Jika sudah finish, lepas kembali kabel usbnya sesudah itu, masukan kembali kabel usb
ketika dimasukan akan ada suara, seperti suara ketika kita memasukkan flash disk
kemudian lihat di device manager

Mikrokontroller Syahud, S, M.Eng.


f) Harus ada LIBUSB USBasp lihat LED power , led standby / sunyala,ada satu
yang mati, ini disebut led (busy), jika sedang berpikir led innyala sekarang buka
program progisp.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, 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,

Mikrokontroller Syahud, S, M.Eng.


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
untukmengambil kelebihan khusus dari arsitektur AVR dan kebutuhan pada sistem embedded.
Langkah-langkah Instalasi codevision avr adalah sebagai berikut :
1. Klik ganda file setup.exe pada folder CodeVisionAVR
2. Untuk pilihan bahasa pilih English, klik OK, seperti pada Gambar

3. Kemudian akan muncul kotak dialog , klik tombol next.

4. Pada kotak dialog Licence Agreement, pilih I accept the agreement lalu klik tombol next

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

Mikrokontroller Syahud, S, M.Eng.


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

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

8. Program CodeVisionAVR telah siap untuk di-install. Tekan tombol Install

Mikrokontroller Syahud, S, M.Eng.


9. Setelah selesai akan dimunculkan kotak dialog informasi

Mikrokontroller Syahud, S, M.Eng.


10. Jalankan aplikasi CodeVisionAVR dengan cara melakukan klik ganda pada shortcut ikon
CodeVisionAVR yang terbentuk pada Desktop.

11. kemudian IDE dari CodeVisionAVR akan muncul

12. Untuk memulai membuat project baru, pada menubar, pilih File New

13. membuat sebuah project sebagai induk desain dengan memilih Project, lalu klik tombol OK

14. Berikutnya akan ditanya apakah akan menggunakan CodeWizardAVR. Tentu saja lebih
menyenangkan bila Anda memilih jawaban ya dengan cara menekan tombol Yes

Mikrokontroller Syahud, S, M.Eng.


15. kemudian akan muncul tampilan CodeWizardAVR

16. seting CodeWizardAVR siap disimpan dalam file. Pada menu CodeWizardAVR, pilih File Generate,
Save and Exit

Agar file yang dihasilkan tidak berantakan, buatlah sebuah folder baru

Mikrokontroller Syahud, S, M.Eng.


17. Kemudian masuk kedalam folder tersebut untuk menyimpan file-file yang dihasilkan oleh
CodeWizardAVR. Yang pertama diminta untuk memberikan nama file C yang dihasilkan. Misalnya
beri nama coba, lalu klik tombol Save. File tersebut nantinya akan mempunyai akhiran .C.
Yang kedua Anda diminta untuk memberikan nama file project yang dihasilkan. Misalnya beri nama
coba, lalu klik tombol Save.. File tersebut nantinya akan mempunyai akhiran .prj.
Yang terakhir Anda diminta untuk memberikan nama file project CodeWizard yang dihasilkan.
Misalnya beri nama coba, lalu klik tombol Save. File tersebut nantinya akan mempunyai
akhiran .cwp.
18. Setelah ketiga file disimpan maka pada Project Navigator akan muncul nama project beserta file C-
nya. Secara bersamaan isi file C akan dibuka pada jendela editor

19. Langkah terakhir adalah menulis program seperti contoh gambar dibawah ini

Mikrokontroller Syahud, S, M.Eng.


3.3 PERANGKAT KERAS MODUL MIKROKONTROLELER AVR ATMEGA8535
Modul perangkat keras mikrokontroller AVR ATMega8535 adalah sabagai berikut :
a. modul standar

Mikrokontroller Syahud, S, M.Eng.


b. modul pengembangan

Mikrokontroller Syahud, S, M.Eng.


BAB IV
LED

I. Tujuan Instruksional Khusus :


Setelah Menyelesaikan praktek ini mahasiswa dapat :

1. dapat membuat program dan mendownload ke modul mikrokontroller


2. dapat menggunakan fungsi output pada mikrokontroler AVR
3. Dapat membuat program dengan output LED

II. Alat dan Bahan

Modul mikrokontroller
PC atau laptop
power supply DC

III. Dasar Teori:


Pada praktikum ini, akan dipelajari 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.
Atmega 8535 mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD.
Keempat port tersebut merupakan jalur bi-directional 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,

Mikrokontroller Syahud, S, M.Eng.


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 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 tri-state (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 portport 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).
Fungsi Delay
Menghasilkan delay dalam program-C. Berada pada header delay.h yang harus diIncludekan
sebelum digunakan. Sebelum memanggil fungsi, interrupsi harus dimatikan terlebih dahulu, bila
tidak maka delay akan lebih lama dari yang diharapkan. Juga sangat penting untuk menyebutkan
frekuensi clock chip IC AVR yang digunakan pada menu Project-Configure-C Compiler-Code
Generation.
Fungsi delay yang disediakan adalah:
void delay_us(unsigned int n)
menghasilkan delay selama n -detik, n adalah nilai konstan
void delay_ms(unsigned int n)
menghasilkan delay selama n mili-detik, n adalah nilai konstan

Mikrokontroller Syahud, S, M.Eng.


Gambar rangkaian percobaan LED

II. Langkah Kerja


1. Jalankan program codevision AVR
2. Mulai project Codevision AVR. File > New > Pilih Project > OK
Use codeWizardAVR? >NO<

Mikrokontroller Syahud, S, M.Eng.


3. simpan project kemudian akan muncul jendela berikut

4. Buat file tempat penulisan source code yang berektensi .c. yaitu, pilih File > New >
Pilih Source > OK.

5. ketikkan program berikut


a. Percobaan LED ON, percobaan menghidupkan LED sejumlah 4 buah
#include <mega8535.h>
void main(void)
{
DDRC=0xFF;
PORTC=0x0F;
}

simpan dengan nama file led1 kemudian compile, menu Project -Compile

Mikrokontroller Syahud, S, M.Eng.


b. Percobaan LED On/ Off dengan fungsi delay
#include <mega8535.h>
#include <delay.h>
void main(void)
{
DDRC= 0xFF;
while (1)
{
PORTC=0xFF;
delay_ms(1000);
PORTC=0x00;
delay_ms(1000);
}
}
impan dengan nama file led2 kemudian compile, menu Project -Compile
c. Percobaan LED dengan data Tabel
#include <mega8535.h>
#include <delay.h>
void main(void)
{
char urutan[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);
}
}
}
impan dengan nama file led3 kemudian compile, menu Project -Compile

Mikrokontroller Syahud, S, M.Eng.


6. Dowload program ke modul mikrokontroller dengan langkah langkah sebagai berikut
a. buka program progISP168

b. Cek koneksi komputer ke modul mikrokontroller dengan cara lihat dalam program
state apakah PRG ISP nyala atau tidak. jika sudah nyala berarti komputer dan modul
sudah terhubung dan siap untuk melakukan download program

c. Pilih load flash kemudian pilih file.hex yang di buat

Mikrokontroller Syahud, S, M.Eng.


d. Kemudian pilih erase dan auto

Mikrokontroller Syahud, S, M.Eng.


Tampilan setelah ditekan AUTO dan progra berhasil di download

e. Amati hasilnya pada modul

Mikrokontroller Syahud, S, M.Eng.


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

Mikrokontroller Syahud, S, M.Eng.


BAB V
SW PUSH BUTTON

IV. Tujuan Instruksional Khusus :


Setelah Menyelesaikan praktek ini mahasiswa dapat :

4. dapat membuat program dan mendownload ke modul mikrokontroller


5. dapat menggunakan fungsi input dan output pada mikrokontroler AVR
6. Dapat membuat program dengan input push button dan output LED

IV. Alat dan Bahan

Modul mikrokontroller
PC atau laptop
power supply DC

V. Dasar Teori:
Pada praktikum ini, akan dipelajari 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.

Gambar Rangkaian LED terhubung ke port C

Mikrokontroller Syahud, S, M.Eng.


Gambar Rangkaian Push Button terhubung ke port B

Konfigurasi menggunakan codewizard AVR

V. Langkah Kerja
1. Jalankan program codevision AVR
2. Mulai project Codevision AVR. File > New > Pilih Project > OK
Use codeWizardAVR? yes
3. ketikkan program berikut
a. Percobaan Input/Ouput
Pada percobaan ini PORTB difungsikan sebagai input dan PORTC difungsikan sebagai output.
#include <mega8535.h>
void main(void)
{
DDRC=0xFF;

Mikrokontroller Syahud, S, M.Eng.


DDRB=0x00;
PORTB=0xFF;
while (1)
{
PORTC=PINB;
}
}

simpan dengan nama file SW1 kemudian compile, menu Project -Compile

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;}
}
}

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

Mikrokontroller Syahud, S, M.Eng.


void main()
{
unsigned char i; //loop counter

DDRC = 0xFF; //PB as output


PORTC= 0x00; //keep all LEDs off

DDRB = 0x00; //PC as input


PORTB.0 = 1; //enable pull ups for
PORTB.1 = 1; //only first two pins

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 off 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 off all LEDs
}

};
}

Simpan dengan nama file sw3 kemudian compile, menu Project -Compile

1. Dowload program ke modul mikrokontroller dengan langkah langkah sebagai berikut


a. buka program progISP168
b. Cek koneksi komputer ke modul mikrokontroller dengan cara lihat dalam
program state apakah PRG ISP nyala atau tidak. jika sudah nyala berarti
komputer dan modul sudah terhubung dan siap untuk melakukan download
program
c. Pilih load flash kemudian pilih file.hex yang di buat

Mikrokontroller Syahud, S, M.Eng.


d. Kemudian pilih erase dan auto
e. Amati hasilnya pada modul
VI. Tugas
1. Buat program untuk menghidupkan LED dengan urutan nomor yang berbeda
dengan urutan nomor push button
2. 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 secara bergantian satu-satu mulai dari
pinggir ke tengah yang diaktifkan dengan SW no 3
4. Buat program untuk menjalankan LED dari pinggir ke tengah kemudian balik lagi
dari tengah ke pinggir yang diaktifkan dengan SW no 7
5. Buat Laporan dari semua program yang dibuat

Mikrokontroller Syahud, S, M.Eng.


BAB VI
SEVEN SEGMEN

I. Tujuan Instruksional Khusus :


Setelah Menyelesaikan praktek ini mahasiswa dapat :

1. Dapat membuat program dengan ouput seven segmen


2. Dapat menggunakan fungsi input dan output pada mikrokontroler AVR
3. Dapat membuat program dengan input push button dan output Seven Segmen

II. Alat dan Bahan

Modul mikrokontroller
PC atau laptop
power supply DC

III. Dasar Teori:


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

Mikrokontroller Syahud, S, M.Eng.


Data Display Seven Segmen

Pada tabel tersebut tampak bahwa untuk menghidupkan sebuah segmen, harus dikirimkan data
logika low 0 dan sebaliknya untuk mematikan segmen, harus dikirimkan data logika high 1.
Rangkaian decoder dan driver 7 Segmen

Mikrokontroller Syahud, S, M.Eng.


Tabel kebenaran 74LS138

Pada tabel kebenaran tersebut tampak bahwa seven segmen 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. Pada gambar tersebut seven segment commont anoda dikendalikan dengan
menggunakan transistor PNP melalui decoder 74LS138, apabila ada logika low pada basis
transistor, maka 7 segment akan nyala dan sebaliknya akan padam.
Konfigurasi menggunakan codewizard AVR

VII. Langkah Kerja


1. Jalankan program codevision AVR
2. Mulai project Codevision AVR. File > New > Pilih Project > OK
Use codeWizardAVR? yes
3. ketikkan program berikut
a. Menampilkan karakter angka di satu seven segmen
#include <mega8535.h>
#include<delay.h>
unsigned char data;
Mikrokontroller Syahud, S, M.Eng.
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;
case 6: PORTC=0b10000010;break;
case 7: PORTC=0b11111000;break;
case 8: PORTC=0b10000000;break;
case 9: PORTC=0b10010000;break;
default: PORTC=0xff;
}
}
void main (void)
{
DDRC=DDRD=PORTC=0xff;
PORTD.5=1;
PORTD.6=1;
PORTD.7=1;
while(1)
{
data=5;
convert();
}
}

simpan dengan nama file segmen1 kemudian compile, menu Project -Compile

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.

#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;

Mikrokontroller Syahud, S, M.Eng.


case 6: PORTC=0b10000010;break;
case 7: PORTC=0b11111000;break;
case 8: PORTC=0b10000000;break;
case 9: PORTC=0b10010000;break;
default: PORTC=0xff;
}
}
void main (void)
{
}

DDRC=DDRD=PORTC=0xff;
PORTD.5=1;
PORTD.6=1;
while(1)
{
convert();
data=data+1;
if(data==10){data=0;};
delay_ms(1000);
}
}

Simpan dengan nama file segmen2 kemudian compile, menu Project -Compile
c.Display 7 Segmen dengan Simulasi Setting data
Pada percobaan ini anda akan belajar bagaimana mensimulasikan setting data dengan display
pada 7 segmen.

#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;
}

Mikrokontroller Syahud, S, M.Eng.


dataTemp=data;
dataSat = dataTemp % 10; // sat = sisa dari data dibagi 10
dataPul = dataTemp / 10;

dataTemp=dataSat;
convert();
PORTD.5=1;
PORTD.6=0;
delay_ms(30);

dataTemp=dataPul;
convert();
PORTD.5=0;
PORTD.6=0;
delay_ms(30);

}
PORTC=0x00;
delay_ms(2000);
}
void convert(){
switch(dataTemp)
{
// pg fe dcba
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;
case 6: PORTC=0b10000010;break;
case 7: PORTC=0b11111000;break;
case 8: PORTC=0b10000000;break;
case 9: PORTC=0b10010000;break;
default: PORTC=0xff;
}
}

Simpan dengan nama file segmen3 kemudian compile, menu Project -Compile

4. Dowload program ke modul mikrokontroller dengan langkah langkah sebagai berikut


a. buka program progISP168
b. Cek koneksi komputer ke modul mikrokontroller dengan cara lihat dalam
program state apakah PRG ISP nyala atau tidak. jika sudah nyala berarti
komputer dan modul sudah terhubung dan siap untuk melakukan download
program
c. Pilih load flash kemudian pilih file.hex yang di buat
d. Kemudian pilih erase dan auto

Mikrokontroller Syahud, S, M.Eng.


e. Amati hasilnya pada modul
VIII. Tugas
a. Buat program untuk menuliskan karaktek pada 3 buah seven segmen
b. Buat program untuk menuliskan karakter angka dan huruf pada delapan seven
segmen

c. Buat program untuk menuliskan karakter pada seven segmen yang diaktifkan
dengan menekan push button

d. Buat program untuk menuliskan tulisan kelas anda mulai seven segmen no 3
dengan secara bergantian lalu hidup semua

e. Buat Laporan dari semua program yang dibuat

Mikrokontroller Syahud, S, M.Eng.


BAB VII
LCD KARAKTER 2 X 16

I. Tujuan Instruksional Khusus :


Setelah Menyelesaikan praktek ini mahasiswa dapat :

1. Dapat membuat program dengan ouput LCD karakter 2x16


2. Dapat menggunakan fungsi input dan output pada mikrokontroler AVR untuk
memprogram LCD karakter 2x16
3. Dapat membuat program dengan input push button dan output LCD karakter 2x 16

II. Alat dan Bahan

Modul mikrokontroller
PC atau laptop
power supply DC

III. Dasar Teori:


Pada percobaan ini akan dipelajari interface LCD (liquid crystal display ) dengan
mikrokontroller. LCD merupakan komponen display yang dapat menampilkan berbagai
macam karakter. Jenis LCD ada berbagai macam, dan yang paling sering digunakan adalah
LCD Karakter 2 x 16. Pada percobaan iini akan menggunakan LCD karakter 2 x16, dengan
interface pada PORTC, Codevision menyediakan fungsi-fungsi untuk keperluan pengelolaan
LCD.
Modul LCD Character dapat dengan mudah dihubungkan dengan mikrokontroller seperti
ATMega8535. LCD yang akan kita praktikumkan ini mempunyai lebar display 2 baris 16
kolom atau biasa disebut sebagai LCD Character 2x16, dengan 16 pin konektor,yang
didifinisikan sebagai berikut:
Gambar LCD Karakter 2x16

Mikrokontroller Syahud, S, M.Eng.


Memori LCD
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.

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 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.

INISIALISASI

Sebelum menggunakan modul LCD, kita harus melakukan inisialisasi dan


mengkonfigurasikannya. Hal ini dijalankan dengan mengirimkan sejumlah instruksi ke LCD.
Antara lain: pengaturan lebar data interface 8 bit atau 4 bit data bus, pemilihan ukuran font
karakter 5x8 atau 5x7 dan lain-lain, dengan instruksi sebagai berikut.
Konfigurasi Codevision dan koneksi hardware

Mikrokontroller Syahud, S, M.Eng.


Fungsi LCD
Fungsi LCD terletak pada header lcd.h yang harus di-include-kan sebelum digunakan. Sebelum
melakukan include terlebih dahulu sebutkan 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 <lcd.h>
Fungsi-fungsi untuk mengakses LCD diantaranya adalah :
a. 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.
b. void lcd_clear(void)
Menghapus layar LCD dan meletakkan posisi karakter pada baris ke-0 kolom ke-0.
c. 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.
d. void lcd_putchar(char c)
Menampilkan karakter c pada LCD.
e. void lcd_puts(char *str)
Menampilkan string yang disimpan pada SRAM pada LCD.

IX. Langkah Kerja


1. Jalankan program codevision AVR
2. Mulai project Codevision AVR. File > New > Pilih Project > OK
Use codeWizardAVR? yes
3. ketikkan program berikut
a. Percobaan Cetak Karakter pada baris 1
#include <mega8535.h>
#include <delay.h>
// Alphanumeric LCD Module functions

Mikrokontroller Syahud, S, M.Eng.


#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
//
#include <lcd.h>
// 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");
delay_ms(500);
}
}
simpan dengan nama file lcd1 kemudian compile, menu Project -Compile

b. Percobaan manipulasi nilai

#include <mega8535.h>
#include <lcd.h>
#include <stdio.h>
#include <delay.h>
// Alphanumeric LCD Module functions bisa di copy dari codeWizard CAVR
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
int LCD;
char lcd_buffer[33];
unsigned char x,y,hasil,hasil_1,hasil_2;
void main (void)
{
//PORT initialization as input or output
DDRA=DDRB=0x00;
DDRC=DDRD=PORTB=0xFF;
PORTA=PORTC=0x00;
LCD=1;
lcd_init(16); // inisialisasi lcd, kolom modul lcd =16.

Mikrokontroller Syahud, S, M.Eng.


lcd_gotoxy(0,0); // ke kolom x=0 dan baris y=0
lcd_putsf("Ngetes LCD"); //menampilkan tulisan Ngetes LCD
lcd_gotoxy(0,1); // kebaris ke 2 y=1
lcd_putsf("Program C & AVR");
delay_ms(1500);
x=1;y=1;
ulang: //label ulang
hasil=x+y;
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"hsl:%i",hasil);
lcd_puts(lcd_buffer);
lcd_gotoxy(8,0);
sprintf(lcd_buffer,"hsl-1:%i",hasil_1);
lcd_puts(lcd_buffer);
lcd_gotoxy(0,1);
sprintf(lcd_buffer,"hsl-2:%i",hasil_2);
lcd_puts(lcd_buffer);
hasil_2=hasil_1;
hasil_1=hasil;
x++;
delay_ms(500);
goto ulang; //kelabel ulang
}
Simpan dengan nama file lcd2 kemudian compile, menu Project -Compile
Pada program diatas, terdapat beberapa perintah..
#include <lcd.h> //meng-include kan fungsi-fungsi lcd
// Alphanumeric LCD Module functions bisa di copy dari codeWizard CAVR
// inisialisasi lcd dipasang diport mana
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
lcd_init(16); //inisialisasi lcd, yang digunakan adalah 16 baris
lcd_clear(); //meng-clear lcd, menulis kosong di lcd
lcd_gotoxy(x,y); //melompat ke kolom x dan baris y (x,y adalah nilai)

Mikrokontroller Syahud, S, M.Eng.


lcd_putsf( coba );
//menuliskan ke lcd, apa yang tertulis di dalam tanda petik dua, baik itu spasi
//menampilkan variable di lcd
#include <stdio.h> //dipersiapkan dulu untuk fungsi sprintf
char lcd_buffer[33]; //mempersiapkan buffer
sprintf(lcd_buffer,"hsl-1:%i",hasil_1);
//menampilkan tulisan hsl-1 dengan variable hasil_1
cd_puts(lcd_buffer); //menampilkan isi buffer
perintah-perintah dalam menampilkan di lcd,
%i = variable yang ditampilkan berupa integer
%c=variable yang ditampilkan berupa caracter
c. Percobaan manipulasi nilai II

#include <mega8535.h>
#include <lcd.h>
#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=0 dan baris y=0
sprintf(lcd_buffer,"%c",tulis[i]);
lcd_puts(lcd_buffer);
delay_ms(200);
}
}
}

Simpan dengan nama file lcd3 kemudian compile, menu Project -Compile

%f=menampilkan tipe float


%d=menampilkan bilangan bulat

Mikrokontroller Syahud, S, M.Eng.


/n=pindah ke baris selanjutnya
d. Percobaan manipulasi data III
#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>

Mikrokontroller Syahud, S, M.Eng.


// 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,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)

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==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.


4. Dowload program ke modul mikrokontroller dengan langkah langkah sebagai
berikut
a. buka program progISP168
b. Cek koneksi komputer ke modul mikrokontroller dengan cara lihat dalam
program state apakah PRG ISP nyala atau tidak. jika sudah nyala berarti
komputer dan modul sudah terhubung dan siap untuk melakukan download
program
c. Pilih load flash kemudian pilih file.hex yang di buat
d. Kemudian pilih erase dan auto
e. Amati hasilnya pada modul
X. Tugas
a. Buat program untuk menuliskan karaktek pada semua baris dan kolom LCD
b. Buat program untuk menuliskan tulisan berjalan dari kiri ke kanan pada baris satu

c. Buat program untuk menuliskan tulisan berjalan pada baris dua mulai dari tengah
LCD

d. Buat program untuk menuliskan tulisan kelas anda di LCD dengan menekan push
button

e. buat laporan dari praktek yang anda kerjakan

f. Buat Laporan dari semua program yang dibuat

Mikrokontroller Syahud, S, M.Eng.


BAB VIII
KEYPAD

I.Tujuan Instruksional Khusus :


Setelah Menyelesaikan praktek ini mahasiswa dapat :

1. Dapat membuat program dengan input Keypad


2. Dapat menggunakan fungsi input dan output pada mikrokontroler AVR untuk
memprogram keypad
3. Dapat membuat program dengan input push keypad dan output LED, LCD karakter 2x 16
dan seven segmen

II. Alat dan Bahan

Modul mikrokontroller
PC atau laptop
power supply DC

III. Dasar Teori:


Keypad merupakan komponen elektronik yang digunakan sebagai masukan, disususun dari
beberapa tombol/switch dengan teknik matrix. Berdasarkan penjelasan tersebut, bahwa
sebenarnya keypad merupakan tombol-tombol yang dirangkai menjadi sebuah paket
dengan teknik menghubungkan satu tombol dengan tombol yang lain dengan teknik matrix.
Teknik matrix adalah bisa dikatakan array, memiliki kolom dan baris lebih dari satu.
Berikut secara ilusrasi penghubungan tombol-tombol pada keypad. Rangkaian skematik
keyapad seperti gambar berikut

Mikrokontroller Syahud, S, M.Eng.


Tampilan fisik keypad seperti gambar berikut :

Rangkaian koneksi keypad dengan mikrokontroller

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

Mikrokontroller Syahud, S, M.Eng.


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

Mikrokontroller Syahud, S, M.Eng.


algoritma cara mengakses keypad:
Tentukan terlebih dahulu kolom sebagai output dari mikrokontroler sedangkan baris sebagai
input kemikrokontroler. 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)
Mikrokontroller Syahud, S, M.Eng.
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. Jalankan program codevision AVR
2. Mulai project Codevision AVR. File > New > Pilih Project > OK
Use codeWizardAVR? yes
3. ketikkan program berikut
a. Percobaan Keypad dengan display LED
#include <mega8535.h>
#include <delay.h>
#include <stdio.h>

// Alphanumeric LCD Module functions


#asm
.equ __lcd_port=0x15
#endasm
#include <lcd.h>

// Declare your global variables here


unsigned char dt, dtkey;
void detek_key(void);

void main(void)
{
// LCD module initialization
while (1)
{
// Place your code here
detek_key();
PORTC=dtkey;
delay_ms(5);
};
}

void detek_key(void) {
PORTB.4=0;
dt=(~PINB & 0x0F);
switch (dt)
{

Mikrokontroller Syahud, S, M.Eng.


case 1: dtkey=0x1;
break;
case 2: dtkey=0x4;
break;
case 4: dtkey=0x7;
break;
case 8: dtkey=0xa;
break;
};
PORTB.4=1; PORTB.5=0;
dt=(~PINB & 0x0F);
switch (dt) {
case 1: dtkey=0x2;
break;
case 2: dtkey=0x5;
break;
case 4: dtkey=0x8;
break;
case 8: dtkey=0x0;
break;
};
PORTB.5=1; PORTB.6=0;
dt=(~PINB & 0x0F);
switch (dt) {
case 1: dtkey=0x3;
break;
case 2: dtkey=0x6;
break;
case 4: dtkey=0x9;
break;
case 8: dtkey=0xb;
break;
};
PORTB.6=1; PORTD.7=0;
dt=(~PINB & 0x0F);
switch (dt)
{
case 1: dtkey=0xc;
break;
case 2: dtkey=0xd;
break;
case 4: dtkey=0xe;
break;
case 8: dtkey=0xf;
break;
};
PORTB.7=1;
}

simpan dengan nama file keypad1 kemudian compile, menu Project -Compile

Mikrokontroller Syahud, S, M.Eng.


b. Percobaan Keypad dengan 7 Segmen
Pada percobaan ini, setiap penekanan tombol pada keypad, data akan didisplaykan ke
7 segmen. Pada percobaan ini perlu dilakukan konfigurasi pada interface 7 segmen
yang terhubung ke PORTC dan PORTD, dan keypad terhubung ke PORTB

#include <mega8535.h>
#include <delay.h>
#include <stdio.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15
#endasm
#include <lcd.h>

// Declare your global variables here


unsigned char dt, dtkey;
void detek_key(void);
void convert();
unsigned char data;

void main(void)
{
PORTB=0xFF;
DDRB=0xF0;

PORTC=0x00;
DDRC=0xFF;
// LCD module initialization
while (1)
{
// Place your code here
detek_key();
data=dtkey;
convert();
PORTD.5=0;

Mikrokontroller Syahud, S, M.Eng.


PORTD.6=0;
delay_ms(5);
};
}

void detek_key(void) {
PORTB.4=0;
dt=(~PINB & 0x0F);
switch (dt)
{
case 1: dtkey=0x1;
break;
case 2: dtkey=0x4;
break;
case 4: dtkey=0x7;
break;
case 8: dtkey=0xa;
break;
};
PORTB.4=1; PORTB.5=0;
dt=(~PINB & 0x0F);
switch (dt) {
case 1: dtkey=0x2;
break;
case 2: dtkey=0x5;
break;
case 4: dtkey=0x8;
break;
case 8: dtkey=0x0;
break;
};
PORTB.5=1; PORTB.6=0;
dt=(~PINB & 0x0F);
switch (dt) {
case 1: dtkey=0x3;

Mikrokontroller Syahud, S, M.Eng.


break;
case 2: dtkey=0x6;
break;
case 4: dtkey=0x9;
break;
case 8: dtkey=0xb;
break;
};
PORTB.6=1; PORTD.7=0;
dt=(~PINB & 0x0F);
switch (dt)
{
case 1: dtkey=0xc;
break;
case 2: dtkey=0xd;
break;
case 4: dtkey=0xe;
break;
case 8: dtkey=0xf;
break;
};

PORTB.7=1;
}

void convert(){
switch(data)
{
// pg fe dcba
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;
Mikrokontroller Syahud, S, M.Eng.
case 6: PORTC=0b10000010;break;
case 7: PORTC=0b11111000;break;
case 8: PORTC=0b10000000;break;
case 9: PORTC=0b10010000;break;
default: PORTC=0xff;
}
}
Simpan dengan nama file keypad2 kemudian compile, menu Project -Compile

5. Dowload program ke modul mikrokontroller dengan langkah langkah sebagai


berikut
a. buka program progISP168
b. Cek koneksi komputer ke modul mikrokontroller dengan cara lihat dalam
program state apakah PRG ISP nyala atau tidak. jika sudah nyala berarti
komputer dan modul sudah terhubung dan siap untuk melakukan download
program
c. Pilih load flash kemudian pilih file.hex yang di buat
d. Kemudian pilih erase dan auto
e. Amati hasilnya pada modul
V.Tugas
1. modifikasi program untuk mengaktifkan led berjalan dengan menekan salah
satu tombol keypad

2. 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. buat laporan dari praktek yang anda kerjakan

Mikrokontroller Syahud, S, M.Eng.


DAFTAR PUSTAKA

[1] Ardi Winoto, 2008, Mikrokontroler AVR ATMega8/32/16/8535 dan Pemrogramannya


dengan Bahasa C pada WinAVR,Informatika, Jakarta

[2] Lingga Wardana, 2006, Belajar Sendiri Mikrokontroler AVR Seri ATMega8535: Simulasi,
Hardware dan Aplikasi, Andi Offset, Yogyakarta

[3] Syahrul, 2014, Pemrograman Mikrokontroler AVR: Bahasa Assembly dan C, Infromatika,
Jakarta

[4] Syahrul, 2012, Mikrokontroler AVR ATMEGA8535 + CD, Infromatika, Jakarta

[5] http://www.atmel.com/devices/ATMEGA8535.aspx

Mikrokontroller Syahud, S, M.Eng.

Anda mungkin juga menyukai