Rabu, 21 Maret 2012

Jam Digital LCD dengan RTC DS1307

Sebelumnya sudah pernah saya posting tentang RTC DS1307 juga pada Tutorial Jam Digital dengan Bascom AVR, sedikit teori dan datasheet RTC DS1307 dapat dilihat pada postingan tersebut.
Pada tutorial kali ini saya akan memberikan contoh program jam digital dengan RTC DS1307 menggunakan bahasa pemrograman CodeVision AVR. Jam digital tersebut akan menampilkan tanggal dan waktu pada LCD dan port serial atau Hyperterminal.


Pengaturan LCD pada wizard CodeVision AVR sbb:



Pengaturan port serial pada wizard CodeVision AVR sbb:



Pengaturan I2C DS1307 pada wizard CodeVision AVR sbb:




Jangan lupa pilih data float pada pengaturan Project --> Configure --> C Compiler sbb:



Listing Program :

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

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

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

char buf[33];
unsigned char dd;
unsigned char mm;
unsigned char yy;
unsigned char s;
unsigned char m;
unsigned char h;

void main(void)
{
PORTA=0x00;DDRA=0x00;
PORTB=0x00;DDRB=0x00;
PORTC=0x00;DDRC=0x00;
PORTD=0x00;DDRD=0x00;
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
ACSR=0x80;
SFIOR=0x00;
i2c_init();
rtc_init(0,0,0);

lcd_init(16);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("==Digital CLOCK==");
lcd_gotoxy(0,1);
lcd_putsf("===============");
printf("Jam Digital RTC DS 1307\r");
delay_ms(2000);

rtc_set_date(21,03,12);
rtc_set_time(20,51,00);
while (1)
      {         
      rtc_get_time(&h,&m,&s);
      rtc_get_date(&dd,&mm,&yy);
      lcd_gotoxy(0,0);
      sprintf(buf,"Tanggal:%02u/%02u/%02u",dd,mm,yy);
      lcd_puts(buf);
      lcd_gotoxy(0,1);
      sprintf(buf,"Waktu  :%02u:%02u:%02u",h,m,s);
      lcd_puts(buf);
      printf("Tanggal: %02u:%02u:%02u \r",dd,mm,yy);
      printf("Waktu  : %02u:%02u:%02u \r",h,m,s);
      delay_ms(1000);       
      };
}

Setelah Mendonwloadkan sekali dan sudah menampilkan jam pada LCD. maka butuh mendonwloadkan sekali lagi namun pada bagian :
rtc_set_date(21,03,12);
rtc_set_time(20,51,00);
di hilangkan atau di no-Aktifkan, agar hasil setingan tidak berubah saat jam mulai di run kembali.

donwload pertama :
rtc_set_date(21,03,12);
rtc_set_time(20,51,00);
disesuaikan dengan tanggal dan jam saat ini:





21 komentar:

  1. mas bisa minta skema sma listing programnya yang lengkap gk mas?.klu bisa krim ke email ya mas
    trima kasih...

    BalasHapus
    Balasan
    1. aku bleh minta engga bang. proteusnya ama avrnya, mau pake belajar. email sy crow8zero8@gmail.com

      Hapus
  2. hasilnya menampilkan 165/165/165
    itu kenapa ya ..??

    BalasHapus
    Balasan
    1. coba ganti R nya menggunakan 330 ohm 1/4 w, atau komunikasi SCL dan SDA nya jangan kebalik.

      Hapus
  3. mas…
    saya habibie dr medan….
    saya mau minta tolong ama mas Ni…
    bole saya minta shecmatic rangkaian jam digital menggunakan RTC DS1307 DENGAN TAMPILAN LCD menggunakan avr 8535.kalo bole minta layout nya ya mas,DAFtar komponen yang di gunakan sama LISTING PROGRAM NYA YA MAS….tp sistem minimum saya tidak pakai RS 232 Mas.minta tolong bgt nie mas.mau tugas akhir soal nya:)
    tolong kirim ke email saya aja ya mas broe;

    muhammadhabibiescorpioclub@gmail.com
    makasih byk ya mas broe sebelumnya..

    BalasHapus
  4. kalo bisa pakai bahasa bascom AVR ya mas program nya....
    :)

    BalasHapus
  5. mas klo crystalnya pakai yang 12.000Mhz pengaruhnya apa mas.... dan masih bisa dipakai gak? klo bisa tolong dibalas ya mas di no hpq klo bisa... 081946293441... minta bantuannya mas....

    BalasHapus
  6. saya dari malang, saya susah ngerti mas,,, bisa minta skema PCBxa mas, sama list programexa,, mohon bantuan mas,,ni email saya mas nuzul.nuzul20@gmail.com

    BalasHapus
  7. mas....minta program dalam bentuk bascom nya dong mas..

    email : redrembo12@gmail.com

    trimakasih sebelum nya

    BalasHapus
  8. mas boleh minta skema rangkaian dan listing programnya pke codevision avr ?? tolong kirim ke ramada.ari3f@gmail.com yaa . makasih

    BalasHapus
  9. mas boleh minta skema rangkaian dan listing programnya pke codevision avr juga k email sya rijalzulafa@gmail.com makasih mas

    BalasHapus
  10. kang boleh minta skematiknya ga ?
    kirim ke email bambang.snap@gmail.com
    nuhun kang (:

    BalasHapus
  11. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  12. Mas mintak skematik rangkaian dan listing programnya dong
    Kirim ke email saya mutiaradaniPCR@yahoo.co.id . Terimakasih mas :)

    BalasHapus
  13. mas minta rangkaian sama programnya dong
    kirim ke email saya ya giriworyanto@gmail.com
    terimakasih mas

    BalasHapus
  14. mas boleh minta skema rangkaian dan listing programnya pke codevision avr ?? tolong kirim ke wawandry@gmail.com yaa . makasih

    Balas

    BalasHapus
  15. misalkan pada harinya di tambahkan dengan nama hari gimana mas ?
    contoh senin, selasa, rabu dan seterusnya...
    mohon bantuannya.... :)
    trima kasih

    BalasHapus
  16. mas minta program sama proteusnya, untuk belajar ni..
    nandabagusprasetya@gmail.com

    BalasHapus
  17. bang,,,
    aq nyoba kok error gni knapa ya?
    Error: C:\Users\guna_on3\Pictures\LCD2\RTC2.c(61): too few arguments in function call

    kalo boleh mhon code CVAVR dong bang...
    gunaonecip@gmail.com

    BalasHapus