Anda di halaman 1dari 30

LAPORAN PRAKTIKUM

MIKROKONTROLER I

oleh:
Nuraini Amelia
217341041
2 AEB

TEKNIK OTOMASI MANUFAKTUR DAN MEKATRONIKA


POLITEKNIK MANUFAKTUR NEGERI BANDUNG
Jl. Kanayakan no. 21, DAGO 40235, Tromol Pos 851 BANDUNG 40008 INDONESIA
Phone : 62 022 2500241 Fax : 62 022 2502649 Homepage : http ://www.polman-bandung.ac.id
Februari 2019
Pemodelan Sistem Fisik
Kelas : 2 AEB
PENDAHULUAN
PROSEDUR PENGGUNAAN SOFTWARE

Praktikum Mikroprosesor kali ini menggunakan 3 aplikasi untuk menunjang kelancaran pada
proses praktikum, yaitu Code Vision AVR sebagai aplikasi untuk penulisan program, Extreme
Burner sebagai aplikasi downloader, dan splikasi Zadig sebagai driver.

A. CODE VISION AVR


CodeVisionAVR merupakan sebuah cross-compiler C, Integrated Development
Environtment (IDE), dan Automatic Program Generator yang didesain untuk mikrokontroler
buatan Atmel seri AVR. Cross-compiler C mampu menerjemahkan hampir semua perintah
dari bahasa ANSI C, sejauh yang diijinkan oleh arsitektur dari AVR, dengan tambahan
beberapa fitur untuk mengambil kelebihan khusus dari arsitektur AVR dan kebutuhan pada
sistem embedded.
CodeVision AVR merupakan sebuah software yang digunakan untuk memprogram
mikrokontroler sekarang ini telah umum. Mulai dari penggunaan untuk kontrol sederhana
sampai kontrol yang cukup kompleks, mikrokontroler dapat berfungsi jika telah diisi sebuah
program, pengisian program ini dapat dilakukan menggunakan compiler yang selanjutnya
diprogram ke dalam mikrokontroler menggunakan fasilitas yang sudah di sediakan oleh
program tersebut. Salah satu compiler program yang umum digunakan sekarang ini adalah
CodeVision AVR yang menggunakan bahasa pemrograman C.
Berikut adalah langkah-langkah awal menggunakan Code Vision AVR.

1. Buka software Code Vision AVR yang telah berhasil di-install


Pemodelan Sistem Fisik
Kelas : 2 AEB

2. Dari File, pilih New, kemudian klik Project.

3. Pilih Yes.

4. Karena kita akan menggunkan Atmega8535, pilih opsi Atmega


Pemodelan Sistem Fisik
Kelas : 2 AEB
5. Bagian ini akan memberikan detail pengaturan dari program yang akan dibuat,
disesuaikan degan jenis modul yang akan dipakai. Perhatikan user guide modul yang
digunakan.

6. Setelah selesai, dari File pilih Generate, Save, and Exit untuk menyimpan program.
Pilih folder tempat program akan disimpan. Untuk memudahkan pekerjaan, untuk
penamaan program yang dilakukan sebanyak 3 kali untuk jenis file yang berbeda,
gunakan nama yang sama.
7. Setelah selesai menulis program, ambil Project dan pilih Build All (CTRL+F9).
Langkah ini akan mengubah file .c menjadi .hex.

B. ZADIG
Zadig digunakan untuk menginstal driver yang kompatibel libusb, untuk perangkat
yang belum memiliki driver tersebut diinstal. Berikut prosedur penginstalan aplikasi Zadig.

1. Setelah membuka aplikasi zadig, akan keluar tampilan seperti di bawah ini. ubah
Driver menjadi libusb-win32(v1.2.6.0).
Pemodelan Sistem Fisik
Kelas : 2 AEB

2. Pilih Install WCID Driver. Setelah selesai, dapat melanjutkan ke langkah selanjutnya.

C. EXTREME BURNER
eXtreme Burner merupakan software kecil yang berfngsi untuk melakukan download dan
upload program pada chip IC. Software ini dapat melakukan write & read pada IC berupa
flash atau EEPROM nya. Berikut adalah langkah-langkah menggunakan eXtreme Burner.

1. Buka aplikasi eXtreme Burner.


Pemodelan Sistem Fisik
Kelas : 2 AEB

2. Dari Chip, pilih aTmega8535

3. Klik Open, kemudian pilih file (.hex) yang akan di-upload.


4. Pilih Write All, untuk upload program ke aTmega8535.
5. Jika proses upload berhasil dan menampilkan tampilan sebagai berikut, program yang
dibuar sudah dapat dijalankan pada modul.
Pemodelan Sistem Fisik
Kelas : 2 AEB
ISI

LATIHAN PRAKTIKUM
A. PRAKTIKUM 1 (LED DISPLAY)
a. Praktikum 1.a

b. Praktikum 1.b

c. Praktikum 1.c
Pemodelan Sistem Fisik
Kelas : 2 AEB
Flowchart program :

START

Hasil output dari


PORTB

Lampu 5-8
menyala

STOP

Analisa :
Program di atas merupakan contoh dari program pengaturan nyala lampu LED. dalam
program tersebut dapat dilihat bahwa “0x00” merupakan input, sedangkan “0xFF”
merupakan penjelasan port yang digunakan sebagai output. Praktikum 1.a menggunakan
prinsip biner, praktikum 1.b menggunakan prinsip bilangan hexadecimal, dan praktikum 1.c
menggunakan pengaturan nyala lampu berdasarkan alamat port. Output dari program tersebut
pada modul adalah lampu 1-4 mati dan lampu 5-8 nyala.

B. PRAKTIKUM 2 (INPUT/OUTPUT)
Pemodelan Sistem Fisik
Kelas : 2 AEB

START A B

Deklarasi variabel Button LED akan


Tombol ditekan menyala
sesuai
urutan
Deklarasi port C button yang
sebagai input ditekan
PINC =
Deklarasi port B 0?
sebagai output
END

Deklarasi nilai pada PORT B


Tombol = PINC mengeluarkan
output sama
Deklarasi nilai pada
dengan PINC
PORTB = PINC

A B

Analisa :
Program di atas menggunakan “unsigned” dan “~”. “unsigned” disini digunakan ketika
menggunakan variabel bertipe char tidak bertanda, tipe data tersebut memiliki range 0-255.
Ada pula “signed”, yaitu variabel bertipe char bertanda dengan range -128 sampai 128. “~”
atau disebut juga dengan tanda negasi, dapat diartikan sebagai tanda minus. Maksud tanda
negasi disini adalah jika saklar tersebut menggunakan Active High, setelah diberi tanda
negasi akan berubah menggunakan Active Low.
Pemodelan Sistem Fisik
Kelas : 2 AEB
C. PRAKTIKUM 3 (DELAY)

START A B

Deklarasi port B LED 1 – 6,8 LED 1 – 4,6-8


sebagai output menyala menyala
LED 7 mati LED 5 mati
Output
PORTB = Output
Delay = 100 ms
0b00000001 PORTB =
0b00001000

LED 1 – 7 Output
menyala PORTB = Delay = 100 ms
0b00000100
LED 8 mati

LED 1 – 5,7,8 END


Delay = 100 ms
menyala
LED 6 mati
Output
PORTB =
0b00000010 Delay = 100 ms

B
A

Analisa :
Pemodelan Sistem Fisik
Kelas : 2 AEB
Program di atas akan menghasilkan output pada modul berupa running LED. coding
sederhana dari running LED dapat menggunakan delay. Nyala lampu akan diatur dengan
delay, atau disebut juga timer. Atur delay (dalam milisekon) agar sesuai dengan jeda running
LED yang diinginkan.

D. PRAKTIKUM 4 (INSTRUKSI BERSYARAT)


a. Praktikum 4.a

b. Praktikum 4.b
Pemodelan Sistem Fisik
Kelas : 2 AEB

Analisa :
Hasil dari praktikum 4.a ialah jika switch 1 on maka lampu 5-8 yang nyala, ketika switch 2
juga on, maka semua lampu akan nyala. Ketika switch 3 di on kan maka semua lampu akan
mati.
Sedangkan praktikum 4.b menggunakan logika OR yang disimbolkan ‘|’ sedangkan AND
disimbolkan ‘&’. Jadi, ketika switch 1 atau 2 dalam posisi low (karena switch menggunakan
aktif low) lampu 5-8 akan menyala. Sedangkan untuk mematikan lampu tersebut switch 3 dan
4 harus dalam posisi low.
Pemodelan Sistem Fisik
Kelas : 2 AEB
Flowchart program OR :

START

Deklarasi file header

Deklarasi port A
sebagai input
Deklarasi port C
sebagai output

Button 1 atau
2 ditekan

PIN 0 = PIN 1 =
LOW? LOW?

LED 5-8
menyala

END
Pemodelan Sistem Fisik
Kelas : 2 AEB
Flowchart program AND :

START

Deklarasi file header

Deklarasi port A
sebagai input
Deklarasi port C
sebagai output

Button 3 dan
4 ditekan

T PIN 2 =
LOW?

PIN 3 = T
LOW?

LED 1-4
menyala

END
Pemodelan Sistem Fisik
Kelas : 2 AEB
E. PRAKTIKUM 5 (SEVEN SEGMENT)
Pemodelan Sistem Fisik
Kelas : 2 AEB

START

Deklarasi file header

Deklarasi port B dan C


sebagai output

Seven
segment
menampilkan
angka 1

Delay 1 milisecond

Seven
segment
menampilkan
angka 0

Delay 1 milisecond

END

Analisa :
Pada program ini PORTB mengatur posisi angka yang akan ditampilkan, sedangkan PORTC
mengatur angka yang akan ditampilkan. Pengaturan angka pada seven segment dapat dilihat
di User Guide Seven Segment. Seven Segment menggunakan prinsip Active Low. Perintah
“PORTB=0XF9” berfungsi untuk mendeklarasikan nilai data output pada port B untuk
membentuk angka 1 pada seven segment. Perintah “PORTC=0XFD” berfungsi untuk
mendeklarasikan nilai data output pada port C untuk mengaktifkan (enable) seven segment
paling kiri. perintah “delay_ms” berfungsi untuk memberikan delay/jangka waktu tertentu
Pemodelan Sistem Fisik
Kelas : 2 AEB
dalam satuan millisecond. “PORTB=0XC0” berfungsi untuk mendeklarasikan nilai data
output pada port B untuk membentuk angka 0 pada seven segment.

F. PRAKTIKUM 7 (ANTARMUKA KE KEYPAD)


Pemodelan Sistem Fisik
Kelas : 2 AEB

START

Deklarasi file header

Deklarasi port A sebagai input


port B dan C sebagai output

Tombol keypad
ditekan

T Pin kolom
= LOW?

Pin baris = T
LOW?

Y
Seven segment
menampilkan
angka

END

Analisa :
Output dari program ini adalah, tombol keypad mengatur tampilan seven segment. Misal,
ketika tombol 1 ditekan maka seven segment akan menampilkan angka 1, dst. Pada program
di atas dapat dilihat bahwa PORTB digunakan sebagai input dan PORTC digunakan sebagai
Pemodelan Sistem Fisik
Kelas : 2 AEB
output. PINC digunakan untuk mengatur row pada tombol keypad, sedangkan PORTB
digunakan untuk mengatur column pada tombol keypad. Prinsip kerja program tersebut
adalah, row keypad sudah aktif sejak awal, kemudian jika ditekan salah satu tombol column
akan memulai proses akhir dan menghasilkan output yang diinginkan.

G. PRAKTIKUM 8 (ANTARMUKA KE LCD)


Pemodelan Sistem Fisik
Kelas : 2 AEB

START

Deklarasi port A
sebagai output

Menampilkan
"Test LCD" Di
baris pertama

Menampilkan
"POLMAN" Di
baris kedua

END

Analisa :
Jika menggunakan modul LCD, sebelum melakukan proses “Generate, Save, and Exit”, atur
terlebih dahulu “Alphanumeric LCD”. Perhatikan User Guide LCD dari modul yang akan
digunakan.
Hasil program tersebut adalah munculnya “Test LCD” di bari pertama dan “POLMAN” di
baris kedua. Coding lcd_init() berfungsi sebagai nominal maksimal huruf yang dapat
ditampilkan ke layar LCD. Fungsi lcd_gotoxy() digunakan untuk mengatur posisi tulisan
yang akan ditampilkan. Fungsi lcd_puts() digunakan untuk menuliskan tulisa yang akan
ditampilkan pada LCD.
Pemodelan Sistem Fisik
Kelas : 2 AEB
TUGAS
A. TUGAS 1 (SEVEN SEGMENT)

Analisa:
Program di atas akan menampilkan urutan tanggal-bulan kelahiran, dimana akan ditampilkan
angka “2505”. Pada program untuk seven segment semua inisialisasi DDR dan PORT adalah
sama. Walaupun sebenarnya untuk inisialisasi void main dapat hanya dengan PORT yang
digunakan saja. Program ini menggunakan 2 keluaran yaitu untuk pin – pin dari 7segment
tersebut dan enabled dari 7segment mana saja yang akan dipakai. PORTB mengatur posisi
angka yang akan ditampilkan, sedangkan PORTC mengatur angka yang akan ditampilkan.
Pengaturan angka pada seven segment dapat dilihat di User Guide Seven Segment. Seven
Segment menggunakan prinsip Active Low.

B. TUGAS 2 (KEYPAD TO LED)


Pemodelan Sistem Fisik
Kelas : 2 AEB

Analisa :
Output dari program ini adalah, apabila salah satu tombol keypad ditekan akan menyalakan
lampu LED sesuai dengan urutan binernya. Pada program di atas dapat dilihat bahwa PORTA
digunakan sebagai input dan PORTC digunakan sebagai output. PINC digunakan untuk
mengatur row pada tombol keypad, sedangkan PORTA digunakan untuk mengatur column
pada tombol keypad. Prinsip kerja program tersebut adalah, row keypad sudah aktif sejak
awal, kemudian jika ditekan salah satu tombol column akan memulai proses akhir dan
menghasilkan output yang diinginkan. Tanda negasi digunakan agar lampu tidak kedap-
kedip.

C. TUGAS 3 (LCD)
Pemodelan Sistem Fisik
Kelas : 2 AEB

Analisa :
Jika menggunakan modul LCD, sebelum melakukan proses “Generate, Save, and Exit”, atur
terlebih dahulu “Alphanumeric LCD”. Perhatikan User Guide LCD dari modul yang akan
digunakan.
Hasil program tersebut adalah munculnya “NURAINI AMELIA” di baris pertama dan
“217341041” di baris kedua. Coding lcd_init() berfungsi sebagai nominal maksimal huruf
yang dapat ditampilkan ke layar LCD. Fungsi lcd_gotoxy() digunakan untuk mengatur posisi
tulisan yang akan ditampilkan. Fungsi lcd_puts() digunakan untuk menuliskan tulisa yang
akan ditampilkan pada LCD.

D. TUGAS 4 (MOTOR STEPPER - WIPER)

Analisa :
Program ini bertujuan untuk menghasilkan output putaran motor stepper pada port B. Pada
praktikum ini menggunakan driver motor stepper a4988 sehingga kita tidak perlu lagi
Pemodelan Sistem Fisik
Kelas : 2 AEB
mensetting masuk keluarnya pulsa agar stepper dapat bergerak cukup dengan mengaktifkan
PORT yang tersedia dan sesuai dengan data sheet driver. Perintah “DDRB” berfungsi untuk
mendeklarasikan port B sebagai output karna di beri nilai 0xFF. Perintah PORTB.2=1
berfungsi untuk mengaktifkan motor stepper (enable). Perintah PORTB.1=1 berfungsi
sebagai settingan arah putar atau direksi pada motor stepper, jika diberi tegangan maka motor
stepper akan bergerak counter clockwise dan sebaliknya jika tidak diberi tegangan akan
bergerak clockwise dan dikarenakan modul berfungsi sebagai aktif LOW maka pada program
ini arah motor stepper akan menjadi clockwise. Perintah PORTB.3,PORTB.6, dan PORTB.7
berfungsi sebagai control step pada motor stepper yang biasa disebut dengan secara berurutan
yaitu “MS1”,”MS2” dan “MS3. Kita dapat melihat settinganya pada data sheet driver motor
stepper a4988 yang salah satu settinganya adalah seperti dalam program yaitu MS1 sampe
dengan MS3 secara berurutan diberikan LOW HIGH LOW yang artinya motor stepper akan
bergerak dengan settingan quarter step atau satu per empat step. Perintah delay_ms berfungsi
untuk memberikan delay waktu tertentu dalam satuan millisecond. PORTB.0 adalah port step
berfungsi untuk memberikan sinyal pada motor stepper untuk bergerak. Sinyal pada motor
stepper di wajibkan menjadi HIGH LOW secara bergantian agar dapat menggerakan motor
stepper, dengan menggunakan delay seperti program diatas syarat pada port step terpenuhi.

E. TUGAS 5 (TOMBOL 2 FUNGSI)


Pemodelan Sistem Fisik
Kelas : 2 AEB

Analisa :
Pada program diatas menggunakan system dari array untuk memanggil keluarannya dan juga
menggunakan 3 variabel untuk membantu pemisalannya. PORTC digunakan sebagai input
dan PORTA sebagai output.
Cara kerja program tersebut adalah sebagai berikut. Misal untuk menyalakan lampu LED,
tekan tombol tersebut, akan mengubah x dan pemisalan a menjadi bernilai 1. Setelah tombol
dilepas, dengan menggunakan syarat (logika AND) a=1, akan mengubah b menjadi bernilai
1. Kemudian untuk mematikan lampu LED, tekan kembali tombol yang sama, dengan
menggunakan syarat b=1maka akan mengubah c menjadi bernilai 1 dan x menjadi bernilai 0.
Ketika tombol dilepas, dengan menggunakan syarat c=1 akan mengubah a, b, c menjadi
bernilai 0, dapat diartikan sebagai reset. X=1dapat diartikan sebagai ON, dalam program
menggunakan array “0x01”, sedangkan x=0 dapat diartikan sebagai OFF, dalam program
menggunakan array “0x00”. Atur delay_ms() agar nyala lampu sesuai dengan yang
diinginkan.

F. TUGAS 6 (COUNTER 7 SEGMENT)


Pemodelan Sistem Fisik
Kelas : 2 AEB

Analisa :
Cara kerja program ini yaitu ketika tombol 1 (Start) ditekan berulang kali akan merubah
variabel x secara terus menerus. Ketika x=1, maka angka pada seven segment akan
bertambah 1. Ketika angka pada digit pertama mencapai angka 9 dan tombol ditekan maka
digit didepannya akan bertambah 1 dan digit pertama akan kembali ke 0, dan seterusnya.
Ketika tombol kedua ditekan, maka semua variabel akan dikembalikan menjadi 0, ini disebut
tombol reset.
Program ini menggunakan PORTC sebagai input melalui keypad, PORTB digunakan sebagai
output yang mengatur seven segment, dan PORTD sebagai output untuk enable seven
segment. Program ini menggunakan array dan beberapa pemisalan untuk membentuk logika
kerjanya. Dalam array f[10] merupakan pengaturan mengenai bilangan yang muncul dalam
seven segment. Seperti, jika angka satu yang keluardi seven segment, maka menggunakan
coding “0xF9”.
Cara kerja program ini yaitu jika tombol 1 ditekan (Start) maka akan membuat x melakukan
perhitungan tambah, disimbolkan dengan “x++”. Setelah tombol 1 dilepas, akan merubah x
menjadi bernilai 0, dimana dapat diartikan bahwa perhitungan berhenti. Dapat diambil
kesimpulan bahwa variabel x akan bertambah hanya jika tombol 1 ditekan. Kemudian apabila
tombol 2 (Reset) ditekan akan merubah semua pemisalan menjadi bernilai 0, dimana dapat
diartikan perhitungan kembali dimulai dari angka 0.
Pemodelan Sistem Fisik
Kelas : 2 AEB

G. TUGAS 7 (STOPWATCH)

Analisa :
Pada program di atas, dapat dilihat bahwa PORTC digunakan sebagai input untuk
penghubung ke keypad, PORTB sebagai output untuk mengatur seven segment, dan PORTD
digunakan sebagai output untuk enable seven segment. Sama seperti program sebelumnya,
program ini menggunakan array dan beberapa pemisalan. Program ini menggunakan coding
“unsigned” karena menggunakan tipe data char dengan range 0-255.
Cara kerja program ini yaitu ketika tombol 1 (Start) ditekan, dengan menggunakan syarat x=0
maka akan merubah variabel x menjadi bernilai 1, dimana dapat diartikan perhitungan waktu
dimulai. Jika tombol 2 (Pause) ditekan, maka akan mengubah nilai x menjadi 2. Dimana akan
menghentikan perhitungan. Untuk melanjutkan perhitungan, tekan tombol 3 (Resume),
dengan menggunakan syarat x=2 akan mengubah x menjadi bernilai 1. Dan untuk melakukan
reset, dapat menekan tombol 4 (Reset).
Pemodelan Sistem Fisik
Kelas : 2 AEB
H. TUGAS 8 (MOTOR DC)

Analisa :
Program ini bertujuan menyalakan motor DC yang memiliki 3 kecepatan dan 2 arah dengan
pemograman dari CVAVR.
“unsigned char hpwm dan lpwm” berfungsi untuk mendeklarasikan hpwm dan lpwm dan
dimulai bit dari 0.
Untuk motor DC terdapat port spesial yaitu hanya di port d motor DC dapat di atur pwm nya.
Ada beberapa pengaturan untuk motor DC yaitu:
 “ TCNT” merupakan register pencacah dari 0 sampai nilai maximum yg kita tentukan.
 “TCCR” merupakan untuk pengaturan mode operasi Timer/Counter.
 “ICR1” untuk mengatur nilai puncak PWM
 “OCR1” untuk mengatur duty cycle yang diinginkan.
Pemodelan Sistem Fisik
Kelas : 2 AEB
Pada pemrograman motor DC ini terdapat beberapa input yang dipakai, seperti input 0
sampai 2 berfungsi untuk mengatur kecepatan yang digunakan, input 3 dan 4 mengatur arah
putaran dari motor DC, sedangkan input 5 untuk pengereman atau memberhentikan motor
DC.
Untuk perputaran arah kita dapat mengubah pengaturan pada PORTD.4 dan PORTD.5.
Ketika PORTD.4 diberi nilai 0 maka motor berputar counterclockwise. Apabila PORTD.5
bernilai 0 maka motor berputar clockwise.
Untuk mengatur kecepatan dapat dilakukan melalui pengaturan duty cycle. OCR1A mengatur
kecepatan motor DC dengan arah counterclockwise, sedangkan OCR1B mengatur kecepatan
motor DC dengan arah clockwise.
Pemodelan Sistem Fisik
Kelas : 2 AEB
PENUTUP

A. KESIMPULAN
Setelah praktikum mikrokontroler selama 1 minggu, diharapkan mahasiswa dapat mengingat
dasar-dasar yang telah diajarkan,serta dapat mempelajari lebih lanjut serta
mengapliksikannya pada kehidupan sehari-hari. Semoga pelajaran yang telah dipelajari ini
dapat digunakan saat pembuatan proyek mikrokontroler pada minggu praktik kedua dari
praktik mikrokontroler.

Anda mungkin juga menyukai