JAM DIGITAL DENGAN LCD
lama gak tulis menulis sahabat. kali ini berhubung ada waktu senggang coba saya tulis mengenai jam digital berbasis LCD nah nantinya bisa digunakan untuk membuat kontroler peralatan listrik secara real time. LCD yang kita gunakan sebenarnya 8 bit nah karena kita ingin menghemat jalur kita gunakan 4 bit saja namun yang digunakan adalah 4 bit paling Belakang. tentunya kita gunakan kit AVR Starter yang cukup melegenda. hehehehe
langsung saja kita ke program.
pertama kita lakukan konfigurasi penyesuaian jenis Mikrokontroler, Xtal, LDC pin, dan ic
$regfile
= “m32def.dat” '-----jenis
IC yang digunakan atmega32
$crystal
= 16000000 '-----Crystal
yang digunakan 16MHz
$lib
"mcsbyte.lbx" '-----library
yang digunakan
$lib
"ds1307clock.lib" '-----library
yang digunakan
Config
Sda = Portd.1 '-----serial
data terhubung ke pin ini
Config
Scl = Portd.2 '-----serial
clock terhubung ke pin ini
Const
Ds1307w = &HD0 '-----lokasi
penulisan data
Const
Ds1307r = &HD1 '-----lokasi
pembacaan data
Config
Clock = User '-----konfigurasi
Clock
Dim
Weekday As Byte '-----Weekday
merupakan byte
selanjutnya konfigurasi pin LCD dengan ATmega32 jangan sampai salah tar gak keluar karakternya
selanjutnya konfigurasi pin LCD dengan ATmega32 jangan sampai salah tar gak keluar karakternya
Config
Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config
Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config
Lcd = 16 * 2
Cursor
Off
nah kita akan mulai meng akses dan mengirimkan data ke LCD, pastikan contras sudah sesuai karena jika kontras tidak sesuai maka, ya tulisannya gak kelihatan. biasanya banyak sahabt yang mengira bahwa LCDnya mengalami kerusakan padahal tidak.
Cls '-----instruksi
untuk melbersihkan tampilan LCD Clear LCD
Lcd
" Jam Digital " '-----tampilkan
tulisan
Lowerline '-----pindah
cunsor ke lokasi bawah
Lcd
" RTC DS1307 " '-----tampilkan
tulisan
Wait
3 '-----tunda
selama 3 detik
Cls '-----instruksi
untuk melbersihkan tampilan LCD Clear LCD
Lcd
"Date=" '-----tampilkan
tulisan
Lowerline '-----pindah
cunsor ke bawah
Lcd
"Time=" '-----tampilkan
tulisan
Do '-----DO
merupakan bagian awal program berulang
Locate
1 , 6 '-----pindah
lokasi cunsor
Lcd
Date$ '-----tampilkan
data tanggal
Locate
2 , 6 '-----pindah
lokasi cunsor
Lcd
Time$ '-----tampilkan
data waktu
Waitms
1000 '-----tunda
1 detik
Loop '-----looping
atau melompat ke awal program berulang “Do”
nah untuk melakukan pembacaan data program yang di perlukan seperti dibawah.
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)
Return
langsung aja tekan f7 dan program otomatis makuk kedalam IC tinggal kita lihat hasilnya. selamat mencoba





