Dalam projek ini saya menggunakan ATmega 8535, fitur yang saya pakai yaitu ekternal interupt 0, eksternal interupt 1 dan timer 1. Sedangkan pada hardware yaitu menggunakan 2 push button dan LCD 2×16.
Berikut Schematic :

Setting Codevision AVR :
Berikut programnya :
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.8 Professional
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 3/15/2011
Author : F4CG
Company : F4CG
Comments:
Chip type : ATmega8535
Program type : Application
Clock frequency : 12.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/
#include <mega8535.h>
#include <stdio.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
unsigned char lcd_buffer[33];
unsigned int mulai;
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
TCCR1A=0×00;
TCCR1B=0×02;
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,”Time: %d ms”,mulai);
lcd_puts(lcd_buffer);
}
// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
// Place your code here
mulai=0;
TCCR1A=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;
}
// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
// Place your code here
TCNT1H=0×00;
TCNT1L=0×00;
mulai++;
}
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0×00;
DDRA=0×00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0×00;
DDRB=0×00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0×00;
DDRC=0×00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0×00;
DDRD=0×00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0×00;
TCNT0=0×00;
OCR0=0×00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 1500.000 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: On
// Compare B Match Interrupt: Off
TCCR1A=0×00;
TCCR1B=0×02;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×05;
OCR1AL=0xDC;
OCR1BH=0×00;
OCR1BL=0×00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0×00;
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Low level
// INT1: On
// INT1 Mode: Low level
// INT2: Off
GICR|=0xC0;
MCUCR=0×00;
MCUCSR=0×00;
GIFR=0xC0;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0×10;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;
// LCD module initialization
lcd_init(16);
// Global enable interrupts
#asm(“sei”)
while (1)
{
// Place your code here
};
}
Tampilan videonya saat dirunning :
Cara mengeset agar counter akan bertambah tiap 1 ms adalah sebagai berikut : Disini menggunakan timer1 mode CTC dengan prescalar 8, Crystal yang saya pakai yaitu 12MHz. Kuncinya yaitu pada registry:
TCCR1B=0×02;//Setting prescalar 8
OCR1AH=0×05;OCR1AL=0xDC;// Mensetting nilai 0CR pada timer 1 yaitu 0x05DC atau (=1500 desimal)
Pada mode CTC Timer 1, nilai timer yang ada pada TCNTn akan dinolkan lagi jika TCNTn sudah sama dengan nilai yang ada pada register OCRn, sebelumnya OCR harus diset terlebih dahulu pada timer 0 dan 0 range dari OCR = 0-255 sedangkan pada timer 1 range dari OCR = 0- 65535.
TCCR1B=0×02;Crystal/8= 12000000MHz/8= 1500000 Hz =Waktu tiap 1 clock 1/1500000= 0,666 us.
OCR1AH=0×05;OCR1AL=0xDC ; Setting nilai dari OCR = 1500(10)
TIMSK=0×10;TIMSK=0×10; saat nilai TCNT1 = OCR maka progam akan mengaktifkan fungsi interupt Timer 1 output compare A match.
Sehingga perhitungannya = waktu tiap 1 clok x 1500= 0.666 us X 1500 = 999 us= mendekati 1 ms











Bagi yang bershio Kuda, tahun ini peruntungan biasa-biasa saja.
Shio Kelinci pada tahun ini dalam kategori kurang baik. Sebab itu, harus bisa menjaga diri dari berbagai kemungkinan yang merugikan.Karier dan usaha banyak dihadang oleh orang-orang yang iri/tidak senang. Lebih baik berlaku cerdik dengan menghindari konflik.
Keberuntungan Shio Kambing di tahun ini bagus dalam urusan bisnis. Tapi kurang bagus untuk hubungan sosial.
Nasib baik banyak berpihak pada Shio Monyet. Segala upaya yang ditempuh di tahun ini bisa mendapatkan hasil yang menggembirakan.
Secara umum, Shio Ayam mengalami kemajuan yang signifikan ditunjang peruntungan yang baik.
Shio Anjing memiliki ketidakcocokan dengan Naga. Kondisi ini kerap mendatangkan ketidakberuntungan.
Di tahun Naga, shio Tikus sedang naik pamor. Banyak mendapat kesempatan dan lancar. Keberhasilan ini dapat diwujudkan dengan cara tejun bekerja dan bersikap hati-hati saat mengambil keputusan. Mumpung lagi bagus, mestinya manfaatkan untuk hal-hal positif. Untuk meraih kesuksesan, shio lain boleh jadi memerlukan energi dua kali lipat lebih banyak jika dibanding Shio Tikus.
Keberuntungan berpihak pada Shio Babi. Kerugian yang terjadi tahun lalu bisa terbayar tahun ini.
Shio Kerbau di tahun Naga ini sangat berat. Segala tindakan dan keputusan yang dikerjakan sering mendapat gangguan dari orang-orang yang tidak senang/iri hati. Urusan yang seharusnya mudh jadi rumit. Kalau tidak disikapi dengan hati-hati bisa berujung merugikan karier dan rezeki. Bahkan bisa berdampak hukum (pada pria ber-shio Kerbau).
Di tahun Naga ini, shio Macan harus berjuang sendiri bila ingin sukes.
Shio Naga tahun ini masih kurang baik. Kualitasnya hampir sama dengan tahun lalu. Orang ber-shio Naga di tahun Nagaini mengalami konflik batin yang bisa berasal dari lingkungan keluarga, linkungan kerja, maupun pendapat sendiri. Makanya, orang ber-shio Naga tahun ini lebih sering terlihgat lesu, turun semangat juang.










