GAMBAR RANGKAIAN
{
a=0;
++detik;
PORTD.0=~PORTD.0;
if(detik==10||detik==26||detik==42||detik==58||detik==74)
{
detik&=0xF0;
detik+=16;
}
if(detik==90)
{
detik=0;
++menit;
}
if(menit==10||menit==26||menit==42||menit==58||menit==74)
{
menit&=0xF0;
menit+=16;
}
if(menit==90)
{
menit=0;
++jam;
}
if(jam==10||jam==26)
{
jam&=0xF0;
jam+=16;
}
if(jam==36)
{
jam=0;
}
PORTC=detik;
PORTA=menit;
PORTB=jam;
}
}
void main(void)
{
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0xFF;
PORTD=0xFF;
DDRD=0x01;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 3,906 kHz
// Mode: CTC top=OCR0
// OC0 output: Disconnected
TCCR0=0x0D;
TCNT0=0x00;
OCR0=255;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Global enable interrupts
#asm(sei)
while (1)
{
// Place your code here
if(step==1)
{
if(PIND.7==0)
{
jam+=16;
}
if(PIND.6==0)
{
++jam;
}
if(PIND.5==0)
{
menit+=16;
}
if(PIND.4==0)
{
++menit;
}
if(PIND.3==0)
{
step=2;
}
PORTC=detik;
PORTA=menit;
PORTB=jam;
delay_ms(200);
}
if(step==2)
{
TIMSK=0x02; //menjalankan Jam digital
if(PIND.2==0)
{
step=1;
}
TIMSK=0x00; //menghentikan Jam digital
}
};
}