Anda di halaman 1dari 12

Percobaan III

Timer And Counter


Iman Sianturi (118130035)
Asisten : M.Masyhuda (13117077)
Tanggal Percobaan : 17/04/2021
EL 2209_Praktikum Sistem Mikroprosesor
Laboratorium Teknik Elektro
Institut Teknologi Sumatera

macam fungsi, yaitu:


Abstrak— Modul III Praktikum Sistem Mikroprosesor yaitu
timer dan counter praktikan akan melakukan 2 percobaan yaitu 1.Timer/delay time
pertama penggunaan 8 bit timer/counter0 untuk mengendalikan
Pada dasarnya ketika Timer/Counter difungsikan sebagai
LED dan yang kedua yaitu penggunaan 16 bit timer/counter
sebagai PWM untuki mengendalikan kecepatan putar motor Timer, sistem hanya menghitung pulsa clock. Frekuensi pulsa
DC.Mode operasi timer/counter dibedakan menjadi beberapa cl hanya menghitung pulsa clock. Frekuensi pulsa clock yang
bagian yaitu mode normal,mode CTC,mode fast PWM dan mode dihitung tersebut yang dihitung tersebut bisa sama dengan
phase correct PWM. frekuensi frekuensi kristal kristal yang digunakan digunakan
atau dapat diperlambat diperlambat menggunakan prescaler
Kata Kunci—Timer/Counter dengan faktor 8, 64, 256, atau 1024.

2.Counter
I. PENDAHULUAN Secara prinsip, memfungsikan Timer/Counter sebagai Counter
Mikrokontroler ATmega8535 dilengkapi timer/counter yang sama dengan fungsi sebagai Timer akan tetapi sumber clock
berfungsi sebagai pewaktuan/pencacahan.Timer/counter dibagi bukan berasal dari frekuensi kristal, tetapi input dari kaki Tn.
menjadi 3 bagian yaitu timer/counter 0,timer/counter 1,dan Dengan memanfaatkan counter naik, maka bisa diberikan nilai
timer/counter 2.Secara umum fitur timer/counter dsari TCNT yang sesuai dengan rumus berikut: TCNT =
mikrokontroler ATmega8535 dapat digunakan sebagai (1+FFH) – jumlah counter Sehingga jika diinginkan membuat
timer/delay time,dan sebagai counter. counter 5, maka nilai TCNT adalah FBH

Adapun tujuan dari praktikum modul III ini,yaitu : Timer/Counter mengalami overflow pada saat hitungan
● Praktikan mampu membuat aplikasi timer/counter pada AVR Timer/Counter (TCNT0/TCNT1/TCNT2) mencapai
dengan menggunakan Bahasa pemograman C. maksimum (FFH untuk 8-bit atau FFFFH untuk 16-bit
Timer/Counter) dan kembali ke hitungan 00H atau 0000H. Pada
II. LANDASAN TEORETIS mode operasi normal Timer/Counter Overflow Flag
(TOV0/TOV1/TOV2) akan otomatis berlogika ‘1’ pada saat
TIMER/COUNTER Timer/Counter Register menjadi nol. Bit Timer/Counter
Overflow Flag dapat dibersihkan (menjadi berlogika ‘0’)
Mikrokontroler AVR ATMEGA8535 memiliki dua 8-bit dengan memberikan nilai logika ‘1’ pada flag tersebut. Mode
Timer/Counter (Timer/Counter0 dan Timer/Counter2) dan satu operasi Timer/Counter0 antara lain mode normal (sebagai
16-bit Timer/Counter (Timer/Counter1). timer/counter biasa), mode CTC (Clear Timer on Compare
Match), mode Fast PWM (singleslope), dan mode Phase
Timer/counter dalam ATmega8535 ada 3 yaitu: Timer/counter Correct PWM (dual slope). Pemilihan mode operasi
0, Timer/counter 1,imer/counter 2 Interrupt timer berasal dari Timer/Counter0 diatur pada bit WGM01:0 (bit WGM01 DAN
dua sumber yaitu: pertama Overflow interrupt, dimana interrupt WGM00) pada I/O register TCCR0 bit ke 3 dan 6. Untuk mode
terjadi jika TCNTn mencapai 255 untuk timer 8 bit untuk timer operasi normal bit WGM01 diberi logika ‘0’ dan WGM00
8 bit dan 65535 untuk timer 16 bit. dan 65535 untuk timer 16 diberi logika ‘0’. Pemilihan mode Timer/Counter0 yang lebih
bit, kedua Compare match interrupt, dimana interrupt terjadi lengkap terdapat pada datasheet ATMEGA8535 pada bagian 8-
jika nilai OCR sama dengan TCNTn. Secara umum fitur bit Timer/Counter Register Description (Timer/Counter
Timer/Counter Timer/Counter mikrokontroler mikrokontroler Control Register – TCCR0). Mode operasi Timer/Counter2
ATmega8535 ATmega8535 dapat digunakan untuk berbagai sama dengan Timer/Counter0 yaitu mode normal, mode CTC,
mode Fast PWM, dan mode Phase Correct PWM. Pemilihan Pengaturan sumber clock
mode operasi Timer/Counter2 diatur pada bit WGM21:0 (bit
WGM21 DAN WGM20) pada I/O register TCCR2 bit ke 2 dan
6. Untuk mode operasi normal bit WGM21 diberi logika ‘0’ dan
WGM20 diberi logika ‘0’. Pemilihan ode Timer/Counter2 yang
lebih lengkap terdapat pada datasheet ATMEGA8535 pada
bagian 8-bit Timer/Counter Register Description
(Timer/Counter Control Register – TCCR2)

Timer/Counter Control Register

Resolusi PWM untuk mode Phase Correct PWM dapat dipilih


8, 9, atau 10-bit, atau ditentukan nilai ICR1 atau OCR1A.
Resolusi minimum yang diperbolehkan sebesar 2-bit (ICR1
atau OCR1A = 0X0003) dan resolusi maksimum sebesar 16bit
(ICR1 atau OCR1A = 0XFFFF). Resolusi PWM dapat dihitung
dengan menggunakan persamaan berikut, dengan nilai TOP
merupakan nilai maksimum untuk hitungan Timer/Counter
yaitu sebesar 0X00FF, 0X01FF, atau 0X03FF, atau nilai pada
OCR1A atau ICR1.
Konfigurasi mode operasi
.

Frekuensi output PWM ketika menggunakan Phase Correct


PWM dapat dihitung dengan menggunakan persamaan

Dimana N menggunakan nilai prescaler, bernilai 1, 8, 64, 256,


atau 1024 .
III. METODOLOGI

A. Alat dan Bahan


1. Labtop
2.Software proteus
3.Software CV AVR

B. Langkah Kerja
1.Pengunaan 8-Bit Timer/counter0 untuk mengendalikan
LED

Jalankan software
Buka Software
CV AVR dan
proteus pada
masukkan source
ATmega8535
code program
hubungkan PORTA
yang terdapat di
pada LED
modul praktikum

#include <mega8535.h>
unsigned char led=0xfe;
Input file Hex pada void main(void)
ATmega8535 {
// Please write your application code here
DDRA=0xff;
PORTA=led;
2. Penggunaan 16-bit timer/counter sebagai PWM untuk TCNT0=0x00;
mengendalikan kecepatan putar motor DC. TCCR0=0x05;
TIMSK=0x01;
TIFR=0x00;
Buka software Proteus #asm ("sei");
while(1)
{PORTA=led;}
}
Buat rangkaian skematik yang telah interrupt [TIM0_OVF] void timer0_overflow(void)
ditentukan di modul praktikum {
TCNT0 = 0x00;
led<<=1;
led|=1;
Buka software CV AVR dan masukkan if (led==0xff) {led=0xfe;}
source code program yang terdapat di // else {led=0xff;}
modul praktikum PORTA=led;
}

Pada percobaan ini PORTA sebagai output,dimana outputnya


Setelah di compile dan build yaitu LED akan menyala secara berurutan dari bit 0 sampai ke
all,jalankan rangkaian yang terdapat di bit 7,TCNT0 merupakan timer dengan bilangan heksa
proteus dddengan memasukkan file hex decimal.Sedangkan TCCR(Time/Counter Control Register
)yang berfungsi sebagai penentuan mode.Pada script diatas juga
IV. HASIL DAN ANALISIS terdapat perintah “sei” yaitu berfungsi untuk mengaktifkan
interrupt.

A. Tugas I : Penggunaan 8-Bit timer/counter 0 untuk


mengendalikan LED.
B. Tugas 2 : Penggunaan 16-bit timer/counter sebagai PWM Pada saat PC1 ditekan motor DC mengalami perputaran dengan
untuk mengendalikan kecepatan putar motor DC. kecepatan yang semakin meningkat.

V. SIMPULAN
Fitur timer/counter yang terdapat pada mikrokontroler
ATmega8535 dapat membuat aplikasi pada AVR dengan
menggunakan Bahasa pemograman C.

REFERENSI

Pada saat PC0 ditekan Motor DC mengalami perputaran dengan [1] Modul III Praktikum Teknik Elektro-Institut Teknologi Sumatera
kecepatan yang lambat. [2] Modul dan Hasil Praktikum Timer/Counter (Mikroprosesor) ~ Elektro
Kingdom (faismuhamadkingdom.blogspot.com)

[3] TIMER / COUNTER ATMEGA8535 | Lumba-Lumba Putih


(wordpress.com)
.
Lampiran
Link Drive : https://drive.google.com/drive/folders/14ZRuH5QzQfG9tAd9WxzCfn7rBEWDKQxP?usp=sharing
Source code program tugas 1

#include <mega8535.h>
unsigned char led=0xfe;
void main(void)
{
// Please write your application code here
DDRA=0xff;
PORTA=led;
TCNT0=0x00;
TCCR0=0x05;
TIMSK=0x01;
TIFR=0x00;
#asm ("sei");
while(1)
{PORTA=led;}
}
interrupt [TIM0_OVF] void timer0_overflow(void)
{
TCNT0 = 0x00;
led<<=1;
led|=1;
if (led==0xff) {led=0xfe;}
// else {led=0xff;}
PORTA=led;
}

Source code program tugas 2


#include <mega8535.h>
#include <delay.h>

void main (void)


{
unsigned int temp;
PORTC = 0x00;
DDRC = 0x00; // C sbg input
PORTD = 0x00;
DDRD = 0x30; // PD4 & PD5 sbg output

TCCR1A = 0x82; // PWM, phase correct


TCCR1B = 0x12; // Clock = ( 4 MHz/8 )
TCNT1 = 0x0000;
ICR1H = 0xFF; // Resolusi phase correct PWM 16-bit
ICR1L = 0xFF; // Resolusi phase correct PWM = {log (TOP+1)}/{log (2)}
// = {log (655335+1)}/{log(2)}
// = 4.8165 / 0.301
// = 16 bit
OCR1A = 0X0000;
temp = 0x0FF0; //Nilai Awal PWM
while (1)
{
if (PINC.0==0) //jika tombol di terhubung dengan Pc0
{ delay_ms(100); // berputar sampai berhenti
temp-=0xFF;
if (temp==0xFF01) temp=0x0000;
}
if (PINC.1==0) //jika tombol di terhubung dengan Pc0
{ delay_ms(100); // berputar sampai berhenti
temp+=0xFF;
if (temp==0x00FE) temp=0xFFFF;
}
OCR1A=temp;
};
}

Anda mungkin juga menyukai