Translate

Membuat Peraga Jam Dengan Led 7 Segmen Dilengkapi Dengan Alarm



Hai Sobat yang baik. Pada tulisanku sebelum ini, kita sudah melihat apa dan bagaimana mengoperasikan chip RTC-RAM baik dengan DS1302 maupun DS1307. Kita juga sudah membahas mengenai pengoperasian peraga dengan LED 7 segmen. Bagaimana kalau kali ini kita mencoba mengimplementasikan apa yang sudah pernah ditulis tersebut dalam sebuah rangkaian yang mungkin bermanfaat dan menyenangkan bagi para penghobi elektronik digital.

Tulisanku kali ini akan membahas mengenai pembuatan peraga jam menggunakan RTC-RAM DS1307 dengan penampil LED 7 segmen. Sebagai mikrokontroler akan digunakan AT89C51 dari keluarga MCS51 yang murah meriah. Sebelum merancang, ada baiknya kita memahami apa yang diinginkan pada rangkaian kita. Maka aku akan buatkan identifikasi spesifikasi rancangan tersebut, yaitu:

  1. Rangkaian akan menampilkan peragaan waktu dalam format jam dan menit. Untuk itu setidaknya memerlukan 4 digit LED 7 segmen.
  2. Rangkaian juga bisa menampilkan tanggal dan bulan jika perlu tahun dengan menekan tombol tertentu yang berkaitan dengan peragaan tanggal, bulan dan tahun. Nah, tombol-tombol ini juga akan digunakan juga untuk pengaturan waktu.
  3. Rangkaian juga akan dilengkapi dengan sistem alarm untuk memberikan tambahan fasilitas yang menarik.

Wah banyak juga ya maunya. Tapi sebagai penghobi seharusnya semakin banyak semakin menarik. Sekarang kita mulai saja merancang rangkaian yang diinginkan.

Karena kita hanya akan menampilkan sebanyak 4 digit, maka aku menetapkan menggunakan teknik peragaan LED 7 segmen secara scanning untuk menghemat komponen. Agar terlihat atraktif akan ditambahkan 2 buah LED untuk flashing detik.


Untuk melakukan seting waktu dan alarm aku gunakan 2 tombol saja biar hemat, yaitu untuk tombol menu (SET) dan tombol untuk display (CEK). Tidak apa-apa kan?

Sebelum lupa, untuk alarm diperlukan 1 pin lagi.

Nah, kita langsung lihat rangkaiannya saja.



Untuk penampil waktu menggunakan sebanyak 12 saluran gerbang dengan rincian 7 bit gerbang P0 terdiri dari P00 –  P06 untuk dekoder LED 7 segmen dan 4 bit gerbang P1 yaitu P10 – P13 untuk scanning digit (LED1 – LED4). Sementara indikator detik menggunakan P07.

Untuk informasi waktu kita menggunakan DS1307 yang memiliki antarmuka I2C sehingga hanya membutuhkan 2 saluran gerbang yaitu P26 untuk SCLK dan P27 untuk SDA. DS1307 memiliki fitur keluaran gelombang persegi atau SQW yang akan disetel pada perioda 1 detik dan dihubungan pada gerbang p25.

Peraga waktu kita dilengkapi dengan tombol untuk pengaturan yang terdiri dari SET dihubungkan pada gerbang P20 dan CEK pada gerbang P21.

Nah, sebagai pelengkap akan kita tambahkan keluaran untuk alarm yang akan dihubungkan pada buzer melalui gerbang P23.

Oke lah, kita langsung saja menuju barisan program yang harus diisikan pada mikrokontroler.

$mod51

BufferWaktu       data  8h
BufferProg        data  0bh

RegBendera        data  2fh
      FSRDY       bit   RegBendera.0
      FACK        bit   RegBendera.1
      FLB         bit   RegBendera.2
      Menu        bit   RegBendera.3
      Dsp         bit   RegBendera.4
      Ubahan      bit   RegBendera.5
      Pulsa       bit   RegBendera.6
      Alarm       bit   RegBendera.7

Data7Seg          data  p0
LED_Detik         bit   p0.7

Digit7Seg         data  p1
Digit1            bit   p1.0
Digit2            bit   p1.1
Digit3            bit   p1.2
Digit4            bit   p1.3

T_Set             bit   p2.0
T_Cek             bit   p2.1

Buzzer            bit   p2.3

SDA               bit   p2.7
SCL               bit   p2.6

PulsaDetik  bit   p2.5

StackPointer      data  30h

org   0h

Inisialisasi:
      mov   sp, #StackPointer-1
      mov   r0, #BufferWaktu
      mov   a, #8
      mov   b, #0
      acall DS1307_Read
      mov   a, BufferWaktu
      anl   a, #01111111b
      mov   BufferWaktu, a
      mov   a, BufferWaktu+2
      anl   a, #00111111b
      mov   BufferWaktu+2, a
      mov   BufferWaktu+7, #10h
      mov   a, #8
      mov   b, #0
      acall DS1307_Write
      mov   Data7Seg, #255
      mov   Digit7Seg, #11110111b
      mov   r2, #128

Setelah inisialisasi, program dimulai dengan melakukan beberapa pemeriksaan termasuk tombol dan status pulsa SQW dari DS1307.

Mulai:
      jnb   T_Set, TombolMenu
      jnb   T_Cek, TombolCek
      jb    PulsaDetik, PeragaDetik
      jnb   LED_Detik, Peraga
      setb  Pulsa
      clr   LED_Detik
      jb    Menu, Peraga
      jb    Dsp, Peraga

Penyegaran informasi waktu diambil pada pulsa rendah yang diindikasikan oleh SQW. Jumlah data yang diambil berjumlah 11 byte meskipun beberapa tak digunakan, dimulai dari alamat register 01H atau register menit. Data lainnya yang dibaca meliputi jam, hari (tidak digunakan) tanggal, bulan, tahun dan kontrol (tak dipakai) serta 4 byte isi data RAM yang berisi menit dan jam alarm, durasi alarm dan Bell Chime penunjuk pergantian jam.

Setelah penyegaran informasi waktu, jika seting Bell Chime bukan 0 maka setiap nilai menit menunjuk 00 berarti juga perubahan jam maka program akan mengaktifkan buzzer selama 5 detik sesuai isi register R4. Tetapi fasilitas Bell Chime tidak dijalankan jika status alarm sedang aktif.

      AmbilWaktu:
            mov   r0, #BufferWaktu+1
            mov   a, #10
            mov   b, #01h
            acall DS1307_Read
            clr   LED_Detik
            jb    Alarm, PeriksaSelesai
            mov   a, BufferWaktu+11
            jz    PeriksaAlarm
            mov   a, BufferWaktu+1
            jnz   BellChime
            clr   Buzzer
            mov   r4, #5
            ajmp  PeriksaAlarm

            BellChime:
                  setb  Buzzer

Berikut adalah program memeriksa waktu alarm. Data alarm yang ada pada RAM DS1307 dan disimpan pada BufferWaktu diperiksa. Jika sama maka bit Alarm dan buzzer akan diaktifkan. Lamanya durasi alarm juga dimasukkan pada register R4 untuk dicacah mundur, nanti.

            PeriksaAlarm:
                  mov   a, BufferWaktu+8
                  xrl   a, BufferWaktu+1
                  jnz   PeriksaSelesai
                  mov   a, BufferWaktu+9
                  xrl   a, BufferWaktu+2
                  jnz   PeriksaSelesai
                  mov   r4, BufferWaktu+10
                  setb  Alarm
                  clr   Buzzer

Usai pemeriksaan waktu alarm, program dilanjutkan dengan persiapan untuk memperagakan informasi yang diterima pada peraga LED 7 segmen.

            PeriksaSelesai:
                  mov   r0, #BufferWaktu+2
                  ajmp  Peraga

Untuk mematikan alarm, Sobat cukup menekan sembarang tombol yang ada.

      TombolMenu:
            jb    Alarm, ResetAlarm
            ajmp  MenuProg

      TombolCek:
            jb    Alarm, ResetAlarm
            ajmp  MenuCek

      ResetAlarm:
            clr   Alarm
            setb  Buzzer
            jnb   T_Set, $
            jnb   T_Cek, $
            ajmp  Mulai

      PeragaDetik:
            jnb   LED_Detik, Peraga
            setb  LED_Detik

Peragaan tampilan LED dimulai di sini. Waktu aktif setiap LED 7 segmen berkisar antara 5 ms dengan nilai register R2 adalah 128. Dan pengulangan waktu aktif menjadi sekitar 20 ms atau kurang lebih 50 Hz.

Peraga:
      djnz  r2, Mulai
      mov   r2, #128

      PeragaLED1:
            mov   a, @r0
            dec   r0
            jb    Digit4, PeragaLED2
            swap  a
            acall DataLED
            clr   Digit1
            ajmp  AkhirPeraga

      PeragaLED2:
            jb    Digit1, PeragaLED3
            acall DataLED
            clr   Digit2
            ajmp  AkhirPeraga

      PeragaLED3:
            mov   a, @r0
            jb    Digit2, PeragaLED4
            swap  a
            acall DataLED
            clr   Digit3
            ajmp  AkhirPeraga

      PeragaLED4:
            setb  Digit3
            acall DataLED
            clr   Digit4

      AkhirPeraga:
            jb    Menu, DelayPeraga
            jb    Dsp, DelayPeraga
            jnb   Buzzer, DelayPeraga
            ajmp  Mulai

            DelayPeraga:
                  jnb  Pulsa, KeluarPeraga
                  clr   Pulsa
                  djnz  r4, KeluarPeraga
                  mov   RegBendera, #0
                  clr   Buzzer
                  ajmp  AmbilWaktu

                  KeluarPeraga:
                        ajmp  Mulai

Tampilan LED 7 segmen adalah sesuai dengan data pada Kode7Segmen. Jika diterjemahkan maka akan menampilkan 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, t, A, d, C dan blank. Untuk mengambil kode tersebut mengunakan perintah MOVC

DataLED:
      mov   Digit7Seg, #255
      mov   Data7Seg, #255
      anl   a, #0fh
      mov   dptr, #Kode7Segmen
      movc  a, @a+dptr
      mov   Digit7Seg, a
      ret

      Kode7Segmen:
            db 11000000b, 11111001b, 10100100b, 10110000b, 10011001b
            db 10010010b, 10000010b, 11111000b, 10000000b, 10010000b
            db 10000111b, 10001000b, 10100001b, 11000110b, 255

Berikut adalah program rutin MenuProg yang berkaitan dengan penekanan tombol SET. Untuk kebutuhan pemrograman maka digunakan BufferProg untuk menyimpan informasi yang akan dilakukan pengaturan ulang dimulai dari pengaturan menit sampai pengaturan Chime.

Setiap penekanan tombol SET maka menu akan berpindah dari menu pertama hingga akhir sebanyak total 9 menu kemudian kembali ke posisi normal yaitu menunjukkan waktu jam dan menit.

MenuProg:
      clr   LED_Detik
      clr   Buzzer
      jnb   Dsp, ProsesMenu
      ajmp  AmbilWaktu

      ProsesMenu:
            mov   r0, #BufferProg
            mov   a, #10
            mov   b, #1
            acall DS1307_Read
            mov   r4, #5
            jb    Menu, MenuBerikut
            setb  Menu
            clr   Ubahan
            mov   r1,#0
            ajmp  MenuMenit

Setiap penekanan tombol SET maka menu akan berpindah dari menu pertama hingga terakhir sebanyak 9 menu kemudian kembali ke posisi normal menunjukkan waktu jam dan menit. Tapi sebelum kembali ke posisi normal jika terdapat perubahan maka perubahan tersebut akan disimpan.

      MenuBerikut:
            inc   r1
            cjne  r1, #9, MenuMenit
            jnb   T_Set, $
            setb  Buzzer
            jb    Ubahan, SimpanUbahan
            ajmp  AmbilWaktu

            SimpanUbahan:
                  mov   r0, #BufferProg
                  mov   a, #10
                  mov   b, #1
                  acall DS1307_Write
                  ajmp  AmbilWaktu

Setiap menu akan mengubah tampilan di mana digit 1 dan 2 yang semula menunjukkan waktu jam menjadi penunjuk kode menu. Untuk menu pengaturan menit akan menampilkan “t1”, Menu Jam dengan “t2”, tanggal dengan “t3”, bulan dengan “t4”, tahun dengan “t5”, penunjuk menit alarm dengan “A1”, jam alarm dengan “A2”, durasi alarm dengan “A3” dan terakhir untuk Chime dengan “C1”.

Untuk digit 3 dan 4 adalah informasi sesuai dengan menu-menu di atas. Semua data dalam format BCD (binary code decimal). Penunjuk jam menggunakan format 24 jam. Tahun dibatasi hingga maksimal sampai dengan 2025, jika ingin lebih tinggi bisa mengubahnya tapi maksimal adalah 2099. Durasi alarm juga dibatasi hingga 10 menit yang juga bisa dirubah sampai dengan maksimal 99 menit.

      MenuMenit:
            cjne  r1, #0, MenuJam
            mov   r0, #BufferProg
            jnb   T_Cek, SetMenit
            mov   BufferWaktu+2, #0a1h
            mov   BufferWaktu+1, BufferProg
            ajmp  AkhirMenu

            SetMenit:
                  acall UbahWaktu
                  cjne  a, #60h, X_Ubah

      MenuJam:
            cjne  r1, #1, MenuTanggal
            mov   r0, #BufferProg+1
            jnb   T_Cek, SetJam
            mov   BufferWaktu+2, #0a2h
            mov   BufferWaktu+1, BufferProg+1
            ajmp  AkhirMenu

            SetJam:
                  acall UbahWaktu
                  cjne  a, #24h, X_Ubah
                  ajmp  W_Reset

      MenuTanggal:
            cjne  r1, #2, MenuBulan
            mov   r0, #BufferProg+3
            jnb   T_Cek, SetTanggal
            mov   BufferWaktu+2, #0a3h
            mov   BufferWaktu+1, BufferProg+3
            ajmp  AkhirMenu

            SetTanggal:
                  acall UbahWaktu
                  cjne  a, #24h, X_Ubah
                  ajmp  W_Reset

      MenuBulan:
            cjne  r1, #3, MenuTahun
            mov   r0, #BufferProg+4
            jnb   T_Cek, SetBulan
            mov   BufferWaktu+2, #0a4h
            mov   BufferWaktu+1, BufferProg+4
            mov   r0, #BufferProg+4
            ajmp  AkhirMenu

            SetBulan:
                  acall UbahWaktu
                  cjne  a, #13h, X_Ubah
                  ajmp  T_Reset

                  W_Reset:
                        mov   a, #0
                        ajmp  X_Ubah

                  T_Reset:
                        mov   a, #1

                  X_Ubah:
                        mov   @r0, a
                        ajmp  AkhirMenu

      MenuTahun:
            cjne  r1, #4, MenuAlarmMenit
            mov   r0, #BufferProg+5
            jnb   T_Cek, SetTahun
            mov   BufferWaktu+2, #0a5h
            mov   BufferWaktu+1, BufferProg+5
            ajmp  AkhirMenu

            SetTahun:
                  acall UbahWaktu
                  cjne  a, #25h, X_Ubah
                  ajmp  T_Reset

      MenuAlarmMenit:
            cjne  r1, #5, MenuAlarmJam
            mov   r0, #BufferProg+6
            jnb   T_Cek, SetMenit
            mov   BufferWaktu+2, #0b1h
            mov   BufferWaktu+1, BufferProg+6
            ajmp  AkhirMenu

      MenuAlarmJam:
            cjne  r1, #6, AlarmDurasi
            mov   r0, #BufferProg+7
            jnb   T_Cek, SetJam
            mov   BufferWaktu+2, #0b2h
            mov   BufferWaktu+1, BufferProg+7
            ajmp  AkhirMenu

      AlarmDurasi:
            cjne  r1, #7, BellJam
            jnb   T_Cek, SetDurasi
            mov   BufferWaktu+2, #0b3h
            mov   BufferWaktu+1, BufferProg+8
            mov   r0, #BufferProg+8
            ajmp  AkhirMenu

            SetDurasi:
                  acall UbahWaktu
                  cjne  a, #11h, X_Ubah
                  ajmp  T_Reset

      BellJam:
            mov   r0, #BufferProg+9
            jnb   T_Cek, SetChime
            mov   BufferWaktu+2, #0c1h
            mov   BufferWaktu+1, BufferProg+9
            ajmp  AkhirMenu

            SetChime:
                  mov   a, @r0
                  inc   a
                  cjne  a, #2, X_Ubah
                  ajmp  W_Reset

      UbahWaktu:
            clr   ac
            clr   c
            mov   a, @r0
            swap  a
            anl   a, #0fh
            xch   a, b
            mov   a, @r0
            anl   a, #0fh
            da    a
            swap  a
            orl   a, b
            swap  a
            ret


      AkhirMenu:
            jnb   T_Set, $
            jnb   T_Cek, $
            setb  Buzzer
            mov   r0, #BufferWaktu+2
            ajmp  Peraga

Berikut adalah program yang berkaitan dengan penekan tombol CEK yang bisa digunakan untuk pengaturan tapi juga untuk peragaan lainnya selain jam dan menit yaitu tanggal/bulan, tahun dan waktu alarm.

MenuCek:
      clr   LED_Detik
      clr   Buzzer
      jnb   Menu, ProsesDsp
      ajmp  MenuMenit

      ProsesDsp:
            mov   r4, #5
            jb    Dsp, DspBerikut
            setb  Dsp
            mov   r1,#0
            ajmp  DspTanggal

      DspBerikut:
            inc   r1
            cjne  r1, #3, DspTanggal
            jnb   T_Cek, $
            setb  Buzzer
            ajmp  AmbilWaktu

      DspTanggal:
            cjne  r1, #0, DspTahun
            mov   BufferWaktu+1, BufferWaktu+4
            mov   BufferWaktu+2, BufferWaktu+5
            ajmp  AkhirMenu

      DspTahun:
            cjne  r1, #1, DspAlarm
            mov   BufferWaktu+1, BufferWaktu+6
            mov   BufferWaktu+2, #20h
            ajmp  AkhirMenu

      DspAlarm:
            mov   BufferWaktu+1, BufferWaktu+8
            mov   BufferWaktu+2, BufferWaktu+9
            ajmp  AkhirMenu

Untuk melengkapi program seutuhnya, diperlukan 2 buah modul untuk antar muka yang ada pada I2C.TXT dan DS1307.TXT yang sudah pernah aku sampaikan pada tulisanku sebelum ini.

$include (C:\tesasm\I2C.txt)
$Include (C:\tesasm\DS1307.txt)

End

Nah seperti itulah Sobat semua rancangan kita mengenai Jam dengan LED 7 segmen yang dilengkapi dengan alarm yang dapat disetel waktunya dan setiap jam juga ada bell chime. Masih banyak fasilitas yang dapat dikembangkan dalam pengimplementasiannya. Jadi bukan sekedar penampil waktu biasa.

DS1307 memiliki kapasitas sebesar 56 byte yang jika diinginkan dapat diisi dengan setidaknya 27 waktu alarm. Tapi penulis tidak ingin membayangkan jika hampir setiap jam alat kita membunyikan alarm belum lagi ditambah dengan bell chime. Tapi bel chime bisa di non-aktifkan dan keluaran untuk buzzer bisa digunakan untuk apa saja.

AT89C51 memiliki 32 bit gerbang I/O. Untuk rangkaian di atas masih menyisakan bahkan 1 byte gerbang yang benar-benar belum digunakan yaitu P3 ditambah 6 bit gerbang lainnya. Fasilitas serial pada P30 dan P31 juga perlu diberdayagunakan, belum lagi gerbang interupsi P32 dan P33, selain itu gerbang pewaktu P34 dan P35.

Aku pernah mencoba melengkapinya dengan remot audio/video yang ada di rumah, atau terhubung dengan PC melalui RS-232 baik menggunakan kabel maupun IR. Atau mengganti tombol dengan keypad. Bahkan yang masih terpasang tapi akhirnya tampilan LEDnya dihilangkan adalah pewaktu nyala lampu terprogram untuk semua lampu rumah.

Pokoknya sebagai penghobi elektronika adalah suatu yang menyenangkan mengotak-atik perangkat elektronik khususnya buatan sendiri.



Sudah ya, terima kasih sudah membaca artikel aku. Semoga bermanfaat dan bisa diterapkan oleh sobat semua.

Salam....

28 komentar:

  1. Mas saya tertarik dengan artikel mas. Cuma sy sangat memerlukan sekali source program lengkapnya.
    email: suganda_anda@yahoo.co.id
    fb : Ardhika Putra Ananda

    BalasHapus
  2. Siap Mas Bro.... Terima kasih atas respon dan komentarnya.

    Untuk source program lengkap bisa dilihat pada postingan lain yaitu modul-modulnya, maaf soalnya jika disatukan artikelnya bisa kepanjangan atau jadi pengulangan.

    I2C.TXT
    http://electronicdesignportal.blogspot.com/2012/06/antarmuka-mikrokontroler-dengan-serpih.html

    DS1307.TXT
    http://electronicdesignportal.blogspot.com/2012/06/modul-antarmuka-rtc-ram-ds1307-pada.html

    Silahkan diperiksa Gan... Ditunggu komentar selanjutnya

    Untuk hal lainnya nanti bisa kita pelajari bersama untuk perbaikan artikel juga desain yang dibuat.

    BalasHapus
    Balasan
    1. salam, saya tertarik artikelnya, sya sudah mencoba buat simulasinya tapi lagi kesulitan scodenya, untuk scode diatas sudah sya compile menjadi hex, tp tetep ga hidup 7 segmennya mohon pencerahannya, Trima kasih .. email saya : luthfan_55091@yahoo.co.id

      Hapus
  3. Oke Bro Luthfan,
    List lengkap programnya nanti saya siapkan dan kirim via email. Soal problemnya nanti kita telusuri bersama mungkin ada kode yang berubah dari aslinya.

    BalasHapus
    Balasan
    1. salam, mas saya sangat berharap list programnya lengkap trims

      Hapus
  4. layoutnya ja massss pengin uji coba

    BalasHapus
  5. Oke sedang dipersiapkan layoutnya. Tunggu revisinya ya....

    BalasHapus
  6. bang saya prnah baca bikinya gak pake itu cuman manfaatin IC 7447, 7493 trus di decoder sm di counter
    tanpa pake program kayak gitu, kira2 brhasil kagak?

    BalasHapus
  7. Sip Bang Danang....
    Enggak masalah untuk buat peraga pakai TTL jenis 7447, 7493 jadi rangkaian konter. Pada dasarnya itu juga rangkaian digital.
    Jadi sudah pasti bisa....

    BalasHapus
  8. mas bro, kita dah coba compile programnya. tapi selalu eror. napa ya tu?
    masalahnya selalu nunjuk ke I2c terus gitu..
    nah, berhubung kita org awam tentang mikro, mohon bantuannya mas bro..
    tambah ilmu lagi deeh... makasih
    (dexter_baddai@yahoo.co.id)

    BalasHapus
  9. Ya Bro Bani,

    Terima kasih

    Informasi errornya apa ya Mas Bro, biar nanti saya telusuri. Mungkin ada kesalahan ketik pada artikel yang saya tulis. Karena program tersebut sudah saya compile dan tanpa error.

    Bisa saja kesalahan pada saya.

    Kalau enggak, perintah INCLUDE dihilangkan saja dan program I2C.TXT di copy-paste mungkin bisa lebih mudah dalam memeriksanya.

    BalasHapus
    Balasan
    1. o.. bisa gitu juga ya? oke deh biar sy cb lagi.
      maklum bos, masih awam.. hehe
      tp kalo ada file .asm lengkap ato hex nya, boleh minta ga ya bro?
      makasih banget.. ditunggu aplikasi2 lainnya..
      \(^o^)/

      Hapus
    2. waduh mas.. udah sy coba, tp gagal alias ga idup.. ko bisa ya?
      sudah saya ikuti sesuai skema n scodenya.. maklum mas baru belajar. makasih

      Hapus
  10. Maaf baru respon karena saya ga online setiap hari. Maklum pekerjaan....
    Kalo ga hidup mungkin ada beberapa komponen yg musti diperiksa. Salah satunya adalah LED 7 segmennya. Kalo boleh tau pake jenis apa ya?
    Soalnya untuk desain yg dikirim pake yg ukuran 1 inci dengan tegangan kerja 4 volt jadi bisa dioperasikan langsung dari kontroler. Tapi kalo pake yang lebih besar dengan tegangan kerja > 6 volt maka harus pake ULN2003.
    Untuk jenis LED besar bisa dilihat pada contoh:
    http://electronicdesignportal.blogspot.com/2012/12/pencacah-naik-4-masukan-dengan-keluaran.html
    Untuk SCode nanti bisa saya masukkan dalam drive biar bisa didownload

    BalasHapus
    Balasan
    1. mas sigit, aku tertarik skli sama artikel ini. saya punya ank umur 9thn, dia suka skli elektronika. bisa g saya dapet papan rangkaian jam digital 7 segmen ini lengkap dgn komponennya, saya pengen ksh buat ank saya supaya bisa d rakit sendiri oleh ank saya, supaya dia semakin senang dgn elektronika. jadi maksud saya rangkaian dan komponen lengkap yang tinggal pasang langsung bekerja. jadi tdk usah pakai d program melalui komputer. karena saya juga tdk mengerti. hanya untuk memicu semangat ank saya terhadap elektronika. klo ada saya bisa mendapatkannya d mana? apa saya hrsmendapatkannya dari mas sigit langsung...?
      trimakasih mas sigit.

      Hapus
  11. Mas sigit salam kenal kalau boleh listing program diatas minta yg lengkapnya, makasih di jimicramdhan_tanji@yahoo.co.id

    BalasHapus
  12. Mas salam kenal.

    Saya minta program lengkap jam AT89S52 pada skematik diatas.
    alamat: jimicramdhan_tanji@yahoo.o.id

    terima kasih sebelumya.

    BalasHapus
  13. Oke sip

    Untuk program lengkap nanti bisa saya share aja jadi bisa do download. Saya baru coba di Ziddu tuh nanti bisa saya masukkan daftarnya.

    BalasHapus
  14. selamat sore saya mau tanya untuk mengisi program pada mikrokontroller pakai software apa? dan ada yg bisa di download dari internet? saya baru mempelajari mikrokontroller, sedikit rumit. terimakasih :)

    BalasHapus
  15. Ada beberapa jenis perangkat atau software bisa digunakan sesuai mikrokontrolernya. Ada yang diprogram secara paralel (biasanya seri AT89C..) atau seial / ISP (biasanya seri AT89S..)
    Untuk paralel saya menggunakan produk dari Bharata dan untuk ISP saya menggunakan Atmel programming. Jika ISP ada beberapa jenis yang menggunakan port paralel dan USB. Saya masih menggunakan yang paralel.
    Rencananya sih saya mau buat sendiri yang Insya Allah akan di-share dalam bentuk artikel. Jadi Sobat bisa buat sendiri.

    BalasHapus
  16. mas saya minta file source code lengkapnya (Fickrymuhammad1995@yahoo.com) terimkasih sebelumnya

    BalasHapus
  17. assalamu'alaikum wr.wb

    mas saya minta scmatic dan listing code yang lengkap donk sya tertarik untuk membuatnya di kirim ke alamat email ini yah mas
    ahmadpanogari@rocketmail.com

    makasih mas
    wassalamu'alaikum wr.wb

    BalasHapus
  18. wah ini artikel yg q cari2 salam mas sigit
    oh ya q mau tny ne...7 segment-nya pada skema diatas pake yang comon katoda apa comon anoda..?
    trims atas penjelasannya

    BalasHapus
  19. Common katoda

    Untuk source code karena banyaknya permintaan via komentar dan email nanti akan saya siapkan di Ziddu supaya bisa di-unduh siapa saja yg memerlukan.

    Trims

    BalasHapus
  20. mas gmana kodenya sudah di upload blum....????

    BalasHapus
  21. mas.... tolong kirimkan source kodenya,, ke semeru166@gmail.com please...???

    BalasHapus
  22. gan source codenya saya coba compile pake keil uvision 4
    kok selalu muncul eror gimana ya.
    padahal include nya juga saya rubah sesuai dengan compilernya
    muncul pesan eror seperti ini.=

    ************************************************************************************************
    Build target 'Target 1'
    assembling clocvk.asm...
    clocvk.asm(2): error A315: unknown #directive 'Include'
    clocvk.asm(5): warning A73: TEXT FOUND BEYOND END STATEMENT - IGNORED
    Target not created
    *************************************************************************************************

    #include
    #Include <--eror eror

    BufferWaktu data 8h
    BufferProg data 0bh <--eror eror

    RegBendera data 2fh
    FSRDY bit RegBendera.0
    FACK bit RegBendera.1
    FLB bit RegBendera.2
    Menu bit RegBendera.3
    Dsp bit RegBendera.4
    Ubahan bit RegBendera.5
    Pulsa bit RegBendera.6
    Alarm bit RegBendera.7

    yang ini juga:

    Inisialisasi:
    mov sp, #StackPointer-1
    mov r0, #BufferWaktu
    mov a, #8
    mov b, #0
    acall DS1307_Read
    mov a, BufferWaktu
    anl a, #01111111b
    mov BufferWaktu, a
    mov a, BufferWaktu+2
    anl a, #00111111b
    mov BufferWaktu+2, a
    mov BufferWaktu+7, #10h
    mov a, #8
    mov b, #0
    acall DS1307_Write <----- eror eror
    mov Data7Seg, #255
    mov Digit7Seg, #11110111b
    mov r2, #128


    gan kalo boleh minta source codenya.

    BalasHapus
  23. Wah kayaknya ada kesulitan saat compila ya
    Scode yang saya tulis sudah di-compile pake ASM51 dan ga masalah. Apa mungkin beda aplikasi compiler beda prosedurnya kali yaa...
    Oke deh sebagai tanggung-jawab saya silahkan unduh via ziddu. Nanti artikelnya akan saya revisi supaya ada link yang bisa sobat unduh dari setiap artikel yang sudah ditulis. Mungkin lengkap aja ya dengan hasil compilenya seperti *.LST dan *.HEX
    Jadi nanti bisa kelihatan dimana kesalahannya.

    Terima kasih atas perhatian sobat semua dan mohon doanya supaya saya sempat melengkapi blogger dengan alat yang sudah jadi.

    BalasHapus