Anda di halaman 1dari 11

Percobaan I

I/O Dasar
Iman Sianturi (1181300035)
Asisten : Tri Wijaya(13117033)
Tanggal Percobaan : 20/03/2021
EL 2209 Praktikum Sistem Mikroprosesor
Laboratorium Teknik Elektro
Institut Teknologi Sumatera

Abstrak— Praktikum Modul 1 yaitu I/O Dasar praktikan akan


melakukan beberapa percobaan dengan menggunakan simulasi
Proteus dan CodevisionAVR.Praktikum ini praktikan
diharapkan memahami datasheet dari ATmega 8535.Percobaan
yang akan dilakukan praktikan berupa input dan output pada
port dengan implementasi berupa Bahasa C dengan keluaran
LED yang yang akan menyala.Pada praktikum ini juga praktikan
diharapkan memahami konversi bilangan biner ke heksadesimala
atau sebaliknya.

Kata Kunci—Enter key words or phrases in alphabetical order,


separated by commas.

Gambar 1.Skematik I/O


I. PENDAHULUAN 2.2 Konfigurasi Pin Port
ATmega 8535 merupakan salah satu jenis dari mikrokontroler
8 bit hasil pabrikan ATMELATmega 8535 memiliki salauran
I/O sebanyak 4 yaitu Port A (PA0-PA7) sebagai pin masukan
ADC dan pin I/O dua arah,Port B (PB0-PB7) memiliki fungsi
khusus sebagai timer,counter,komprator analog dari SPI,Port
C(PC0-PC7) memiliki fungsi khusus yaitu TWI,time oscilattor
dan komprator analog,Port D (PD0-PD7) memiliki fungsi
khusus yaitu sebagai interupsi eksternal,komunikasi serial dan
komprator analog.

Adapun tujuan dari praktikum ini,yaitu ; Gambar 2. Konfigurasi Pin Port


● Praktikan memahami datasheet ATmega 8535
● Praktikan mampu membuat aplikasi input dan output pada 2.3 PUD Pada SFIOR
AVR dengan menggunakan Bahasa pemograman C di
CodevisionaAVR.
● Praktikan memahami pengesetan Fuse yang berkaitan dengan
pengguakan besar dan jenis kristal.

II. LANDASAN TEORETIS


2.1 Skematik I/O Gambar 3 PUD SFIOR

Tiga lokasi I/O memory address dialokasikan untuk masing- 2.4 Rekomendasi Inisialisai Pin Input
masing port, satu untuk Data Register – PORTx, satu untuk
Data Direction Register – DDRx, satu untuk Port Input Pins – Jika terdapat pin yang tidak digunakan, sebaiknya pin tersebut
PINx. Lokasi I/O Port Input Pins hanya bisa dibaca (read only), di-define. Meskipun sebagian besar input digital tidak aktif
sedangkan Data Register dan Data Direction Register readwrite dalam deep sleep mode, floating input haruslah dihindari. Hal
ini dilakukan untuk mengurangi komsumsi arus pada mode lain Tugas 1A.2
dimana input digital aktif.Cara palig sederrhana untuk men-
define level sebuah pin yang tidaj terpakai dengan
mengaktifkan internal pull-up.Pull-up tidak dapat digunakan Compile dan build all
selama reset.Jika daya rendah selama reset adalah hal yang source code pada lampiran
penting sebaikknya digunakan eksternal pull-up. tugas B1di CVAR dengan
keluaran LED 3 digit
2.5 Deskripsi Register angka terakhir NIM

Gambar 4 Deskripsi Register Jalankan dan amati hasil


yang ditampilkan di
proteus (ATmega 8535)
III. METODOLOGI
3.1 Alat Dan Bahan Tugas 1 B.1

● PC /Labtop yang sudah terinstal Proteus dan Codevision


AVR

3.2 Langkah Percobaan Compile dan build all


source code pada lampiran
Tugas 1 A.1 tugas B1di CVAR dengan
keluaran LED 3 digit
angka terakhir NIM
Buka/jalankan software
CAVR

Masukkan source code Jalankan dan amati hasil


yang telah dilampirkan di yang ditampilkan di
modul praktikum proteus (ATmega 8535)

Tugas 1 B.2

Compile dan build all,buka


software proteus
Modifikasi source code
pada lampiran tugas B1di
CVAR dengan keluaran
LED 3 digit angka terakhir
NIM
Buat rangkaian yang diperintahkan di
modul,kemudian simulasikan rangkaian dengan
menggunakan file Hex yang telah di build di
CVAR
#include <mega8535.h>
Jalankan dan amati hasil void main(void)
yang ditampilkan di {
proteus (ATmega 8535) DDRB = 0xFF; // Seluruh Port B
dikonfigurasi sebagai OUTPUT
PORTB = 0xFF; // Seluruh Port B bernilai
Tugas 1 C.1 �0’, maka LED akan menyala
}

Jalankan source code Pada source code terlihat bawasannya nilai dari DDRB yaitu
pada lampiran tugas C1 0xFF berarti nilai dari 8 bit portnya yaitu sebesar 1.Dimana
semua bit pada port tersebut berfungsi sebagai
output.Selanjutnya output terhubung ke LED yang kemudian di
indikasi apakaha output tersebut HIGH atau LOW.Source code
diatas menunjukkan bawasanya output bernilai HIGH.

Amati hasil yang Tugas 1A.2


ditampilkan di proteus
/ATmega 8535

Tugas 1 C.2

Modifikasi source code


sesuai perintah perintah
modoul tugas C2

Amati hasil yang


ditampilkan di proteus
/ATmega 8535
#include <mega8535.h>
void main(void)
IV. HASIL DAN ANALISIS {
DDRB = 0xFF; // Seluruh Port B
dikonfigurasi sebagai OUTPUT
Tugas 1 A.1 PORTB = 0x23; // Seluruh Port B bernilai
�0’, maka LED akan menyala
}

Pada percobaaan ini masih dilakukan hal yang sama seperti


percobaaan A.1.Hasil keluaran LED diatas adalah representasi
dari 3 digit angka terakhir NIM yaitu 100011 yang di konversi
menjadi bilangan heksa yaitu 23
Tugas 1 B.1

#include <mega8535.h>
#include <delay.h>
#include <mega8535.h> void main(void)
#include <delay.h> {
void main(void) DDRB = 0xFF; //Seluruh Port B
{ dikonfigurasi sebagai OUTPUT
DDRB = 0xFF; //Seluruh Port B PORTB = 0x23; // Semua Port B
dikonfigurasi sebagai OUTPUT mengeluarkan logika �1’Sehingga LED tidak
PORTB = 0xFF; // Semua Port B menyala.
mengeluarkan logika �1’ Sehingga LED while(1)
tidak menyala. {
while(1) PORTB = 0x00; // LED menyala
{ delay_ms(500);
PORTB = 0x00; // LED menyala PORTB = 0x23; // LED mati
delay_ms(500); delay_ms(500);
PORTB = 0xFF; // LED mati }
delay_ms(500); }
} Pada percobaan ini ,masih sama halnya dengan percobaan
} sebelumnya akan tetapi untuk outputnya menggunakan
representasi 3 digit angka terakhir NIM,dimana PORTB dengan
Pada percobaan ini untuk source codenya diambil dari modul nilai 0x00 akan mempertahnkan kondisinya selama waktu delay
praktikum ,tetapi percobaan menggunakan delay sebesar 500 yang ditentukan yaitu sebesar 500ms,yang kemudian akan
ms.sama seperti percobaan sebelumnya DDRB bernilai 0xFF berganti ke nilai PROTB 0x23 dan akan mempertahankan juga
atau bernilai 1 untuk 8 bit portnya.Pada source code diatas kondisinya selama waktu delay yang ditentukan.
PORTB dengan nilai 0x00 akan menyala dengan
mempertahankan waktu yang sesuai dengan delaynya,begitu Tugas 1 C.1
juga dengan PORTB dengan nilai 0xff akan mati dan juga
mempertahankan waktu delaynya.setiap selang waktu 500
millisekon output akan berganti dari nilai 0xff ke nilai 0x00.

Tugas 1 B.2
#include <mega8535.h>
#include <delay.h> void main(void)
void main(void) {
{ DDRB = 0x23; // Seluruh port B
DDRB = 0xFF; // Seluruh port B dikonfigurasi sebagai output
dikonfigurasi sebagai output PORTB = 0x00;
PORTB = 0xFF; DDRD = 0x23; // Port D dikonfigurasi
DDRD = 0xFF; // Port D dikonfigurasi sebagai input
sebagai input PORTD = 0x00;
PORTD = 0x00; #asm("nop")
#asm("nop")
while(1){ while(1){
PORTB = PIND ;// Membaca penekanan push- PORTB = PIND;
button di port D
// dan outputnya dikeluarkan di port B. delay_ms(200);
} PORTB = 0x00;
} delay_ms(200);

Pada percobaan kali ini PORT B dikonfigurasi sebagai output }


dan PORT D di konfigurasi sebagai input. }

. Tugas 1 C.2 Pada percobaaan kali ini hasil keluaran akan menampilkan
LED yang menyala dengan representasi 3digit angka terakhir
NIM .pada souce code terdapat delay sebesar 200 ms,dimana
LED akan mempertahankan menyala atau PORT B akan
meyala Kembali dengan selang waktu 200 ms.

V. SIMPULAN

• Untuk mengetahui input/output dari ATmnega 8535 dapat


dikoding dengan menggunkan software CVAVR
• Dari percobaan terdapat hasil yang didapat dengan output
delay
• Skematik I/0 dasar memiliki register yang seblumnya harus
diisi dulu untuk mengentifikasi apakah port bekerja sebagai
input atau output..

REFERENSI
[1].Modul 1 Praktikum Teknik Elektro -Institut Teknologi Sumatera

[2] Efendi Bacthiar,Dasar Mikrokontroler ATmega8535 dengan CAVR

[3] PEMBELAJARAN & PRAKTIKUM DASAR: Mikrokontroler AT8535,


Arduino UNO R-3 BASC... - Google Books

#include <mega8535.h>
#include <delay.h>
Lampiran
Link Rekaman Vidio ; https://drive.google.com/drive/folders/1Gme78b-9HAXQNZRQLGDnm8DLkY0u1MJH?usp=sharing

Anda mungkin juga menyukai