You are on page 1of 6

PERCOBAAN I

I/O DASAR
Gidion Siregar (13115035)
Asisten Praktikum : Auliya Rendy A (13115046)
Tanggal Praktikum : 09/03/2019
EL3203 Praktikum Sistem Mikroprosesor
Laboratorium Teknik Elektro - Institut Teknologi Sumatera

Abstrak – Praktikum modul 1 praktikum sistem rupa sehingga untuk konfigurasi input tertentu akan
mikroprosesor akan membahas lebih dalam menghasilkan konfigurasi output yang sesuai dengan
mengenai komponen input output dasar pada board apa yang telah ditentukan.
ATMega 8535. Praktikan akan mempelajari
bagaimana cara port untuk dijadikan sebagai input
ataupun output. Aplikasi input output akan dibuat
Tujuan Percobaan :
dengan menggunakan software WinAVR dalam
bahasa C. Selain itu praktikum juga bertujuan
untuk memahami pengesetan serta melakukan 1. Praktikan memahmi datasheet ATMega 8535.
percobaan dengan ATmega 8535. 2. Praktikan mampu membuat aplikasi input dan
keyword – ATMega 8535, Input, Output, WinAVR output pada AVR dengan menggunakan bahasa
pemrograman C pada WinAVR.
1. PENDAHULUAN 3. Praktikan memahami pengesetan fuse yang
berkaitan dengan penggunan besar dan jenis kristal.
Praktikum terdiri dari beberapa sub percobaan.
Percobaan perta ma berkaitan dengan penggunaan 2 . LANDASAN TEORI
Port A sebagai output.
Program akan dibuat sedemikian rupa sehingga KONFIGURASI I/O ATMega 8535
menghasilkan konfigurasi output port A yang telah
ditentukan. Kemudian port A akan dihubungkan ke Gambar dan table berikut ini dikutipkan dari
LED sebagai representasi output dari port A. datasheet ATMega 8535 :
Kedua, praktikan akan menga mati penggunaan delay SKEMATIK I/O
pada AVR gcc. Delay bertujuan untuk mengatur
seberapa cepat lampu LED hidup dan mati. Sama
seperti percobaan sebelumnya, port A akan
digunakan sebagai output. Nilai biner port A akan
berubah dari kondisi satu ke kondisi dua dalam
selang delay yang telah ditentukan. Kemudian
representasi biner bisa dilihat pada nyala dan matinya
LED.

Ketiga, praktikan akan mulai menggunakan sebuah


ports ebagai input. Port A akan digunakan sebagai
input di mana port D akan dihubungkan langsung
dengan toggle/switch. Konfigurasi dari toggle yang
nyala atau mati akan merepresentasikan biner dari
port A. Port D akan juga digunakan kembali sebagai Semua register dan referensi bit pada bagian ini
output dan dihubungkan ke LED untuk menga mati ditulis dalam bentuk umum. Huruf ”x”
keluaran program. Program akan diatur sedemikian merepresentasikan nomor untuk port dan huruf ”n”
merepresentasikan nomor bit nya. Bagaimanapun,
ketika menggunakan register atau bit yang ditetapkan
di program, maka bentuk tepatnya harus digunakan.
Sebagai contoh, PORTB3 untuk nomor 3 di Port B,
ditulis secara general sebagai PORTxn. I/O Registers
dan lokasi bit secara fisik terdaftar di ”Register
Description for I/O-Ports” di halaman 66.
Tiga lokasi alamat memori I/O dialokasikan untuk
tiap port, satu untuk tiap Data Register – PORTx,
Data Direction Register – DDRx, dan Port Input Pins
– PINx. I/O Port Input Pins adalah read only,
sedangkan Data Register dan Data Direction Register
adalah read/write. Sebagai tambahan, bit Pull-up 3. METODOLOGI
Disable – PUD pada SFIOR menonaktifkan fungsi
pull-up untuk semua pin di semua port saat
diaktifkan. 3.1. Alat dan Bahan yang digunakan
pada percobaan ini :

KONFIGURASI PIN PORT 1. Power Supply


2. Sismin ATMega 8535
3. Jumper 2x5 Female Header
4. PC dengan program WinAVR dan Driver GiveIO.

 Langkah – langkah dalam percobaan

LANGKAH UMUM PRAKTIKUM

Peng-install-an WinAVR , Driver give IO, dan Driver USBasp


PUD PADA SFIOR

Membuat New Project pada WinAVR dan Add program untuk


masing-masing percobaan

Rekomendasi untuk inisialisasi pada pin input. Jika Membuat file dengan pengesetan MCU : ATMega8535, F_CPU :
ada pin yang tidak terpakai, direkomendasikan agar 7372800 HzAVRDUDE, Programmer : USBasp , Target :
tiap pin ini terdefinisikan. disesuaikan untuk tiap percobaan
Walaupun kebanyakan input digital dinonaktifkan
dalam mode deep sleep seperti yang dideskripsikan
diatas, input yang menga mbang harus dihindari
untuk mengurangi konsumsi arus pada semua mode Lakukan pengesetan fuse sesuai pengesetan yang ada di
lain di mana input digital diaktifkan (Reset, Active modul. Hubungkan port input ke toggle port ouptut ke LED.
mode, and Idle mode). Hubungkan board ke komputer

Metode paling sederhana untuk mendefinisikan suatu 
pin yang tidak digunakan adalah untuk mengaktifkan PERCOBAAN 1.A PORT A SEBAGAI OUTPUT
pull-up internal pada kasus ini, pull-up akan
dinonaktifkan saat reset. Jika konsumsi daya rendah 
ketika reset itu penting. Maka disarankan untuk
menggunakan pull-up atau pull-down eksternal.
Menghubungkan pin-pin yang tidak digunakan ke
Vcc atau GND langsung tidak disarankan karena
dapat mengakibatkan kelebihan arus jika pin secara
tidak sengaja dikonfigurasikan sebagai output.
DESKRIPSI REGISTER (UNTUK PORT A)
DDRB = 0xFF; // Seluruh Port B dikonfigurasi
Buat program seperti yang tertera di modul. Atur target sebagai OUTPUT
makefile sesuai nama file percobaan
PORTB = 0x00; // Seluruh Port B bernilai ‘0’,
maka LED akan menyala

}
Jalankan program dan amati keluaran pada LED. Analisa
kode program dan catat hasil pada BCL
Berikut merupakan data percobaan yang telah kami
dapat dengan mengimplementasikan pada
microcontroller ATMega8535 :

Ubah kode program sehingga keluaran LED sesuai


dengan representasi biner dari kelompok praktikan.


Langkah dalam setiap percobaan untuk percobaan
A, B, dan C

Memberi input tegangan 9 V pada Sismin ATMega


8535 dan menghubungkan Sismin 1 dengan PC

Membuat program input dan/atau program


output yang diinginkan

Kompilasi pada WinAVR dan Program ke Sismin


ATMega 8535 Gambar 4.1 PORT B Sebagai output

Analisis :
Lihat keluaran pada LED, beri input switch jika
program merupakan aplikasi input dan output Pada percobaan ini, percobaan yang dilakukan yaitu
 kita dapat menentukan semua PORT B pada
 microcontroller ATMega8535 sebagai output yang
kita implementasikan menggunakan dengan indikator
4. HASIL DAN ANALISIS LED dengan tambahan berupa resistor. Hal ini sesuai
jika kita melakukan pembacaan pada script di atas
PERCOBAAN I.A.1 PORT B SEBAGAI yaitu bahwa port B semuanya adalah aktif low (‘0’)
OUTPUT dengan perintah PORTB = 0x00; // Seluruh Port B
bernilai ‘0’, maka LED akan menyala. Dengan nyala
Pada percobaan ini kita akan melakukan perintah nya LED sebagai output dari Port B, maka percobaan
melalui program yaitu bagaimana Port B akan kita yang di lakukan telah benar.
tentukan sebagai output melalui perintah DDRB
(Data Direction Register B) yaitu dapat dilihat pada PERCOBAAN TUGAS I.A.2
script dibawah ini :
Pada percobaan ini kita melakukan Modifikasi
#include <mega8535.h> program di atas , yaitu dengan mengubah settingan
#include <delay.h> nilai PORTB sesuai dengan 3 angka terakhir NIM
void main(void) salah satu teman kelompok kami. Misalkan NIM saya
{ adalah 13116025 maka penulisannya “DDRB =
0x012”.
Analisis : Analisis :

Dari percobaan ini hasil prinsip kerjanya sama saja Dengan membaca perintah script yang kita masukkan
dengan percobaan sebelumnya, hanya saja percobaan sebenarnya, kita dapat melakukan pembacaan
ini PORTB yang digunakan lebih spesifik jika kita perintah yang diberikan, yaitu dengan melakukan
ubah ke biner (025) yaitu : (0000 1100), sehingga pin pengulangan dengan perintah PORT B menyala
output yang dapat kita gunakan untuk menyalakan selama selangg waktu 0,5 ms dan bergantian dengan
sebuah LED yaitu adalah PIN B4 – PIN B7, yang PORT B mati selama selang waktu 0,5 ms juga,
merupakan aktif low selain sedangkan PIN B0-B3 sehingga lampu LED akan berkedip selama selang
adalah aktif high. waktu tersebut. Dan percobaan yang telah dilakukan
adalah berhasil.

PERCOBAAN TUGAS I.B.2

Analisis:

PERCOBAAN I.B FASILITAS DELAY PADA Percobaan ini juga hampir sama dengan percobaan
AVR perintah LED berkedip diatas, namun dengan
memasukkan perintah PIN yang kita gunakan adalah
Pada percobaan berikut ini hal yang di lakukan berdasarkan NIM yang kita miliki. Dengan merubah
adalah menyalakan LED berkedip pada port B delay nya tersebut sesuai dengan NIM. Maka, akan
dengan durasi 0,5 detik terlihat perbedaan nyala LED berkedip nya.

Berikut merupakan script yang digunakan:


PERCOBAAN I.C PORT A SEBAGAI
void main(void) OUTPUT DAN PORT D SEBAGAI INPUT
{
Dalam melakukan percobaan ini, yang digunakan
DDRB = 0xFF; //Seluruh Port B dikonfigurasi untuk perintah. Script yang digunakan:
sebagai OUTPUT
#include <mega8535.h>
PORTB = 0xFF; // Semua Port B mengeluarkan #include <delay.h>
logika ‘1’ Sehingga LED tidak menyala.
void main(void)
while(1) {
{
DDRB = 0xFF; // Seluruh port B dikonfigurasi
PORTB = 0x00; // LED menyala delay_ms(500); sebagai output

PORTB = 0xFF; // LED mati PORTB = 0xFF;


delay_ms(500);
DDRC = 0x00; // Port C dikonfigurasi sebagai
} input

} PORTC = 0x00;

Berikut merupakan hasil percobaan yang dilakukan : #asm(“nop”)


while(1)

PORTB = PINC ;// Membaca penekanan push-


button di port c
// dan outputnya dikeluarkan di port B.  AVR GCC memiliki syntax delay untuk
membantu pemrogra man yang membutuhkan
} fungsi waktu
}
REFRENSI
 http://fti.unissula.ac.id/download/Modul%20Pra
ktikum%20TE/2017-TE%20Prakt-
Sistem%20Mikroprosesor-Image.pdf
 https://www.scribd.com/doc/227659139/Lapora
Data dari hasil percobaan di atas adalah : n-Praktikum-Sistem-Mikroprosesor
 Petunjuk Praktikum Sistem Mikroprosesor
Institut Teknologi Sumatera

Analisis :

Dari percobaan ini input yang kita gunakan adalah


melalui port C aktih high ‘1’ yang akan
menginisalisasikan switch sebagai supply positif
yang keluarannnya akan adalah LED terhubung
dengan Resistror kemudian masuk ke PORT C yang
merupakan sebagai outputnya yang bernilai ‘0’ atau
aktif low. Karna, perubahan dari port yang membuat
nilai 'low' Dari percobaan ini adalah berhasil kami
lakukan. Dan dalam #asm("nop"), bahasa assembly
yang diimplementasikan pada bahasa C.

5. KESIMPULAN

 Dari percobaan yang telah dilakukan kita dapat


menentukan I/O pada Microcontroller AVR
dengan menggunakan DDR (Data Direction
Register).
 Kita dapat mengimplementasikan percobaan ini
pada AVR ATMega8535
 ATMega 8535 memiliki 4 port (A,B,C,D) yang
memiliki 8 pin tiap portnya. Keempat port pada
ATMega 8535 bisa digunakan sebagai input
atau output.

You might also like