RSS

JAM DIGITAL MENGGUNAKAN RTC DS1307 DENGAN CODEVISION AVR

08 Jun

RTC DS1307 berkomunikasi dengan antarmuka I2C (Inter Integrated Circuit). RTC DS1307 memiliki pewaktu dalam variabel detik, menit, jam, hari, tanggal, bulan dan tahun. Selain itu, RTC ini menyediakan pin battery-backup untuk dihubungkan pada baterai lithium 3V atau catu daya lain sehingga ketika power (catu daya) mati, battery-backup akan mengambil alih dan timer tetap akan berjalan sebagaimana mestinya. Sedangkan kristal yang digunakan menurut datasheet bernilai 32,768 KHz. Untuk mendapatkan datasheet DS1307 silakan download disini.

Dengan menggunakan bantuan pada CodeWizardAVR pada Codevision AVR, yang sudah terdapat library untuk DS1307, maka kita akan dengan mudah dapat mengakses RTC DS1307. Setting seperti gambar dibawah ini:

Dan menurut CodeVisionAVR Help, terdapat beberapa instruksi untuk mengakses DS1307:

void rtc_init(unsigned char rs, unsigned char sqwe, unsigned char out)
Instruksi ini untuk inisialisasi DS1307, dimana:
Parameter rs digunakan untuk menghasilkan nilai dari frekuensi gelombang kotak pada pin SQW/OUT DS1307:
Jika rs bernilai:
0 untuk 1 Hz
1 untuk 4096 Hz
2 untuk 8192 Hz
3 untuk 32768 Hz
Jika parameter sqwe bernilai 1 maka output gelombang kotak pada pin SQW/OUT DS1307 akan di enable.
Parameter out merupakan level logika pada pin SQW/OUT saat output gelombang kotak di disable (sqwe=0)

void rtc_get_time(unsigned char *hour, unsigned char *min, unsigned char *sec)
Intruksi ini untuk mendapatkan nilai *hour (jam), *min (menit) dan *sec (detik). Untuk variabel hour, min dan sec dapat kita ganti namanya sesuai keinginan kita tetapi harus bertipe data unsigned char.

void rtc_get_date(unsigned char *date, unsigned char *month, unsigned char *year)
Intruksi ini untuk mendapatkan nilai *date (tanggal), *month (bulan) dan *year  (tahun). Untuk variabel date, month dan year dapat kita ganti namanya sesuai keinginan kita tetapi harus bertipe data unsigned char.

void rtc_set_time(unsigned char hour, unsigned char min, unsigned char sec)
intruksi ini digunakan untuk menset nilai hour (jam), min (menit) dan sec (detik) sesuai keinginan kita.

void rtc_set_date(unsigned char date, unsigned char month, unsigned char year)
intruksi ini digunakan untuk menset nilai date (tanggal), month (bulan) dan year (tahun) sesuai keinginan kita.

Dibawah ini adalah listing program lengkapnya:

unsigned char h, m, s, d, mo, y, temp[16];
/*
h=hour, m=minute, s=second
d=day, mo=month, y=year
*/

#include <mega16.h>
#include <stdio.h>
#include <delay.h>

// I2C Bus functions
#asm
   .equ __i2c_port=0x1B ;PORTA
   .equ __sda_bit=0
   .equ __scl_bit=1
#endasm
#include <i2c.h>

// DS1307 Real Time Clock functions
#include <ds1307.h>

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

void main(void)
{
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// I2C Bus initialization
i2c_init();                                                                         
rtc_init(0,0,0);
lcd_init(16);

//rtc_set_time(9,10,26); //untuk menset jam 09:10:26
//rtc_set_date(8,11,87); //untuk menset tanggal: 8 nov 1987

while (1)
      {         
        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);
        sprintf(temp,”Date %d-%d-%d”,d,mo,y);
        lcd_puts(temp);//tampilkan tanggal di LCD baris kedua
      };
}

Untuk file program dalam bentuk CodeVision AVR dan file simulasi Proteus silakan download link dibawah ini.

File program dalam CodeVision AVR dan file simulasi Proteus.

Semoga bermanfaat…

 
43 Comments

Posted by on June 8, 2011 in AVR Projects

 

Tags: , , , ,

43 responses to “JAM DIGITAL MENGGUNAKAN RTC DS1307 DENGAN CODEVISION AVR

  1. yogi

    June 9, 2011 at 09:40

    Terimakasih atas artikelnya.sangat membantu.ijin donlod.sukron………

     
  2. awans

    June 10, 2011 at 17:05

    maaf bos bru bisa berkunjung, bagus, lebih padat isi blogmu, whaaaa lmyan wat referensiku ni heheh
    salam kenal

     
    • ElectrO-cOntrOl Team

      June 10, 2011 at 18:50

      ok terima kasih sudah mampir… semoga bisa bermanfaat dan memajukan bidang elektronika indonesia

       
      • wawan

        June 18, 2011 at 05:02

        nyuwun sewu maAS . be2rpa hr lalu aq dunlod e book d link sampean !
        da dpt tp koq dprotek, nyuwon sewu paswordnya apa yaaa ?
        tq

         
      • ElectrO-cOntrOl Team

        June 18, 2011 at 06:12

        pada menu free ebook, sebenarnya sudah saya kasih link untuk mendownload passwordnya, coba deh dicari tulisan >>>click here to get ebook password<<< pd menu free ebook, trus silakan download password ebooknya..

         
  3. firman

    June 11, 2011 at 09:48

    mas mau tnya ni klau utk mengatur jam nya itu g mana ya

    maklum mas msh baru ni
    ^_^

     
    • ElectrO-cOntrOl Team

      June 11, 2011 at 12:19

      seperti yg sudah saya jelaskan untuk menset jam menggunakan instruksi rtc_set_time(hour,min,sec);
      sebagai contoh setelah mendownload program ke AVR saya ingin menset jam dimulai dari 10:11:50, maka saya menggunakan instruksi rtc_set_time(10,11,50); (pada program diatas hapus tanda double slash diawal instruksi klo mau men set jam dan tanggal).
      Begitu juga untuk menset tanggal, caranya sama seperti menset jam.

       
  4. firman

    June 12, 2011 at 09:39

    trz mas yg seperti avcc dan aref itu d hubungkan k vcc ya

     
    • ElectrO-cOntrOl Team

      June 12, 2011 at 11:25

      avcc (power supply ADC) dan aref (Tegangan referensi ADC) sebenarnya digunakan untuk ADC internal mikrokontroler, tetapi saya selalu menghubungkannya ke VCC (5 V)

       
  5. firman

    June 12, 2011 at 09:52

    kemudian untuk konektor isp nya g mana ya tu mas

     
  6. firman

    June 12, 2011 at 11:52

    mas ada alamt email yang bsa di hubungi gak

     
    • ElectrO-cOntrOl Team

      June 12, 2011 at 13:22

      alamat email saya sudah saya cantumkan di sebelah kanan blog saya… cari Contact Us

       
  7. firman

    June 12, 2011 at 12:04

    mas kan aku cba gmbr ulang rngkaian mas di atas dengan menggunakan protel
    trz aku tmbahi isp port ny
    bsa gak mas cek in rangkaian nya benar atau tidak

     
  8. firman

    June 12, 2011 at 19:54

    mas bru saja saya kirim skemanya ke alamat email mas tlng d cek ya mas bnar apa gak nya
    ^_^

     
  9. firman

    June 12, 2011 at 20:52

    cba mas d cek lg soal ny brusan sya kirim lg

     
  10. firman

    June 13, 2011 at 10:08

    sbnar nya gini mas saya ingin membuat jam digital dengan atmega 16
    dengan usb mas
    tp gak ngerti hrus di hubungkan di mana usbnya di atmega 16 nya

    trz saya baca2 d internet
    sya ambil solusi pkek paralel port 25 pin dengan catatan sck dihubungkan dg kaki 6 pada paralel port 25, mosi di hubungkan dengan kaki 7 pada paralel port 25, miso dihubungkan dengan dengan kaki 9 pada paralel port 25

    nah mas kira2 kalau saya buat sperti itu downloadernya jalan gak ya mas
    maklum mas krng ngerti

    mhan bntuan nya ya mas

     
    • ElectrO-cOntrOl Team

      June 13, 2011 at 12:36

      kalo anda menggunakan downloader parallel port (DB25), koneksinya sebagai berikut:
      MIKRO DB25
      SCK —> pin 6
      MOSI —> pin 7
      MISO —> pim 10
      untuk lebih jelasnya bisa dilihat pada postingan saya mengenai downloader parallel AVR KANDA SYSTEM STK200+/300

       
  11. firman

    June 14, 2011 at 09:36

    trz mas untuk reset di kaki 9 pada atmega 16 dihubungkan gak dengan kaki 9 pada konektor db 25

     
  12. firman

    June 14, 2011 at 09:52

    trz mas kaki vcc untuk atmega nya dengan lcd nya d hubungkan gak mas k konektor db 25 nya

     
    • ElectrO-cOntrOl Team

      June 14, 2011 at 19:11

      pada postingan saya tentang downloader parallel kan terlihat kalo pin 9 DB25 dihubungkan ke RESET mikro, Trus kan tidak ada pin VCC yang dihubungkan ke konektor DB25..!

       
  13. ovelirza

    June 14, 2011 at 21:04

    sy udah nyoba program d atas ms, tp ko detiknya gak jalan ya.
    jd, keluar tampilannya cuma gini :
    Time 0:0:0
    Date 14-06-2011

    itu knp ya mas? di rangkaiannya ato gmn ?

     
  14. ovelirza

    June 14, 2011 at 21:23

    Eh, saya pake Atmega8535 dink ms,
    sy kirim listing program yg sy bikin y.. tlg di cek
    kirim nya kmn nih ?
    *mohon bantuannya sgt ms…*

     
  15. firman

    June 16, 2011 at 15:24

    yupz mksih ya mas utk bntuan nya
    ^_^

     
  16. yogin37

    June 18, 2011 at 00:55

    bos klo ke seven segmen ada referensinya??

     
    • ElectrO-cOntrOl Team

      June 18, 2011 at 06:13

      klo mau mengakses seven segment silakan baca pada MENU TURORIAL AVR trus klik SEVEN SEGMENT

       
  17. firman

    June 19, 2011 at 10:28

    mkin sukses ya mas
    ^_^

     
  18. krids

    June 22, 2011 at 15:15

    mas,kalo setting waktu secara manual menggunakan keypad bagaimana tambahan programnya mas?

     
    • ElectrO-cOntrOl Team

      June 23, 2011 at 16:48

      saya belum pernah membuatnya… anda tinggal mamanipulasi saja instruksi setting waktunya dengan input melalui keypad

       
  19. arya maulana

    June 28, 2011 at 12:50

    ElectrO-cOntrOl Team,knapa stelah d compile pake CVavr Error: D:\A(-)\project download\ds1307\programnya bos CVAVR\kk.c(25): can’t open #include file: ds1307.h
    atau mungkin file tidak disertakan??mohon penjelasanya,
    thx.

     
    • ElectrO-cOntrOl Team

      June 28, 2011 at 13:28

      sudah saya coba dan tidak ada masalah tuh… coba buka file yg berektensi .prj dengan codevision AVR kemudian di compile..

       
      • arya maulana

        June 28, 2011 at 15:11

        thx mas bwat infonya,ternyata cvAVR saya versi evaluasi,jdi untuk ds1302 dan ds 1307 g bsa d pake,bsa ksih tw link dwnload code vision yg full g??

         
      • ElectrO-cOntrOl Team

        June 28, 2011 at 23:12

        untuk mendapatkan software codevision pro silakan download pada menu FREE SOFTWARE

         
  20. brahmen

    July 3, 2011 at 21:10

    thanks ya mas…saya izin donload…

     
    • ElectrO-cOntrOl Team

      July 5, 2011 at 09:44

      silakan semoga bermanfaat… silakan kunjungi blog saya yg baru di elektro-kontrol.blogspot.com

      karena blog ini akan saya tutup

       
  21. Yuri

    July 16, 2011 at 12:07

    gan, klo on off relay utk lampu berbasis waktu nich (ds1307),, bisa ga?

     
    • ElectrO-cOntrOl Team

      July 21, 2011 at 03:02

      Blog ini telah dipindah ke alamat baru yaitu:

      elektro-kontrol.blogspot.com

      Jika ada pertanyaan atau komentar silakan kunjungi blog yg terbaru, jika anda meninggalkan pertanyaan atau saran disini tidak akan ditanggapi.

      Harap maklum. Terima kasih.

       

Leave a reply to firman Cancel reply