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