membuat jam digital sederhana

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>

Upload: kyai-kulhualik

Post on 29-Dec-2015

34 views

Category:

Documents


0 download

DESCRIPTION

siap unduh

TRANSCRIPT

Page 1: Membuat Jam Digital Sederhana

MEMBUAT JAM DIGITAL SEDERHANAWritten 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

Page 2: Membuat Jam Digital Sederhana

//-------------------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];

Page 3: Membuat Jam Digital Sederhana

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;};

};

Page 4: Membuat Jam Digital Sederhana

}

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;};

};

Page 5: Membuat Jam Digital Sederhana

}

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;

Page 6: Membuat Jam Digital Sederhana

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(); }

Page 7: Membuat Jam Digital Sederhana

}

Untuk design LAYOUT dan VIDEO-nya seperti dibawah:

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