Anda di halaman 1dari 8

PERCOBAAN II

TIMER, COUNTER, INTERRUPT

DICO RIO SINAGA (13116058)


Asisten : Simon Adisyahputra Ritonga (13115007)
Tanggal Percobaan : 12/03/2019
EL3203 Praktikum Sistem Mikroprosesor
Laboratorium Teknik Elektro – Institut Teknologi Sumatera

Abstrak--Pada praktikum kali ini kita akan membuat


delay dengan menggunakan timer/counter,membuat
external clocksebagai counter,membuat aplikasi Pengaturan Perilaku pin OCO
interrupt dengan menggunakan timer/counter dan
membuat external interrupt..

Kata Kuni : timer/counter, external clock, interrupt,


delay.

I. PENDAHULUAN Pengaturan sumber clock

Praktikum ini bertujuan untuk memahami datasheet


ATMega 8535, mampu membuat aplikasiTimer/ Counter dan
Interrupt pada AVRdengan menggunakan bahasa
pemrograman C pada WinAVR dan mampu membuat
aplikasi External Interrupt pada AVR dengan menggunakan
bahasa pemrograman C pada WinAVR.

II. LANDASAN TEORITIS


Register-register penting lain
Kofigurasi Timer/ Counter dan Interrupt
ATMega8535 mempunyai timer atau interrupt yang
berfungsi sebagai pencacah karena ATMega 8535 mampu
memakai kristal yang berfungsi sampai dengan
mikrikintroller itu dapat mencapai 16Mbps.Pada
mikrikontroller ATMega8535 prtlu diperhatikan
pemeliharaan sumber clock.Hal ini berhubungan dengan
frekuensi yang kita inginkan timer pada dasarnya hanya
menghitung pulsaclock.Frekuensi pulsaclock yang dihitung
tersebut bisa sama dengan frekuensi kristal yang dipasang
atau dapat diperlambat menggunkan prosesor menggunakan
8,64 ; 256 atau 1024.

Konfigurasi external interrupt


Pada ATmega8535 terdapat 3 pin untuk interupsi
 Bit 7 ~ FOCO : Force Output Compara.
eksternal, yaitu INT0, INT1, dan INT2. Interupsi eksternal
 Bit 6, 3 ~ WGM01:0 : Waveform Generation Mode. dapat dibangkitkan apabila terdapat perubahan logika 1 atau
 Bit 5, 4 ~ COM01:0 : Compare Match Output Mode. logika 0 pada pin INT0, INT1, dan INT2. Inisialisasi external
 Bit 2, 0 ~ CS02:0 : Clock Select. interrupt pada ATmega16 dapat dilakukan dengan melakukan
konfigurasi register MCUCR, MCUCSR, GICR, GIFR.Bit-
Konfigurasi mode operasi
bit INT0, INT1, dan INT2 pada register GICR digunakan
untuk mengaktifkan masing-masing interupsi eksternal.
Ketika bit-bit tersebut diset 1 (aktif) maka interupsi eksternal
akan aktif jika bit I (interupt) pada SREG (status register)
diset 1 juga (enable interupt), instruksi untuk mengaktifkan
global interupt yaitu sei. Program interupsi dari masing-
masing interupsi akan dimulai dari vektor interupsi pada Hubungkan Training board dengan PC
masing-masing jenis interupsi eksternal. Untuk interupsi mengunakan downloader USBasp
yang dijalankan terlebih dahulu pada ATmega8535 yaitu
ditunjukkan oleh tabel 1. Sehingga interupsi eksternal yang
dijalankan terlebih dahulu adalah INT0, INT1, dan INT2.
Hubungkan PORT A (ATMega8535) pada
PORT OUTPUT (Trainer Board)

Pastikan sumber clock menggunakan Kristal


8MHz dengan cara mengatur fuse

TUGAS II.A.1

Jalankan contoh program di bawah ini, amati


hasilnya dan buatlah flowchartnya.

Bit 7 – INT1: External Interrupt Request 1 Enable


Bit 6 – INT0: External Interrupt Request 0 Enable
Bit 5 – INT2: External Interrupt Request 2 Enable

Bit 7 – INTF1 : External Interrupt Flag 1


Bit 6 – INTF0 : External Interrupt Flag 0
Bit 5 – INTF2 : External Interrupt Flag 2,
III. METODOLOGI
A. Alat dan Bahan
1. Laptop
2. USBasp
3. Software Codevisio AVR
4. Software Khazama programer
5. Stater AVR DT-Combo

B. Langkah Kerja

II.A DELAY DENGAN TIMER/ COUNTER

Persiapan

Sebelum Power Supply dihubungkan pada kit


praktikum, atur terlebih dahulu pada tegangan
9volt. Kemudian, hubungkan pada kit
praktikum. (Hati-hati polaritas terbalik dapat
merusak kit!)
Apabila kondisi OUTPUT LED DISPLAY
menyala bergantian setiap 1 detik antara 4bit
MSB dan 4bit LSB maka percobaan yang
dilakukan benar.

TUGAS II .A.2

Modifikasi program di atas sehingga antara 4bit


LSB dengan 4 bit MSB berkedip secara
bergantian dengan waktu periode kedip sekitar
x detik, dimana x = (modulus 5 dari nomor
kelompok) + 2.

II.B EXTERNAL CLOCK SEBAGAI COUNTER

Persiapan

Hubungkan prosesor ATMega8535 dengan


Trainer Board (pada PORTCONTROL)
sehingga pin T1 ATMega8535 (lihat datasheet
ATMega 8535) terhubung dengan sebuah
Apabila kondisi OUTPUT LED DISPLAY
Interrupt Input (IS1, IS2, IS3 atau IS4) pada
berubah setelah 2 kali penekanan tombol
Trainer Board (lihat Apendiks B).
INTERRUPT & COUNTER INPUT maka
percobaan yang dilakukan benar.
Jalankan contoh program di bawah ini, amati
hasilnya dan buatlah flowchartnya.

TUGAS II.B.2

Modifikasi program diatas sehingga LED


menyala semua selama x detik ketika tombol
ditekan sejumlah x kali, dimana x = (modulus 5
dari nomor kelompok) + 3. Keterangan: fasilitas
delay AVR-gcc tidak digunakan.

II.C APLIKASI INTERRUPT DENGAN


TIMER/COUNTER

Persiapan

Pastikan PORT A (ATMega8535) terhubung


dengan PORT OUTPUT (Trainer Board)

TUGAS II.C.1
Jalankan contoh program di bawah ini, amati
hasilnya dan buatlah flowchartnya. TUGAS II.D.1

Jalankan contoh program di bawah ini, analisis


dan buatlah flowchart-nya.

Bila program ini dijalankan dengan benar,


kondisi OUTPUT LED DISPLAY berbeda
ketika terjadi interrupt dan ketika belum terjadi.
Interupt terpanggil setiap satu detik.

TUGAS II.C.2

Modifikasi program Tugas II.C.1 menggunakan


Timer/Counter1 sehingga interrupt terjadi setiap
x detik, dimana x = (modulus 5 dari nomor
kelompok) + 2.
Bila program ini dijalankan dengan benar,
kondisi OUTPUT LED DISPLAY berbeda
ketika interrupt eksternal dilakukan.
II.D EXTERNAL INTERRUPT

Persiapan
TUGAS II.D.2
Pastikan PORT A (ATMega8535) terhubung
dengan PORT OUTPUT (Trainer Board) Program utama akan menampilkan data ”FFh”
bergantian dengan data ”00h”, masing-masing
selama ½ detik.
Hubungkan PORT D ATMega8535 dengan
Trainer Board (pada PORT CONTROL)
sehingga pin INT0 ATMega8535 terhubung
dengan sebuah Interrupt Input (IS1) dan INT1 ke
IS2 pada Trainer Board. Gunakan,
Jika terjadi interrupt dari INT0, program akan B. Tugas II.B : External Clock sebagai Counter
menampilkan data ”99h” bergantian dengan data  Tugas II.B.1
”66h”,masing-masing selama ½ detik. Setelah
itu kembali ke program utama. Pada Percobaan ini akan dijalankan suatu program untuk
menampilkan kondisi output LED display menyala jika
tombol switch (push button) ditekan dua kali .

TCNT0 = 123 merupakan penentuan nilai awal time dan


Jika terjadi interrupt dari INT1, program akan OCR0 = 124 merupakan nilai compare. Pada percobaan ini
menampilkan data ”XXh” bergantian dengan switch ditekan 2 kali karena fungsi dari TCN 123 ke 124
data ”YYh”,masing-masing selama ½ detik.. yang selisihnya adalah 2 bit. Jika push button tidak ditekan 2
Setelah itu kembali ke program utama dengan kali maka overflow interrupt disable yang menyebabkan
XX adalah dua digit terakhir NIM praktikan 1 lampu LED tidak menyala . Maka dari hasil output yang ada
dan YY adalah dua digit terakhir NIM praktikan percobaan ini dapat dinyatakan benar.
1.

IV. HASIL DAN ANALISIS


A. Tugas II.A Delay dengan Timer/counter
 Tugas II.A.1

Pada Percobaan ini akan dijalankan suatu program untuk


menampilkan kondisi output LED display menyala secara
bergantian setiap 1 detik antara 4bit MSB dan 4 bit LSB.
Dengan mengatur nilai TCNT dan menentukan nilai nya pada
source code yang digunakan maka diharapkan output dari
LED akan sesuai dengan yang diharapkan. Setelah dilakukan
Gambar4.2. Percobaan II.B.1switch ditekan 2x
percobaan sesuai dengan nilai TCNT kedalam source code,
4 lampu LED menyala secara bergantian. Hal ini
menunjukkan output yang dihasilkan dari source code yang  Tugas II.B.2
telah diberikan berjalan dengan baik..
Pada percobaan ini akan dilakukan beberapa modifikasi agar
tampilan output LED menyala ketika switch ditekan
sebanyak 4 kali. TCNT0 = 123 merupakan penentuan nilai
awal time dan OCR0 = 126 merupakan nilai compare. Pada
percobaan ini switch ditekan 4 kali karena fungsi dari TCN
123 ke 124 yang selisih nya adalah 4 bit. Jika push button
tidak ditekan 2 kali maka overflow interrupt disable yang
menyebabkan lampu LED tidak menyala. Maka dari hasil
output yang ada percobaan ini dapat dinyatakan benar.

Gambar4.1. percobaan tugas II.A.1

 Tugas II.A.2

Pada percobaan ini akan dilakukan beberapa modifikasi


agar tampilan output LED berkedip secara bergantian
dengan waktu 4detik.
10
𝑤𝑎𝑘𝑡𝑢 = ( ) + 2 = 4 𝑠𝑒𝑘𝑜𝑛
5
Gambar4.3.Percobaan II.B.2 switch ditekan 4x
Output dari modifikasi ini adalah LED akan
berkedip secara bergantian dalam waktu 4 sekon. Dengan
cara mengubah nilai dari masukan didalam program menjadi
0x04 sehingga pada percobaan A.2 ini selisih waktu lampu
berkedip bergantian menjadi 4 detik.
C. Tugas II.C : Aplikasi Interrupt dengan  Tugas II.C.2
Timer/Counter
 Tugas II.C.1 Pada percobaan ini akan dilakukan modifikasi pada
program diatas menggunakan Timer/Counter1
Pada Percobaan ini akan dijalankan suatu program sehingga interrupt terjadi setiap 3 detik
untuk menampilkan kondisi output LED display berbeda
ketika terjadi interrupt dan ketika belum terjadi. Interrupt
terpanggil setiap satu detik
11
𝑤𝑎𝑘𝑡𝑢 = ( ) + 2 = 3 𝑠𝑒𝑘𝑜𝑛
Hasil output yang didapat dari program ini adalah 5
setelah program di compile maka LED akan hidup secara
otomatis dan hidup bergantian secara otomatis juga dalam
waktu 1 detik Sehingga output pada LED akan menyala secara
bergantian pada setiap 3 sekon.
PORTA = 0b01010101;

_delay_ms(100);

PORTA = 0b10101010;

_delay_ms(100);
V. KESIMPULAN
TIMSK=0b000100;
 Interrupt berguna untuk menghentikan suatu
tindakan pada LED dalam waktu tertentu.
Fungsi source code yang diatas merupakan sebagai pengatur  Timer/Counter berguna untuk memberikan delay
LED akan hidup dalam waktu 1 sekon (sesua yang kita pada program.
inginkan) secara bergantian dan lampu akan mati semua  TCNT merupakan salah satu fungsi yang dapat
dalam waktu 1 detikHal itu dikarenakan adanya fungsi mengatur timer pada output LED
interrupt pada program. .  Untuk timer/counter register global meggunakan
TIMSK dan TIFR sedangkan register khusus
menggunakan TCNTx dan OCRx
 ATMega 8535 AVR memiliki fasilitas register
khusus sebagai timer/counter yaitu timer 0, timer 1
dan timer 2.

Gambar 4.4. Percobaan II.C.1. Interrupt dengan


Timer/counter
REFERENSI
[1] Modul praktikum Sistem Mikroprosesor,Teknik Elektro
- Institut Teknologi Sumatera
[2] Interupsi pada AVR. [online] url :
https://www.musbikhin.com/interupsi-pada-avr/
[3] Timer/Counter ATMega 8535. [online] url :
https://syamsul123rizal.wordpress.com/2012/02/14/time
r-counter-atmega8535/
Lampiran
2. Source code untuk tugas I.A
1. Source code untuk tugas I.A
3. Source code untuk tugas II.C

Anda mungkin juga menyukai