Anda di halaman 1dari 37

LAPORAN

PRAKTIKUM
MIKROKONTROLLER

PENGAKTIFAN LED DENGAN PROTEUS

OLEH :

NAMA : ANDRIAN PUTRA

NOMOR BP : 1701031026

KELAS : II B

NO JOB :1

TANGGAL PRAKTIKUM : 5 MARET 2019

TANGGAL PENYERAHAN : 12 MARET 2019

REKAN KELOMPOK 7 : 1. MUHAMMAD IHSAN


2. ILHAM ATHAARIQ

PROGRAM STUDI D3 TEKNIK LISTRIK

POLITEKNIK NEGERI PADANG

2019

JOB 1

PENGAKTIFAN LED DENGAN PROTEUS

Tujuan praktikum:

Setelah melakukan praktikum pengaktifan LED dengan berbagai variasi ini,


mahasiswa dapat:

1. Memahami cara pengoperasian system mikrokontroler AVR Atmega 8535


menggunakan proteus Isis.

2. Mengoperasikan system mikrokontroler AVR Atmega 8535.

3. Mengoperasikan Proteus Isis sebagai media simulasi program.


BAB II

TEORI DASAR
Gambar 1.1 Rangkaian Atmega8535 Output LED

Perhatikan gambar 1 diatas. Delapan buah LED sebagai keluaran terhubung ke


port C. LED akan menyala jika pada port keluaran diberi logika HIGH ‘1’ dan
padam jika diberi logika LOW ‘0’. Untuk mengaktifkan konfigurasi seperti
gambar 1.1, pin LED pada posisi 0.

Langkah Kerja

Cara Membuat Proyek Baru

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

Pada jendela Configurasi Project test led.prj, tab C Compiler, pilih


mikrokontroler yang digunakan misalnya ATMEGA8535 dan pilih frekuensi
Clock (kristal) yang digunakan oleh mikrokontroler, misalnya 4 MHz. Kemudian
klik OK.
Langkah pembuatan proyek baru selesai tetapi belum dapat digunakan untuk
membuat program C. Agar dapat digunakan untuk membuat program C
diperlukan pembuatan file c yaitu klik menu File pilih New kemudian pada
jendela Create New File pilih Source dan klik Ok. Akan tetapi terdapat file c yang
akan dibuat, sebagai contoh “program 1.c”.
Gambar 1.5 Tampilan Awal Saat memulai Program Baru
Untuk menggabungkan “program 1.c” dengan proyek “test led prj” yaitu klik pada
menu Project, pilih Configure. Pada label Files, pilih add.
Gambar 1.6 Konfigurasi Proyek untuk
Menggabungkan Program

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.

Contoh programnya yaitu:

#include<mega8535.h>

#include<delay.h>

Void main (void)


{

DDRC=0xFF;

PORTC=0xFF;

While(1)

PORTC=0xFF;

delay_ms(1000);

PORTC=0x00;

Delay_ms(1000);

Setelah selesai membuat suatu program C, perlu dilakukan apakah syntax


(sintaksis) program yang dibuat benar atau salah yaitu dengan menekan tombol F9
(Compile) atau melalui menu Project kemudian pilih Compile. Jika terjadi
kesalahan sintaksis akan terdapat pesan error dimana letak kesalahan terjadi.
Untuk leih jelasnya lihat pada gambar berikut ini dengan adanya kesalahan (error)
pada program yang dibuat.
Gambar 1.8 Hasil Compiling dengan Kesalahan

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 <mega8535.h> → sebagai kepala program

#include <delay.h>

// Declare your global variabel here

void main (void)

DDRC=0b11111111;

while(1)

PORTC=0b00001111;

delay_ms(100);

PORTC=0b11110000;

delay_ms(100);

Percobaan 2
Program:

#include <mega8535.h>

#include <delay.h>

// Declare your global variabel here

void main (void)

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

void main (void)

DDRC=0b11111111;

while(1)

PORTC=0b01010101;

delay_ms(100);

PORTC=0b10101010;

delay_ms(100);

Program 4

#include <mega8535.h>

#include <delay.h>

// Declare your global variabel here

void main (void)


{

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:

a. Chip atmega 8535

b. LED dengan warna sesuai dengan selera 8 buah

c. Resistor 330R dengan 0.6 W Metal Film 9 buah

d. Ground di akhir ujung rangkaian

e. CRYSTAL

f. Kapasitor 22pf 2 buah


g. VCC

Dari diatas komponen yang dibuat sebuah rangkaian yang persis sesuai dengan
job.

Chip Atmega 8535

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.

Mikrokontroler ATmega8535 memiliki beberapa fitur atau spesifikasi yang


menjadikannya sebuah solusi pengendali yang efektif untuk berbagai keperluan.
Fitur-fitur tersebut antara lain:

1. Saluran I/O sebanyak 32 buah, yang terdiri atas Port A, B, C dan D


2. ADC (Analog to Digital Converter)
3. Tiga buah Timer/Counter dengan kemampuan perbandingan
4. CPU yang terdiri atas 32 register
5. Watchdog Timer dengan osilator internal
6. SRAM sebesar 512 byte
7. Memori Flash sebesar 8kb dengan kemampuan read while write
8. Unit Interupsi Internal dan External
9. Port antarmuka SPI untuk men-download program ke flash
10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi
11. Antarmuka komparator analog
12. Port USART untuk komunikasi serial.

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

A. Warna kuning → PORT A dengan kodenya;

B. Warna merah → PORT B dengan kodenya;

C. Warna hitam → PORT C dengan kodenya;

D. Warna biru → PORT D dengan kodenya.

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

Vcc Tegangan suplai (5 volt)

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

XTAL Input penguat osilator inverting dan input pada rangkaian


1 operasi clock internal

XTAL Output dari penguat osilator inverting


2

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

Aref pin referensi tegangan analog untuk ADC

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:

Tabel Penjelasan pin pada port A


Pin Keterangan

PA.7 ADC7 (ADC Input Channel 7)

PA.6 ADC6 (ADC Input Channel 6)

PA.5 ADC7 (ADC Input Channel 5)

PA.5 ADC4 (ADC Input Channel 4)

PA.3 ADC3 (ADC Input Channel 3)

PA.2 ADC2 (ADC Input Channel 2)

PA.1 ADC1 (ADC Input Channel 1)

PA.0 ADC0 (ADC Input Channel 0)

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:

Tabel Penjelasan pin pada port B


Pin Keterangan

PB.7 SCK (SPI Bus Serial Clock)

PB.6 VISO (SPI Bus Master Input/Slave Output)

PB.5 VOSI (SPI Bus Master Output/Slave Input)

PB.4 SS (SPI Slave Select Input)

PB.3 AIN1 (Analog Comparator Negative Input)OCC (Timer/Counter0


Output Compare Match Output)

PB.2 AIN0 (Analog Comparator Positive Input)INT2 (External


Interrupt2 Input)

PB.1 T1 (Timer/Counter1 External Counter Input)

PB.0 T0 (Timer/Counter0 External Counter Input)XCK


(JSART External Clock Input/Output)

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:

Tabel Penjelasan pin pada port C


Pin Keterangan

PC.7 TOSC2 (Timer Oscillator Pin 2)

PC.6 TOSC1 (Timer Oscillator Pin 1)

PC.1 SDA (Two-Wire Serial Bus Data Input/Output Line)

PC.0 SCL (Two-Wire Serial Bus Clock Line)

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:

Tabel Penjelasan pin pada port D

Pin Keterangan

PD.0 RDX (UART input line)

PD.1 TDX (UART output line)

PD.2 INT0 (external interrupt 0 input)


PD.3 INT1 (external interrupt 1 input)

PD.4 OC1B (Timer/Counter1 output compareB match output)

PD.5 OC1A (Timer/Counter1 output compareA match output)

PD.6 ICP (Timer/Counter1 input capture pin)

PD.7 OC2 (Timer/Counter2 output compare match output)

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

Hal ini berlaku juga pada tampilan 2, 3 dan 4.

Program:

#include <mega8535.h> → sebagai kepala program

#include <delay.h>

// Declare your global variabel here

void main (void)

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

Hal ini DDRC=0b11111111; melambangkan pemakaian 0xFF dan sama juga


fungsi dari kedua nya, boleh menggunakan salah satu baik itu 0xFF atau
DDRC=0b11111111; asalkan mana yang mudah dipahami.

Selain itu tampilan 1 ini bisa di operasikan dengan rumus yang tapi tujuan sama
dengan program yang aku gunakan ini.

Beda DDRC=0b00000000; dengan DDRC=0b11111111; adalah kalau


0b00000000 digunakan untuk program input sedangkan 0b11111111 digunakan
untuk program output.

Port pada program tersebut berguna untuk memberikan sinyal nyala atau mati
pada kaki kaki atmega.

PORTC=0b00001111; rumus ini merupakan output dari program

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.

Lampu yang mati dapat dilihat pada tabel percobaan.

Program:

#include <mega8535.h>

#include <delay.h>

// Declare your global variabel here

void main (void)

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.

Selanjutnya, program PORTC=0b11111111; atau PORTC=0xFF; digunakan


untuk memberikan masukan HIGH pada kondisi awal setiap Port di C. karena Kit
ini terdapat common catoda, maka apabila diberi masukan HIGH setaip Portnya
maka output tidak akan mengeluarkan keluaran. PORTC hanya mengeluarkan
apabila diberi masukan low. Lampu yang mati dapat dilihat pada tabel.

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:

1. Mikrokontroler AVR ATmega 8535 mempunyai 4 buah port yang bisa


digunakan sebagai input dan output.

2. Pemrograman menggunakan CodeVision, hal yang perlu diperhatikan:

A. #include > merupakan program konfigurasi untuk pengenalan program


yang akan dibuat.

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.

Anda mungkin juga menyukai