Anda di halaman 1dari 12

MODUL III

TIMER / COUNTER
Epran Pratama Ginting (119130004)
Asisten : Leja Aprianza (13117085)
Tanggal Percobaan : 17/04/2021
EL2109 Praktikum Sistem Mikroprosesor
Laboratorium Teknik Elektro
Institut Teknologi Sumatera

Abstrak—Percobaan ini berjudul Timer / Counter yang


bertujuan praktikan mampu membuat aplikasi Timer /
Counter pada AVR menggunakan Bahasa pemrograman II. LANDASAN TEORI
C. Percobaan ini dilakukan secara daring sehingga
percobaan dikerjakan secara simulasi pada software Timer / Counter ATMega 8535
proteus dan CVAVR. Komponen yang digunakan pada ATMega8535 mempunyai timer/counter yang berfungsi
praktikum kali ini yaitu ATMega 8535 yang biasanya sebagai pencacah/pewaktuan, karena ATMega8535 mampu
digunakan pada otomasi peralatan elektronik. Interrupt memakai crystal berfrekuensi sampai dengan 16 MHz maka
adalah kondisi dimana pada saat program utama berjalan mikrokontroler ini dapat mencapai 16 MIPS (Million Intruction
kemudian suatu program dieksekusi terlebih dahulu, per Second). Pada mikrokontroler ATMega 8535 perlu
setelahnya program utama berlanjut Kembali. Timer / diperhaatikan pemilihan sumber clock. Hal ini berhubungan
Counter difungsikan sebagai program yang menghitung dengan frekuensi yang kita inginkan. Jika kita ingin
pulsa clock. Memfungsikan timer sebagai counter sama menggunakan frekuensi 12 MHz dengan sumber clock
dengan fungsi sebagai timer akantetapi clock tidak berasal eksternal maka perlu dilakukan kalibrasi fuse bit
dari frekueensi kristal melainkan dari kaki Tn mikrokontroler dengan downloader, jka tidak maka
mikrokontroler akan menggunakan frekuensi dengan sumber
Kata Kunci— Timer, Counter clock internal sekitar 4 MHz.
[1]
I. PENDAHULUAN

ATMega8535 mempunyai timer/counter yang berfungsi Counter


sebagai pencacah/pewaktuan. Karena ATMega8535 mampu
memakai crystal berfrekuensi sampai dengan 16 MHz maka Secara prinsip, memfungsikan Timer/Counter sama dengan
mikrokontroler ini dapat mencapai 16MIPS (Million fungsi sebagai Timer akan tetapi sumber bukan berasal dari
Instruction per Second). frekuensi kristal, tetapi input dari kaki Tn. Dengan
Pada mikrokontroler ATMega 8535 perlu diperhatikan memanfaatkan counter naik, maka bisa diberikan nilai TCNT
pemilihan sumber clock. Hal ini berhubungan dengan frekuensi yang sesuai dengan rumus :
yang kita inginkan. Jika kita ingin menggunakan frekuensi
12MHz dengan sumber clock eksternal maka perlu dilakukan TCNT = (1+FFH) – jumlah counter
kalibrasi fuse bit mikrokontroler dengan downloader, jika tidak
maka mikrokontroler akan menggunakan frekuensi dengan Sehingga jika diinginkan membuat counter 5, maka nilai TCNT
sumber clock internal sekitar 4 MHz. adalah FBH.
Adapun tujuan dari percobaan modul 1 ini ialah :
Mode PWM
1. Praktikan mampu membuat aplikasi Timer / Counter pada
AVR dengan menggunakan Bahasa pemrograman C Dengan mode ini, maka mikrokontroler bisa membangkitkan
sinyal dengan frekuensi tertentu dan duty cycle tertentu sesuai
dengan rumur sebagai.
Untuk Fast PWM :
𝑓𝑂𝐶𝑛𝑃𝑊𝑀=𝑓𝑐𝑙𝑘𝐼/𝑂/𝑁.256
Untuk Phase Correct PWM:
𝑓𝑂𝐶𝑛𝑃𝑊𝑀=𝑓𝑐𝑙𝑘𝐼/𝑂2/𝑁.256
Dimana nilai OCR yang berkaisar dari 0 sampai 255
akan mempengaruhi duty cycle sinyal yang Buat kode program di software AVR sesuai yang ada
dibangkitkan.[2] pada modul

III. METODOLOGI

Alat dan Bahan Compile kode program ke IC pada rangkaian


1. Laptop
2. Software proteus digunakan untuk merancang
rangkaian dan display atau serial monitor hasil
percobaan
3. Software CV AVR digunakan untuk membuat kode Jalankan dan analisa percobaan
program

Langkah Kerja

1. Penggunaan 8-Bit Timer/Counter0 Untuk IV. HASIL DAN ANALISIS


Mengendalikan Led
Penggunaan 8-bit Timer/Counter0 untuk Mengendalikan
Buat rangkaian di software proteus LED

#include <mega8535.h>
unsigned char led=0xfe;

Buat kode program di software AVR sesuai yang ada void main(void)
pada modul {
// Please write your application code here
DDRA=0xff;
PORTA=led;
TCNT0=0x00;
TCCR0=0x05;
Compile kode program ke IC pada rangkaian TIMSK=0x01;
TIFR=0x00;
#asm ("sei");
while(1)
{PORTA=led;}
}
interrupt [TIM0_OVF] void timer0_overflow(void)
Jalankan dan analisa percobaan {
TCNT0 = 0x00;
led<<=1;
led|=1;

if (led==0xff) {led=0xfe;}
2. Penggunaan 16-Bit Timer/Counter1 Sebagai Pwm // else {led=0xff;}
Untuk Mengendalikan Kecepatan Putar Motor Dc PORTA=led;
}

Buat rangkaian di software proteus Analisis : asm berfungsi sebagai interrupt otomatis, LED nyala
satu per satu secara bergantian karena adanya fungsi perulangan
dalam program tersebut.
Penggunaan 16-bit Timer/counter1 sebagai PWM untuk 3.Timer digunakan untuk membuat delay,dimana dalam
Mengendalikan Kecepatan Putar Motor DC penggunaannya perlu dilakukan beberapa pengaturan
4. Saat PIN C0 = 1 maka motor akan semakin melambat sampai
berhenti
#include <mega8535.h> 5. Saat PIN C1 = 1 maka motor motor akan semakin cepat
#include <delay.h> sampai kecepatan maksimum motor

void main (void)


{
VI. REFERENSI
unsigned char temp;
PORTC=0x00;
DDRC=0x00; [1]
PORTD=0x00; https://allaboutmicrocontroller.blogspot.com/2011/04/timer-
DDRD=0x30; counter-atmega-8535.html

TCCR1A=0x82; [2]
TCCR1B=0x12; http://elektro.um.ac.id
TCNT1=0x0000;
ICR1H=0xFF;
ICR1L=0xFF;

OCR1A=0x0000;

temp=0x0FF0;
while (1)
{
if (PINC.0==0)
{
delay_ms(100);
temp=0xFF;
if (temp==0xFF01) temp=0x0000;
}
if (PINC.1==0)
{
delay_ms(100);
temp+=0xFF;
if (temp==0x00FE) temp=0xFFFF;
}
OCR1A=temp;
};
}
Analisis : PORT C sebagai input, PORTD sebagai Interrupt,
Ketika input pin c = 0 maka kecepatan motor akan berkurang
atau semakin lamban. Ketika input pin c = 1 maka kecepatan
motor akan semakin bertambah.

V. SIMPULAN

Setelah melaksanakan praktikum kali ini diperoleh kesimpulan


sebagai berikut :

1.#asm (“sei”) berfungsi untuk mengaktifkan interrupt secara


otomatis
2.LED berkedip secara bergantian dikarenakan interrupt
otomatis serta adanya perulangan
Lampiran

Link video : https://youtu.be/bpniWYU4tOE

Data pengukuran :

Anda mungkin juga menyukai