You are on page 1of 11

BAB I

TUJUAN

Percobaan ini bertujuan untuk:


1. Mampu membuat lembar kerja baru pada cvavr, baik menggunakan CodeWizard
maupun pemrograman
2. Memahami cara membuat port pada cvavr berfungsi sebagai output beserta
programnya
3. Mampu menerapkan program pada modul ATmega8535 dengan benar
BAB II
KAJIAN TEORI

Pheriperal mikrokontroler keluarga AVR (ATMega16/8535) memungkinkan untuk diset


sebagai keluaran dan masukan. Pengaturan tersebut dapat dilakukan dengan bantuan Code
Wizard AVR pada salah satu port yang diinginkan. Penggunaan program secara langsung
juga dapat dilakukan untuk megatur fungsi dari pada setiap port pada mikrokontroler. Berikut
gambaran secara umum;

Gb.1a Pengaturan port mikrocontroler codewizard 1b Pengaturan port secara program

Sebagai contoh pengaturan port-A pada gambar diatas (1a), menunjukkan pada data direction
sebagai Output memiliki nilai keluaran dua buah, yaitu 0 (low=0) dan 1 (high=+5V). Nilai
keluaran pengaturan port mikro menentukan nilai default awal dari keluarannya. Sedangkan
pengaturan port secara program (1b) seperti penulisan diatas, memiliki fungsi pada setiap
instruksi sebagai berikut;
PORTA=0xXX;  pengaturan terhadap nilai keluaran Port –A
0xFF; nilai keluaran Port-A pada setiap Bit = Tinggi (0b11111111)
0x00;  nilai keluaran Port-A pada setiap Bit = Rendah(0b0000000)
0x0F; nilai keluaran Port-A pada 4 bit LSB = Tinggi dan 4 bit MSB = Rendah
(00001111)

DDRA=0xXX;  pengaturan terhadap fungsi port-A


0xFF;  Nilai pengaturan port-A pada semua bit sebagai keluaran/output
(0b11111111)
0x00;  Nilai pengaturan port-A pada semua bit sebagai masukan/input
(0b00000000)
0x0F; Nilai pengaturan port-A pada 4 bil LSB sebagai keluaran dan 4 bit MSB
sebagai masukan (0b00001111)

Kembali sebagai fungsi keluaran, dapat mempengaruhi kerja dari pada hardware atau
rangkaian yang nantinya akan diakses. Ada beberapa tipe kerja rangkaian untuk
mengaksesnya, yaitu Aktif LOW dan Aktif High. Aktif LOW merupakan kerja rangkaian
yang dapat dioperasikan/di –ON – kan dengan diberi logika rendah (“0”/0). Sedangkan Aktif
HIGH merupakan kerja rangkaian yang dapat dioperasikan/di-ON-kan dengan diberi logika
tinggi (“1”/+5V). Berdasarkan skematik dari kerja rangkaian diatas dapat digambarkan
sebagai berikut:
Pengaturan nilai keluaran setiap port disesuaikan dengan prinsip kerja rangkaian yang akan
dioperasikan. Secara logika untuk pengaturan nilai keluaran pada setiap port harus
berkebalikan dengan logika untuk menghidupkan/mengoperasikan rangkaian tersebut.
Misalkan, rangkaian LED aktif low, maka nilai keluaran pada CodeWizard harus diatur
dengan nilai 1/Tinggi.
Sedangkan sebaliknya, untuk rangkaian LED aktif high, maka nilai keluaran diatur dengan
nilai 0/Rendah. Modul Led yang digunakan dalam praktik memiliki kerja aktif low, sehingga
nilai keluaran port-A harus diatur menjadi Tinggi. Pengaturan tersebut dengan tujuan untuk
mematikan rangkaian saat pertama kali dihidupkan, atau bisa dikatakan tidak langsung
bekerja.
Instruksi yang digunakan dalam CVAVR untuk meng-akses atau mengeluarkan data (output)
ke salah satu Port sudah baku. Ada dua macam peng-akses-an port, yaitu secara bersamaan
dan secara satu-persatu pin/bit. Sebagai contohnya adalah berikut ini (Akses ke -PORTA);
Instruksi CVAVR Secara bersamaan:

PORTA=0x0F; pada 8 bit data PORTA akan mengeluarkan data 00001111


atau
PORTA=0b00001111; pada 8 bit data PORTA akan mengeluarkan data 00001111

Instruksi CVAVR Secara per-bit:


PORTA.0=0; Pada bit ke-0 PORTA akan mengeluarkan data 0 (low/0)
PORTA.3=0; Pada bit ke-3 PORTA akan mengeluarkan data 0 (low/0)
PORTA.4=1; Pada bit ke-4 PORTA akan mengeluarkan data 1 (high/+5V)
PORTA.7=1; Pada bit ke-4 PORTA akan mengeluarkan data 1 (high/+5V)
dst.

Instruksi dapat di ilustrasikan sebagai berikut:


BAB III
HASIL KERJA

1. Menghidupkan 4 LED dari kanan dan 4 berikutnya mati

2. Menghidupkan LED bergantian dari kanan ke kiri


BAB IV
LANGKAH KERJA

1. Menghidupkan 4 LED dari kanan dan 4 berikutnya mati


a. Buka software CVAVR terlebih dahulu
b. Buat lembar kerja baru dengan cara:
 Klik file pada bagian toolbars
 Lalu klik New, dan pilih Project
 Setelah itu muncul pilihan, Yes atau No, apakah pada project akan digunakan
CodeWizard atau tidak dan pada project atau percobaan ini pratikan menggunakan
CodeWizard sehingga untuk itu klik Yes
 Selanjutnya muncul pilihan AT90, ATtiny, ATmega atau XMEG, apakah pada
project akan digunakan tipe chip AT atau XMEGA, karena pada percobaan ini
praktikan menggunakan tipe chip AT, maka klik AT90, ATtiny, ATmega
 Kemudian klik pada bagian Chip, setting chip pada ATmega8535 dan clock pada
8MHz
 Lalu klik pada bagian Ports, dan muncul bagian dari Ports tersebut, dan pada
PortC klik semua In pada masing-masing bit sehingga berubah menjadi Out
 Kemudian lakukan penyimpanan, klik ikon Generate program, save and exit.
Peyimpanan ini dilakukan sebanyak 3 kali dengan nama yang sama(nama pada
percobaan ini adalah first), sampai muncul lembar kerja. Untuk menghindari
kesalahan maka pada nama yang pertama dicopy untuk nama selanjutnya. Dan
juga untuk mempermudah mencari file yang telah dibuat, lakukan penyimpanan
pada satu folder kosong/baru(pada percobaan ini nama folder adalah latihan di
labor).
c. Masukkan program pada bagian while
d. Compile program, jika tidak ada error maka lakukan Built All progam
e. Setelah program selesai, untuk menerapkan program pada modul ATmega8535,
dibutuhkan software progisp. Buka software progisp
f. Kemudian koneksikan USB modul ATmega8535 pada port USB device, sehingga
pada software progisp bagian program state yang ada tulisan”PRG ISP”, yang
awalnya tidak berwarna akan menjadi berwarna
g. Hubungkan terlebih dahulu pin pada PortC ke pin Port Out pada board display. Port
Out pada board display memiliki 10 pin, namun yang akan dihubungkan tadi hanya 8
pin, sehingga ada 2 pin pada Port Out pada board display yang kosong. Yang kosong
tersebut adalah pin yang ada tulisan 1 dan 2 karena itu merupakan pin untuk vcc dan
ground
h. Lalu klik LoadFlash pada bagian file, dan masukkan program yang telah dibuat tadi
i. Terakhir klik auto dan tunggu proses selesai maka pada modul akan tampil program
yang sudah dibuat.

2. Menghidupkan LED bergantian dari kanan ke kiri


a. Close all program sebelumnya
b. Buat lembar kerja baru dengan cara:
 Klik file pada bagian toolbars
 Lalu klik New, dan pilih Project
 Setelah itu muncul pilihan, Yes atau No, apakah pada project akan digunakan
CodeWizard atau tidak dan pada project atau percobaan ini pratikan menggunakan
CodeWizard sehingga untuk itu klik Yes
 Selanjutnya muncul pilihan AT90, ATtiny, ATmega atau XMEG, apakah pada
project akan digunakan tipe chip AT atau XMEGA, karena pada percobaan ini
praktikan menggunakan tipe chip AT, maka klik AT90, ATtiny, ATmega
 Kemudian untuk bagian Chip, setting chip dan clock secara otomatis akan
tersetting seperti percobaan pertama, serta untuk bagian Ports, tidak dirubah
karena pengontrolan port dilakukan didalam program
 Kemudian lakukan penyimpanan, klik ikon Generate program, save and exit.
Peyimpanan ini dilakukan sebanyak 3 kali dengan nama yang sama(nama pada
percobaan ini adalah second), sampai muncul lembar kerja. Untuk menghindari
kesalahan maka pada nama yang pertama dicopy untuk nama selanjutnya. Dan
simpan pada folder yang sama(latihan di labor)
c. Masukkan program pada bagian while
d. Compile program, jika tidak ada error maka lakukan Built All progam
e. Setelah program selesai, untuk menerapkan program pada modul ATmega8535,
dibutuhkan software progisp. Buka software progisp kembali
f. Hubungkan terlebih dahulu pin pada PortC ke pin Port Out pada board display. Port
Out pada board display memiliki 10 pin, namun yang akan dihubungkan tadi hanya 8
pin, sehingga ada 2 pin pada Port Out pada board display yang kosong. Yang kosong
tersebut adalah pin yang ada tulisan 1 dan 2 karena itu merupakan pin untuk vcc dan
ground
g. Lalu klik LoadFlash pada bagian file, dan masukkan program yang telah dibuat tadi
h. Terakhir klik auto dan tunggu proses selesai maka pada modul akan tampil program
yang sudah dibuat.
BAB V
ANALISA

1. Menghidupkan 4 LED dari kanan dan 4 berikutnya mati


a) Pengaturan ports
Pada percobaan ini, output diatur melalui bagian ports setting CodeWizard, ini berarti
untuk bagian PortC diubah menjadi output semua, sedangkan port yang lain dibiarkan
saja.
b) Pengaturan program
Untuk program menghidupkan 4 LED dari kanan dan 4 berikutnya mati adalah
“PORTC=0x0F; ,” karena jika dikonversi nilai hexa dari 0F ke bentuk binner, maka
akan bernilai 00001111. Maksudnya adalah jika pada LED diterapkan logika tinggi
maka LED akan hidup, sedangkan jika pada LED diterapkan logika rendah maka
LED akan mati. Karena pada percobaan kali ini pemasangan LED adalah active
hight(LED akan hidup ketika pada tiap-tiap pin diberi logika tinggi).

2. Menghidupkan LED bergantian dari kanan ke kiri


a) Pengaturan ports
Pada percobaan ini, output diatur pada PortC melalui pemrograman dalam lembar
kerja, tepatnya pada bagian void main sebelum masuk ke perulangan while.
Pengaturan itu dimaksudkan untuk membuat Data Direction Register(DDR) agar
bernilai 1(nilai untuk output). Dan pada percobaan ini, pengaturan DDR untuk PortC
menggunakan hexa dengan nilai FF, sehingga pada lembar kerja dibuat seperti berikut
“DDRC=0xFF;” dimana semua pin pada PortC bernilai 1.
b) Pengturan program
Berikut adalah program menghidupkan LED bergantian dari kanan ke kiri :
{
PORTC=0b00000001;
delay_ms(1000);
PORTC=0b00000010;
delay_ms(1000);
PORTC=0b00000100;
delay_ms(1000);
PORTC=0b00001000;
delay_ms(1000);
PORTC=0b00010000;
delay_ms(1000);
PORTC=0b00100000;
delay_ms(1000);
PORTC=0b01000000;
delay_ms(1000);
PORTC=0b10000000;
delay_ms(1000);
}

Maksud dari program diatas adalah LED yang terhubung dengan PortC, akan hidup
dimulai dari LED paling kanan dan akan hidup selama 1000 milisecond atau 1 detik
dan setelah 1 detik LED paling kanan akan mati, kemudian akan hidup LED
sebelahnya juga selama 1 detik dan setelah itu pun akan mati. Proses ini akan terus
berulang sehingga tercipta LED hidup bergantian dari kanan ke kiri.
Penggunaan delay_ms(1000) berfungsi untuk menunda melakukan perintah
selanjutnya selama 1000 milisecond atau 1 detik. Syntax delay akan berfungsi jika
pada program ditambahkan library delay.h, yaitu “#include <delay_h>.
BAB VI
KESIMPULAN

Dari pratikum yang telah dilakukan, dapat ditarik kesimpulan sebagai berikut:
1. Pengaturan port sebagai output pada cvavr dapat dilakukan melalui port setting yang
terdapat pada CodeWizard dan juga bisa melalui program yang dibuat dalam lembar
kerja, yaitu dengan Data Direction Register yang dibuat bernilai atau berlogika 1,
misal semua pin pada port disetting sebagai output, maka jika menggunakan hexa
adalah 0XFF , dan jika menggunakan binner adalah 0b11111111

2. Pemrograman untuk port yang sudah disetting sebagai output, dapat dilakukan perbit
atau pun secara keseluruhan. Perbit disini berarti pemberian aksi pada port dilakukan
masing-masing, misal untuk Pin 0 dari PortC disetting berlogika 1 maka pada
program akan berbentuk “PORTC.0=1;”. Sedangkan maksud dari keseluruhan adalah
pemberian aksi pada port dilakukan bersamaan, dengan contoh yang sama, maka
pada program akan berbentuk “PORTC=0xFF untuk hexa dan PORTC=0b11111111
untuk binner”
LAMPIRAN

Latihan Mandiri
D.1 program untuk menyalakan LED geser bergantian kekiri

D.2 program untuk menyalakan LED geser bergantian kekanan-kekiri

D.3program untuk menjalankan 3 buah motor nyala berurutan, dengan jeda waktu
penyalaan antara motor satu dengan yang lain mendekati 5 detik (setelah ketiga motor
nyala, tetap dipertahankan posisi tersebut/tidak berulang)
D.4program untuk menjalankan 3 buah motor nyala bergantian, dengan jeda waktu
penyalaan antara motor satu dengan yang lain mendekati 5 detik (setelah motor ketiga
nyala, kembali penyalaan pada motor kesatu)

You might also like