Kamis, 04 Oktober 2012

program jam digital





Jam Digital ATmega 8


Modul Jam Digital
TRAINING
ASSEMBLY & SOLDERING PROJECT

1.    Topik uji :
·        Merakit jam digital.
2.    Daftar peralatan yang dipergunakan :
a.    Alat tulis
b.    Solder, tempat solder, spon basah
c.    Alat tangan
d.    Multimeter

3.     Daftar bahan yang diperlukan :
a.    PCB block display dan block minsys
b.    Komponen block display dan block minsys
c.    Timah
d.    Lembar Soal

4.     Design PCB
  
4.     Design Rangkaian



Program CodeVision

#include <mega8.h>
#include <delay.h>
#include <stdlib.h>
// I2C Bus functions
#include <i2c.h>

// DS1307 Real Time Clock functions
#include <ds1307.h>
char seconds, minutes, hours;
unsigned char jam_t=0,menit_t=0,detik_t=0;
char kondisi=1;
int a=300;

void nada (void){
PORTB.5=1;
delay_ms(1000);
PORTB.5=0;
}


void nada1 (void){
PORTB.5=1;
delay_ms(100);
PORTB.5=0;
}

 void Sevenseven1 (void){
    PORTD=hours/10;
    PORTC=32;
    delay_us(1500);
    PORTD=hours%10;
    PORTC=16;
    delay_us(1500);
    PORTD=minutes/10;
    PORTC=8;
    delay_us(1500);
    PORTD=minutes%10;
    PORTC=4;
    delay_us(1500);
    PORTD=seconds/10;
    PORTC=2;
    delay_us(1500);
    PORTD=seconds%10;
    PORTC=1;
    delay_us(1500);
    PORTC=0;
    }

 void Sevenseven_jam (void){
    PORTD=hours/10;
    PORTC=32;
    delay_us(750);
    PORTD=hours%10;
    PORTC=16;
    delay_us(750);
    PORTD=minutes/10;
    PORTC=8;
    delay_us(100);
    PORTD=minutes%10;
    PORTC=4;
    delay_us(100);
    PORTD=seconds/10;
    PORTC=2;
    delay_us(100);
    PORTD=seconds%10;
    PORTC=1;
    delay_us(100);
    PORTC=0;
    delay_us(200);
    }


 void Sevenseven_menit (void){
    PORTD=hours/10;
    PORTC=32;
    delay_us(100);
    PORTD=hours%10;
    PORTC=16;
    delay_us(100);
    PORTD=minutes/10;
    PORTC=8;
    delay_us(750);
    PORTD=minutes%10;
    PORTC=4;
    delay_us(750);
    PORTD=seconds/10;
    PORTC=2;
    delay_us(100);
    PORTD=seconds%10;
    PORTC=1;
    delay_us(100);
    PORTC=0;
    delay_us(200);
    }

 void Sevenseven_detik (void){
    PORTD=hours/10;
    PORTC=32;
    delay_us(100);
    PORTD=hours%10;
    PORTC=16;
    delay_us(100);
    PORTD=minutes/10;
    PORTC=8;
    delay_us(100);
    PORTD=minutes%10;
    PORTC=4;
    delay_us(100);
    PORTD=seconds/10;
    PORTC=2;
    delay_us(750);
    PORTD=seconds%10;
    PORTC=1;
    delay_us(750);
    PORTC=0;
    delay_us(200);
    }

void seting (void){
tetap:
if (PINB.3==0){
nada1();
delay_ms(300);
kondisi=kondisi+1;
}
if (kondisi==1){
Sevenseven_jam();
if (PINB.4==0){
nada1();
delay_ms(150);
hours= hours+1;
if (hours>=24){
hours=0;
Sevenseven_jam();
}
}
}

if (kondisi==2){
Sevenseven_menit();
if (PINB.4==0){
nada1();
delay_ms(150);
minutes= minutes+1;
if (minutes>=60){
minutes=0;
Sevenseven_menit();
}
}
}

if (kondisi==3){
Sevenseven_detik();
if (PINB.4==0){
nada1();
delay_ms(150);
seconds= seconds+1;
if (seconds>=60){
seconds=0;
Sevenseven_detik();
}
}
}

if (kondisi==4){
kondisi=1;
}

if (kondisi==5){
nada();
rtc_set_time(0,0,0);
kondisi=1;
a=300;
goto end;
}

if ((kondisi==1)&&(!PINB.2)||
    (kondisi==2)&&(!PINB.2)||
    (kondisi==3)&&(!PINB.2)||
    (kondisi==4)&&(!PINB.2)){
kondisi=1;
nada();
rtc_set_time(hours,minutes,seconds);
a=300;
goto end;
}

goto tetap;
end:
}

void main(void)
{

PORTB=0x11011100;
DDRB=0x00100000;

PORTC=0x00;
DDRC=0x7F;

PORTD=0x00;
DDRD=0xFF;
i2c_init();
rtc_init(0,1,0);

while (1)
      {
      rtc_get_time(&jam_t,&menit_t,&detik_t);
      if(jam_t!=hours||menit_t!=minutes||detik_t!=seconds)

      hours=jam_t;
      minutes=menit_t;
      seconds=detik_t;
      Sevenseven1();

      if (seconds==80){
      kondisi=5;
      seting();
      }

      if (!PINB.2){  
      a--;
      delay_ms(5);
      if (PINB.2){
      a=300;}
      if (!a){
      nada();
      delay_ms(500);
      seting();}   
      }  

      }
}

9 komentar:

  1. Mas jual modul jam digital yang sudah jadi?

    BalasHapus
    Balasan
    1. modulnya sudah habisa mas, tapi jika mas mau bisa inden mas.

      Hapus
  2. mas berapa harganya

    BalasHapus
    Balasan
    1. tanpa box, 175 rb mas..
      dengan box 225 rb.

      Hapus
  3. mas, modul jam digital yang belum jadi masih ada ? berapa harganya mas ?

    BalasHapus
  4. mas..boleh gak papan pcb nya aja..irwansyah sumut

    BalasHapus
  5. mas bisa minta daftar komponennya apa aj y mas

    BalasHapus
  6. kalo mo pesan modulnya masih ada jual mas?

    BalasHapus
  7. jual kit nya berapa mas? masih ada ngga?

    BalasHapus