Post on 04-Feb-2018
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
1/34
Belajar Berkreasi
MEMBUAT JAM DIGITAL
DENGAN RTC DAN ATMEGA 8
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
2/34
Membuat Jam Digital dengan Mudah
Langkah Pertama Buatlah PCB dibawah ini
Ukuran PCB : 17,1 cm x 6,1 cm
Gambar Skema :
IC ULN 2803
IC RTC 3701
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
3/34
Tata letak komponen :
Komponen yang dibutuhkan :
1. IC Regulator 7805
2. Jack DC Female (optional kalau mau disambung kabel langsung juga bisa)
3.
Capasitor elco 100uF/12 V
4. Saklar ON/OFF (optional jika tidak mau pakai saklar bisa langsung di jumper saja)
5. Capasitor elco 100uF/12 V
6.
IC- ATMega 87.
Chrystal 12 MHz
8. IC ULN 2803
9. Resistor 100 Ohm
10.Transistor fcs 9013 (posisi tulisan depan kita kakinya E-B-C)
11.Resistor 330 Ohm
12.
Seven segmen
13.
Push button kecil
14.Batre kancing 3 V (ini bisa juga diganti 2 batre ABC 1,5 V di seri)
15.
IC RTC DS 3107
16.
Resistor 4 k 7
17.Resistor 47 K
18.Chrystal 32,678 MHz
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
4/34
Cara Pembuatan :
1.
Cetak Layout PCB diatas dengan printer laser pada kertas foto / kertas kalender/kertas brosur atau kertas
yang lain yang tipis dan mengkilap
2.
Siapkan PCB Polos anda, dan panaskan setrika. Setrikalah layout ini pada PCB sehingga jalur berwarna hitam
akan nempel di PCB
Ketika di setrika posisi Jalur ada di bawah (tidak seperti Gambar)
3.
Hasilnya setelah disetrika :
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
5/34
4.
Cek jalur yang tercetak, kalau putus, tebalkan dengan spidol permanen
5. Kemudian larutkan dalam larutan Ferit Chlorida
6. Bor PCB dengan mata bor 0,8 cm
7. Pasang komponen pada PCB, mulailah dengan pemasangan Jumper/sambungan kabel diikuti dengan
pemasangan komponen lainnya
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
6/34
Jika semua komponen telah dipasang, kita lanjut ke pemrograman IC Atmega8
Hubungkan IC anda dengan Downloader anda, disini saya contohkan menggunakan USBasp.
Jika anda menggunakan downloader jenis yang lainnya, misalkan type serial, atau LPT
sesuaikan dengan kaki downloader, kemungkinan antara downloader satu dengan yang
lainnya posisi soketnya berbeda. Pastikan kaki : mosi, miso, sck, rst, vcc dan gnd tidak
terbalik, karena dapat merusak IC anda
Ini gambar USBasp yang saya gunakan ;
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
7/34
INSTALASI USBASP
1. Colokkan USBASP ke port USB Laptop
2. Jika USBASP anda tidak dikenali, maka anda perlu instal drivernya
3. Buka Device manager laptop anda
4. Instal drivernya dengan cara klik kanan pada tulisan USBasp klik Update Driver Software
USBASP tidak dikenali
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
8/34
5. Akan ada tampilan seperti dibawah ini, pilih Browse mycomputer for driver software
6.
Browse driver USBasp anda lalu klik NEXT
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
9/34
7. Jika Windows scurity mengingatkan klik aja Instal this driver software anyway
8. Jika driver sukses di instal akan ada tulisan seperti ini ;
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
10/34
9. Dan di Device manager sudah dikenali
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
11/34
INSTALASI KHAZAMA AVR PROGRAMMER
1. Double klik Installer Khazama
2. Klik NextInstal Finish
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
12/34
3. Tampilan Khazama AVR Programmer
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
13/34
Konfigurasi PIN Atmega 8 ;
Memasang USBasp pada Mikrokontrol
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
14/34
Contoh pemasangan untuk memprogram IC mikro kontroller dengan USBASP
Jika sudah di rangkai seperti gambar, maka mikrokontroller siap untuk diprogram
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
15/34
Mengecek Sambungan dan rangkaian Mikrokontrol
dengan Software Khazama AVR Programmer
1. Pastikan USBASP telah terkoneksi dengan Mikrokontroller dan laptop dengan benar
2. Buka software Khazama AVR Programmer
3. Klik CommandRead Chip Signature
4. Jika Rangkaian dan penyambungan anda benar, maka akan muncul tulisan seperti dibawah ini, jika
masih ada error silahkan cek kondisi IC Mikro dan penyambungannya sudah betul belum.
5.
IC Mikrokontroller Siap untuk di Program
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
16/34
Memasukkan Program kedalam Mikrokontroller
1. Buka Khazama AVR Programmer
Klik Tanda ini
2. Buka filejam berada, pilihlah file yang ber ekstensi jam.Hexklik Open
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
17/34
3. Lalu Klik Auto Program
Sampai disini pemrograman Jam telah selesai, tapi tunggu dulu, kita harus mengatur fuse bit dari IC
At mega8 agar menggunakan kristal 12 Mhz yang kita pasang, karena secara default, IC ini
menggunakan Clock internal 1 MHz sehingga kalau tidak kita setting maka tampilan jam kita akan
berkedip.
CARA SETTING FUSE BIT PADA ATMEGA 8Perhatian !!! NOHON BERHATI-HATI DALAM SETTING FUSE BIT, LAKUKANLAH SESUAI DENGAN
PETUNJUK YANG SAYA AJARKAN, KARENA KESALAHAN MENGATUR FUSE BIT DAPAT
MENYEBABKAN IC ANDA MENJADI TIDAK DAPAT DIGUNAKAN LAGI !!
1.
Buka software Khazama
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
18/34
2.
Klik Commandfuse bit and Lock
3. Klik Read ALL
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
19/34
4. Geser Kebawah cari tampilan seperti di bawah :
ext crystal/Resonator High Freq;Start-Up time 16 ck _ 4 ms;
PASTIKAN ANDA MEMILIH DENGAN BENAR, KARENA KESALAHAN
PEMILIHAN FUSE BIT LOCK DAPAT MERUSAK IC ANDA !!!
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
20/34
5. Langkah selanjutnya klik write All:
IC Mikrokontroller Atmega8 Siap untuk digunakan !!
Pasang dengan hati-hati ke Rangkaian Jam digital anda, jangan sampai
kaki-kakinya bengkok dan patah !!
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
21/34
Cara setting Jam :
Cara setting Jam ikuti petunjuk dibawah ini ;
Tekan Tombol paling kiri (B) dan tekan reset A) (keduanya ditekan)
lalu lepaskan reset (A).Tunggu beberapa saat... anda akan masuk ke mode setting jam
Kemudian tekan B untuk mengurangi jam, dan tekan C untuk menambah Jam
Tekan D untuk mengurangi menit, tekan E untuk menambah menit
Lalu tekan Reset
Selamat jam anda siap digunakan !!
Semoga berhasil !!!
Semua skema dan gambar PCB, source code diambil
dari website www.inzarsalfikar.com
A
B C D E
http://www.inzarsalfikar.com/http://www.inzarsalfikar.com/http://www.inzarsalfikar.com/7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
22/34
Modifikasi Jam Digital Dengan Tampilan LED
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
23/34
Cetak modifikasi PCB jam seven segmen menjadi PCB jam besar dengan lampu LED
Ukuran PCB : 17,1 cm x 6,1 cm
Buatlah PCB tampilan seven segmen dengan LED
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
24/34
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
25/34
Cara Penyambungan kedua PCB
Sambungkan pin dengan huruf : fgabcde Pada PCB rangkaian jam dengan fgabcdePada PCB LED , dan sambungkan
pin 654321 Pada PCB rangkaian jam dengan pin 654321Pada PCB LED.
Jangan sampai kebalik urutannya !!
Foto cara penyambungan kedua PCB
654321
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
26/34
Uji coba rangkaian (pastikan IC Atmega8 sudah di program seperti ekperimen diatas)
Selamat berkarya...
Terimakasih..
SALAM EDUKASI
Disusun Oleh : ROKHMAD ASTIKA TRIPRASETIA
Phone / wahtsapp : 08157712604
SPECIAL THANK FOR :Semua skema dan gambar PCB, source code diambil dari website www.inzarsalfikar.com
http://www.inzarsalfikar.com/http://www.inzarsalfikar.com/http://www.inzarsalfikar.com/7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
27/34
Source code :
Simpan dengan nama file : Jam.c
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.3 Standard
Automatic Program Generator
Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 3/6/2012
Author : kuro
Company : kurochan
Comments:
Chip type : ATmega8
Program type : Application
Clock frequency : 12.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/
#include
#include
#define satu PORTD=0b00011000
#define dua PORTD=0b11010110
#define tiga PORTD=0b11011100
#define empat PORTD=0b01111000
#define lima PORTD=0b11101100
#define enam PORTD=0b11101110
#define tujuh PORTD=0b10011000
#define delapan PORTD=0b11111110
#define sembilan PORTD=0b11111100
#define nol PORTD=0b10111110
#define padam PORTD=0b00000000
#define dot PORTD=0b00000001
#define angka PORTD
#define dig1 PORTB=0b00000010; delay_ms(1);#define dig3 PORTB=0b00000100; delay_ms(1);
#define dig4 PORTB=0b00001000; delay_ms(1);
#define dig5 PORTB=0b00010000; delay_ms(1);
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
28/34
#define dig6 PORTB=0b00100000; delay_ms(1);
#define dig2 PORTB=0b00000001; delay_ms(1);
#define hmin PINC.1
#define hplus PINC.2
#define mmin PINC.3
#define mplus PINC.0
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=4
.equ __scl_bit=5
#endasm
#include
// DS1307 Real Time Clock functions
#include
// Declare your global variables here
#include "kalkulasi.c"
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=T State6=T State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0x3F;
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0xFF;
DDRC=0x00;
// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
29/34
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
30/34
// I2C Bus initialization
i2c_init();
// DS1307 Real Time Clock initialization
// Square wave output on pin SQW/OUT: Off
// SQW/OUT pin state: 0
rtc_init(0,0,0);
if(hmin==0)
{
delay_ms(2000);
while(1)
{
if(hmin==0){haur--;delay_ms(100);}
if(hplus==0){haur++;delay_ms(100);}
if(haur==24){haur=0;delay_ms(100);}
if(mmin==0){minut--;delay_ms(100);}
if(mplus==0){minut++;delay_ms(100);}
if(minut==60){minut=0;delay_ms(100);}
h10=haur/10;
h1=haur%10;
m10=minut/10;m1=minut%10;
s10=0;
s1=0;
jam(h10,h1,m10,m1,s10,s1);
rtc_set_time(haur,minut,0); //untuk menset jam 09:10:26
//rtc_set_date(21,08,87); //untuk menset tanggal: 21 Agustus 1987
}
}
while (1)
{
// Place your code here
rtc_get_time(&h,&m,&s); //mendapatkan nilai jam, menit dan detik
//rtc_get_date(&d,&mo,&y); //mendapatkan nilai tanggal, bulan dan tahun
//lcd_gotoxy(0,0);
//sprintf(temp,"Time %d:%d:%d",h,m,s);//lcd_puts(temp);//tampilkan jam di LCD baris pertama
//lcd_gotoxy(0,1);
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
31/34
//sprintf(temp,"Date %d-%d-%d",d,mo,y);
//lcd_puts(temp);//tampilkan tanggal di LCD baris kedua
h10=h/10;
h1=h%10;
m10=m/10;
m1=m%10;
s10=s/10;
s1=s%10;
jam(h10,h1,m10,m1,s10,s1);
};
}
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
32/34
Simpan dengan nama : kalkulasi.cunsigned char h, m, s, d, mo, y;
unsigned char haur,minut;
unsigned char digit1,digit2,digit3,digit4,digit5,digit6;
unsigned char h10,h1,m10,m1,s10,s1;
void jam(unsigned char angka1,unsigned char angka2,unsigned char angka3,unsigned char
angka4,unsigned char angka5,unsigned char angka6)
{
if(angka1==0){digit1=padam;}
if(angka1==1){digit1=satu;}
if(angka1==2){digit1=dua;}
if(angka1==3){digit1=tiga;}
if(angka1==4){digit1=empat;}
if(angka1==5){digit1=lima;}
if(angka1==6){digit1=enam;}
if(angka1==7){digit1=tujuh;}
if(angka1==8){digit1=delapan;}
if(angka1==9){digit1=sembilan;}
if(angka2==0){digit2=nol;}
if(angka2==1){digit2=satu;}if(angka2==2){digit2=dua;}
if(angka2==3){digit2=tiga;}
if(angka2==4){digit2=empat;}
if(angka2==5){digit2=lima;}
if(angka2==6){digit2=enam;}
if(angka2==7){digit2=tujuh;}
if(angka2==8){digit2=delapan;}
if(angka2==9){digit2=sembilan;}
if(angka3==0){digit3=padam;}
if(angka3==1){digit3=satu;}
if(angka3==2){digit3=dua;}
if(angka3==3){digit3=tiga;}
if(angka3==4){digit3=empat;}
if(angka3==5){digit3=lima;}
if(angka3==6){digit3=enam;}
if(angka3==7){digit3=tujuh;}
if(angka3==8){digit3=delapan;}if(angka3==9){digit3=sembilan;}
if(angka4==0){digit4=nol;}
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
33/34
if(angka4==1){digit4=satu;}
if(angka4==2){digit4=dua;}
if(angka4==3){digit4=tiga;}
if(angka4==4){digit4=empat;}
if(angka4==5){digit4=lima;}
if(angka4==6){digit4=enam;}
if(angka4==7){digit4=tujuh;}if(angka4==8){digit4=delapan;}
if(angka4==9){digit4=sembilan;}
if(angka5==0){digit5=padam;}
if(angka5==1){digit5=satu;}
if(angka5==2){digit5=dua;}
if(angka5==3){digit5=tiga;}
if(angka5==4){digit5=empat;}
if(angka5==5){digit5=lima;}if(angka5==6){digit5=enam;}
if(angka5==7){digit5=tujuh;}
if(angka5==8){digit5=delapan;}
if(angka5==9){digit5=sembilan;}
if(angka6==0){digit6=nol;}
if(angka6==1){digit6=satu;}
if(angka6==2){digit6=dua;}
if(angka6==3){digit6=tiga;}
if(angka6==4){digit6=empat;}
if(angka6==5){digit6=lima;}
if(angka6==6){digit6=enam;}
if(angka6==7){digit6=tujuh;}
if(angka6==8){digit6=delapan;}
if(angka6==9){digit6=sembilan;}
angka=digit1;dig1;
angka=digit2;
angka|=dot;dig2;
angka=digit3;dig3;
angka=digit4;
angka|=dot;dig4;
angka=digit5;dig5;
angka=digit6;dig6;
}
7/21/2019 E-book Tutorial Membuat Jam Digital Dengan RTC
34/34
CATATAN :
FILE : jam.c dan file: kalkulasi.c harus di simpan dalam satu folder ketika
dibuka dengan program CAVR.
Compile menjadi program hex, lalu masukkan kedalam mikrokontroller.