02 April, 2012

DIGITAL CLOCK with LCD




Salam brolek..,(brother electronic) alias bro elektronika..,ha ha ha asal buat singkatan aja.

Sore hari ni ane mau share ke tmen2 cara buat DIGITAL CLOCK with LCD alias JAM DIGITAL menggunakan tampilan LCD.,(utk lain waktu ane akan share buat DIGITAL CLOCK pake 7 SEGMENT).

Kalau dipikir-pikir lumayan bisa untuk jam sendiri, syukur2 jika tmen2 bisa memanfaatkan sebagai peluang bisnis bisa nambah uang jajan., ya gak. Dan yang pasti bisa nambah ilmu pengetahuan terutama di dunia elektronika.

SEKILAS INFO :
Jam digital yg akan kita buat menggunakan 2 buah IC, pertama IC Atmega8535 sebagai otaknya dan IC clock DS1307 yang akan memberikan data mulai dari detik, menit, jam, tanggal,bulan sampe tahun dan IC ini mendkung penggunaan daya external alias baterai lithium CR2025 3V yg berguna sebagai daya cadangan saat power utama mati so penanggalan yg ditampilkan gak akan berubah ke awal setingan alias clock akan tetap berjalan. Sesuai yg tertera pada datasheet IC ini dapat memberikan penanggalan yg akurat hingga tahun 2100, kira2 masih hidup gak ya..,he he..jadi inget mati nih.,tpi gak tau kapan waktunya, yg trpnting selalu berdo’a agar panjang umur dan selalu diberi ilmu yg brmanfaat agar bisa berbagi pengetahuan ke tmen2 BROLEK.

Ko’ malah jadi ceramah ya.,OK langsung ja ke TKP.

Komponen2 :
  • ATmega8535
  • IC clock DS1307
  • LCD display 2x16
  • Baterai lithium 3V 
  •  Transistor 10K
  • capacitor 1uF
  • Kabel
  • Socket
  • Konector
Untuk lebih jelas komponen apa saja yg dibutuhkan lihat skema rangkaian berikut :

  • Skema IC CLOCK DS 1307 ( pake PCB WIZARD ) klu mau bikin pake PCB polos dg metode celup ferrit. atau bisa pake PCB lobang aja lebih mudah.


  •  Skema rangkaian ( pake PROTEUS 7 PRO )


dan utk program ane buat pake BASCOM (Basic Compiler) :

'######################################################
'#                                                                                                  #
'#          DIGITAL CLOCK LCD by qabulbee.blogspot.com             #
'#                                                                                                  #
'######################################################


$regfile = "M8535.dat"
$crystal = 11059200

Declare Sub Baca_waktu
Declare Sub Tulis_waktu

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
Config Lcd = 16 * 2
Cursor Off
Cls

Config Sda = Portc.1
Config Scl = Portc.0
Config Date = Dmy , Separator = -
Config Clock = User

Const Ds1307w = &HD0
Const Ds1307r = &HD1

Dim Dtk As Byte , Mnt As Byte , Jam As Byte
Dim Tgl As Byte , Bln As Byte , Thn As Byte

Time$ = "22:00:59"
Date$ = "02-04-12"

Bismillahirohmaanirrohim:
 Cls
 Do
   Baca_waktu
   Locate 1 , 5 : Lcd Time$
   Locate 2 , 5 : Lcd Date$
 Loop

'========================< membaca waktu RTC >=========================
Sub Baca_waktu:
Dim Weekday As Byte
Getdatetime:
  I2cstart
  I2cwbyte Ds1307w
  I2cwbyte 0

  I2cstart
  I2cwbyte Ds1307r
  I2crbyte _sec , Ack
  I2crbyte _min , Ack
  I2crbyte _hour , Ack
  I2crbyte Weekday , Ack
  I2crbyte _day , Ack
  I2crbyte _month , Ack
  I2crbyte _year , Nack
  I2cstop
  _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
  _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
End Sub

'=========================<tulis waktu ke RTC >===========================

Sub Tulis_waktu
Setdate:
  _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
  I2cstart
  I2cwbyte Ds1307w
  I2cwbyte 4
  I2cwbyte _day
  I2cwbyte _month
  I2cwbyte _year
  I2cstop

Settime:
  _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
  I2cstart
  I2cwbyte Ds1307w
  I2cwbyte 0
  I2cwbyte _sec
  I2cwbyte _min
  I2cwbyte _hour
  I2cstop
End Sub

'=========================SELAMAT ANDA BERHASIL======================

dan berikut device yang sudah ane buat :




mohon komentarnya jika ada pertanyaan kritik atau saran.,trima kasih

========================SELAMAT MENCOBA++++++++++++++++++++++++++++++