Anda di halaman 1dari 11

LAPORAN PRAKTIKUM TI 1

MODUL 2

INPUT - OUTPUT

Oleh :

IMANUEL ALESSANDRO DELPIERO UNU

(1406030041)

TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNIK
UNIVERSITAS NUSA CENDANA
2017
A. TUJUAN

Dapat mengatur port input dan output mikrokontroler AVR ATmega 16 dan mengendalikan
nyala 8 lampu LED yang terhubung ke port output berdasarkan input yang diberikan pada port
yang diseting sebagai input

B. DASAR TEORI

Pada mikrokontroler terdapat pin-pin yang berfungsi sebagai input atau output, jika berfungsi
sebagai input biasanya disebut “PIN” dan jika berfungsi sebagai output biasanya disebut
“PORT”. Pin-pin pada mikrikontoler biasanya mempunyai fungsi/kegunaan khusus namun pin
tersebut harus diaktifkan terlebih dahulu, jika tidak diaktifkan pin-pin tersebut hanya akan
berfugsi sebagai input atau output digital, itupun hanya biner (bernilai 1 atau 0). Contoh: pada
PINA/PORTA ATmega 16 mempunyai fungsi khusus yaitu sebagai ADC (Analog Digital
Conveter), jika fungsi ADC tidak diaktifkan maka pin tersebut hanya akan berfungsi sebagai
input atau output digital. Meskipun satu pin mikrokontroler bisa berfungsi sebagai input atau
ouput, tegangan yang diperlukan (sebagai input) atau dikeluarkan (sebagai output) pin tersebut
sedikit berbeda.

Input digital mikrokontroler

Pada dasarnya input digital pada mikrokontroler harus jelas (jelas 1 atau 0) dan pin input tersebut
jika diaktifkan tidak boleh dalam keadaan tidak tersambung karena dikhawatirkan pin tersebut
akan rusak, maka solusinya adalah dengan memberikan resistor pull up atau pull down.

Pada dasarnya semua PIN input atau output mikrokontroler di dalamnya terdapat rangkaian pull
up internal yang mana rangkaian tersebut akan aktif hanya jika diaktifkan melalui
software(program).

a. Aktif high

Penambahan resistor pull down pada input mikrokontroler ini akan menyebabkan suatu keadaan
yang disebut dengan aktif high. Sebagai contoh, jika push button tidak ditekan maka pada input
mikrokontrolernya bernilai 0, namun jika push button ditekan maka pada input
mikrokontrolernya bernilai 1. Selain itu, ketika di rangkai pada rangkaian, maka logika input
aktif high di hubungkan dengan sumber tegangan Vcc (5 volt).

Gambar Logika input Aktif High.


b. Aktif low

Kalau aktif high diberi resistor pull down maka untuk aktif low diberikan resistor pull up.
Sebagai contoh, jika push button tidak ditekan maka pada input mikrokontrolernya bernilai 1,
namun jika push button ditekan maka pada input mikrokontrolernya bernilai 0. Berbeda dengan
logika input aktif high, ketika di rangkai pada rangkaian maka logika input aktif low di
hubungkan ke ground.

Gambar Inputan Logika Aktif Low

Output digital mikrokontroler

Pada output digital hampir sama halnya dengan input digital, persamaannya adalah sama-sama
mengeluarkan logika high(1) atau low(0). Nilai output digital sudah jelas high(1) atau low(0),
yang mana jika bernilai high berarti outputnya mengeluarkan tegangan sekitar 2 – 5 v sedangkan
jika bernilai low berarti mengeluarkan tegangan sekitar 0 – 0,8 v.

i. Aktif high

Kalau aktif high pada input mikrokontroler itu diperlukan resistor pull down sedangkan pada
outputnya tidak diperlukan, karena output mikrokontroler sudah jelas high(1) atau low(0).

Akan tetapi rangkaiannya harus diperhatikan. Sebagai contoh, Rangkaian LED dengan Resistor
yang terhubung ke mikrokontroler.

Gambaran umum rangkaian aktif high pada output mikrokontroler.

Pada gambar diatas terlihat aplikasi output yang dirangkai dengan sebuah led dan resistor.

Led pada gambar di atas akan menyala jika diberi tegangan maju( kutub anoda diberi tegangan
positif sedangkan katodanya disambungkan ke ground).
ii. Aktif low

Pada rangkaian aktif low output ini hampir sama dengan aktif high, hanya posisi lednya dibalik
dan rangkaiannya disambugkan ke Vcc (5v).

Gambar rangkaian aktif low pada mikrokontroler.

Rangkaian diatas jika diberi logika high(1) maka lednya tidak menyala, sedangkan jika diberi
logika low maka lednya akan menyala. ( kutub anoda diberi tegangan positif sedangkan
katodanya disambungkan ke mikrokontroler).

PENGATURAN PORT SEBAGAI INPUT DAN OUTPUT SECARA PROGRAM.

Pada topic sebelumnya sudah dikenalkan cara meng-akses port sebagai keluaran, sehingga
selanjutnya pada topic ini akan digabung dengan masukan atau input. Masukan untuk
mikrokontroler bisa dari saklar, sinyal logika, atau rangkaian lain yang memiliki keluaran.
Sebagai dasar mempelajari masukan pada mikrokontroler, pada topic ini akan digunakan
saklar/button sebagai masukannya.

Pengaturan inisialisasi port pada mikrokontroler dapat dilakukan dengan dua cara, secara
menggunakan CodeWizardAVR, atau secara penulisan program. Sedangkan sebagai kondisi port
sebagai masukan terdapat dua karakter yaitu ‘P’ dan ‘T’. ‘P’ merupakan kependekan dari Pull
Up, sedangkan ‘T’ merupakan kependekan dari Toggle. Berikut contoh pengaturan port mikro
secara CodeWizardAVR atau tertulis;

Pengaturan Port
secara Program
menggunakan Code
Wizard
Pengaturan Port secara tertulis :
Seperti yang telah dijelaskan pada topic sebelumnya dalam pengaturan secara tertulis inisialisasi
port masukan memiliki fungsi sebagai derikut;
PORTA =0x00; Kondisi 8 bit pada PORTA semuanya Toggle (‘T’)
=0xFF; Kondisi 8 bit pada PORTA semuanya Pull up (‘P’)
=0xF0;Kondisi 4 bit LSB PORTA berfungsi sebagai Toggle (‘T’), sedangkan 4 bit MSB
PORTA berfungsi sebagai Pull up (‘P’).
DDRA =0x00; Semua 8 bit pada PORTA berfungsi sebagai masukan.

Fungsi pada kondisi Toggle masukan mikrokontroler akan membaca sinyal setiap ada perubahan
logika. Perubahan itu bisa dari logika tinggi (1) menuju rendah (0) dikatakan sebagai kondisi
falling edge, atau sebaliknya dari logika rendah (0) ke tinggi (1) dikatakan sebagai kondisi rising
edge. Prinsip tersebut mengakibatkan dalam pembacaan satu gelombang sinyal terdapat dua kali
sinyal masukan ke mikrokontroler. Berikut secara ilustrasi pembacaannya;

Kondisi pengaturan port masukan pada Pull up (‘P’) mendeteksi/membaca masukan hanya satu
kali dalam satu gelombang masukan. Pembacaan tersebut pada saat gelombang pada kondisi dari
logika tinggi (1) ke logika rendah (0) dikatakan sebagai kondidi falling edge. Selain itu bahwa
pada pengaturan kondisi pull up mengeset pin masukan didalam mikro terhubung dengan VCC
(5V) melalui resistor. Resistor yang memiliki prinsip seperti tersebut dinamakan sebagai resistor
pull up. Resistor ini menjaga agar pada pin masukan yang telah diatur berlogika tinggi, dan
menunggu sinyal masukan dengan logika rendah untuk meng -aktif-kannya. Berikut secara
ilustrasi prinsip kerja masukan pada kondisi pull up;
Kebanyakan rangkaian masukan ke mikrokontroler mengambil prinsip falling edge sebagai
sinyal tanda aktif, atau bisa dikatakan memiliki logika aktif jika sinyal masukannya rendah
(low). Apabila terhubung dengan sebuah masukan dari saklar/button, maka saklar saat tertutup
terhubung dengan ground (Gnd). Sebaliknya, apabila saklar dalam kondisi terbuka akan
mempertahankan logika tinggi (high) pada masukan, dikarenakan terdapat resistor pull up yang
menjaga jalur data masukan dalam kondisi tinggi. Walaupun dalam pengaturan kondisi masukan
sudah di pull up, akan tetapi untuk mengamankan kondisi datanya , maka akan dipasang resistor
pull up lagi di luar pada system minimum. Berikut ilustrasi skematiknya;

Pengambilan data atau mendeteksi sinyal masukan dari luar dilakukan mikroprosesor dengan
instruksi program yang telah ditentukan. Instruksi pemrograman dalam bahasa C pada Code
Vision AVR yaitu “PINx”. Berikut penjabaran penulisan program untuk membaca sinyal data
dari luar;
PINA==0b11111101; pada PORTA bit 1 berlogika rendah (terdapat sinyal masukan),
bit 0 dan bit 2-7 berlogika 1 (tidak terdapat sinyal masukan)
Atau,
PINA.1==0; Pada PORTA bit 0 berlogika rendah yang menunjukkan terdapat sinyal
masukan (saklar tertutup)

Instruksi program masukan PIN biasanya digunakan bersamaan dengan dengan intruksi syarat
pada bahasa C. Salah satunya yaitu penggunaanya bersama instruksi “IF”, berikut contohnya;
if(PINA.1==0)
{
…….. (aksi yang dilakukan)
};
Atau pada perulangan “while”;
while(PINA.1==0)
{
…….. (aksi yang dilakukan berulang-ulang)
};
A. Penggunaan symbol “==” (sama dengan dua kali), mempunyai fungsi sebagai pertanyaan
kondisi pada PIN yang dituju. Apakah kondisi PIN masukan dalam kondisi rendah atau
pada kondisi tinggi. Sedangkan untuk mengetahui hasil dari pembacaan masukan
program masukan (INPUT) digabung dengan program keluaran (OUTPUT).
C. ALAT & BAHAN

Adapun Alat & Bahan yang di gunakan adalah :

1. Proteus Professional versi 8.0


2. Compiler Code Vision AVR

D. GAMBAR SIMULASI RANGKAIAN

E. HASIL TUGAS MANDIRI


i. LED geser dengan menggunakan 2 Switch

Gambar diatas merupakan capture gambar desain rangkaian untuk LED geser menggunakan 2
switch. Berdasarkan gambar diatas, alat yang digunakan adalah Mikrokontroler Atmega16
dengan PORTD yang diset sebagai output, PORTA yang diset sebagai inputan 4 switch (dengan
keadaan “Pullup”), 8 LED berwarna kuning, 4 push button, 12 resistor (4 Resistor 1K & 8
Resistor 330R) dan Power Vcc. Pada praktikum modul 2 ini mikrokontroler diprogram untuk
membuat lampu LED menyala bergeser secara berurutan ke kiri jika Push Button1 di tekan,
dimulai dari LED D1 sampai pada LED D8. Selain itu juga dibuat program untuk membuat
lampu LED geser bergantian kekanan jika Push Button2 ditekan.
ii. Script Program

Adapun script programnya adalah sebagai berikut :

LED geser ke kiri jika Push Button 1 di tekan & LED geser ke kanan jika Push Button 2 di
tekan.
iii. Proses Kerja dari Script Program
#Include <mega16.h> diatas memiliki arti program yang digunakan menggunakan library
yang disimpan dalam chip Atmega16.
#include <delay.h> berarti menggunakan waktu delay.
.h berarti .heather berarti penempatan kode tersebut di bagian atas.
Pada fungsi main (place your code here) menyisipkan instruksi berikut.
*catatan : Program ini menggunakan tipe kerja Rangkaian aktif Low, sehingga lampu LED akan
menyala dan Push Button aktif jika di beri inputan logika 0.

START

Char led1;

Char digit1[8] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};

Char digit2[8] = {0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};

PINA.0==0 ?

PORTD=0xFF; delay_ms(25);

For(led1=0;led1<=7;led1++)

PORTD=digit1[led1];delay_ms(25);
PINA.1==0 ?

PORTD=0xFF; delay_ms(25);

For(led1=0;led1<=7;led1++)

PORTD=digit2[led1];delay_ms(25);

END
F. Kesimpulan

Adapun kesimpulan yang diperoleh dari Praktikum Modul 2 ini adalah :

 Chip Mikrokontroler ATMega 16 pada Rangkaian LED geser berfungsi sebagai tempat
menyimpan program CVAVR yang telah dikerjakan untuk mengendalikan LED atau bisa
dikatakan bahwa ATMega 16 merupakan sentral pemrosesan data program. ATMega 16
memiliki 4 port yang dapat di setting menjadi output pada suatu media seperti LED
maupun input PullUp yang mengaktifkan Rangkaian Push Button.
 Software Proteus berfungsi membuat desain untuk Rangkaian simulasi sekaligus media
untuk menjalankan simulasi.
 CodeVisionAVR berfungsi membuat coding untuk menyalakan LED dan Mengaktifkan
fungsi Rangkaian Push Button. Program pada CodeVisionAVR dapat diatur sedemikian
rupa untuk mengontrol LED akan bergeser ke kiri jika Push Button 1 di tekan ataupun
LED bergeser ke kanan jika Push Button 2 di tekan. Adanya perintah pengulangan For
mempermudah seorang programmer untuk membuat coding program yang lebih
sederhana.

Anda mungkin juga menyukai