Anda di halaman 1dari 5

Nama : Putri izzatun nafsi

Kelas : 5EA
Mata Kuliah : Teknik Antarmuka Mikrokontroller
Dosen Pembimbing: Amperawan,S.T.,M.T

TUGAS 3
JAM DIGITAL DENGAN RTC DS1307
Realtime clock adalah IC penghitung yang dapat difungsikan sebagai sumber data
waktu baik berupa data jam, hari, bulan maupun tahun. Komponen DS1307 berupa IC
yang perlu dilengkapi dengan komponen pendukung lainnya seperti crystal sebagai
sumber clock dan Battery External 3,6 Volt sebagai sumber energy cadangan agar fungsi
penghitung tidak berhenti.
Bentuk komunikasi data dari IC RTC adalah I2C yang merupakan kepanjangan dari
Inter Integrated Circuit. Komunikasi jenis ini hanya menggunakan 2 jalur komunikasi
yaitu SCL dan SDA. Semua microcontroller sudah dilengkapi dengan fitur komunikasi 2
jalur ini.
Gambar Rangkaian RTC DS 1307
Kode BASCOM AVR:

Program ini merupakan program basocm dengan penjelasan, $regfile="m32def.dat


yang berarti IC yang digunakan adalah IC Atmega 32, $crystal =12000000 yang
mengartikan crystal yang digunakan sebesar 12MHZ. Dan $sim yang berarti kode untuk
mempercepat simulasi. Konfigurasi pin LCD dikoding sama dengan pin LCD yang
digunakan pada rangkaian. LCD 16*4 yang berarti 16 karakter dengan 4 baris.
Komunikasi I2C dengan SDA dan SCL, konfigurasi pin sda dan scl pada kode yang
menandakan bahwa pin sda terdapat pada PORTC.1 dan pin scl terdapat pada PORTC.0.
Kemudian kofigurasi nilai konstanta dari modul RTC Ds1307 saat baca dan tulis. Pada
saat tulis Ds1307w = &HD0 dan pada saat baca Ds1307r = &HD1
Konfiguasi input pust bottom (Config Pinb.0 = Input , Pinb.1 = Input , Pinb.2 = Input
, Pinb.3 = Input) yang artinya untuk mengatur jam pada portB.3, menit pada portB.2 dan
detik portB.1.
Pendeklarasian variabel yang digunakan (Dim Hari As Byte , Bulan As Byte , Tahun
As Byte , Weekend As Byte Dim Detik As Byte , Menit As Byte , Jam As Byte) bertujuan
untuk pengkodingan selanjutnya.
Lalu program utama yaitu main maka program akan menuju sub Ds1307, sub
seting, dan sub Pushbutton dan akan terus berlooping diantara sub-sub program ini.
Program di atas merupakan sub program Ds1307. Di sub program ini terdapat format
pengambilan data dari RTC itu sendiri atau dari slave ke master. Di setiap data seperti
detik, menit, jam akan di selingi ack atau acknowledge sampai pada data terakhir di
sebelum bit stop makaakan di masukkan not acknowledge.
Data yang tadinya adalah binerakan diubah dalam bentuk decimal dengan perintah
makedec() dengan begitu dapat ditampilkan ke layer LCD. Pembuatan format makedec()
haruslah berurutan agar tidak terjadi kesalahan dalam penampilan tanggal atau waktu
nantinya ada LCD, yang berarti pembuatan makedec() harus dimulai dari yang kecil
menuju yang terbesar seperti detik lalu menit dan yang terbesar adalah jam.
Program yang selanjutnya untuk memastikan bahwa ketika detik dan menit=60 maka
akan kembali ke 0 dan ketika jam sampai pada hitungan >23 maka akan kembali ke 0
lagi. Kemudian program akan menuju sub program detik.
Kodingan diatas merupakan sub program setting. Pada baris pertama ketika kita
memberikan input logika 1 pada PORTC.3 maka program ini akan menjalankan sub
program Display_setting. Pada sub Display_setting berisi bagaimana aturan dalam
penampilan tanggal dan waktu yang akan ditampikan pada LCD. Apabila detik, menit
ataupun jam adalah berupa satuan maka di depan satuan akan ditambahkan 0, apabila
telah belasan atau puluhan maka akan di tulis puluhan tanpa 0 di depannya.Pada saat
waktu menunjukan jam 6 maka akan menampilkan tulisan Good Morning apabila
waktu menunjukan waktu jam 10 maka LCD akan menampilkan tulisan Good
Afternoon dan ketika waktu menunjukkan waktu jam 16 maka LCD akan menampilkan
tulisan di lcd Good Evening.

Program diatas merupakan sub program Pushbutton dimana PORTB.0 sebagai


pengatur detik, PORTB.1 pengatur menit dan PORTB.2 pengatur jam yang apabila diberi
inputan logika low (0) maka akan memerintahkan program untuk mengeksekusi sub
program detik, menit atau jam tergantung dari yang kita tekan. Dan setiap sub program
tersebut merupakan program format transfer data dari slave ke master, dengan setiap
menekan pushbutton tersebut akan menaikan 1 pada data tersebut.
Tampilan saat dijalankan

Anda mungkin juga menyukai