Anda di halaman 1dari 17

LAPORAN PRAKTIKUM MIKROKONTROLER

INPUT/OUTPUT

Nama Kelompok :
ANDRO SYAHREZA 175090807111007
DAFFA PRATAMA 175090807111008
ALDO DWIVA ZUSKA 175090807111009
GREGORIUS IVAN S 175090807111010
AFISINDIKA F 175090807111011
NIDYA TIANA 175090807111012
FAHMI NAUFAL H 175090807111013
RIZQI AMALIA 175090807111014

LABORATORIUM INSTRUMENTASI DAN PENGUKURAN


JURUSAN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS BRAWIJAYA
MALANG
BAB I

PENDAHULUAN

1.1 Tujuan Percobaan

Tujuan dari praktikum tentang mikrokontroller adalah untuk memahami konsep dasar
proses input/output pada mikrokontroller Atmega16.

1.2 Dasar Teori

Mikrokontroler AVR (Alf and Vegards Risc processor) dari Atmel ini menggunakan
arsitektur RISC (Reduced Instruction Set Computer) yang artinya prosesor tersebut memiliki
set instruksi program yang lebih sedikit dibandingkan dengan MCS-51 yang menerapkan
arsitektur CISC (Complex Instruction Set Computer). Hampir semua instruksi prosesor RISC
adalah instruksi dasar (belum tentu sederhana), sehingga instruksi-instruksi ini umumnya hanya
memerlukan 1 siklus mesin untuk menjalankannya. Kecuali instruksi percabangan yang
membutuhkan 2 siklus mesin. RISC biasanya dibuat dengan arsitektur Harvard, karena
arsitektur ini yang memungkinkan untuk membuat eksekusi instruksi selesai dikerjakan dalam
satu atau dua siklus mesin, sehingga akan semakin cepat dan handal. Proses downloading
programnya relatif lebih mudah karena dapat dilakukan langsung pada sistemnya. Sekarang ini,
AVR dapat dikelompokkan menjadi 6 kelas, yaitu keluarga ATtiny, keluarga AT90Sxx,
keluarga ATmega, keluarga AT90CAN, keluarga AT90PWM dan AT86RFxx. Pada dasarnya
yang membedakan masingmasing kelas adalah memori, peripheral, dan fungsinya, sedangkan
dari segi arsitektur dan instruksi yang digunakan hampir sama (Risal, 2017).

Port masukan dan keluaran digital memungkinkan kita untuk memasukkan data digital
ke mikokontroller serta mendapatkan data digital dari mikrokontroler. Mikrokontroler
ATMEGA16 memiliki 4 port I/O digital, yang masing masing dinamai Port A, Port B, Port C,
dan Port D. Masing-masing dari port ini memiliki 8 saluran dan angka 0 sampai 7 digunakan
untuk menandai masing-masing saluran pada port. Contoh, Port A memiliki saluran-saluran
yang ditandai sbb: PA0, PA1,PA3, ..., PA7. Dengan 4 port yang masing-masing terdiri dari 8
saluran. Maka total saluran I/0 digital yang tersedia berjumlah 32 saluran (Dharmawan, 2017).

Data Direction Register (DDR): Setiap port dua arah memiliki DDR sendiri, yang berisi
satu bit untuk setiap pin port. Fungsi pin (input atau output) ditentukan oleh kliring atau
mengatur bitnya di DDR. Pin port yang berbeda dapat dikonfigurasi secara berbeda, demikian
pula halnya sangat oke untuk memiliki tiga pin yang dikonfigurasi untuk output dan
menggunakan lima lainnya sebagai input. Setelah reset, bit DDR umumnya diinisialisasi ke
input. Membaca register mengembalikan nilainya.

Port Register (PORT): Register ini digunakan untuk mengontrol level tegangan pin
output. Dengan asumsi pin telah dikonfigurasikan ke output, maka jika bitnya di register PORT
diatur, pin akan tinggi; jika bit dibersihkan, pin akan rendah. Untuk menghindari menimpa bit
lain di port saat pengaturan bit tertentu, biasanya yang terbaik adalah menggunakan operasi bit
controller. Kalau tidak, kamu harus menggunakan akses baca-modifikasi-tulis dan karenanya
harus memastikan bahwa akses ini tidak terganggu. Untuk pin output, membaca register
mengembalikan nilai yang telah Anda tulis. Untuk pin input, tombol fungsi tergantung pada
pengontrol. Beberapa pengontrol memungkinkan Anda membaca status input pin melalui
register port. Pengontrol lain, mis. ATmega16, gunakan bit port untuk yang lain tujuan jika pin
yang sesuai diatur ke input, jadi di sini Anda akan membaca kembali nilai Anda telah menulis
ke register.

Register Input Port (PIN): Register PIN umumnya hanya-baca dan berisi kondisi saat
ini (tinggi atau rendah) dari semua pin, apakah dikonfigurasi sebagai output atau sebagai input.
Ini digunakan untuk membaca status pin input, tetapi juga dapat digunakan untuk membaca
status pin output untuk memverifikasi bahwa output diambil dengan benar. Menulis ke register
ini umumnya tidak berpengaruh.

Daftar I / O :

• Ada 3 register yang mengontrol pin I / O:

DDR, PORT, dan PIN.

• Setiap port memiliki register sendiri. Oleh karena itu, port A memiliki register DDRA,
PORTA, PINA; port B telah mendaftarkan DDRB, PORTB, PINB; dan seterusnya.

• DDR, PORT, dan PIN melayani berbagai fungsi.

(Weiss, 2007).

Sebagian besar CPU dan memori tidak lebih dari transfer register yang rumit mesin,
mampu shunt Bytes dari satu tempat ke tempat lain. Maka akan datang sebagai tidak
mengejutkan bahwa I / O, sekali lagi, melibatkan transfer register. Ingatlah bahwa CPU dapat
output ke dan input dari memori menggunakan bus alamat dan dekoder untuk memilih register
tertentu dalam memori, bus data untuk mentransfer konten register ke dalam atau keluar dari
CPU, dan bus kontrol untuk membawa sinyal seperti di Baca, Tulis, dan Output Enable.
Gagasan yang sama dapat dieksploitasi untuk memilih perangkat tertentu untuk output atau
input (Sangani,2014).

BAB II

METODOLOGI
2.1 Alat dan Komponen

Pada praktikum Input/output ini alat yang digunakan adalah Mikrokontroller


ATMega16, kabel usb asp, kemudian software yang digunakan pada praktikum ini adalah
Atmel Studio sebagai software untuk membuat program yang akan dikimkan ke
Mikrokontroller, Extreme Burner untuk mengirimkan program yang akan dijalankan
mikrokontroller, kemudian Zadiq untuk menginstal Driver USBasp.

2.2 Metode Percobaan

Pertama diinstal semua software yang dibutuhkan, USBasp dihubungkan terlebih


dahulu sebelum menginstal software Extreme Burner dan drivernya melalu zadiq, kemudian
diketikkan proram yang terdapat dalam diktat kedalam software Atmel Studio, kemudian di
Build Solution unuk melakukan cek pada kode program Setelah benar dibuka Software Extreme
Burner dan dibuka file kode program yang sudah disimpan sebelumnya setelah terbuka dipilih
tools Write pada Extreme Burner untuk membaca kode program jika tidak ada yang salah maka
Program akan berjalan dan ditampilkan pada LED (PORTC) sebagai keluaran dari program.

2.3 Gambar Alat

2.3.1 Modul MK ATMega16


2.3.2 USBasp dan Kabel USB ASP

3.2 Pembahasan

3.2.1 Analisa Prosedur

3.2.1.1 Fungsi Alat

Mikrokontroler ATMEGA16 digunakan sebagai memori input/output yang


merupakan register khusus untuk mengatur fungsi terhadap fitur mikrokontroler seperti kontrol
register, timer/counter, fungsi-fungsi input/output, dan sebagainya. Kabel USB ASP digunakan
untuk downloader untuk ATMEGA16 bisa juga dikatakan sebagai jembatan penghubung antara
sistem minimum dengan PC agar program dapat diinput dari PC ke dalam mikrokontroler
ATMEGA16.

3.2.1.2 Fungsi Perlakuan

Aplikasi atau software Atmel Studio, Extreme Burner, dan Zadiq diunduh pada
perangkat laptop/PC. Setelah selesai diunduh, program dibuat dan diketik pada aplikasi Atmel
Studio agar PORTC pada ATMEGA16 dapat diset sebagai keluaran LED sebagai penandanya.
Lalu, kabel USB ASP dihubungkan dari mikrokontroler ke perangkat laptop. Kemudian setelah
dihubungkan, program yang ada pada Atmel Studio dikonversi menggunakan aplikasi Extreme
Burner dan diinput ke dalam mikrokontroler. Setelah program dikonversi dan dimasukkan ke
dalam mikrokontroler, amatilah apa yang terjadi pada mikrokontroler ATMEGA16 tersebut.

3.2.2 Analisa Hasil


Dari data yang didapatkan, diperoleh hasil yang sesuai dengan teoritis. Pada rangkaian
mikrokontroler saat dilakukan percobaan data yang dihasilkan sesuai dengan teori, dimana pada
saat input dimasukan sinyal keluaran output juga sesuai yang diharapkan.

3.2.2.1 Mikrokontroler

Mikrokontroler adalah chip mikrokomputer yang secara fisik berupa sebuah IC


(Integrated Circuit). Sinyal input mikrokontroler berasal dari sensor yang merupakan informasi
dari lingkungan sedangkan sinyal output ditujukan kepada aktuator yang dapat memberikan
efek ke lingkungan. Jadi secara sederhana mikrokontroler dapat diibaratkan sebagai otak dari
suatu perangkat/produk yang mempu berinteraksi dengan lingkungan sekitarnya.

Mikrokontroler pada dasarnya adalah komputer dalam satu chip, yang di dalamnya
terdapat mikroprosesor, memori, jalur Input/Output (I/O) dan perangkat pelengkap lainnya.
Kecepatan pengolahan data pada mikrokontroler lebih rendah jika dibandingkan dengan PC.
Pada PC kecepatan mikroprosesor yang digunakan saat ini telah mencapai orde GHz,
sedangkan kecepatan operasi mikrokontroler pada umumnya berkisar antara 1 – 16 MHz.
Begitu juga kapasitas RAM dan ROM pada PC yang bisa mencapai orde Gbyte, dibandingkan
dengan mikrokontroler yang hanya berkisar pada orde byte/Kbyte.

Meskipun kecepatan pengolahan data dan kapasitas memori pada mikrokontroler jauh
lebih kecil jika dibandingkan dengan komputer personal, namun kemampuan mikrokontroler
sudah cukup untuk dapat digunakan pada banyak aplikasi terutama karena ukurannya yang
kompak. Mikrokontroler sering digunakan pada sistem yang tidak terlalu kompleks dan tidak
memerlukan kemampuan komputasi yang tinggi.

3.2.2.2 Mikrokontroler Atmega16

AVR merupakan seri mikrokontroler Complementary Metal Oxide Semiconductor


(CMOS) 8-bit buatan Atmel berbasis arsitektur RISC (Reduced Instruction Set Computer).
Hampir semua instruksi pada program dieksekusi dalam satu siklus clock. AVR mempunyai 32
register general-purpose, timer/counter fleksibel dengan mode compare, interupsi internal dan
eksternal, serial UART, programmable Watchdog Timer, power saving mode, ADC dan PWM.
AVR pun mempunyai In-System Programmable (ISP) Flash on-chip yang mengijinkan memori
program untuk diprogram ulang (read/write) dengan koneksi secara serial yang disebut Serial
Peripheral Inteface (SPI).
ATMEGA16 mempunyai throughput mendekati 1 Millions Instruction Per Second
(MIPS) per MHz, sehingga membuat konsumsi daya menjadi rendah terhadap kecepatan proses
eksekusi perintah. Beberapa keistimewaan dari AVR ATMEGA16 antara lain:

1. Mikrokontroler AVR 8 bit yang memilliki kemampuan tinggi dengan konsumsi daya
rendah
2. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16MHz
3. Memiliki kapasitas Flash memori 16 Kbyte, EEPROM 512 Byte dan SRAM Kbyte
4. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D
5. CPU yang terdiri dari 32 buah register
6. Unit interupsi dan eksternal
7. Port USART untuk komunikasi serial
8. Fitur peripheral
 Tiga buah Timer/Counter dengan kemampuan perbandingan (compare)
o Dua buah Timer/Counter 8 bit dengan Prescaler terpisah dan Mode Compare
o Satu buah Timer/Counter 16 bit dengan Prescaler terpisah, Mode Compare
dan Mode Capture
 Real Time Counter dengan Oscillator tersendiri
 Empat kanal PWM
 8 kanal ADC
o 8 Single-ended Channel dengan keluaran hasil konversi 8 dan 10 resolusi
(register ADCH dan ADCL)
o 7 Diferrential Channel hanya pada kemasan Thin Quad Flat Pack (TQFP)
o 2 Differential Channel dengan Programmable Gain
 Antarmuka Serial Peripheral Interface (SPI) Bus
 Watchdog Timer dengan Oscillator Internal
 On-chip Analog Comparator
9. Non-volatile program memory
Gambar 2.1 Konfigurasi Kaki (pin) ATMEGA16
Konfigurasi pin ATMEGA16 dengan kemasan 40 pin Dual In-line Package (DIP) dapat
dilihat pada Gambar 2.13. dari gambar diatas dapat dijelaskan fungsi dari masing-masing pin
ATMEGA16 sebagai berikut.
1. VCC merupakan pin yang brfungsi sebagai masukan catu daya
2. GND merupakan pin Ground
3. Port A (PA0 – PA7) merupakan pin input/output dua arah (full duplex) dan selain itu
merupakan pin masukan ADC
4. Port B (PB0 – PB7) merupakan pin input/output dua arah (full duplex) dan selain itu
merupakan pin khusus.
5. Port A (PC0 – PC7) merupakan pin input/output dua arah (full duplex) dan selain itu
merupakan pin khusus.
6. Port D (PD0 – PD7) merupakan pin input/output dua arah (full duplex) dan selain itu
merupakan pin khusus.
7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler.
8. XTAL1 dan XTAL2, merupakan pin masukan external clock
9. AVCC merupakan pin masukan tegangan untuk ADC
10. AREF merupakan pin masukan tegangan referensi untuk ADC.

3.2.2.3 Register DDR


Register DDR digunakan untuk menentukan fungsi pada tiap port dan pin sebagai masukan atau
keluaran. Untuk masukan kita bisa memerikan logika 0 dan untuk keluaran logika 1 pada DDR tersebut.
Misal akan membuat fungsi PORTA sebagai masukan dan PORTB sebagai keluaran maka diberi nilai
DDRA=0x00; dan DDRB=0xFF; atau dalam biner dituliskan DDRA=0b00000000; dan pada
DDRB0b11111111;

3.2.2.3 Register PORTx

PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin input, maka resistor pull-up
akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin
dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah kondisi reset. Bila PORTxn
diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila
PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika
0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output
high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up
enabled (DDxn=0, PORTxn=1) atau kondisi output low (DDxn=1, PORTxn=0).

Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan


impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong high driver dengan
sebuah pull-up. Jika ini bukan suatu masalah, maka bit PUD pada register SFIOR dapat diset 1
untuk mematikan semua pull-up dalam semua port. Peralihan dari kondisi input dengan pull-
up ke kondisi output low juga menimbulkan masalah yang sama. Kita harus menggunakan
kondisi tri-state (DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0)
sebagai kondisi transisi.

3.2.2.3 Register PINx

Register PINx dipakai untuk membaca data pada port ketika DDRx diset sebagai input.
Bit PINxn terdapat pada I/O address PINx.

PINx digunakan untuk mengambil/membaca data dari port mikrokontroler, saat


dikonfigurasikan sebagai input.

Contoh:

PortB=0xCC //jika ditulis salam hexa

DDRB=0x0F //jika ditulis salam biner maka DDRB=0b00001111


Arti dari sintax di atas adalah PORTB(0-3) sebagai input dan PORTB(4-7) sebagai
input. Sedangkan dari PORT terlihat bahwa PB(0-1)= low, PA(2-3)=high, PA(4-5) tanpa
floating dan PA(6-7) dengan Rpull-up
BAB IV

PENUTUP

4.1 Kesimpulan

FAHMI MANA

4.2 Saran

Saran untuk praktikum ini yaitu para praktikan diharap mengerti mengenai materi yang
akan dipraktekan agar praktikum dapat berjalan dengan lancar dan hasil sesuai dengan
keinginan.
DAFTAR PUSTAKA

RIRIS MANA
Arnold, Bradford Henry. 1962. Logic and Boolean Algebra. Mineola: Dover Publications,
Inc.
Givant, Steven dan Paul Halmos. 2009. Introduction to Boolean Algebras. Oakland: Spinger
Wahyuningrum, Tenia. 2016. Matematika Diskrit dan Penerapannya dalam Dunia Informasi.
Yogyakarta: Deepublish.
Whitesitt, J. Eldon. 2010. Boolean Algebra and Its Application.
Mineola: Dover Publications, Inc.
Widjanarka, Wijaya. 2006. Teknik Digital. Jakarta: Erlangga.
LAMPIRAN

Anda mungkin juga menyukai