Professional Documents
Culture Documents
PRAKTIKUM MIKROPROSESSOR
Oleh :
NAMA
STAMBUK
: E1D1 12 004
KELOMPOK
: IV (EMPAT)
LEMBAR PENGESAHAN
LAPORAN LENGKAP
PRAKTIKUM MIKROPROSESSOR
OLEH :
Kendari,
Mengetahui,
Ketua Program Studi
S-1 Teknik Elektro
BUNYAMIN, ST., MT
NIP. 19740418 200112 1 001
Oktober 2014
Menyetujui,
Kepala Laboratorium Elektronika,
Kontrol dan Telekomunikasi
KARTU KONTROL
NAMA
STAMBUK
: E1D1 12 004
Photo
KELOMPOK
: IV (EMPAT
3X4
PRAKTIKUM
: MIKROPROSESSOR
NO
1
2
3
NAMA PERCOBAAN
TANGGAL MASUK
PRAKTEK LAPORAN
ASISTEN
KET
INPUT/OUTPUT
INTERRUPSI
TIMER/COUNTER
Kendari,
Oktober 2014
Kepala
Laboratorium
Telekomunikasi
Elektronika,
Kontrol
dan
Nama
NIM
: E1D1 12 004
Mata kuliah
: Praktikum Mikroprosessor
Kelompok
: IV (Empat)
No
Hari/tanggal
Uraian
Paraf
Kendari,
Oktober 2014
Assisten Dosen
Syarif Asykin., ST
KATA PENGANTAR
Assalamu'alaikum Wr.Wb
Puji syukur kita panjatkan kehadirat Allah SWT. karena atas segala rahmat-Nya sehingga laporan
Praktikum Mikroprosessor tahun 2014/2015 ini dapat terselesaikan. Dalam laporan praktikum ini
terdapat hasil percobaan yang telah dilakukan pada praktikum mikroprosessor sebelumnya.
Laporan praktikum ini berisi mengenai semua hasil percobaan yang sesuai dengan teori yang
telah diajarkan dalam praktikum di laboratorium. Laporan ini berisi 3 bab dengan masing masing
percobaannya. Tiga bab tersebut adalah : Input/Output, Interupsi dan Timer/Counter.
Dengan selesainya laporan praktikum ini, penulis mengucapkan terima kasih kepada Dosen
Praktikum Mikroprosessor Bapak Luther Pagiling, ST,. MT dan asisten dosen praktikum
mikroprosessor Bapak Syarif Asykin, ST.
Dan teman-teman anggota kelompok IV serta seluruh pihak yang telah terlibat dalam penyusunan
laporan ini baik secara langsung maupun tak langsung.
Penulis menyadari sepenuhnya bahwa laporan ini masih banyak memiliki kekurangan. Oleh
karena itu, dengan lapang dada dan hati terbuka penulis mengharapkan pada pembaca untuk
memberikan saran dan kritik yang sifatnya membangun demi sempurnanya laporan ini.
Kendari,
Oktober 2014
Penyusun
DAFTAR ISI
Halaman Judul .. i
Halaman Pengesahan ii
Kartu Kontrol iii
Kartu Asistensi . iv
Kata Pengantar ..v
Daftar Isi ...vi
Bab I Input/Output ....1
1.1 Teori Dasar ....
1.2 Tujuan Percobaan ..
1.3 Alat dan Bahan ..
1.4 Prosedur Percobaan ...
1.5 Analisa ...
1.5.1
....
1.5.2
...
1
5
5
5
8
Percobaan
..
8
Percobaan 2 ...
9
13
17
17
18
21
Percobaan
..
21
Percobaan 4 ...
22
24
25
25
25
28
Percobaan
28
Penutup . 30
Daftar Pustaka .. 32
..
BAB I
INPUT/OUTPUT
1.1 Teori Dasar
AVR merupakan seri mikrokontroler CMOS 8-bit buatan
Atmel, berbasis arsitektur RISC (Reduced Instruction Set
Computer). Hampir semua instruksi dieksekusi dalam satu
siklus clock. AVR mempunyai 32 register general -purpose,
timer/counter fleksibel dengan mode compare, interrupt
internal dan eksternal, serial UART, programmable Watchdog
Timer, dan mode power saving, ADC dan PWM internal. AVR
juga mempunyai In-System Programmable Flash on-chip yang
mengijinkan memori program untuk diprogram ulang dalam
system menggunakan hubungan serial SPI. ATMega16.
ATMega16 mempunyai throughput mendekati 1 MIPS per
MHz membuat disainer sistem untuk mengoptimasi konsumsi
daya versus kecepatan proses. ATMega16 mempunyai empat
buah port yang bernama PortA, PortB, PortC, dan PortD.
Keempat port tersebut merupakan jalur bidirectional dengan
pilihan internal pull-up. Tiap port mempunyai tiga buah
register
bit,
yaitu
DDxn,
PORTxn,
dan
PINxn.
Huruf
dari
kondisi
tri-state
(DDxn=0,
output low
misalkan
menggunakan
PORT
berarti
registernya DDRA.
Register ini berfungsi untuk mengatur arah PIN/PORT mikrokontroler.
Apakah dipakai sebagai input atau output. Nilai register ini sebesar 8 bit.
Setiap bit mewakili masing-masing pin kaki mikrokontroler. Jika pin kaki
mikrokontroler digunakan sebagai input maka register DDRx nya harus
bernilai 0. Jika pin kaki micro digunakan sebagai output maka register
DDRx nya harus bernilai 1.
Misal Port A akan digunakan sebagai input/output maka untuk
mensetnya digunakan perintah:
2. Register PORTx
Tanda x juga menunjukkan port mikrokontroler yang digunakan.Jika
PORT digunakan sebagai input register ini berfungsi sebagai penentu
apakah kondisi PORT di Pull Up atau Floating. Dan jika PORT digunakan
sebagai Output register ini menentukan kondisi PORT High atau
Low.Untuk memahami arti pull up, dapat dililhat pada gambar berikut.
dari
PIN.2
begitu
rentan
terhadap
pengaruh
3) Kemudian
klik
tombol
Yes
untuk
menggunakan
fasilitas
CodewizardAVR.
1.5 Analisa
1.5.1
Percobaan 1 (Menyalakan Led)
A. Penjelasan Program
PORTC.0=0;
Program diatas menandakan pada PORT C bit ke 0
akan dinyalakan sementara PORT C bit ke-1 s/d 7
dipadamkan.
B. Flowchart Program
Mulai
Inisialisasi port
Nyalakan LED1
PORTC.0=0
Berakhir
1.5.2
Percobaan 2 (Flashing LED dan Running Led)
A. Penjelasan Program
Flashing LED
#include<delay.h>
Kode
program
diatas
adalah
file
library
pada
10
bilangan
semua
tunda
biner
LED
selama
menjadi
pada
500
ms
PORTC
atau
program
PORTC=0x00.
Dan
hasilnya
akan
Running LED
PORTC=0b11111110;
Artinya semua LED pada PORTC padam kecuali pada
PORTC.0 atau LED1.
delay_ms(500);
Kemudian dilakukan lagi penundaan untuk beralih
ke program selanjutnya.
PORTC=0b11111101;
Artinya LED yang nyala tadi pada LED 1 akan padam
dan LED 2 yang berpindah nyala.
delay_ms(500);
Kemudian dilakukan lagi penundaan untuk beralih
ke program selanjutnya.
PORTC=0b11111011;
delay_ms(500);
PORTC=0b11110111;
delay_ms(500);
PORTC=0b11101111;
delay_ms(500);
PORTC=0b11011111;
delay_ms(500);
11
PORTC=0b10111111;
delay_ms(500);
PORTC=0b01111111;
delay_ms(500);
Seperti cara 2 LED tadi, secara berturut-turut
dipindahkan ke LED yang disampingnya sampai
pada LED terakhir atau pada PORTC.7 dengan
masing-masing waktu tunda sama, namun boleh
juga diubah sesuai keinginan.
B. Flowchart Program
Flashing LED
12
Mulai
Inisialisasi Port
Nyalakan LED1s/d7
PORTC=0x00
Delay 500 ms
Padamkan LED1s/d7
PORTC=0xFF
Delay 500 ms
Berakhir
Running LED
13
Mulai
Inisialisasi port
Nyalakan LED1
PORTC=0b11111110
Delay 500 ms
Padamkan LED1
Nyalakan LED2
PORTC=0b11111101
Delay 500 ms
Padamkan LED2
Nyalakan LED3
Seterusnya s/d LED 8
PORTC=0b11111011
Delay_ms(500)
PORTC=0b11110111
Delay_ms(500)
PORTC=0b11101111Delay_ms(500)
PORTC=0b11111111
Delay_ms(500)
PORTC=0b11011111
Delay_ms(500)
PORTC=0b10111111
Delay_ms(500)
PORTC=0b01111111
Delay_ms(500)
Berakhir
14
BAB II
INTERUPSI
2.1 Teori Dasar
AVR merupakan seri mikrokontroler CMOS 8-bit buatan
Atmel, berbasis arsitektur RISC (Reduced Instruction Set
Computer). Hampir semua instruksi dieksekusi dalam satu
siklus clock. AVR mempunyai 32 register general-purpose,
timer/counter fleksibel dengan
informasi merujuk
kepada
sekumpulan data,
atau system
timer yang
berdetak.
Interrupt adalah suatu kejadian atau peristiwa yang
menyebabkan
mikrokontroler
berhenti
sejenak
untuk
interupsi,
vektor
layanan
interupsi
dan
yang
eksternal
merupakan
fitur
tambahan
dari
15
yang
timer/counter,
pengaktifannya
ADC,
bukan
komparator
dipicu
analog
dari
fitur:
ataupun
dari
16
maka
pekerjaanya
orang
mengetik.
tersebut
kembali
Demikian
pula
meneruskan
pada
sistem
logika
atau
logika
pada
pin
interupsi.
17
ISC1
ISC1
Deskripsi
Perubahan
logika
menyebabkan interupsi
pada
pin
INT1
18
2.
ISC0
ISC0
Deskripsi
Perubahan
logika
pada
pin
INT0
menyebabkan interupsi
19
2.
3.
20
Tab Ports :
Port C : pada kolom Data Direction bit 0 s/d 7 di set sebagai output,
pada kolom Pull Up/Output Value bit 0 s/d 7 di set 0.
21
22
2.5 Analisa
2.5.1
Percobaan 3 (Flashing LED oleh INT0)
A. Penjelasan Program
#include<delay.h>
Kode program diatas adalah file library pada compiler
bahasa C, yang harus dimasukkan kedalam program
apabila kita menginginkan waktu jeda untuk
menyalakan LED.
PORTD=0x00;
Semua LED dalam keadaan menyala. Alasan mengapa
yang diprogram pada PORTD bukan pada PORT C
karena
program
program flashing
utama,
tetapi
pada
fungsi
23
24
Looping
forever
ya
25
2.5.2
tidak
#include<delay.h>
Kode program diatas adalah file library pada compiler
bahasa C, yang harus dimasukkan kedalam program
apabila kita menginginkan waktu jeda untuk
menyalakan LED.
PORTD=0x00;
Semua LED dalam keadaan menyala. Alasan mengapa
yang diprogram pada PORTD bukan pada PORT C
karena
program
program flashing
utama,
tetapi
pada
fungsi
Start
delay_ms(500);
Kemudian ditunda selama 500 ms.
PORTD=0xFF;
Inisialisasi port
INT0
PORTC=0b11111110;
Artinya semua LED pada PORTC padam kecuali pada
End
26
delay_ms(500);
PORTC=0b11101111;
delay_ms(500);
PORTC=0b11011111;
delay_ms(500);
PORTC=0b10111111;
delay_ms(500);
PORTC=0b01111111;
delay_ms(500);
Seperti
cara
LED
tadi,
secara
berturut-turut
27
Looping
forever
ya
28
tidak
Start
Inisialisasi po
INT0
Main Program
(Running LED
End
29
BAB III
TIMER/COUNTER
3.1 Teori Dasar
AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis
arsitektur RISC (Reduced Instruction Set Computer). Hampir semua instruksi
dieksekusi dalam satu siklus clock. AVR mempunyai 32 register generalpurpose, timer/counter fleksibel dengan mode compare, interrupt internal dan
eksternal, serial UART, programmable Watchdog Timer, dan mode power
saving, ADC dan PWM internal.
Timer /Counter adalah suatu peripheral yang tertanam didalam
microcontroller yang berfungsi pewaktu.Dengan peripheral ini pengguna
microcontroller dapat dengan mudah menentukan kapan suatu perintah
dijalankan (delay), tentu saja fungsi timer tidak hanya untuk penundaan
perintah saja, timer juga dapat berfungsi sebagai oscilator, PWM, ADC, dan
lain-lain.
Cara kerja timer adalah dengan cara memberikan prescaling (membagi
frekuensi) pada clock yang terpasang pada microcontroller sehingga timer
dapat berjalan dengan frekuensi yang diinginkan. Timer dalam AVR ada
tiga macam yaitu:
1. Timer/Counter 0(8 bit)
2. Timer/Counter 1 (16 bit)
3. Timer/Counter 2 (8 bit)
Sebelum melakukan setting timer maka ditentukan dahulu nilai delay
yang diinginkan lalu bisa kita dapatkan nilai TCNTnya :
30
Keterangan :
TCNT
fCLK
T timer
1+FFFFh : Nilai max timer adalah FFFFh dan overflow saat FFFFh ke
0000h
3.2 Tujuan Percobaan
Adapun tujuan dari percobaan ini adalah sebagai berikut :
1) Dapat memahami fungsi dari register register pengendali Timer.
2) Dapat menghasilkan waktu tunda menggunakan Timer.
3) Menerapkan penggunaan Timer pada program yang akan dibuat.
3.3 Alat dan Bahan
Adapun alat dan bahan yang digunakan pada percobaan ini adalah
sebagai berikut :
1)
2)
3)
4)
31
Tab Timers :
Pilih tab Timer1 dan lakukan konfigurasi berikut :
o Clock Value : 46,875 KHz
o Interrupt on : Centang pada Timer1 Overflow
o Value : h? (diisi dengan nilai dari register TCNT)
4) Pada jendela CodeWizardAVR, klik menu Program Generate, Save and
32
3.5 Analisa
3.5.1
Timer1)
A. Penjelasan Program
bit detik;
Bit adalah tipe data pada bahasa C dan detikadalah
variabel yang mana harus dideklarasikan terlebih
dahulu
karena
untuk
33
Detik=1;
}
If-else
adalah
perintah
yang
menjalakan
dua
akan
dialihkan
ke
else
atau
statement
PORTC=0xFF;Detik=0;Maksud
dari
program
B. Flowchart Program
START
Inisialisasi port
detik==1?
PORTC=0b00000000
detik=1
PORTC=0b11111111
detik=0
34
35
PENUTUP
A. Kesimpulan
AVR merupakan seri mikrokontroler CMOS 8-bit buatan
Atmel, berbasis arsitektur RISC (Reduced Instruction Set
Computer). Hampir semua instruksi dieksekusi dalam satu
siklus clock. AVR mempunyai 32 register general -purpose,
timer/counter fleksibel dengan mode compare, interrupt
internal dan eksternal, serial UART, programmable Watchdog
Timer, dan mode power saving, ADC dan PWM internal. AVR
juga mempunyai In-System Programmable Flash on-chip yang
mengijinkan memori program untuk diprogram ulang dalam
system menggunakan hubungan serial SPI. ATMega16.
Interrupt adalah suatu kejadian atau peristiwa yang
menyebabkan
mikrokontroler
berhenti
sejenak
untuk
interupsi,
vektor
layanan
interupsi
dan
yang
36
B. Saran
Saran yang bisa penulis sampaikan adalah selain karena kita kekurangan
alat, kita sebagai mahasiswa sebenarnya mesti mempunyai inisiatif sendiri
dengan segala kekurangan yang ada. Baik dengan mempunyai alat itu sendiri
contohnya, krena ilmu yang didapat tidak lain digunakan untuk kita sendiri.
37
DAFTAR PUSTAKA
http://allaboutmicrocontroller.blogspot.com/2011/04/timercounter-atmega-8535.html
http://sutondoscript.blogspot.com/2012/02/pengertian-definisiinterrupt-adalah.html
http://avrku.blogspot.com/2008/11/basic-input-output-io.html