Anda di halaman 1dari 7

FAKULTAS TEKNIK

UNIVERSITAS NEGERI YOGYAKARTA


LABSHEET PRAKTIKUM MIKROKONTROLLER
No. : ST/EKA/ EKA263/10  Revisi : 00  Senin 010211  Hal. 1 dari 7 hal. 
Sem.:Genap  Timer Interupsi 4 x 50 menit
 
A. Teori Singkat
Timer/Counter adalah fasilitas atau bagian dari modul CPU yang bersifat independen.
Fungsi utama Timer/Counter, sebagaimana namanya, berfungsi untuk menciptakan periode
waktu, menghitung waktu dan menghitung kejadian. Pada chip AVR, Timer/Counter juga
berfungsi menentukan lebar pulsa atau untuk membuat PWM (Pulse Width Modulation).
Timer/Counter juga digunakan sebagai penyelarasan waktu (kalibrasi) dalam aplikasi real-
time. Mode kerja Timer/Counter berdasarkan lebar register yang berisi nilai waktu. Pada chip
Atmega16 memiliki dua buah timer 8 bit (Timer/Counter0 dan Timer/Counter2), satu buah
Timer 16 bit (Timer/Counter1) dan Watchdog timer yaitu timer untuk mereset sendiri.
Timer pada dasarnya hanya menghitung pulsa clock. Dimana frekuensi pulsa clock
yang dihitung tersebut bisa sama dengan frekuensi crystal yang dipasang atau dapat
diperlambat menggunakan prescaler dengan faktor 8, 64, 256 atau 1024, sedangkan Counter
menghitung pulsa pada pin Tn dan tidak bisa diperlambat seperti halnya timer. Mode Operasi
dan metode pengendalian setiap Timer/Counter tidak sepenuhnya identik.

TIMER/COUNTER0:
Timer/counter 0 merupakan sebuah timer/counter 8-bit sederhana. Disebut demikian karena
hanya mode satu operasi saja dibandingkan dengan 5 mode Timer/Counter1. Modus operasi
Timer/Counter0 sebenarnya dapat dianggap sebagai dua mode minor (dan juga dua fungsi
dasar) itu adalah menciptakan waktu dan peristiwa menghitung.

Persamaan timer/counter 8 bit

TMAX = 1/fCLK x (FF+1)xN

TMAX : Waktu maksimum timer


fCLK : Frekuensi clock
N : Prescaler
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LABSHEET PRAKTIKUM MIKROKONTROLLER
No. : ST/EKA/ EKA263/10  Revisi : 00  Senin 010211  Hal. 2 dari 7 hal. 
Sem.:Genap  Timer Interupsi 4 x 50 menit
 
contoh :
diketahui : fCLK = 8MHz
Prescaler =1024
Maka:

TMAX = 1/fCLK x (FF+1) x N


= 0.125uS x 256 x 1024
= 32768uS
= 32.768mS

TIMER/COUNTER1:
Timer ini dapat berfungsi sebagai counter-16. Timer/Counter memiliki lima modus operasi
utama. Selain fungsi biasa, Timer/Counter1 juga dapat digunakan untuk menghasilkan lebar
pulsa PWM yang digunakan untuk tujuan pengendalian. Dapat menghasilkan dua sinyal
PWM independen pada pin OC1A (15 kaki) dan OC1B (16 kaki) dengan Timer/Counter1.

Persamaan timer/counter 16 bit

TMAX = 1/fCLK x (FFFF+1)xN

TMAX : Waktu maksimum timer


fCLK : Frekuensi clock
N : Prescaler

contoh:
fCLK = 8MHz
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LABSHEET PRAKTIKUM MIKROKONTROLLER
No. : ST/EKA/ EKA263/10  Revisi : 00  Senin 010211  Hal. 3 dari 7 hal. 
Sem.:Genap  Timer Interupsi 4 x 50 menit
 
Prescaler =1024

TMAX = 1/fCLK x (FFFF+1) x N


= 0.125uS x 65536 x 1024
= 8388608 uS
= 8.388608 S

TIMER/COUNTER2:
Walaupun Ttimer/Counter2 merupakan sebuah timer mode 8-bit seperti Timer/Counter0,
Timer/Counter2 dapat beroperasi seperti pada Timer/Counter1, di samping itu juga
digunakan sebagai modul penyelarasan waktu untuk aplikasi waktu real time (mode
asynchronous).

REGISTER TIMER/COUNTER
Ada empat register dirancang khusus untuk operasi dan T/C0 kontrol, yaitu:
TCNT0 (TIMER/COUNTER REGISTER)
Merupakan register 8 bit mengandung nilai operasi T/C0. register ini memungkinkan untuk
membaca dan menulis nilai secara langsung.

TCCR0 (TIMER/COUNTER CONTROL REGISTER)


Register mengontrol pengoperasian T/C0. Register ini adalah 8 bit, tetapi sebenarnya hanya
memiliki tiga bit yang bekerja CS00, CS01 dan CS02.

Bit 7 6 5 4 3 2 1 0
- - - - - CS02 CS01 CS00 TCCR0
Read/write R R R R R R/W R/W R/W

Bit CS00, CS01 dan CS02 sebagai sumber timer untuk T/C0 pilih chip. Fungsi bit dijelaskan
pada Tabel 1.

Tabel 1. fungsi bit CS0X


FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LABSHEET PRAKTIKUM MIKROKONTROLLER
No. : ST/EKA/ EKA263/10  Revisi : 00  Senin 010211  Hal. 4 dari 7 hal. 
Sem.:Genap  Timer Interupsi 4 x 50 menit
 
Untuk menentukan berapa waktu timer, maka ada nilai yang harus diisikan ke TCNT agar
menghasilkan waktu timer yang diinginkan dapat dihitung dengan persamaan sebagai berikut:

Timer 8 bit : TCNT=(FF+1)-((Ttimer x fCLK)/N)


Timer 16 bit : TCNT=(FFFF+1)-(( Ttimer x fCLK)/N)

Contoh :
Misalnya diinginkan sebuah timer 16 bit bekerja selama 1 detik, dengan frekuensi clock
sebesar 11,0592MHz dan presecaller 1024 maka diperoleh nilai TCNT sebesar :

TCNT=(FFFF+1) - ((Ttimer x fCLK)/N)


TCNT=(FFFF+1) - ((1 x 11059200)/1024)
TCNT=10000h - 10800d
TCNT=10000h - 2A30h
TCNT=D5D0h

Dengan demikian nilai TCNTH = D5h dan TCNTL = D0h

REGISTER TIMSK DAN TIFR


Timer Interrupt Mask Register (TIMSK) dan Timer Interrupt Flag (TIFR) adalah register
digunakan untuk mengendalikan interrupt mana yang diaktifkan dengan cara melakukan
setting pada TIMSK dan untuk mengetahui interrupt mana yang sedang terjadi.

Bit 7 6 5 4 3 2 1 0
OCIE2 T0IE2 T1CIE1 OCIE1A OCIE1B T0IE1 OCIE0 T0IE0 TIMSK
Read/write R/W R/W R/W R/W R/W R/W R/W R/W

Tabel 2. Fungsi register TIMSK

Bit Symbol Fuction


7 OCIE2 Timer/Counter2 Output Compare Match Interrupt Enable.
6 TOIE2 Timer/Counter2 Overflow Interrupt Enable.
5 TICIE1 Timer1 Input Capture Interrupt Enable
4 OCIE1A Timer/Counter1A Output Compare Match Interrupt Enable.
3 OCIE1B Timer/Counter1B Output Compare Match Interrupt Enable.
2 TOIE1 Timer/Counter1 Overflow Interrupt Enable.
1 OCIE0 Timer/Counter0 Output Compare Match Interrupt Enable.
0 TOIE0 Timer/Counter0 Overflow Interrupt Enable.

TIFR (Timer/Counter Interrupt Flag Register), adalah sebuah register flag untuk mengingat
untuk semua T/C. Dalam nomor register bit 0, adalah indikator flag TOV0 melimpah dari
T/C0 mengganggu. Ketika overflow terjadi interrupt, bit ini secara otomatis di set ke 1.
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LABSHEET PRAKTIKUM MIKROKONTROLLER
No. : ST/EKA/ EKA263/10  Revisi : 00  Senin 010211  Hal. 5 dari 7 hal. 
Sem.:Genap  Timer Interupsi 4 x 50 menit
 
Bit 7 6 5 4 3 2 1 0
OCF2 TOV2 ICF1 OCF1A OCF1B TOV1 OCF0 TOV0 TIFR
Read/write R/W R/W R/W R/W R/W R/W R/W R/W

Tabel 2. Fungsi register TIFR

Bit Symbol Fuction


7 OCF2 Output Compare Flag2.
6 TOV2 Timer/Counter2 Overflow Flag.
5 ICF1 Timer1 Input Capture Interrupt Flag
4 OCF1A Output Compare Flag1A.
3 OCF1B Output Compare Flag1B.
2 TOV1 Timer/Counter1 Overflow Flag.
1 OCF0 Output Compare Flag0.
0 TOV0 Timer/Counter0 Overflow Flag.

B. Rangkaian
Rangkaian 1
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LABSHEET PRAKTIKUM MIKROKONTROLLER
No. : ST/EKA/ EKA263/10  Revisi : 00  Senin 010211  Hal. 6 dari 7 hal. 
Sem.:Genap  Timer Interupsi 4 x 50 menit
 
C. Program
Program 1
#include <mega16.h>
#include <delay.h>
#include <stdio.h>

#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
#define buzzer PORTD.0

int second, minutes, hour;


unsigned char buf[33];

// Timer 1 overflow interrupt service routine


interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
// Reinitialize Timer 1 value
TCNT1H=0xD5;
TCNT1L=0xF1;
if (++second == 60)
{
second=0;
lcd_clear();
if (++minutes == 60)
{
minutes=0;
if (++hour == 24)
{hour =0;}
}
}
}

void main(void)
{
PORTD=0x00;
DDRD=0x01;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 10,767 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: On
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x05;
TCNT1H=0xD5;
TCNT1L=0xF1;
ICR1H=0x00;
ICR1L=0x00;
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LABSHEET PRAKTIKUM MIKROKONTROLLER
No. : ST/EKA/ EKA263/10  Revisi : 00  Senin 010211  Hal. 7 dari 7 hal. 
Sem.:Genap  Timer Interupsi 4 x 50 menit
 
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization


TIMSK=0x04;

lcd_init(16);
#asm("sei")

while (1)
{
lcd_gotoxy(0,0);
sprintf(buf, " == %d:%d:%d == ", hour, minutes,second);
lcd_puts(buf);

buzzer=0;

if (minutes !=0 & minutes % 2==0)


{
lcd_gotoxy(0,1);
lcd_putsf(" ISTIRAHAT ");
buzzer=1;
delay_ms(30);
}
else
{
lcd_gotoxy(0,1);
lcd_putsf( " JAM DIGITAL ");
buzzer=0;
}
};
}

D. Tugas
1. Tulislah program pada Program 1 untuk Mikrokontroller ATMEGA16 dengan
CVAVR
2. Lakukan konversi menjadi file dengan berextensi .c menjadi berextensi .COF
dan .HEX yang siap dimasukan ke dalam mikrokontroller
3. Gambarkan rangkaian diatas pada simulasi Proteus
4. Masukan file yang berextensi COF atau HEX ke dalam mikrokontroller
ATMEGA16
5. Lakukan penekanan Tombol PLAY pada proteus amati apa yang terjadi
6. Buatlah program untuk rangkaian 1 untuk membuat tampilan counter dari 0000
sampai dengan 9453 kemudian kembali ke 0000 lagi dan seterusnya
menggunakan timer
7. Program 1 hanya berfungsi sebagai timer yang kemudian mengaktifkan buzzer
ketika sampai angka tertentu pada rangkaian 1 yang tampilannya menggunakan
LCD, kemudian buatlah rangkaian yang tampilanya dengan menggunakan
seven segment kemudian buat program yang fungsinya sama

Anda mungkin juga menyukai