I/O DASAR
M Adnan Zulkarnain (118130088)
Asisten : Rifki Yafi ( 13117049 )
Tanggal Percobaan : 20/03/2021
EL2209 Praktikum Sistem Mikroprosesor
Laboratorium Teknik Elektro
Institut Teknologi Sumatera
III. METODOLOGI
Gambar 2.2 Fungsi khusus port B
A. Alat dan Bahan
Port C (PC0 – PC7) merupakan pin input/output dua arah (full • Laptop/ PC
duplex) pin yang mempunyai fungsi khusus, yaitu komparator • Aplikasi CVAVR dan Proteus Profesional
analog dan Timer Oscillator. Adapun fungsi pin dari Port C • Aplikasi khazama programmer
ditunjukkan dalam gambar 2.3
B. Langkah Kerja
1. Percobaan Port B sebagai output
#include <mega8535.h>
void main(void)
{
DDRB = 0xFF; // Seluruh Port B dikonfigurasi sebagai
OUTPUT
PORTB = 0xFF; // Seluruh Port B bernilai ‘0’, maka LED
akan menyala
}
#include <mega8535.h>
Gambar 4.4 Percobaan 1.B2
#include <delay.h>
void main(void) Pada percobaan kedua ini kita melakukan percobaan fasilitas
{ delay pada percobaan ini masih sama dengan percobaan
DDRB = 0xFF; //Seluruh Port B dikonfigurasi sebagai pertama tetapi kita merubah script coding pada CVAVR dengan
OUTPUT penambahan delay pada port B sebesar 500 ms pada percobaan
PORTB = 0xFF; // Semua Port B mengeluarkan logika ‘1’ 1.B1 kondisi OUTPUT LED DISPLAY menyala bergantian
Sehingga LED tidak menyala. setiap (sekitar) 500 milidetik sesuai dengan kedua nilai PORTB
while(1) dan percobaan ini dianggap berhasil. Pada percobaan 1.B2 kita
{ melakukan percobaan dengan memasukan nilai biner NIM
PORTB = 0x00; // LED menyala teman sekelompok yaitu dengan logika “1” NIM 87 biner
delay_ms(500); 01010111 while(1) dan nilai hexadecimal pada port B dengan
PORTB = 0xFF; // LED mati nilai 0x57 dapat dilihat dalam hasil percobaan lampu led yang
delay_ms(500); menyala dengan kedap kedip yaitu lampu led nomor 2,4,6,7,8
} dengan masukan dihubungkan semua pada port B . pada
percobaan ini dapat kita lihat masukan angka biner dan
hexadecimal pada port B dapat berpengaruh pada hasil nyala
lampu led tersebut dan pada percobaan yang dilakukan berhasil.
#include <mega8535.h>
#include <delay.h>
void main(void)
{
Gambar 4.3 Percobaan 1.B.1 DDRB = 0xFF; // Seluruh port B dikonfigurasi sebagai output
PORTB = 0xFF;
Script coding percobaan 1.B.2 DDRD = 0x00; // Port D dikonfigurasi sebagai input
PORTD = 0x00;
#include <mega8535.h> #asm(“nop”)
#include <delay.h> while(1){
void main(void) PORTB = PIND ;// Membaca penekanan push-button di port
{ D
// dan outputnya dikeluarkan di port B.
} PORTB dimasukkan nilai dengan bit 1 semua sehingga port D diassign
} dengan bit 1 sehingga portA diassign dengan 0xFF. Pada body
program, digunakan variable I yang bertipe unsigned char sebagai
pengeset supaya output akan sesuai dengan input. Pada bagian portD
kita menggunakan permisalan while (1) dengan mengkonversi
bilangan 3 angka nim terakhir yaitu 58 dikonversi ke biner menjadi
01011000 maka output LED akan bertingkah seperti percobaan dengan
input yang sudah dilakukan Nilai PIND (8 bit biner) merupakan
representasi dari input switch yang mana jika switch tertentu aktif
(ON, yang mana terlihat dari LED pada switch menyala) maka bit yang
mewakili switch tersebut bernilai 1. Contohnya, jika SW0, SW1, SW3,
SW4, dan SW5 ON, maka nilai PIND adalah 0b00111011 yang artinya
keadaan ini memasuki kondisi 2. Nilai PIND ini kemudian akan
disimpan dalam variabel a untuk kemudian nilai variabel a ini akan
dibandingkan dalam body loop sehingga diperoleh kondisi 2 dalam
spesifikasi
V. SIMPULAN
Gambar 4.5 Percobaan 1.C1 keadaan logika 1
Pada Modul1 yang berjudul I/O dasar dapat disimpulkan
bahwa :
Script Coding Percobaan 1.C2 • Pada modul ini kita dapat mempelajari tentang I/O
#include <mega8535.h> dasar pada rangkaian LED , mengetahui IC ATMEGA
#include <delay.h> 8535, dan data sheet dari ATMEGA 85535,dan
void main(void) tentang PORT, PIN, clock dan register
{ • Mampu mengerti pengaplikasian input dan output pada
DDRB = 0xFF; // Seluruh port B dikonfigurasi sebagai output AVR dengan menggunakan bahasa pemprograman C pada
PORTB = 0x58;// Konversi NIM kawan M Adnan WinAVR
088(Desimal > 58 (Hexa) • Pada praktikum ini kita memahami cara kerja rangkaian
LED dengan menggunakan nilai biner dean bilangan
DDRD = 0x00; // Port D dikonfigurasi sebagai input
hexadecimal
PORTD = 0x00;
• Pada praktikum ini kita mengetahui kegunaan resistor pull-
#asm(“nop”) up pada percobaan 3 yaitu untuk mencegah nilai float pada
while(1){ kondisi high dengan menambahkan sebuah resistor pada jaur
//HEXA 58 dikonversi ke biner menjadi 01011000 sumber tegangan dan parallel dengan jalur input ke
If (PIND,7==0&& PIND,5==00&&PIND.1==0&&PIND,0 microcontroller
0==0){
PORTB = 0x58; // LED menyala Referensi
Delay_ms(200); }
{ [1]http://repository.usu.ac.id/bitstream/handle/123456789/286
Else (PIND,7==1&& PIND, 5==1&& PIND, 77/Chapter%20II.pdf;sequence=4
2==1&&PIND.1==1&&PIND. 0==1)
[2] HUTABARAT, MERVIN T., WASKITA ADIJARTO, DAN
Port B= 0xFF// Membaca Penekanan Push Button di port B
HARRY SEPTANTO, PRAKTIKUM SISTEM MIKROPROSESOR,
Delay_ms(200);
SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT
}
TEKNOLOGI BANDUNG, BANDUNG, 2013
}
[3] http://eprints.undip.ac.id/67080/6/BAB_II.pdf