Minggu, 04 Mei 2014

Jam Digital



Jam digital dengan RTC DS 1307
Dalam membuat jam digital ini ada beberapa komponen yang kita butuhkan, selain program kita juga membutuhkan rangkaian seperti di bawah ini :
1.      Minsis AVR ATmega 8,16,32,8535
2.      Rangkaian RTC
3.      Rangkaian LCD
Untu lebih jelasnya mengenai rangkaian diatas dan juga program yang digunakan, maka akan kita bahas tuntas di bawah ini :
1.      Minsis AVR
Minimum system adalah suatu rangkaian minimal untuk mikrokontroler, dimana rangkaian ini dapat difungsikan sebagai downloader juga bisa digunakan untuk simulasi I/O pada port mikrokontroler

2.      RTC ( Real Time Clock ) DS 1307

Real Time Clock DS 1307 merupakan suatu chip (IC) yang memiliki fungsi sebagai penyimpan waktu dan tanggal dan mampu menyimpan data sampai tahun 2100.
Penjelasan pin in IC DS 1307
a.      X1 : Merupakan pin yang digunakan untuk dihubungkan dengan kristal sebagai pembangkit clock
b.      X2 : Berfungsi sebagai keluaran / output dari crystal yang digunakan. Trhubung juga dengan X1
c.       VBAT : Merupakan backup supply untuk RTC dalam menjalankan fungsi waktu dan tanggal
d.      SDA : Barfungsi sebagai masukan / keluaran (I/O) untuk I2C serial interface
e.      SCL : Berfungsi sebagai clock untuk input ke I2C dan digunakan untuk mensinkronisasi pergerakan data dalam serial interface
3.      LCD

LCD merupakan alat untuk menampilkan karakter data dari sebuah alat masukan seperti Mikrokontroler. LCD yang digunakan adalah tipe 16x2, artinya LCD terdiri  dari 2 baris dan 16 karakter.
Setelah kita mempelajari bagian bagiannya diatas maka jika di gabungkan dalam satu simulasi akan seperti pada gambar berikut ini :

Selain gambar simulasi, akan saya tampilkan juga program jam digital :
#include <mega16.h>
#include <stdio.h>
#include <delay.h>
// I2C Bus functions
#asm     //perintah jam digital
   .equ __i2c_port=0x1B ;PORTA
   .equ __sda_bit=0
   .equ __scl_bit=1
#endasm
#include <i2c.h>
// DS1307 Real Time Clock functions  // mempertahankan kondisi jam saat mati
#include <ds1307.h>
// Alphanumeric LCD Module functions  //menampilkan delay jam digital
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
void main(void)
{
// 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
//rtc_set_day(sunday);
while (1)
      {        
        rtc_get_time(&h,&m,&s); // mengakses jam
        rtc_get_date(&d,&mo,&y); //mengakses tanggal
       // rtc_get_day($

        lcd_gotoxy(0,0);
        sprintf(temp,"Time %d:%d:%d",h,m,s);
        lcd_puts(temp);   
       
        lcd_gotoxy(0,1);
        sprintf(temp,"Date %d-%d-%d",d,mo,y);
        lcd_puts(temp);   
        delay_ms(25);
        lcd_clear();
      };
}


 

Tidak ada komentar:

Posting Komentar