TUJUAN
Gambar dan table berikut ini dikutipkan dari datasheet ATMega 8535.
Lihat pula hal. 72 untuk memahami definisi MAX, BOTOM dan TOP.
2 MODUL II TIMER, COUNTER, INTERUPT
Pengaturan Perilaku pin OCO (misalnya untuk mode non-PWM) (Hal. 84)
Persiapan
Hubungkan PORT USB Master Mikro AVR pada PORT USB PC anda.
Pastikan USB Downloader anda sudah terinstall.
Hubungkan PORT B (ATMega8535) pada PORT OUTPUT.
TUGAS II.A.1
Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchart-
nya.
#include <mega8535.h>
void main()
{
DDRB = 0xFF;
while(1)
{
TCNT1 = 49910;
TCCR1B = 0b101;
while((TIFR & 0b00000100) == 0);
TCCR1B = 0;
TIFR = 0b00000100;
PORTB = ~PORTB;
}
}
Apabila kondisi OUTPUT LED DISPLAY menyala selama 1 detik dan mati selama 1
detik begitu seterusnya, maka percobaan yang dilakukan benar.
TUGAS II.A.2
Persiapan
Hubungkan PORT USB Master Mikro AVR pada PORT USB PC anda.
Hubungkan PORT C pada PORT LCD.
Hubungkan PORT B0 pada PORT K1.
TUGAS II.B.1
Jalankan contoh program di bawah ini, amati hasilnya dan buatlah flowchart-
nya.
#include <mega8535.h>
#include <alcd.h>
#include <stdio.h>
char str[10];
void main()
{
DDRB.0 = 0;
PORTB.0 = 1;
lcd_init(16);
lcd_clear();
lcd_putsf(“Counter 0= ”);
TCCR0 = 0b110;
while(1)
{
sprintf(str,”%i”,TCNT0);
lcd_gotoxy(10,0);
lcd_puts(str);
}
}
Apabila kondisi OUTPUT LCD DISPLAY menampilkan jumlah counter sebanyak n kali
keypad ditekan maka percobaan yang dilakukan benar.
TUGAS II.B.2
Modifikasi program di atas sehingga LED menyala semua selama n detik dan
mati semua selama n detik begitu seterusnya ketika keypad ditekan sejumlah n
kali, serta OUTPUT LCD DISPLAY menampilkan jumlah counter sebanyak n kali
keypad ditekan.
8 MODUL II TIMER, COUNTER, INTERUPT
Persiapan
Hubungkan PORT USB Master Mikro AVR pada PORT USB PC anda
Hubungkan PORT C pada PORT LCD.
Hubungkan PORT D2 pada PORT K1.
Hubungkan PORT D3 pada PORT K2.
TUGAS II.C.1
#include <mega8535.h>
#include <alcd.h>
void main()
{
DDRD.2 = 0;
DDRD.3 = 0;
PORTD.2 = 1;
PORTD.3 = 1;
GICR = 0b11000000;
MCUCR = 0b00000000;
#asm(“sei”)
lcd_init(16);
lcd_clear();
lcd_putsf(“Ext Interrupt”);
while(1);
}
interrupt[2]void interupsi_ext0(void)
{
lcd_gotoxy(0,1);
lcd_putsf(“INT Ext 0”);
}
Interrupt[3]void interupsi_ext1(void)
{
lcd_gotoxy(0,1);
lcd_putsf(“INT Ext 1”);
}
Apabila kondisi OUTPUT LCD DISPLAY menampilkan “INT Ext 0” ketika keypad 1
ditekan dan menampilkan “INT Ext 1” ketika keypad 2 ditekan, maka percobaan yang
dilakukan benar.
.
TUGAS II.C.2