BAB-3_1

9
COUNTER 3.1.TIMER/COUNTER0 Timer/Counter0 adalah Timer/Counter 8 bit yang multifungsi. Fitur-fitur dari Timer/Counter0 pada ATMEGA16 adalah sebagai berikut. a. Counter 1 kanal. b. Timer di-nol-kan saat proses pembandingan tercapai (compare match). c. Sebagai pembangkit gelombang PWM dan pembangkit frekuensi. d. Clock prescaler 10 bit. e. Sumber interupsi dari compare match (OCF0) dan overflow (TOV0). Pengaturan Timer/Counter0 diatur oleh TCCR0 (Timer/Counter Control Register0) yang dapat dilihat pada Gambar 3.1 Bit Bit 6 Bit 5 Bit 4 Bit 3 Bit Bit Bit FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00 Gambar 3.1. Register TCCR0 13

description

ok

Transcript of BAB-3_1

Page 1: BAB-3_1

COUNTER

3.1. TIMER/COUNTER0

Timer/Counter0 adalah Timer/Counter 8 bit yang multifungsi. Fitur-fitur dari

Timer/Counter0 pada ATMEGA16 adalah sebagai berikut.

a. Counter 1 kanal.

b. Timer di-nol-kan saat proses pembandingan tercapai (compare match).

c. Sebagai pembangkit gelombang PWM dan pembangkit frekuensi.

d. Clock prescaler 10 bit.

e. Sumber interupsi dari compare match (OCF0) dan overflow (TOV0).

Pengaturan Timer/Counter0 diatur oleh TCCR0 (Timer/Counter Control Register0)

yang dapat dilihat pada Gambar 3.1

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00

Gambar 3.1. Register TCCR0

Penjelasan untuk tiap bit-bitnya adalah sebagai berikut.

a. Bit 7 – FOC0: Force Output Compare

b. Bit 6,3 –WGM01:WGM00: Waveform Generation Unit

Bit ini mengontrol kenaikan dari counter, sumber dari nilai maksimum counter,

dan tipe dari jenis timer/counter yang dihasilkan, yaitu mode normal, clear

timer, mode compare match, dan dua tipe dari PWM (Pulse Width Modulation).

Berikut ini tabel pengaturan pada bit WGM01 dan WGM00.

Tabel 3.1. Pengaturan Bit WGM01 dan WGM00

13

Page 2: BAB-3_1

Mode WGM01(CTC0)

WGM00(PWM0)

Mode operasi Timer/Counter

TOP UpdateOCR0

BenderaTOV0

diset saat nilai

0 0 0 Normal 0xFF Immediate MAX

1 0 1 PWM, phase correct 0xFF TOP BOTTOM

2 1 0 CTC OCR0 Immediate MAX

3 1 1 Fast PWM 0xFF TOP MAX

c. Bit 5, 4 – COM01:COM00: Compare Match Output Mode

Bit ini mengontrol pin OC0 (pin Output Compare). Apabila kedua bit ini nol

atau clear, maka pin OC0 berfungsi sebagai pin biasa. Bila salah satu bit set,

maka fungsi pin ini tergantung pada pengaturan bit pada WGM00 dan WGM01.

Berikut daftar tabel pengaturan bit COM01 dan COM00 sesuai pengaturan bit

pada WGM00 dan WGM01.

Tabel 3.2. Pengaturan Bit COM01 dan COM00 Mode Non-PWM

COM01 COM00 Keterangan

0 0 Operasi port normal, OC0 tidak dihubungkan.

0 1 Toggle OC0 saat proses pembandingan tercapai.

1 0 Clear OC0 saat proses pembandingan tercapai.

1 1 Set OC0 saat proses pembandingan tercapai.

Tabel 3.3. Tabel 2.3 Pengaturan Bit COM01 dan COM00 Mode Fast PWM

COM01 COM00 Keterangan

0 0 Operasi port normal, OC0 tak dihubungkan.

0 1 Reserved

1 0

Clear OC0 saat proses pembandingan tercapai, set OC0 pada nilai

TOP.

1 1

Set OC0 saat proses pembandingan tercapai, clear OC0 pada nilai

TOP.

Tabel 3.4. Pengaturan Bit COM01 dan COM00 Mode Phase Correct PWM

COM01 COM00 Keterangan

14

Page 3: BAB-3_1

0 0 Operasi port normal, OC0 tak dihubungkan.

0 1 Reserved

1 0

Clear OC0 saat proses pembandingan tercapai, yaitu ketika hitungan

naik. Set OC0 saat proses pembandingan tercapai, yaitu ketika

hitungan turun.

1 1

Set OC0 saat proses pembandingan tercapai, yaitu ketika hitungan

naik. Clear OC0 saat proses pembandingan tercapai, yaitu ketika

hitungan turun.

d. Bit 2, 1, 0 – CS02, CS01, CS00: Clock Select

Ketiga bit tersebut untuk memilih sumber clock yang akan digunakan oleh

Timer/Counter0.

Tabel 3.5. Konfigurasi Bit Clock Select

CS02 CS01 CS00 Keterangan

0 0 0 Tanpa sumber clock (timer/counter tidak difungsikan).

0 0 1 clkI/O /1 (tanpa prescaling)

0 1 0 clkI/O /8 (dari prescaler)

0 1 1 clkI/O /64 (dari prescaler)

1 0 0 clkI/O /256 (dari prescaler)

1 0 1 clkI/O /1024 (dari prescaler)

1 1 0 Sumber clock eksternal pada pin T0. Clock pada falling edge.

1 1 1 Sumber clock eksternal pada pin T0. Clock pada rising edge.

RANGKAIAN MENCACAH COUNTER T0

Rangkaian minimum untuk counter melalui Port B.0 ditunjukan pada Gambar

3.2. Rangkaian tersebut menggunakan penampil led. Konfigurasi rangkaian LED yaitu

Common Anode (CA) artinya untuk menghidupkan LED pada Port D, port D harus

dikirim atau diberi logika ‘0’.

15

Page 4: BAB-3_1

V C C

P 6

P 2

P 7

P 5

P 3

P 1

R 1

L 1

1 2

P 0

C 3 1 0 0 n F 1

V C C

P 5

P 4

R S T

V C C

1 2

V C C

P 6

U 4

A TM E G A 1 6

3

1 21 3

2

1 61 71 81 9

1 11 0

876

3 63 53 43 33 2

3 7

1

45

9

1 41 5

2 0 2 1

4 03 93 8

3 13 02 92 82 72 62 52 42 32 2

P B 2 (I N T2 / A I N 0 )

XTA L 2XTA L 1

P B 1 (T1 )

P D 2 (I N T0 )P D 3 (I N T1 )P D 4 (O C 1 B )P D 5 (O C 1 A )

G N DV C C

P B 7 [ S C K )P B 6 [ M I S O )P B 5 (M O S I )

P A 4 (A D C 4 )P A 5 (A D C 5 )P A 6 (A D C 6 )P A 7 (A D C 7 )

A R E F

P A 3 (A D C 3 )

P B 0 (XC K / T0 )

P B 3 (O C 0 / A I N 1 )P B 4 (S S )

R E S E T

P D 0 (R XD )P D 1 (TXD )

P D 6 (I C P ) P D 7 (O C 2 )

P A 0 (A D C 0 )P A 1 (A D C 1 )P A 2 (A D C 2 )

A G N DA V C C

P C 7 (TO S C 2 )P C 6 (TO S C 1 )

P C 5P C 4P C 3P C 2

P C 1 (S D A )P C 0 (S C L )

C 2 2 2 p F

S W 2

12

P 7R S T

J I S P

H E A D E R 5

12345

X1

1 21 2

1 2

G N D

1 2

1 2

C 1 2 2 p F

1 2

Gambar 3.2. Hasil pemasangan komponen-komponen mencacah counter T0

PEMROGRAMAN MENCACAH COUNTER T0

Setelah rangkaian dibuat dan dihubungkan dengan port mikrokontroller, maka

sekarang saatnya Anda membuat program yang digunakan untuk mencacah. Program

cacah menggunakan port B.0 pada mikrokontroller.

Program sebagai berikut ini

//------------------------------------------------------// Program MENCACAH COUNTER TIMER 0 //------------------------------------------------------

//------------------------------------------------------//DEKLARASI HEADER//------------------------------------------------------#include <mega16.h> #include <delay.h> #include <stdio.h>

//------------------------------------------------------//DEKLARASI VARIABEL//------------------------------------------------------unsigned char led,a;

16

Page 5: BAB-3_1

//------------------------------------------------------//DEKLARASI SUB RUTIN//------------------------------------------------------void InisialisasiTIMER ();

//------------------------------------------------------//RUTIN UTAMA//------------------------------------------------------void main (void){ DDRD = 0xff; led=0x00; InisialisasiTIMER(); while(1) { a = TCNT0; if (a == 0x06) { led = PIND; PORTD=~led; TCNT0=0x00; } } }

//------------------------------------------------------//SUB RUTIN INISIALISASI TIMER0//------------------------------------------------------void InisialisasiTIMER () { TCNT0=0x00; TCCR0=0x07; }

RANGKAIAN MENCACAH COUNTER T1

Rangkaian minimum untuk counter melalui Port B.1 ditunjukan pada Gambar

6.5. Rangkaian tersebut menggunakan penampil led. Konfigurasi rangkaian LED yaitu

17

Page 6: BAB-3_1

Common Anode (CA) artinya untuk menghidupkan LED pada Port D, port D harus

dikirim atau diberi logika ‘0’.

P 3

P 6V C C

L 1

1 2

1 2

P 7R 1

1 2

P 0

G N D

P 5P 4

1 2

P 1

C 1 2 2 p F

U 4

A TM E G A 1 6

3

1 21 3

2

1 61 71 81 9

1 11 0

876

3 63 53 43 33 2

3 7

1

45

9

1 41 5

2 0 2 1

4 03 93 8

3 13 02 92 82 72 62 52 42 32 2

P B 2 (I N T2 / A I N 0 )

XTA L 2XTA L 1

P B 1 (T1 )

P D 2 (I N T0 )P D 3 (I N T1 )P D 4 (O C 1 B )P D 5 (O C 1 A )

G N DV C C

P B 7 [ S C K )P B 6 [ M I S O )P B 5 (M O S I )

P A 4 (A D C 4 )P A 5 (A D C 5 )P A 6 (A D C 6 )P A 7 (A D C 7 )

A R E F

P A 3 (A D C 3 )

P B 0 (XC K / T0 )

P B 3 (O C 0 / A I N 1 )P B 4 (S S )

R E S E T

P D 0 (R XD )P D 1 (TXD )

P D 6 (I C P ) P D 7 (O C 2 )

P A 0 (A D C 0 )P A 1 (A D C 1 )P A 2 (A D C 2 )

A G N DA V C C

P C 7 (TO S C 2 )P C 6 (TO S C 1 )

P C 5P C 4P C 3P C 2

P C 1 (S D A )P C 0 (S C L )

V C C

R S T

1 2

V C C V C C

1 2

1 2

P 5

P 7

C 2 2 2 p F

C 3 1 0 0 n F 1

R S T

X1

1 2

S W 2

12

P 6

P 2

J I S P

H E A D E R 5

12345

Gambar 3.3. Hasil pemasangan komponen-komponen mencacah counter T1

PEMROGRAMAN MENCACAH COUNTER T1

Setelah rangkaian dibuat dan dihubungkan dengan port mikrokontroller, maka

sekarang saatnya Anda membuat program yang digunakan untuk mencacah. Program

cacah menggunakan port B.1 pada mikrokontroller.

Program sebagai berikut ini

//------------------------------------------------------// Program MENCACAH COUNTER TIMER 1 //------------------------------------------------------

//------------------------------------------------------//DEKLARASI HEADER//------------------------------------------------------#include <mega16.h> #include <delay.h> #include <stdio.h>

//------------------------------------------------------

18

Page 7: BAB-3_1

//DEKLARASI VARIABEL//------------------------------------------------------unsigned char led,a;

//------------------------------------------------------//DEKLARASI SUB RUTIN//------------------------------------------------------void InisialisasiTIMER ();

//------------------------------------------------------//RUTIN UTAMA//------------------------------------------------------void main (void){ DDRD = 0xff; led=0x00; InisialisasiTIMER(); while(1) { a = TCNT1L + TCNT1H; if (a == 0x06) { led = PIND; PORTD=~led; TCNT1L=0x00; TCNT1H=0x00; } } } //------------------------------------------------------//SUB RUTIN INISIALISASI TIMER1//------------------------------------------------------void InisialisasiTIMER () { TCNT1L=0x00; TCNT1H=0x00; TCCR1A=0x00; TCCR1B=0x07; }

19