Antar Muka Modul RTC-1287 dengan Modul DST-51 Real Time Clock DS1287/DS12887 DS1287/DS12887 adalah merupakan komponen utama dari modul RTC-1287 di mana IC ini berfungsi sebagai sebuah rangkaian jam digital yang tetap bekerja selama 10 tahun walaupun power supply tidak diaktifkan. Data-data waktu tersimpan dalam memori yang bersifat non volatile pada IC tersebut.
Gambar 1 Register-register DS12887 (diambil dari data sheet Dallas DS12887)
Register-register DS12887 DS12887 mempunyai 14 buah register yang terdiri dari 4 buah Register Kontrol dan 10 buah Register Data. Register Data sendiri terpisah menjadi register waktu dan Register Alarm seperti yang tampak pada gambar 1 di atas. Setelah Register-register Kontrol diinisial, maka data waktu ataupun alarm dapat dilihat atau diatur dengan cara mengakses register-register data tersebut. Contoh: Pengambilan data jam pada Modul RTC-1287 yang diletakkan pada alamat 6000H oleh DST-51. Mov Movx
DPTR,#6004H A,@DPTR
Register Jam terletak di alamat 04H sedangkan modul RTC-1287 terletak di alamat 6000H maka pengambilan data jam dapat dilakukan dengan mengambil data di memori alamat 6000H + alamat register jam yaitu 6004H Register A
DELTA ELECTRONIC http://www.delta-electronic.com
UIP : Bit untuk memantau Flag Update In Progress. Bila bit ini set maka Update Transfer akan segera muncul, namun bila bit ini clear maka Update transfer hanya akan muncul setelah 244 uS kemudian DV0, DV1, DV2: Ketiga bit ini berfungsi untuk mengatur osilator on, off atau mereset perhitungan mundur. Kofigurasi 010 digunakan untuk mengatur osilator on, konfigurasi 11x digunakan untuk mengatur agar perhitungan mundur tertahan. RS0, RS1, RS2 dan RS3: Bit-bit ini berfungsi sebagai 15 tingkat pembagi frekwensi yang dapat digunakan untuk membangkitkan sinyal output pada pin SQW atau Periodic Interrupt Enable bit. Register B
SET : Apabila bit ini clear, maka register data dapat diupdate setiap detiknya, namun apabila bit ini set, maka register data tidak dapat diupdate. Bit ini tidak akan berpengaruh terhadap kondisi RESET PIE: Periodic Interrupt Enable, sebuah bit yang membuat bit Periodic Interrupt Flag dapat membangkitkan kondisi low pada pin IRQ. AIE: Alarm Interrupt Enable, bit yang membuat bit Alarm Flag dapat membangkitkan kondisi low pada pin IRQ. Kondisi RESET akan mengubah bit ini menjadi clear. UIE: Update Ended Interrupt Enable, bit yang membuat bit Update End Flag (UF) dapat membangkitkan kondisi low pada pin IRQ. Kondisi RESET atau logika 1 pada bit set akan membuat bit ini berubah menjadi clear (logika 0) SQWE: Apabila bit ini set, maka gelombang kotak dengan frekwensi yang ditentukan oleh pembagi frekwensi pada RS0…RS3 akan muncul di pin SQW. DM: DM = 1 untuk mode binary dan DM = 0 untuk data BCD pada Register Data. 24/12: Apabila bit ini set, maka waktu berjalan berdasarkan 24 jam dan sebaliknya bila bit ini clear, maka waktu berjalan berdasarkan 12 jam. DSE: Daylight Saving Enable, apabila bit ini set maka akan terjadi proses update pada saat 1:59:59 AM menjadi 3:00:00 AM pada Hari Minggu pertama bulan April dan saat 1:59:59 AM menjadi 1:00:00 AM pada Hari Minggu terakhir Bulan Oktober. Register C
IRQF: Interrupt Request Flag, bit ini akan set apabila salah satu dari bit PF, AF dan UF set.
DELTA ELECTRONIC http://www.delta-electronic.com
PF: Periodic Interrupt Flag, bit ini akan set secara periodik tergantung bit RS0 …. RS3. Apabila bit PIE aktif, maka kondisi set pada bit PF akan membangkitkan kondisi low pada pin IRQ. Bit ini akan clear saat pembacaan pada Register C atau kondisi RESET AF: Alarm Interrupt Flag, bit ini akan set saat waktu sesuai dengan waktu yang diatur pada alarm. Apabila bit AIE aktif, maka kondisi set pada bit AF akan membangkitkan kondisi low pada pin IRQ. Bit ini akan clear saat pembacaan pada Register C atau kondisi RESET UF: Update Ended Interrupt Flag (UF) bit ini siklus update. Apabila bit UIE aktif maka kondisi set pada bit ini akan membangkitkan kondisi low pada pin IRQ. Bit ini akan clear saat pembacaan pada Register C atau kondisi RESET Register D
VRT: Bit ini akan selalu berkondisi set yang menunjukkan bahwa battery lithium yang ada dalam DS12887 masih dapat bekerja dengan baik. Proses inisialisasi Register-register Kontrol ataupun pengisian Register Data dapat dilakukan dengan mudah hanya dengan mengisikan data-data tersebut ke alamatalamat register. Contoh: Pengisian Register Kontrol B dengan data 12H RegB EQU 0BH AlamatRTC1287 Mov Mov Movx
EQU
6000H
DPTR,#AlamatRTC1287+#RegB A,#12H @DPTR,A
Hubungan RTC1287 dengan DST-51 Modul RTC-1287 hanya memerlukan jalur Data Bus (D0…D7 atau P0.0….P0.7) dan Control Bus (WR, RD dan CS) saja. Maka dengan 2 buah kabel pita 10 pin, Modul DST-51 telah dapat terhubung dengan RTC-1287 (Petunjuk lebih detail, lihat Buku Manual RTC-1287) P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 CS3 ALE P3.6 P3.7
P0.0/D0 P0.1/D1 P0.2/D2 P0.3/D3 P0.4/D4 P0.5/D5 P0.6/D6 P0.7/D7
4 5 6 7 8 9 10 11
CS3 ALE P3.6/WR P3.7/RD
1 13 14 15 17 18
AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 MOT CS AS R/W DS RST DS1287
RST
RST
1
2 74LS04
DELTA ELECTRONIC http://www.delta-electronic.com
IRQ SQW
19 23
Contoh Program Program Jam Digital dengan tampilan LCD M1632 ********************************************************************* ********* * PROGRAM PENAMPIL JAM DENGAN RTC 1287 * - Menampilkan jam setiap detik ke LCD oleh DST-51 * Disain oleh: * Paulus Andi Nalwan, ST *
[email protected] * * DELTA ELECTRONIC * Kompleks Ruko Manyar Megah Indah Plaza D-22 * Ngagel Jaya Selatan * Surabaya 60284 * Phone/fax: 62-31-5020210 * http://www.delta-electronic.com ********************************************************************* ********* ;RTC-1287 Routines ;Alamat RTC harus diset pada DPTR terlebih dahulu ;Interrupt harus diaktifkan apabila ingin alarm interrupt Kalender_Display ;Display_Waktu
EQU
0441H EQU 04A5H
Delay_5mS HexASCII2
EQU EQU
0180H 00FAH
Init_LCD EQU Kirim_Karakter PosisiAwal_LCD
237H EQU EQU
295H 216H
Alamat_RTC RegA RegB RegC RegD Detik Detik_Alarm Menit Menit_Alarm Jam Jam_Alarm Hari Tanggal Bulan Tahun
6000H 0AH 0BH 0CH 0DH 00H 01H 02H 03H 04H 05H 06H EQU 07H 08H 09H
Org Ajmp Org Reti Org Reti Org Reti Org Reti
EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 2000H Start 2003H 200BH 2013H 201BH
DELTA ELECTRONIC http://www.delta-electronic.com
;Reset Vector ; ;External Interrupt 0 Vector ; ;Timer 0 Interrupt Vector ; ;External Interrupt 1 Vector ; ;Timer 1 Interrupt Vector ;
Org Reti
2023H
;Serial Interrupt Vector ;
Lcall Mov Mov Movx Inc Mov Movx
Init_LCD DPTR,#Alamat_RTC+RegA ;Aktifkan osilator A,#20H ; @DPTR,A ; DPTR ;Update Interrupt aktif, Mode 24 Jam A,#12H ;Output BCD Data @DPTR,A ;
Mov Movx ANL Jnb Clr Movx Mov Lcall Ajmp
DPTR,#Alamat_RTC+RegC ;Periksa Flag IRQ A,@DPTR ; A,#080H ; A.7,Loop ;Tidak ada flag, loop A.7 ;Ada Flag, Clear Flag @DPTR,A ; DPTR,#Alamat_RTC ;Displaykan waktu Display_Waktu ; Loop
Start:
Loop:
Display_Waktu: Lcall Lcall Lcall Lcall Mov Lcall Lcall Lcall Mov Lcall Lcall Lcall RET
Clrscr Clrscr Ambil_Jam KirimASCII_LCD A,#03AH Kirim_Karakter Ambil_Menit KirimASCII_LCD A,#03AH Kirim_Karakter Ambil_Detik KirimASCII_LCD
Clrscr: Push Mov Lcall Lcall Lcall Pop Ret
A A,#00DH PosisiAwal_LCD Delay_5mS Delay_5mS A
Ambil_Jam: Mov Mov Movc Ret
DPL,#Jam A,#00H A,@A+DPTR
Ambil_detik: Mov Mov Movc Ret
DPL,#detik A,#00H A,@A+DPTR
Ambil_Menit: Mov
DPL,#Menit
DELTA ELECTRONIC http://www.delta-electronic.com
Mov Movc Ret KirimASCII_LCD: Lcall Lcall Mov Lcall Ret
A,#00H A,@A+DPTR
HexASCII2 Kirim_Karakter A,B Kirim_Karakter
DELTA ELECTRONIC http://www.delta-electronic.com