Jam Digital ATmega 8
TRAINING
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
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;#include <delay.h>
#include <stdlib.h>
// I2C Bus functions
#include <i2c.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
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();}
}
}
}
Mas jual modul jam digital yang sudah jadi?
BalasHapusmodulnya sudah habisa mas, tapi jika mas mau bisa inden mas.
Hapusmas berapa harganya
BalasHapustanpa box, 175 rb mas..
Hapusdengan box 225 rb.
mas, modul jam digital yang belum jadi masih ada ? berapa harganya mas ?
BalasHapusmas..boleh gak papan pcb nya aja..irwansyah sumut
BalasHapusmas bisa minta daftar komponennya apa aj y mas
BalasHapuskalo mo pesan modulnya masih ada jual mas?
BalasHapusjual kit nya berapa mas? masih ada ngga?
BalasHapus