RTC yang kita bahas kali ini adalah RTC dengan antarmuka I2C, yaitu DS1307. Artikel yang membahas RTC lain secara lengkap, DS12C887, yang menggunakan antarmuka paralel dan penggunaan bahasa assembly, bisa Anda baca mulai dari Pendahuluan, Register Data/Kontrol, dan Contoh Aplikasi.
Okey… sekarang kita lihat dulu fitur dari DS1307:
- Real-time clock (RTC) meyimpan data-data detik, menit, jam, tanggal, bulan, hari dalam seminggu, dan tahun valid hingga 2100;
- 56-byte, battery-backed, RAM nonvolatile (NV) RAM untuk penyimpanan;
- Antarmuka serial Two-wire (I2C)
- Sinyal luaran gelombang-kotak terprogram (Programmable squarewave);
- Deteksi otomatis kegagalan-daya (power-fail) dan rangkaian switch;
- Konsumsi daya kurang dari 500nA menggunakn mode baterei cadangan dengan operasional osilator;
- Tersedia fitur industri dengan ketahana suhu: -40°C hingga +85°C
- Tersedia dalam kemasa 8-pin DIP atau SOIC
Sedangkan daftar pin DS1307:
- VCC - Primary Power Supply
- X1, X2 - 32.768kHz Crystal Connection
- VBAT - +3V Battery Input
- GND - Ground
- SDA - Serial Data
- SCL - Serial Clock
- SQW/OUT - Square Wave/Output Driver
Gambar diagram PIN:
Contoh Rangkaian ke mikrokontroler AT89 (plus rangkaian komunikasi serial):
Dan sekarang ke contoh program, sengaja saya gunakan bahasa tingkat tinggi - BASIC, karena rumitnya protokol komunikasi I2C jika diimplementasikan menggunakan bahasa Assembly. Baik…. Tujuannya adalah sistem menanggapi perintah “t” untuk menampilkan informasi jam, dan “d” untuk menampilkan informasi tanggal melalui terminal serial komputer (bisa menggunakan HyperTerminal atau lain yang sejenisnya).
Okey, let’s get started…
KIta awali dengan beberapa definisi atau inisialisasi program…
$regfile = "89s8252.dat"
$crystal = 11059200
$baud = 9600
Keterangan:
- $regfile digunakan untuk mendefinisikan mikrokontroler yang digunakan, yaitu 89s8252;
- $crystal kita gunakan untuk mendefinisikan frekuensi kristal yang terpasang pada rangkaian kita, dan ini penting banget soalnya akan menentukan proses kompilasi perintah-perintah I2C yang terkait. Jika Anda salah menuliskan angkanya atau angka yang ditulis tidak sama dengan kristal yang terpasang di rangkaian;
- $baud digunakan untuk menentukan kecepatan komunikasi serial, yaitu 9600 bps, Anda bisa mengubah untuk kecepatan yang lain.
Selanjutnya, kita definisikan beberapa variabel untuk kebutuhan pemrograman:
Dim Reg_sec As Byte , Reg_min As Byte , Reg_hour As Byte
Dim Num_hour As Byte , Num_min As Byte , Num_sec As Byte
Dim Reg_date As Byte , Reg_month As Byte , Reg_year As Byte
Dim Num_date As Byte , Num_month As Byte , Num_year As Byte
Dim Masuk As String * 1
Keterangan:
- Reg_sec, Reg_min, dan Reg_hour merupakan variabel-variabel 8-bit atau 1 byte yang digunakan untuk menyimpan hasil pembacaan RTC DS1307 yang masing-masing untuk data detik, menit dan jam;
- Reg_date, Reg_month, dan Reg_year merupakan variabel-variabel 8-bit atau 1 byte yang digunakan untuk menyimpan hasil pembacaan RTC DS1307 yang masing-masing untuk data tanggal, bulan dan tahun;
- Num_sec, Num_min, dan Num_hour merupakan variabel-variabel 8-bit atau 1 byte yang digunakan untuk menyimpan hasil konversi BCD (pembacaan RTC) ke desimal, yang akan dikirim melalui komunikasi serial, masing-masing untuk detik, menit, dan jam;
- Num_date, Num_month, dan Num_year merupakan variabel-variabel 8-bit atau 1 byte yang digunakan untuk menyimpan hasil konversi BCD (pembacaan RTC) ke desimal, yang akan dikirim melalui komunikasi serial, masing-masing untuk tanggal, bulan, dan tahun;
- Masuk sebagai variabel untuk menyimpan sebuah karakter (string * 1) kiriman dari port serial, yang diterjemahkan hanya “t” dan “d”, masing-masing untuk perintah baca jam dan baca tanggal.
Langkah berikutnya adalah mendefinisikan jalur atau pin dari mikrokontroler ke RTC-nya (DS1307):
'------------------------------------------
' konfigurasi bus I2C
Config Scl = P2.0
' jalur untuk clock I2C
Config Sda = P2.1
' jalur untuk data I2C
'-------------------------------------------
Keterangan:
- Hanya 2 kabel utama (selain menyamakan GND - ground) yang digunakan untuk komunikasi dengan mikrokontroler, yaitu SCL dan SDA (perhatikan diagram pin-nya);
- SCL (serial clock) dihubungkan dengan P2.0, sedangkan SDA (serial data) dihubungkan dengan P2.1.
Kemudian kita definisikan beberapa konstanta yang berkaitan dengan alamat-alamat register di dalam DS1307 (silahkan merujuk datasheet DS1307 (PDF):
' perintah penulisan
Const Ds1307w = &HD0
' perintah pembacaan
Const Ds1307r = &HD1
' alamat register DS1307 yg berhubungan dengan jam
Const Sec_addmap = &H00
Const Min_addmap = &H01
Const Hour_addmap = &H02
' alamat register DS1307 yg berhubungan dengan tanggal
Const Date_addmap = &H04
Const Month_addmap = &H05
Const Year_addmap = &H06
Keterangan:
- Instruksi atau perintah yang digunakan untuk penulisan data ke RTC DS1307 adalah D0h, sedangkan untuk pembacaan D1h, masing-masing disimpan ke dalam variabel DS1307w dan DS1307r;
- Alamat-alamat yang berhubungan dengan jam untuk detik, menit dan jam, masing-masing di 00h, 01h dan 02h;
- Alamat-alamat yang berhubungan dengan jam untuk tanggal, bulan dan tahun, masing-masing di 04h, 05h dan 06h.
Program utamanya melakukan menunggu masukan port serial, semua karakter diterima, tetapi hanya huruf “t” (huruf kecil), dan “d” diterjemahkan masing-masing untuk “baca jam”, dan “baca tanggal”. Selain kedua perintah tersebut, mikrokontroler akan mengirimkan “er” sebagai tanda salah kirim perintah. Selain itu akan dikirim data jam atau tanggal, perhatikan potongan program utamanya berikut ini (pengulangan menggunakan DO LOOP, penerjemahan menggunakan SELECT CASE):
Do
Input Masuk
Select Case Masuk
Case "t" : Call Read_time
Print Num_hour ; ":" ; Num_min ; ":" ; Num_sec
Case "d" : Call Read_date
Print Num_date ; "/" ; Num_month ; "/" ; Num_year
Case Else
Print "er"
End Select
Loop
End
Perhatikan pada program utama. Terdapat dua subrutin: (1) Read_time digunakan untuk membaca data dan (2) Read_date untuk membaca tanggal…
'-=-=-=-=-=-=-=-=-=-=-=-=-=
Sub Read_time
'-=-=-=-=-=-=-=-=-=-=-=-=-=
' Read Clock Data
I2CStart
' Generate start
I2CWbyte Ds1307w
' Slave address
I2CWbyte Sec_addmap
' Address of SECONDS REG
I2Cstop
' Generate Stop
I2Cstart
' Repeated start
I2CWbyte Ds1307r
' Slave address (read)
I2CRbyte Reg_sec , Ack
I2CRbyte Reg_min , Ack
I2CRbyte Reg_hour , Nack
I2CStop
' Generate Stop
' reg_hour.6 =1(12 hrmode), if =0 (24 hourmode)
If Reg_hour.6 = 1 Then
Reg_hour = Reg_hour And &B00011111
Else
Reg_hour = Reg_hour And &B00111111
End If
'=-=-=-=-=-=-=-=-=-=-=-
' Reg_hour = Reg_hour And &B00111111
' remove 12/24 and am/pm bits
' set numeric variables
Num_hour = Makedec(reg_hour)
Num_min = Makedec(reg_min)
Num_sec = Makedec(reg_sec)
End Sub
Keterangan:
- Ini merupakan subrutin Read_time yang digunakan untuk membaca jam;
- Proses pembacaan jam dan tanggal pada dasarnya sama saja, diawali dengan (lihat listing programnya) inisialisasi I2Start, kemudian dilanjutkan dengan I2CWByte DS1307w (menuliskan perintah atau instruksi);
- Kemudian diikuti dengan menuliskan alamat register detiknya: I2CWByte Sec_addmap dan dihentikan dengan I2CStop;
- Langkah selanjutnya adalah mulai membaca dari data detik, diawali dengan I2Cstart (lagi, awal pembacaan data) kemudan perintah membaca dikirimkan ke RTC menggunakan instruksi I2CWbyte DS1307r;
- Kemudian baru data detik, menit dan jam-nya dibaca berturut-turut menggunakan perintah I2CRbyte Reg_sec, Ack untukmembaca data detik, Ack digunakan untuk indikator masih ada data yang lain perlu dibaca (kebalikannya adalah NAck). Dan berturut-turut membaca data menit (I2CRbyte Reg_min, Ack), dan detik (I2CRbyte Reg_hour, NAck), NAck artinya tidak ada lagi data yang perlu dibaca, jangan lupa di-stop;
- Untuk proses normalisasi terhadap mode jam, apakah mode 12 jam atau 24 jam, digunakan pengecekan pada bit-6 di Reg_hour;
- Langkah terakhir adalah merubah hasil pembacaan yang masih dalam format BCD ke decimal melalui instruksi Makedec();
Untuk subrutin baca data tanggal sebagai berikut:
'-=-=-=-=-=-=-=-=-=-=-=-=-=
Sub Read_date
'-=-=-=-=-=-=-=-=-=-=-=-=-=
' Read Clock Data
I2cstart
' Generate start
I2cwbyte Ds1307w
' Slave address
I2cwbyte Date_addmap
' Address of SECONDS REG
I2cstop
' Generate Stop
I2cstart
' Repeated start
I2cwbyte Ds1307r
' Slave address (read)
I2crbyte Reg_date , Ack
I2crbyte Reg_month , Ack
I2crbyte Reg_year , Nack
I2cstop
' Generate Stop
' set numeric variables
Num_date = Makedec(reg_date)
Num_month = Makedec(reg_month)
Num_year = Makedec(reg_year)
End Sub
Contoh tampilan running program di mikrokontroler, perhatikan hanya “t” dan “d” saja yang diterjemahkan, perintah atau huruf lain ditanggapi dengan “er”:
Semoga bermanfaat, ada pertanyaan dan komentar dipersilahkan…
Tags: at89, avr, microcontroller, Mikrokontroler, rtc
February 28th, 2009 at 9:10 am
nice artikel,,
pak,bagaimana cara untuk mengatur jam, hari, tanggal?
February 28th, 2009 at 2:17 pm
untuk mengatur jam, konsepnya sama saja, hanya saja digunakan instruksi yang tersimpan di variabel DS1307w dan instruksi I2CWbyte (bukan I2CRbyte), contoh program
$regfile = “89s8252.dat”
$crystal = 11059200
$baud = 9600
‘——————————————
‘ config I2C bus
Config Scl = P2.0
‘ I2C Clock
Config Sda = P2.1
‘ I2C Data
‘——————————————-
Const Ds1307w = &HD0
‘ Write
Const Ds1307r = &HD1
‘ Read
Const Addr_detik = &H00
Const Addr_menit = &H01
Const Addr_jam = &H02
I2cstart ‘generate start
I2cwbyte Ds1307w
I2cwbyte Addr_jam
I2cwbyte 3 ’send a value
I2cstop ‘generate stop
End
March 1st, 2009 at 2:06 pm
terima kasih atas artikelnya…
karena saya pake CV AVR, bagaimana deklarasinya pak?
owy,,kalo misalkan disimulasi pake proteus inisialisasi untuk atmega8535 apa ya?(sebagai pengganti $regfile = “89s8252.dat”)
terima kasih sebelumnya..
March 2nd, 2009 at 7:26 am
untuk CV AVR…
#include
// I2C Bus functions
#asm
.equ __i2c_port=0×1B ;PORTA
.equ __sda_bit=0
.equ __scl_bit=1
#endasm
#include
untuk proteus bisa gunakan pustaka 90S8535, perlu dicoba…
March 29th, 2009 at 1:16 pm
nick artikel. . .
pak giman c cara gunakan rtc di atmega 32
kemarin saya udah nyoba nuliskan program bapak yang diatas cuma bedanya pada perintah
$regfile = “89s8252.dat”
karna saya maka atm32
$regfile = ” m32def.dat”
trus karna penampil yang saya gunakan pakai lcd jadi
perintah select nga saya pakai.
Do
Input Masuk
Select Case Masuk
Case “t” : Call Read_time
Print Num_hour ; “:” ; Num_min ; “:” ; Num_sec
Case “d” : Call Read_date
Print Num_date ; “/” ; Num_month ; “/” ; Num_year
Case Else
Print “er”
End Select
Loop
End
perintah yang di pakai
Call Read_time
lcd Num_hour ; “:” ; Num_min ; “:” ; Num_sec
lowerline
Call Read_date
lcd Num_date ; “/” ; Num_month ; “/” ; Num_year
tapi hasil nya nga nampilin jam ya
dia cuma nampilin
“25:162:162″
“162/162/162″
kira2 apa nya ya yang salah pak
mohon bantuan nya pak
April 2nd, 2009 at 7:27 am
Ass…
danke fur artickelnya……….
pak.. untuk hardware ds1307 yang baik… pada pin x1-x2 (Crystal Connection) apa masih butuh Capasitor 22p atau tidak ?
April 2nd, 2009 at 7:30 am
@Iyan: sebaiknya pake 22pf
April 2nd, 2009 at 7:34 am
@Mozart:
ada yang salah di variabel Num_XX-nya, coba cek deklarasi Anda, sudah bener to belum… kemudian di dalam DO..LOOP coba kasih delay, misalnya wait 1 atau waitms 250…
April 3rd, 2009 at 1:40 pm
ass.
mas, saya ada tugas dari salah satu mata kuliah saya,,ya bisa di bilang project gt..saya berniat membuat binary clock dgn mK at8535
tapi saya masih awam dalam hal pemrograman yang digunakan!!!
bisa bantu ga?
dalam jam biner itu saya akan menampilkan jam, menit dan detik..
oh iya jam biner ini akan memberikan trigger pada rangkaian lain saat waktu yang kita set sama dengan counter jam tersebut….
kalau ada sama rangkaiannya jg…heu
terimakasih sebelumnya…
wasalam.
April 3rd, 2009 at 1:46 pm
@Arief:
coba cek disini -> proyek binary clock.
April 15th, 2009 at 12:46 pm
ass.
pak.
apakah ada pembahasan mengenai CDI (Capacitor Discharge Ignition)
terimaksaih mas..
wasalam.
April 17th, 2009 at 9:19 am
@arief: belum ada…
April 19th, 2009 at 6:35 pm
Salam Kenal,
Saya tertarik dengan pembahasan diatas, Bisa minta tolong code programnya pake assembly dong !
Thanks -jojo-
April 20th, 2009 at 3:09 pm
pak, saya mau tanya tentang RTC DS1307, apakah memang untuk setiap akhir bulan dideteksi dengan tanggal 31 … sebab klo memang begitu hal tersebut salah untuk bulan seperti misalnya februari …
dimohon saran dan solusinya pak, ke E-mail saya stevanus_manik@yahoo.com u…
sebelumnya saya ucapkan trims banyak …
April 26th, 2009 at 12:09 am
asl.
trimakasih ya Pak atas jawaban na . . .
sangat membantu.
thks. . .
May 4th, 2009 at 9:34 pm
pak, saya mintak tolong bisa bantu ngasih software DT-I/O I2C peripheral buat setting jam,tanggal,bulan,dan tahun.
pakek assembly pak….!!
tolong balas di e-mail saya”? triuniska@yahoo.com
Terima kasih.
May 6th, 2009 at 8:54 am
@tri:
maaf saya tidak punya sftware DTI/O I2C…
May 6th, 2009 at 9:01 am
@stevanus:
seharusnya bisa secara otomatis terkoreksi tanggal yang kurang dari 31 atau tahun2 kabisat, sesuai dengan pernyataan dalam datasheetnya…
“DESCRIPTION
…The end of the month date is automatically adjusted for months with fewer than 31 days, including corrections for leap year.”
maaf saya belum sempat nyoba secara real…
May 6th, 2009 at 1:46 pm
Pak, saya mendapat tugas mata kuliah untuk membuat rangkaian yang menggunakan port serial atau paralel, kira-kira contoh aplikasi apakah yang rangkaiannya sederhana, tidak membutuhkan biaya yg mahal, dan mudah dalam mencari komponen?
June 20th, 2009 at 1:59 pm
kalo untuk menampillkan waktu d lcd 16×2, programnya bagaimana?
June 20th, 2009 at 3:32 pm
bagamana tahapan memprogran RTC? apakah bisa saya isi program dlu ke MK baru kemudian saya hubungkan rangkaian RTC dengan MK, atau menghubungkan RTC dengan MK dulu baru kemudian di program,,,soalnya saya punya rangkaian emulator dan rangkaian pengisi program yang terpisah,,mohon penjelasannya,,
July 17th, 2009 at 12:50 am
kapan ada pembahasan tentang CDI pak?
di dunia otomotif / dragrace khususnya, sedang ramai2 nya persaingan CDI programmable…
bakal jadi nice artikel thu pak.,
July 30th, 2009 at 10:13 pm
harus pake kristal 32MHz ya.apa bisa pake kristal yang lebih kecil ato gak pake sama sekali.adakah rtc lain yang gak pake kristal yang pemakaiannya mudah
July 31st, 2009 at 10:48 am
@Iyan:
RTC dan uC ada dalam satu rangkaian sebagaimana contohnya ada di artikel ini, sehingga yang diprogram adalah uC-nya sedang RTC di seting tanggal dan jam-nya untuk pencocokan saat ini…
Untuk menampilkan di LCD 2×16 konsepnya sama cuman menggunakan instruksi Lcd di bascom-15 bukan print…
@Mino:
untuk CDI saya belum tahu…
@monkeydmunir:
kristalnya untuk RTC, jika tidak menggunakan kristal lantas RTC dapet clock darimana, nilainya memang segitu supaya RTC bekerja secara akurat dan tepat, dan maaf saya belum menemukan RTC yang gak pake kristal…
August 2nd, 2009 at 12:34 am
ada contoh listing program untuk simpan data lebih dari 1 byte sekaligus ke memori eksternal AT24C64 ga?,,mohon bantuannya,,,lg ngejer wisuda agustus nh,,,terima kasih sebelumnya
September 2nd, 2009 at 10:26 am
pak,besar resistornya berapa kilo ohm?
aku pake yang 1K bisa,tp pada hari berikutnya data tidak terbaca oleh mikro
solusinya bagaimana?
trmakasih
September 16th, 2009 at 10:49 pm
wah makasih mas atas ilmunya…
October 19th, 2009 at 1:33 pm
pak bisa bantu saya buat LTA
October 19th, 2009 at 1:35 pm
oh yah pak lw bisa balas ke email ni yh,,win_sn@yahoo.co.id
November 25th, 2009 at 9:48 am
Pak, tolong di ulas yg lebih detail cara untuk setting jam dan tanggal. Pakai swich atau pakai keypad. Keterangan di atas masih bingung untuk orang awam seperti saya. Terimakasih
December 12th, 2009 at 3:11 pm
mas tolong info DS1307 fitur industri,,, beda fisik dan speck dengan yang non industri,,,tks
December 12th, 2009 at 3:17 pm
pak kalo waktunya sering telat ato kecepatan,,, gimana solusinya,,, saya pakai R=1k dan crystal 32.768 khz,,, pemasangan crystal berdiri samping DS1307,,dan saya pakai DS1307 dallas yang ada di toko di kota kecil fitur industri ato non saya tidak tahu,, minta tolong bantu yaa,,tks
December 29th, 2009 at 7:37 pm
pak…
gmna y cra program rtc ds1307 dgn at8535 untuk mmbuat timer…
sperti hari,tggal,menit,jam,bahkan tahun..
mhon bntuan’y y…
January 1st, 2010 at 8:52 pm
Salam kenal. Pak saya sedang buat skripsi yang menggunakan RTC DS1307 dan MCU nya saya pakai ATmega 32, saya sudah coba memprogramnya akan tetapi tidak berhasil. Saya gunakan program CodeVision AVR, apakah bapak bisa membantu saya seperti apa coding yang harus saya buat? dan kalau boleh dalam bentuk contognya? karena saya sama sekali tidak paham menggunakan CodeVision AVR, akan tetapi skripsi saya mengharuskan saya menggunakannya. selama ini saya hanya menggunakan AT89SXX dengan asembler. Mohon bantuannya.
Terima kasih
February 6th, 2010 at 6:40 pm
Pak Agfi terimakasih atas email balasannya. Masukan dari bapak sangat berarti bagi saya pak. Sebenarnya kemaren itu saya sudah baca semua artikel bapak yang tentang RTC, tapi saya kurang puas dan ingin bertanya langsung kepada ahlinya he.he…
Semoga bapak semakin jaya… amin….
February 17th, 2010 at 6:49 pm
Salam kenal Pak.
Terima kasih atas pengetahuan yang sudah saya dapatkan dari web Anda.
1. Saya punya mcu at89s52,at24c04a dan ds1307 terkoneksi secara 2-wire. compiler pake bascom51 . saat saya detect address secara error trap pada i2c tsb, yang ada cuma addressnya at24c04a. deteksi ini saya lakukan karena saya tidak bisa akses ke ds1307 w/r meskipun saya udah kasih addressnya berdasar dtsht w=&hd0/r=&hd1.
2. ds1307 pinbypin voltage refrd to GND, crystal=32.678KHz, VBat=3.2V
p1 = 0V; p2 = 2.9V; p3 = 3.2V; p4= 0V; p5 = 5V; p6 = 5V; p7 = ~0V; p8 = 5V
3. saat saya write reg &H0 = tmp_reg_sec_byte and &B01111111 @ ds1307 u/ reset clock halt (bit ke-7 reg &H0), yang terisi malah reg punya at24c04a.
Mohon solusinya.
Wassalam
March 22nd, 2010 at 4:54 am
Assalamu’alaikum
Pak, terima kasih atas sharingnya ya, kebetulan memang sedang mencari artikel seperti ini untuk tugas saya. Sekalian izin untuk memasang di blog tugas saya di http://blog.ub.ac.id/d3wdr0p
Terima kasih
March 22nd, 2010 at 8:31 am
@faye: silahkan dan terima kasih…
March 30th, 2010 at 12:35 pm
Pak, saya ingin bertanya,knp rtc saya tdk jalan ya??
pdhal ketika saya program pertama kali bs trus selanjutnya gak bs….
kira2 mslh apa yg bs membuat rtc begitu???
mohon bantuannya..
terima kasih….
April 2nd, 2010 at 7:31 am
@rachmat:
kronologis detalnya bagaimana ya? karena RTC gak jalan itu bisa macem2 penyebabnya, brgkali kristal-nya, programnya, RTC-nya sendiri, dll
April 20th, 2010 at 12:35 pm
begini pak…
waktu itu jalannya ok2 aja trus selang bbrp hr, kok mati gak kluar apa2 d tampilan lcd saya…
kmdian saya coba ganti ic ma kristalnya trnyt jln lagi…
kmudian skrg gak jln lg pak…
kok bs gt ya…???bingung nih pak…
mhn bantuannya pak…terima kasih….
April 21st, 2010 at 5:30 pm
wah itu kayanya bascomnya bukan original.
April 30th, 2010 at 6:22 pm
good artikel…..
terimakasih pak bahsan tentang RTC-nya sangat membantu projek saya..
July 6th, 2010 at 4:04 pm
sebelumnya saya ucapkan terima kasih,,karena tulisan bapak sangat membantu dalm meyelesaikan tugas akhir saya,,
tapi mash ada satu pertanyaan, apabila saya ingin menampilkan jam dengan seven segment ga pake lcd,,programnya seperti apa pak?
terima kasih..
July 7th, 2010 at 7:36 am
@iyan:
your welcome…
untuk menampilkan ke 7segmen lebih susah, hal ini dikarenakan kita harus mengirimkan data satu persatu ke masing-masing digit 7-segmen, sedemikian hingga nampak oleh mata kita muncul bersamaan… itu konsepnya…
July 15th, 2010 at 7:54 am
Assalamualaikum… Pak mau tanya, kalau kita mau menambahkan program alarm di jam tersebut gimana ya pak??? saya masih bingung…. terimakasih atas perhatiannya……
September 21st, 2010 at 8:48 am
pak, kalo untuk mengetahui hari pake ds1307 bagaimana?
November 9th, 2010 at 10:57 pm
pak bisa minta tolong rangkaian jam digital berbasis atmega8535 pake seven segmen dengan bahasa programnya juga..
trima kasih..
November 20th, 2010 at 10:56 pm
Pak Agfianto,
Saya kebetulan sedang belajar microcontroller melalui buku2 bapak (belajar mikrokontroler AT89C51/52/55 Teory dan aplikasi dan Tip & Trik Mikrokontroler AT89 dan AVR),
Saya ada sedikit masalah penggunaan DS1307 dengan AT89S52. Pemrograman dengan Bascom. hasil simulasi dengan ISIS pro berjalan sesuai dengan harapan. tetapi pada saat diapplikasikan pada rangkaian sebenarnnya detiknya tidak bergerak (angkanya sama sekali tidak ada perubahan).
Mohon sarannya kira2 apa yang harus di perhatikan.
Terima kasih
Jafar M
December 8th, 2010 at 12:21 pm
pa
apakah anda membuat tulisan yang ada di web ini dalam bentuk ebook tidak?
makasih
April 29th, 2011 at 1:03 pm
asslamualaikum,,
sebelumnya sy ucapkan terima kasih karena tulisan bapak telah banyak membantu saya dalam menyelasaikan skripsi,sehingga saya wisuda satu tahun lalu,,
karena hobi,,sampai skrng saya masih mengisi waktu luang untuk belajar tentang mikrokontroler dab rtc,,
sekarang saya ingin menampilkan jam, menit dan detik dengan tampilan 7 segment, tapi saya bingung bagaimana menampilkan data jam pada rtc ke 7 segment,,mohon bantuannnya,,
terimakasih,,
April 29th, 2011 at 1:14 pm
terimakasih pak,,setelah sya pelajari lagi,,masalah yang saya temukan bagamana merepresentasikan atau mengnkonversi data 2 digit jam dari rtc ke 2 digit 7 segment atau ke dalam biner yang diwakili output port,,
May 30th, 2011 at 8:49 pm
pak mau tanya untuk artikel ini apa bisa digunakan untuk microcontroller type 89251,saya menggunakan BASCOM 8051 tetapi $regfile untuk 8951.dat tidak ada.. mohon bantuannya..
Semoga pak afgi jaya selalu
June 9th, 2011 at 1:12 pm
mau tnya pak,
1. pd RTC DS1307 kn ada pin SQW/Out nya ya.
pin tsbt dihubungkan kmn ya? ato dibiarkan saja, krn yg dipake cuma pin SCL dan SDA saja ? fungsi SQW itu sebenarny utk apa?
2. pd gbr skematik di atas, dipakai 8 push button, itu untuk apa y? apakah untuk pengesetan RTC nya atau bagaimana ?
terimakasih sblmnya
August 20th, 2011 at 10:43 am
makasih brow berkat postingan loe ini gw jd tau RTC…
September 17th, 2011 at 12:44 pm
om,,, ada g programnya yg pk bahasa assembly,,???
October 29th, 2011 at 2:43 pm
pa..gimana caranya untuk menseting alarm?..dan data alarm di simpan dimana?,apakah di mikro tow di rtc…
dan bagaimana cara menyimpan data alarm secara tetap?,supaya tidak d seting2 lagi wlw catu daya mati…
klo bs pake asm pa y…
thx
February 6th, 2012 at 1:58 pm
tutor disini udan bagus, tinggal kita mngembangkannya bgaimana..
seep brow. skalian ijin menyimak postingan selanjutnya..
February 6th, 2012 at 7:08 pm
kalau mau buat program jam digtl dengan ladder gmana pak
February 10th, 2012 at 6:41 am
@arwin:
Ladder? wah jelas susah karena ladder digunakan untuk kontrol logik bukan untuk buat jam digital - ladder itu umumnya untuk PLC bukan mikrokontroler…
March 21st, 2012 at 3:11 pm
assalamualaikum. Pak mau tanya gmana cra set time rtc dg keypad matrik, 4×4. Trimaksh sblmnya pak.
June 18th, 2012 at 12:19 pm
Maaf Pa Mau tanya bagaimana membuat rangkaian Timer dengan dimer….misal nyala on jam 18.00 trus mati jam 05.00,, dengan pengaturan Dimer dari jam 18.00 nyala normal sampai jam 24.00 .. dari jam 24.00 nyala sekitar 50% nya….
terima kasih ditunggu emailnya ke Suyatmin_yatmin@yahoo.com
November 4th, 2012 at 8:19 am
gan mau tanya gimana mau buat text berjalan dengan komunikasi serial gan,program pake code vision and atmega8535
proggramnya bagaimana gan.
May 13th, 2013 at 7:38 pm
salam kenal..

saya mau tanya kalo kita mau menginputkan data dari mikrokontroler 89s52 ke VB.06 perintah apa ya yg bisa digunakan agar data dari mikrokontroler 89s52 dapat ditampilkan pada VB.06 secara real time
trmkasih
August 22nd, 2013 at 11:44 am
Saya coba programnya di bascom 8051,,ketika dicompaile tidak ada masalah,,ketika disimulasi…lcd tidak tampil dan program terhenti di input masuk..kira kira apanya ya pak…mohon batuannya…
December 9th, 2013 at 12:25 pm
bagaimana cara buat bikin trigger dari Saklar Tekan (Push Button Switch) untuk memberikan perintah di VB??
January 1st, 2014 at 11:24 pm
To : agfianto eka putra
Om kalo tampilannya tdk pake lcd tp menggunakan sevensegment bagaimana pemrogaramannya
April 7th, 2014 at 10:57 pm
Asalamualaikum…>>> pa mohon maaf, saya mo naya ni.. Kalo Hanya untuk 7segmen saja bagai mna Buat Codenya Dengan BASCOM8051 AT89C52>>DS1307..
Mohon Untuk Di Respon ….
April 21st, 2014 at 8:53 am
Asalamualaikum… pa mohon maaf, saya mo nanya juga.. Kalo untuk ambil data dari DS1307, dan dan ditampilkan ke 7segmen, dengan Assembly, gimana juga pak. Tolong berikan contohnya ya pak. makasiihh
September 25th, 2014 at 8:52 am
Saya baru belajar program pak jadi saya mau minta Bantu sama bapak , bagaimana contoh program komunikasi serial rs 232 dengan output 1 led dengan atmel 89S51
Mohon bantuan ya pak?
September 25th, 2014 at 8:52 am
Saya baru belajar program pak jadi saya mau minta Bantu sama bapak , bagaimana contoh program bascom komunikasi serial rs 232 dengan output 1 led dengan atmel 89S51
Mohon bantuan ya pak?
October 25th, 2014 at 5:46 pm
ass.
artikel yang sangat bagus pak ,
saya sedang menjalankan project rtc pak menggunakan DS1307 pada adruino pak
ada saran untuk project saya pak ?
terima kasih
wss
September 18th, 2015 at 8:41 am
terimakasih untuk infonya
October 30th, 2016 at 1:03 pm
pak, saya menggunakan rtc dengan mikro arduino nano, setelah saya set untuk tahun 2016, masih terdapat data tanggal 2011 yg masih keluar,
saya hanya membutuhkan detik dan menit saja untuk proyek saya, bagaimana caranya untuk setiap awal menjalankan program detik dan menit dimulai dari 00.00 pak,? mohon pencerahannya
December 1st, 2016 at 8:42 am
nice info, visite our website : http://www.hafizabysalma.com/
April 10th, 2018 at 12:45 am
thank u for sharing
April 11th, 2018 at 1:39 pm
wah sangat membantu nih
May 16th, 2018 at 3:02 pm
thank you for sharing it’s so helpful
December 2nd, 2018 at 9:42 am
Binggung juga kalo disimulasi pake proteus dll, bisa jalan dan nampil jam, tahun, bulan,menit,detik kalo pake coding apa aja,aneh setelah didonlod ke Uc malah gak nampil di lcd dan g mau jalan
December 13th, 2018 at 1:35 pm
its good thing to share, thank you.
March 25th, 2019 at 10:52 am
This is so helpful, thank you for sharing.
November 5th, 2019 at 1:12 pm
Kingdomtoto adalah sebuah judi online/togel online terbesar di asia.
dengan member yang sangat banyak sehingga sudah terjamin kepercayaan nya
tidak hanya itu kingdomtoto juga tempat para perkumpulan bandar darat terpercaya