Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
TIMER COUNTER
B. Tujuan.
1. Mampu memahami fungsi timer/counter dalam mikrokontroler AVR.
2. Mampu mengatur fungsi timer/counter.
3. Mampu membuat program untuk mengendalikan timer/counter serta
untuk aplikasinya.
C. Dasar teori.
1. Timer0.
Merupakan timer 8 bit jadi dapat menghitung dari 0 sampai dengan
255 yang multi fungsi, fitur-fitur dari Timer0 adalah:
a. Counter 1 kanal.
b. Timer di-nol-kan saat nilai perbandingan tercapai.
c. Sebagai pembangkit gelombang PWM.
d. Sebagai pembangkit frekuensi.
2. Timer1.
Merupakan timer 16 bit jadi dapat menghitung dari 0 sampai
dengan 65535 yang memungkinkan program pewaktu menjadi lebih
akurat, fitur yang ada pada Timer1 antara lain
a. Dua buah unit pembanding
b. Dua buah register pembanding
c. Satu buah input capture unit
d. Dapat menghasilkan gelombang PWM
e. Sebagai pembangkit frekuensi
3. Timer2.
Merupakan timer 8 bit jadi dapat menghitung dari 0 sampai
dengan 255, dengan fitur hampir sama dengan timer0.
Register TIMSK
Register TIFR
Register Timer/Counter Interrupt Flag Register (TIFR) memilki
fungsi sebagai penanda, status, atau flag apakah terjadi interupsi atau tidak.
Jika bernilai 1 berarti terjadi interupsi, kemudian program akan melompat
ke vektor interupsi yang sesuai. Susunan dari register TIFR ditunjukkan
pada Gambar 2
Gambar 3 TCCR0
TOV0
Timer/Counter
WGM01 WGM00 Update of Flag Set
Mode Mode of TOP
(CTC0) (PWM0) OCR0 on
Operation
terjadi keluaran pada pin OCx sesuai dengan mode yang telah ditentukan
di register TCCRx.
Gambar 5 TCCR1B
Prescaler
Pada dasarnya Timer hanya menghitung pulsa clock. Frekuensi
pulsa clock yang dihitung bisa sama dengan frekuensi kristal atau dapat
diperlambat menggunakan prescaler dengan faktor 8, 64, 256, 1024.
𝑇𝑡𝑖𝑚𝑒𝑟 × 𝑓𝑐𝑙𝑜𝑐𝑘 Eq 1
𝑇𝐶𝑁𝑇 = (1 + FFFFH) − ( )
𝑁
Keterangan
TCNT : Nilai timer (Hex/Dec)
fclock : frekuensi kristal (Hz)
Ttimer : waktu yang diinginkan (detik)
N : prescaler (1, 8, 64, 256, 1024)
1+FFFFh : Nilai maksimum timer 16 bit adalah FFFFh atau 8 bit
adalah FFh dan saat overflow.
D. Peralatan.
1. Software proteus
2. Software CodeVision AVR
E. Langkah kerja.
1. Membuka lembar kerja simulator proteus, beri nama proyek
“Program1AVR” atau bisa nama yang lain.
2. Menghubungkan salah satu port dengan display led.
3. Menghubungkan switch kedalam pin T0, T1, dan T2.
4. Membuat program dibawah dengan CodeVision AVR, kemudian
download dan amati hasilnya.
Program 1
/*membuat timer dengan TC0, fc=8Mhz
*/
#include <mega16.h>
#include <delay.h>
unsigned char lamp=0xCC;
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
TCNT0=0X00; //set nilai T/C0
lamp=~lamp;
PORTB=lamp;
}
void main(void)
{
DDRB=0XFF; //PortD sebagai keluaran
PORTB=lamp; //data led dikeluarkan pada Port D
TCNT0=0X00; //Set nilai awal T/C0
TCCR0=0X05; //Set skala clock 1024
TIMSK=0X01; //Aktifkan interupt timer0
TIFR=0X00; //Hapus bendera interupt timer0
#asm("sei") //aktifkan interupsi global
while(1)
{
};
}
void main(void)
{
DDRB=0XFF; //PortB out, karena OC0 ada di sini
PORTB=0xFF;
TCCR0=0X6A; //configurasi fast pwm prescaler 8 bit
TCNT0=0; //set nilai awal tcnt1
OCR0=127; //set nilai OCR1A
while(1)
{
unsigned char A;
for(A=0;A<255;A++)
{
OCR0=A;
delay_ms(40);
};
};
}
void main(void)
{
DDRB=0X00;
PORTB=0XFF;
DDRD=0XFF;
PORTD=0XFF;
TCCR0=0X07; //T0 clock eksternal
TCNT0=0XF6;
TIMSK=0X01; //T0 interupt overflow
#asm("sei")
while(1)
{
PORTD=~TCNT0;
};
}
F. Hasil percobaan
Program 1
(a) (b)
Gambar 7 hasil simulasi program 1 (a)ketika on (b)ketika off
Program 2
(a) (b)
Gambar 9 hasil simulasi program 2 (a)ketika on (b)ketika off
Program 3
(a) (b)
Gambar 13 hasil simulasi program 4 (a)ketika on (b)ketika off
G. Pembahasan
Pada program 1 , didalam program ini membuat timer dengan TC0
, diamana pada port B digunakan sebagai keluaran sehingga port ini
digunkaan unutk keluaran data led.,register TIMSK bertugas unutk
mengatifkan interupsi timer0 , register TCCR me-set skala clock yang
digunakan sebesar 1024 , register TCNT di set awal ,yang menandakan
bahwa register ini telah siap unutk diisi dan refgister TIFR menghapus flasg
interrupt timer0. Pada hasil simulasi , lampu led berkedip dengan cepat
H. Kesimpulan
Praktikan mampu memahami fungsi timer/counter dalam
mikrokontroler AVR
Praktikan mampu mengatur fungsi timer/counter
Praktikan mampu membuat program untuk mengendalikan
timer/counter serta untuk aplikasinya.
I. Daftar pustaka
Dr. Muhtadan, M.Eng.2021. Petunjuk Praktikum Mikrokontroler – Timer
dan Counter.Yogyakarta.: PTNI-BRIN
J. Lampiran.
https://youtu.be/RQ7S5xIqq0c (link hasil simulasi praktikum timer
counter )