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:

  1. $regfile digunakan untuk mendefinisikan mikrokontroler yang digunakan, yaitu 89s8252;
  2. $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;
  3. $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: , , , ,

70 Responses to “Tutorial AT89: RTC DS1307 (64 x 8 Serial Real-Time Clock)”

  1. nice artikel,,

    pak,bagaimana cara untuk mengatur jam, hari, tanggal?

  2. 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

  3. 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..

  4. 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…

  5. 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

  6. Ass…
    danke fur artickelnya……….
    pak.. untuk hardware ds1307 yang baik… pada pin x1-x2 (Crystal Connection) apa masih butuh Capasitor 22p atau tidak ?

  7. @Iyan: sebaiknya pake 22pf

  8. @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…

  9. 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.

  10. @Arief:
    coba cek disini -> proyek binary clock.

  11. ass.

    pak.

    apakah ada pembahasan mengenai CDI (Capacitor Discharge Ignition)

    terimaksaih mas..

    wasalam.

  12. @arief: belum ada…

  13. Salam Kenal,
    Saya tertarik dengan pembahasan diatas, Bisa minta tolong code programnya pake assembly dong !
    Thanks -jojo-

  14. 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 …

  15. asl.
    trimakasih ya Pak atas jawaban na . . .

    sangat membantu.

    thks. . .

  16. 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.

  17. @tri:
    maaf saya tidak punya sftware DTI/O I2C…

  18. @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…

  19. 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?

  20. kalo untuk menampillkan waktu d lcd 16×2, programnya bagaimana?

  21. 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,,

  22. kapan ada pembahasan tentang CDI pak?
    di dunia otomotif / dragrace khususnya, sedang ramai2 nya persaingan CDI programmable…
    bakal jadi nice artikel thu pak.,

  23. 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

  24. @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…

  25. 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

  26. pak,besar resistornya berapa kilo ohm?
    aku pake yang 1K bisa,tp pada hari berikutnya data tidak terbaca oleh mikro
    solusinya bagaimana?

    trmakasih

  27. wah makasih mas atas ilmunya…

  28. pak bisa bantu saya buat LTA

  29. oh yah pak lw bisa balas ke email ni yh,,win_sn@yahoo.co.id

  30. 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

  31. mas tolong info DS1307 fitur industri,,, beda fisik dan speck dengan yang non industri,,,tks

  32. 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

  33. pak…
    gmna y cra program rtc ds1307 dgn at8535 untuk mmbuat timer…
    sperti hari,tggal,menit,jam,bahkan tahun..
    mhon bntuan’y y…

  34. 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

  35. 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….

  36. 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

  37. 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 :)

  38. @faye: silahkan dan terima kasih…

  39. 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….

  40. @rachmat:
    kronologis detalnya bagaimana ya? karena RTC gak jalan itu bisa macem2 penyebabnya, brgkali kristal-nya, programnya, RTC-nya sendiri, dll

  41. 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….

  42. wah itu kayanya bascomnya bukan original.

  43. good artikel…..
    terimakasih pak bahsan tentang RTC-nya sangat membantu projek saya..

  44. 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..

  45. @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…

  46. Assalamualaikum… Pak mau tanya, kalau kita mau menambahkan program alarm di jam tersebut gimana ya pak??? saya masih bingung…. terimakasih atas perhatiannya……

  47. pak, kalo untuk mengetahui hari pake ds1307 bagaimana?

  48. pak bisa minta tolong rangkaian jam digital berbasis atmega8535 pake seven segmen dengan bahasa programnya juga..
    trima kasih..

  49. 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

  50. pa
    apakah anda membuat tulisan yang ada di web ini dalam bentuk ebook tidak?
    makasih

  51. 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,,

  52. 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,,

  53. 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

  54. 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 :)

  55. makasih brow berkat postingan loe ini gw jd tau RTC…

  56. om,,, ada g programnya yg pk bahasa assembly,,???

  57. 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

  58. tutor disini udan bagus, tinggal kita mngembangkannya bgaimana..

    seep brow. skalian ijin menyimak postingan selanjutnya..

  59. kalau mau buat program jam digtl dengan ladder gmana pak

  60. @arwin:
    Ladder? wah jelas susah karena ladder digunakan untuk kontrol logik bukan untuk buat jam digital - ladder itu umumnya untuk PLC bukan mikrokontroler…

  61. assalamualaikum. Pak mau tanya gmana cra set time rtc dg keypad matrik, 4×4. Trimaksh sblmnya pak.

  62. 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

  63. gan mau tanya gimana mau buat text berjalan dengan komunikasi serial gan,program pake code vision and atmega8535
    proggramnya bagaimana gan.

  64. 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
    :)

  65. 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…

  66. bagaimana cara buat bikin trigger dari Saklar Tekan (Push Button Switch) untuk memberikan perintah di VB??

  67. To : agfianto eka putra
    Om kalo tampilannya tdk pake lcd tp menggunakan sevensegment bagaimana pemrogaramannya

  68. 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 ….

  69. 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

Trackbacks/Pingbacks

  1. Memulai Belajar Mikrokontroler - Quick, Easy and Harmless!

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>