PRAKTIKUM
MIKROKONTROLLER
OLEH :
NOMOR BP : 1701031026
KELAS : II B
NO JOB :1
2019
JOB 1
Tujuan praktikum:
TEORI DASAR
Gambar 1.1 Rangkaian Atmega8535 Output LED
Langkah Kerja
Buka program Codevision AVR dengan cara klik ganda ikon CVAVR pada
desktop atau dengan cara klik Start→Program→CodeVision AVR
Evaluation→Code Vision AVR C Compiler. Pada menu File pilih New,
kemudian pada jendela Create New File pilih Project dan pilih OK. Untuk
membuat proyek baru tanpa bantuan CodeWizardAVR klik No pada jendela yang
muncul berikutnya.
Gambar 1.2 Tampilan Awal Saat Memulai Proyek Baru
Setelah itu pilih direktori untuk menyimpan proyek yang akan dibuat,
misalnya pada direktori. “D\CobaCAVR\”, kemudian isi nama proyek tersebut,
sebagai contoh “test led.prj”. Lalu klik Save.
Gambar 1.3 Proses Penyimpanan Proyek Baru
Kemudian pilih “program 1.c” dan klik Open. Program C tersebut ditambahkan
dalam proyek “test led prj”, kemudian klik OK pada jendela Configure Project
test led.prj.
Gambar 1.7 Pemilihan Program & Tampilan Setelah
Program Digabungkan
Proyek “test led.prj telah siap digunakan untuk membuat suatu program C.
misalnya program sederhana untuk menyalakan LED berkedip pada semua Port C
selama satu detik.
#include<mega8535.h>
#include<delay.h>
DDRC=0xFF;
PORTC=0xFF;
While(1)
PORTC=0xFF;
delay_ms(1000);
PORTC=0x00;
Delay_ms(1000);
BAB II
DATA TAMPILAN
1. Tampilan 1
L7 L6 L5 L4 L3 L2 L1 L0 LED yang mati
0 0 0 0 1 1 1 1 D5 D6 D7 D8
1 1 1 1 0 0 0 0 D1 D2 D3 D4
2. Tampilan 2
L7 L6 L5 L4 L3 L2 L1 L0 LED yang mati
0 1 0 1 0 1 0 1 D2 D4 D6 D8
1 0 1 0 1 0 1 0 D1 D3 D5 D7
3. Tampilan 3
L7 L6 L5 L4 L3 L2 L1 L0 LED yang mati
0 0 0 1 1 0 0 0 D1 D2 D3 D6 D7 D8
0 0 1 0 0 1 0 0 D1 D2 D4 D5 D7 D8
0 1 0 0 0 0 1 0 D1 D3 D4 D5 D6 D8
1 0 0 0 0 0 0 1 D2 D3 D4 D5 D6 D7
4. Tampilan 4
L7 L6 L5 L4 L3 L2 L1 L0 LED yang mati
0 0 0 0 0 0 0 1 D2 D3 D4 D5 D6 D7 D8
0 0 0 0 0 0 1 0 D1 D3 D4 D5 D6 D7 D8
0 0 0 0 0 1 0 0 D1 D2 D4 D5 D6 D7 D8
0 0 0 0 1 0 0 0 D1 D2 D3 D5 D6 D7 D8
0 0 0 1 0 0 0 0 D1 D2 D3 DD
D4 D6 D7 D8
0 0 1 0 0 0 0 0 D1 D2 D3 D4 D5 D6 D8
0 1 0 0 0 0 0 0 D1 D2 D3 D4 D5 D6 D7
1 0 0 0 0 0 0 0 D1 D2 D3 D4 D5 D6 D8
0 1 0 0 0 0 0 0 D1 D2 D3 D4 D5 D6 D8
0 0 1 0 0 0 0 0 D1 D2 D3 D4 D5 D7 D8
0 0 0 1 0 0 0 0 D1 D2 D3 D4 D6 D7 D8
0 0 0 0 1 0 0 0 D1 D2 D3 D5 D6 D7 D8
0 0 0 0 0 1 0 0 D1 D2 D4 D5 D6 D7 D8
0 0 0 0 0 0 1 0 D1 D3 D4 D5 D6 D7 D8
0 0 0 0 0 0 0 1 D2 D3 D4 D5 D6 D7 D8
0 0 0 0 0 0 1 0 D1 D3 D4 D5 D6 D7 D8
BAB IV
PROGRAM PERCOBAAN
PERCOBAAN 1 PERCOBAAN 2
Percobaan 1
#include <delay.h>
DDRC=0b11111111;
while(1)
PORTC=0b00001111;
delay_ms(100);
PORTC=0b11110000;
delay_ms(100);
Percobaan 2
Program:
#include <mega8535.h>
#include <delay.h>
DDRC=0b11111111;
while(1)
PORTC=0b01010101;
delay_ms(100);
PORTC=0b10101010;
delay_ms(100);
PERCOBAAN 3 PERCOBAAN 4
Percobaan 3
#include <mega8535.h>
#include <delay.h>
// Declare your global variabel here
DDRC=0b11111111;
while(1)
PORTC=0b01010101;
delay_ms(100);
PORTC=0b10101010;
delay_ms(100);
Program 4
#include <mega8535.h>
#include <delay.h>
DDRC=0b11111111;
while(1)
PORTC=0b00000001;
delay_ms(100);
PORTC=0b00000010;
delay_ms(100);
PORTC=0b00000100;
delay_ms(100);
PORTC=0b00001000;
delay_ms(100);
PORTC=0b0010000;
delay_ms(100);
PORTC=0b00100000;
delay_ms(100);
PORTC=0b01000000;
delay_ms(100);
PORTC=0b10000000;
delay_ms(100);
PORTC=0b01000000;
delay_ms(100);
PORTC=0b00100000;
delay_ms(100);
PORTC=0b00010000;
delay_ms(100);
PORTC=0b00001000;
delay_ms(100);
PORTC=0b0000100;
delay_ms(100);
PORTC=0b00000010;
delay_ms(100);
PORTC=0b00000001;
delay_ms(100);
PORTC=0b10000010;
delay_ms(100);
}
BAB V
ANALISA
I. Analisa Komponen
Dalam job 1 ini kita membuat sebuah rangkaian dari atmega 8535 dengan
menggunakan Proteus Isis dalam menjalankan atau mengaktifkan output LED.
Untuk membuat rangkaian kita memerlukan beberapa komponen yaitu:
e. CRYSTAL
Dari diatas komponen yang dibuat sebuah rangkaian yang persis sesuai dengan
job.
Atmega 8535 adalah mikrokontroller CMOS 8 bit daya rendah berbasis arsitektur
RISC. Intruksi dikerjakan pada satu siklus clock, ATmega 8535 mempunyai
throughput mendekati 1 MIPS per MHz, hal ini membuat ATMega 8535 dapat
bekerja dengan kecepatan tinggi walaupun dengan penggunaan daya rendah.
Pada chip ini terbagi menjadi empat PORT yaitu A,B,C,dan D masing-masing
PORT terdiri dari beberapa bagian yaitu 8 kaki.
Gambar : Chip Atmega 8535
Sedangkan kode yang dibawah nya dari PORT A,B,C dan D digunakan untuk
rangkaian lainnya yang memopang rangkaian di job ini yang dijelaskan pada
gambar dibawah ini yang dilingkakari dengan garis warna merah yang terdiri dari
XTAL 1, XTAL 2, AREF, AVCC dan reset.
Penjelasan pin pada mikrokontroler ATMega8535
GND Ground
RESET Input reset level rendah, pada pin ini selama lebih dari panjang
pulsa minimum akan menghasilkan reset walaupun clock sedang
berjalan. RST pada pin 9 merupakan reset dari AVR. Jika
pada pin ini diberi masukan low selama minimal 2 machine
cycle maka sistem akan di-reset
Avcc Pin tegangan suplai untuk port A dan ADC. Pin ini harus
dihubungkan ke Vcc walaupun ADC tidak digunakan,
maka pin ini harus dihubungkan ke Vcc melalui low pass filter
AGND pin untuk analog ground. Hubungkan kaki ini ke GND, kecuali
jika board memiliki analog ground yang terpisah
Berikut ini adalah penjelasan dari pin mikrokontroler ATMega8535 menurut port-
nya masing-masing:
1. Port A
Pin33 sampai dengan pin 40 merupakan pin dari port A. Merupakan 8 bit
directional port I/O. Setiap pin-nya dapat menyediakan internal pull-up
resistor (dapat diatur per bit). Output buffer port A dapat memberi arus 20 mA
dan dapat mengendalikan display LED secara langsung. Data Direction Register
port A (DDRA) harus di-setting terlebih dahulu sebelum port A digunakan. Bit-
bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang disesuaikan
sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin pada port A juga
memiliki fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel:
2. Port B
Pin 1 sampai dengan pin 8 merupakan pin dari port B. Merupakan 8 bit
directional port I/O. Setiap pin-nya dapat menyediakan internal pull-up
resistor (dapat diatur per bit). Output buffer port B dapat memberi arus 20 mA
dan dapat mengendalikan display LED secara langsung. Data Direction Register
port B (DDRB) harus di-setting terlebih dahulu sebelum port B digunakan. Bit-
bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang disesuaikan
sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port B juga
memiliki fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel:
3. Port C
Pin 22 sampai dengan pin 29 merupakan pin dari port C. Port C sendiri
merupakan port input atau output. Setiap pin-nya dapat menyediakan internal
pull-up resistor (dapat diatur per bit). Output buffer port C dapat memberi arus 20
mA dan dapat mengendalikan display LED secara langsung. Data Direction
Register port C (DDRC) harus di-setting terlebih dahulu sebelum port C
digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang
disesuaikan sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin
port D juga memiliki fungsi-fungsi alternatif khusus seperti yang dapat dilihat
dalam tabel II.6:
4. Port D
Pin 14 sampai dengan pin 20 merupakan pin dari port D. Merupakan 8 bit
directional port I/O. Setiap pin-nya dapat menyediakan internal pull-up
resistor (dapat diatur per bit). Output buffer port D dapat memberi arus 20 mA
dan dapat mengendalikan display LED secara langsung. Data Direction
Register port D (DDRD) harus di-setting terlebih dahulu sebelum port D
digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang
disesuaikan sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin
port D juga memiliki fungsi-fungsi alternatif khusus seperti yang dapat dilihat
dalam tabel:
Pin Keterangan
Dalam job ini kita diharuskan membuat rangkaian LED dengan Resistor di
PORTC dengan diakhiri dengan Ground.
A. Tampilan 1
Pada tampilan 1 ini memaparkan 4 buah LED hidup secara bersamaan dan 4 buah
LED mati secara bersamaan sesuai dengan setting waktu pada program yang
dibuat.
Selanjutnya 4 LED yang mati tadi menjadi hidup dan 4 LED yang hidup menjadi
mati begitu seterusnya berdasarkan setting waktu yang dibuat pada aplikasi CV
AVR.
Tabel percobaan
L0 menandakan D1
L1 menandakan D2
L2 menandakan D3
L3 menandakan D4
L4 menandakan D5
L5 menandakan D6
L6 menandakan D7
L7 menandakan D8
Program:
#include <delay.h>
DDRC=0b11111111;
while(1)
PORTC=0b00001111;
delay_ms(100);
PORTC=0b11110000;
delay_ms(100);
Pada program tampilan 1 ini saya menggunakan bilangan biner yang yaitu 0 dan 1
Sesuai dengan job berjumlah 8. Di bawah tulisan void main (void) yaitu
DDRC=0b11111111; ini menandakan patokan rumus program di dalam kurung
while (1) dalam menghidupkan atau mematikan lampu LED.
0xFF → nilai keluaran Port baik itu PORT A,B,C,D pada setiap Bit =
Tinggi(0b11111111).
Selain itu tampilan 1 ini bisa di operasikan dengan rumus yang tapi tujuan sama
dengan program yang aku gunakan ini.
Port pada program tersebut berguna untuk memberikan sinyal nyala atau mati
pada kaki kaki atmega.
delay_ms(100);
PORTC=0b11110000;
delay_ms(100);
}
Nah, sedangkan # include <delay h.> digunakan untuk mengoperasikan hidup atau
mati nya LED pada rangkaian. Jika hal ini lupa di cantumkam dalam program
maka lampu LED nya tidak menyala tapi program jalan. Dan hal ini juga di
cantum pada tubuh program seperti delay_ms(100); ms menandakan waktu lama
nya LED hidup atau mati.
B. Tampilan 2
Dalam Tampilan 2, lednya hidup secara ganjil dan mati secara genap dan begitu
juga sebaliknya hidup secara genap dan mati secara ganjil. Tampilan 1 dan
tampilan 2 tidak jauh beda hanya letak LED yang menyala dan mati.
Program:
#include <mega8535.h>
#include <delay.h>
DDRC=0b11111111;
while(1)
PORTC=0b01010101;
delay_ms(100);
PORTC=0b10101010;
delay_ms(100);
C. Tampilan 3
Dari program yang telah disajikan, dapat dianalisa bahwa pada bagian awal
program #include <mega8535.h> digunakan untuk memberitahu kepada compiler
bahwa program yang kita buat menggunakan atmega 8535. Selanjutnya pada
program utama, disetting DDRC sebelum PORTC digunakan. Dengan menuliskan
program DDRC=0xFF, maka PORT C difungsikan sebagai output. DDR bernilai
FF (heksa). Apabila diubah menjadi bilangan biner, maka menjadi 1111 1111.
Bit-bit DDRC saat berisi 1, maka pin-pin pada port C sebagai output.
Alur hidup lampunya mulai dari tengah ke tepi secara bergantian dengan dua LED
hidup.
D. Tampilan 4
Tampilan 4, lampu hidup satu persatu mulai dari atas ke bawah dan kembali lagi
ke atas serta kebawah lagi tapi sampai D2/L2. 16 buah baris maka 16 pula rumus
badan program sebab 1 LED 1 rumus ditambah lagi dua kali bolak balik atas -
bawah untuk mengoperasikan hidup-mati lampu LED dalam kondisi high dan
low.
BAB VI
KESIMPULAN
Dari beberapa percobaan, kita dapat menarik beberapa hal-hal yang berkaitan
dengan job ini yaitu:
B. Void main (void) > Awal program utama ini harus diperhatikan, karena ini
merupakan kepala awal dalam pembuatan program.
C. PORTC.0=0 > ini untuk PORTA berfungsi aktif low, lampu led mati.
D. PORTC.0=1 > ini untuk PORTA berfungsi aktif high, lampu led hidup.
E. Delay_ms(1000) > untuk penundaan nyala lampu led sebesar 1000 mili
sekon atau satu detik.