LAPORAN MIKROKONTROLER RTC

PRAKTIKUM MIKROKONTROLER
REAL TIME CLOCK (RTC)

Disusun Oleh

 Khairinnisa Siregar       16507134042
   




TEKNIK ELEKTRONIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA









A.    Tujuan
Setelah melakukan praktik mahasiswa diharapkan dapat:
1.      Memahami prinsip kerja Real Time Clock (RTC)
2.      Mampu menggunakan RTC untuk mendukung sistem aplikasi elektronika
B.     Dasar Teori
      RTC (Real Time Clock) merupakan jenis timer yang bekerja berdasarkan waktu nyata, atau dengan kata lain berdasarkan waktu sesaui waktu kita. Agar dapat berfungsi, pewaktu ini membutuhkan dua parameter utama yang harus ditentukan, yaitu pada saat mulai (start) dan pada saat berhenti (stop). DS1307 merupakan salah satu tipe IC RTC yang dapat bekerja dalam daya listrik rendah, yang juga sering kita jumpai dalam PC/hanphone. Di dalamnya berisi waktu jam dan kalender dalam format BCD,. Waktu jam dan kalender memberikan informasi detik, menit, jam, hari, tanggal, bulan, dan tahun. Untuk bagian jam dapat berformat 24 jam atau 12 jam. Pendeteksi sumber listrik juga disediakan untuk mendeteksi kegagalan sumber listrik dan langsung mengalihkannya ke sumber baterai.
                                                
                                                                
                                       
Gambar 1. RTC DS1307
Komunikasi yang digukan untuk RTC mengacu I2C-Bus atau Inter-Integrated Circuit Bus, merupakan bus serial yang dikembangkan oleh Phillips. I2C Bus digunakan untuk menghubungkan berbagai macam IC yang dikontrol oleh sistem micro-processor atau micro-controller (intelligent control application). Sebagai catatan umumnyakristal 32,768 KHz dipasang berbaring dan bodi/can disolder dengan ground.
C.     Alat dan Bahan
1.      Modul AVR Atmega8535/8/16/32
2.      Jumper
3.      Power supply 5-12V 


D.    Skema Rangkaian

E.     Langkah Kerja
1.      Buatlah alat dan bahan seperti rangkaian di atas;
2.      Sebelum Anda menulis program aturlah seperti gambar berikut;

Catatan: apabila Anda menggunkan CVAVR versi non-commercial maka sangat dimungkinkan fasilitas I2C tidak berfungsi, maka solusinya lakukan upgrade/downgrade ke versi commercial, contoh ini menggunkan versi CodeVisionAVR 2.03.
3.      Tuliskan list program berikut;
/*****************************************************
Date : 3/11/2014
Author : Muslikhin
Company : UNY
Comments:
Chip type : ATmega8535
Program type : Application
 Clock frequency : 12.000000 MHz *****************************************************/
#include <mega8535.h>
#include <delay.h>
#include <stdio.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=0x12 ;PORTD                                                                            
 #endasm                                                                                                      
 #include <lcd.h>                                                                   
 // Declare your global variables here                                                             
unsigned char s,m,h,d,mo,y, temp[16];
void main(void)                                                                                                       
{                                                                                                                                  
 // Declare your local variables here                                                                   
// 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);
// LCD module initialization                                                               
lcd_init(16);                                                  
while (1)                                                                                                         
         {              
              // Place your code here                                                            rtc_get_time(&h,&m,&s);                                                                   rtc_get_date(&d,&mo,&y);
lcd_gotoxy(0,0);                                                                                 sprintf(temp,"Pkl %d:%d:%d", h,m,s);                                                           lcd_puts(temp);
lcd_gotoxy(0,1);                                                        
sprintf(temp,"Tgl %d:%d:%d", d,mo,y);                             
lcd_puts(temp);                                                                                   
};                                                                                                               
}
4.      Setelah Anda compile, uji cobakan/simulasikanlah di Proteus lalu coba pada hardware;
5.      Tugas, buatlah progam untuk menjalankan motor DC/lampun (beban) apabila jam telah menunjukkan waktu tertentu. Misalnya saat pukul 09:09:00, maka beban akan aktif, kemudian jika sudah pukul 09:12:00, maka beban akan nonaktif.
6.      Tuliskan hasil praktikum Anda sesuai format dan simpulkan hasilnya.
F.      Hasil dan Analisa

Analisa : untuk menampilkan tanggal dan jam pada lcd dilakukan dengan cara pengaksesan register pewaktu pada RTC. Pada Codevision AVR terdapat fitur I2C bus dan koneksi pada RTC DS1307 sehingga hanya tinggal melakukan pengaksesan data pada register timekeeper RTC. Pada program rangkain ini digunakan unsigned char s,m,h,d,mo,y, temp[16]; yang berfungsi untuk membaca pada alamat tertentu dari register timekeeper RTC kemudian pada program utamanya digunakan rtc_get_time(&h,&m,&s) dan rtc_get_date(&d,&mo,&y) yang berfungsi untuk mensetting waktu sekarang ( jam, menit dan detik ) dari RTC dalam satu kali akses dan membaca tanggal, bulan dan tahun dari RTC dalam satu kali akses kemudian pada saat melakukan praktikum perlu diperhatikan rangkaian apakah sudah benar atau belum agar pada saat simulation tidak terjadi eror.


G.    Kesimpulan
1.      Cara  kerja RTC  pertama mengirim sinyal star yang diikuti oleh device address dan alamat sebuah register yang akan dibaca kemudian beberapa register dapat dibaca sampai stop condition dikirim.
2.      Pada praktikum yang dilakukan kita dapat mengubah tampilan pada lcd sesuai dengan apa yang kita inginkan dengan cara mengubah beberapa coding pada program.
3.      RTC (Real Time Clock) DS1307 merupakan komponen yang berfungsi untuk mengatur waktu dengan tepat.
 


Komentar

Postingan populer dari blog ini

LAPORAN MIKROKONTROLER KEYPAD

LAPORAN MIKROKONTROLER TIMER/COUNTER