Anda di halaman 1dari 7

MEMBUAT JAM DIGITAL SEDERHANA

Written by Iccank. Posted in Project

Project kali ini adalah membuat jam digital sederhana dengan menggunakan 4 buah 7segment dan ATmega8 dan
untuk metode pemrogramannya hanya menggunakan library "delay.h". Terus Bagaimana caranya? kenapa tidak
menggunakan IC decoder untuk 7segment seperti IC 7447?
Jawabannya sederhana yaitu selain rangkaiannya tidak terlalu rumit juga bisa menghemat penggunaan PORT
pada mikrokontroler. Caranya dapat kamu lihat seperti gambar skematik rangkaian dibawah ini

Jika kita lihat skematik rangkaian diatas semua 7Segment terhubung paralel dengan PORTD pada mikrokontroler
kemudian kaki Common / Enable pada seven segment yang biasa kita hubung langsung ke ground itu kita
hubungkan dengan PORTC pada mikrokontroler, ditambah dengan 2 buah LED dan push button yang tersambung
dengan PORTB.
Terus bagaimana cara kerjanya sehingga 7segment bisa menampilkan angka yang berbeda sementara semua
tersambung secara paralel dengan PORTD?. Caranya adalah kita menggunakan metode scanning yaitu menyalakan
7segment secara bergantian dengan kecepatan tinggi sehingga tampak menyala secara normal. Yang berfungsi untuk
mengatur pergantian 7segment adalah PORTC yang jika berlogika 0 (terground) maka 7segment akan aktif,
sebaliknya jika berlogika 1 (tercatu) maka 7segment akan mati
Selanjutnya berikut contoh programnya:
#include <mega8.h>
#include <delay.h>
//-------------------7seg------------------------------#define

set PORTD

//-------------------enable-----------------------------

#define enable1 PORTC.2


#define enable2 PORTC.3
#define enable3 PORTC.4
#define enable4 PORTC.5
//-------------------tombol---------------------------#define tombol1 PINB.1
#define tombol2 PINB.3
//-------------------kondisi--------------------------#define mati 1
#define nyala 0
unsigned char x=5,a ,y,detik,sat_mnt,pul_mnt,sat_jam,pul_jam,hit[10]={0b01111111,
0b00011100, 0b10111011, 0b10111110, 0b11011100, 0b11101110, 0b11100111, 0b00111100,
0b11111111, 0b11111110};
//common katoda
void rolling()
{
enable4=1;enable1=0;
set=hit[sat_mnt];
delay_ms(x);
if(sat_mnt>9){sat_mnt=0;pul_mnt++;}
enable1=1;enable2=0;
set=hit[pul_mnt];
delay_ms(x);
if(pul_mnt>5){pul_mnt=0;sat_jam++;}
enable2=1;enable3=0;
set=hit[sat_jam];
delay_ms(x);

if(sat_jam>9){sat_jam=0;pul_jam++;}
enable3=1; enable4=0;
set=hit[pul_jam];
delay_ms(x);
if(pul_jam>=4&&sat_jam==2){sat_jam=0;pul_jam=0;}
}

void setting()
{
while(1)
{
if (tombol1==0)
{
delay_ms(200);
while(tombol1==0);
a++;

if(a==1)
{

for(;;)
{
enable4=1;enable1=0;;set=hit[sat_mnt];
if(tombol2==0){

delay_ms(200); while(tombol2==0);sat_mnt+

+;if(sat_mnt>9)sat_mnt=0;}
else if(tombol1==0){break;};
};
}

else if(a==2)
{

for(;;)
{
enable1=1;enable2=0;;set=hit[pul_mnt];
if(tombol2==0){

delay_ms(200); while(tombol2==0);pul_mnt+

+;if(pul_mnt>5)pul_mnt=0;}
else if(tombol1==0){break;};
};
}
else if(a==3)
{

for(;;)
{
enable2=1;enable3=0;;set=hit[sat_jam];
if(tombol2==0){

delay_ms(200); while(tombol2==0);sat_jam+

+;if(sat_jam>9)sat_jam=0;}
else if(tombol1==0){break;};
};
}
else if(a==4)
{

for(;;)
{
enable3=1; enable4=0;;set=hit[pul_jam];
if(tombol2==0){delay_ms(200); while(tombol2==0);pul_jam+

+;if(pul_jam>2)pul_jam=0;}
else if(tombol1==0){break;};
};
}

else if(a>4){a=0;goto lanjut;};


}

else if(a==0)break;

lanjut:
}
void jalan()
{
for (detik=1;detik<60;detik++)
{
DDRB.4=DDRB.5=1;
PORTB.5=1;
PORTB.4=1;
for (y=0;y<=24;y++)
{
rolling();
setting();

};
PORTB.4=0;
PORTB.5=0;

for (y=0;y<=24;y++)
{
rolling();
setting();
};

};
sat_mnt++;

}
void main(void)
{
PORTB=0xFF;
DDRB=0x00;
PORTC=0xFF;
DDRC=0xFF;
PORTD=0x00;
DDRD=0xFF;
set=hit[0];
delay_ms(10);

while(1)
{ jalan(); }

Untuk design LAYOUT dan VIDEO-nya seperti dibawah:

Design Skematik dan layout dalam bentuk PDF bisa kamu download pada link dibawah:

Anda mungkin juga menyukai