Membuat Tampilan Jam Sederhana Pada LCD 16×2

Posted on

Untuk tutorial kali ini saya akan mencoba memberi logika pembuatan jam sederhana dengan menggunakan display LCD 16×2 hasil percobaan saya sendiri. untuk tutorial berikut belum menggunakan RTC  (Real Time Clock) karena hanya rangkaian sederhana saja yang saya buat. Untuk RTC sendiri nanti saya akan posting di next postingan saja, karena sayapun belum terlalu paham dan terbiasa dengan RTC, masih belajara hehe 😀 . Baiklah langsung ke tutorialnya saja.

Membuat rangkaian:

  1. Buka aplikasi ISIS proteus.
  2. Buatkan rangkaian seperti gambar berikut ini:
  3. Simpan file rangkaian tersebut pada folder teman-teman.

Kode Program:

  1. Buka aplikasi BASCOM AVR.
  2. Tulis kode programberikut:

$regfile = “m16def.dat”

$crystal = 16000000

 

Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5

Config Lcdpin = Pin , E = Portc.1 , Rs = Portc.0

Config Lcd = 16 * 2

 

Dim Detik As Integer

Dim Menit As Integer

Dim Jam As Integer

Dim Seco As Integer

 

Cursor Off

 

Detik = 0

Menit = 0

Jam = 0

Seco = 0

Config Pind.0 = Input

Config Pind.1 = Input

Btn1 Alias Pind.0

Btn2 Alias Pind.1

 

Do

Cls

Incr Seco

Upperline : Lcd “TIME = ” ; Jam ; “:” ; Menit ; “:” ; Detik ; “:” ; Seco

 

If Seco = 10 Then

   Seco = 1

   Detik = Detik + 1

End If

 

If Detik = 60 Then

   Detik = 0

   Menit = Menit + 1

End If

 

If Menit = 60 Then

   Menit = 0

   Jam = Jam + 1

End If

 

If Jam = 12 Then

   Jam = 0

End If

 

If Btn1 = 0 Then

   Jam = Jam + 1

End If

 

If Btn2 = 0 Then

   Menit = Menit + 1

End If

Waitms 100

Loop

  1. Simpan kode program diatas dengan nama LCD_JAM_SEDERHANA dan compile dengan menekan tombol F7 pada keyboard.
  2. Buka kembali rangkaian yang telah dibuat tadi lalu masukan hasil compile kode program degnan cara double klick pada ATmega16 lalu klik icon folder. Masuk kedalam folder penyimpanan file kode program dan cari file yang bernama LCD_JAM_SEDERHANA.hex kemudian Open dan OK.
  3. Klik Play button. Jika berhasil maka tampilan LCD akan menjadi seperti gambar berikut:

 

Penjelasan Kode Program:

Definisi IC mikrokontroler dan kristal yang digunakan dalam rangkaian

$regfile = “m16def.dat”
$crystal = 16000000

Configurasi LCD yang digunakan dan Pin mikrokontroler yang terhubung dengan kaki LCD 16×2

Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcdpin = Pin , E = Portc.1 , Rs = Portc.0
Config Lcd = 16 * 2

Membuat sebuah data Integer untuk Jam, Menit, Detik dan Seco

Dim Detik As Integer
Dim Menit As Integer
Dim Jam As Integer
Dim Seco As Integer

Memberi nilai awal untuk Jam, Menit, Detik dan Seco

Detik = 0
Menit = 0
Jam = 0
Seco = 0

Configurasi kaki milkrokontroler yang digunakan untuk tombol pengatur Jam dan Menit.

Config Pind.0 = Input
Config Pind.1 = Input

Pemberian nama alias pada pin mikrokontroler agar lebih mudah memanggil fungsi pada saat coding dan eksekusi program

Btn1 Alias Pind.0
Btn2 Alias Pind.1

Membuat Timing Up atau Counter Up pada nilai seco

Incr Seco

Membuat tulisan pada kolom pertama dan baris pertama pada LCD 16×2

Cls
Upperline : Lcd “TIME = ” ; Jam ; “:” ; Menit ; “:” ; Detik ; “:” ; Seco

Membuat kondisi IF THEN pada nilai seco dan membatasi nilai seco sampai pada angka 10, dan jika menyentuh nilai 10 maka kembali ke angka 1 dan seterusnya. Dan jika nilai seco menyentuh nilai 10 maka nilai detik bertambah 1

If Seco = 10 Then
Seco = 1
Detik = Detik + 1
End If

Membuat kondisi IF THEN pada nilai detik dan membatasi nilai detik sampai pada angka 60 (karena dalam 1 menit ada 60 detik), dan jika menyentuh nilai 60 maka kembali ke angka 0 dan seterusnya. Dan jika nilai detik menyentuh nilai 60 maka nilai menit bertambah 1

If Detik = 60 Then
Detik = 0
Menit = Menit + 1
End If

Membuat kondisi IF THEN pada nilai menit dan membatasi nilai menit sampai pada angka 60 (karena dalam 1 jam ada 60 menit), dan jika menyentuh nilai 60 maka kembali ke angka 0 dan seterusnya. Dan jika nilai menit menyentuh nilai 60 maka nilai jam bertambah 1

If Menit = 60 Then
Menit = 0
Jam = Jam + 1
End If

Membuat kondisi IF THEN pada nilai Jam dan membatasi nilai Jam sampai pada angka 12 (menggunakan format 12, jika ingin menggunakan format 24 jam maka ganti angka 12 menjadi 24), dan jika menyentuh nilai 12 maka kembali ke angka 0 dan seterusnya.

If Jam = 12 Then
Jam = 0
End If

Membuat kondisi IF THEN pada tombol pertama yaitu BTN1. Jika tombol tersebut aktif maka nilai jam akan bertambah 1

If Btn1 = 0 Then
Jam = Jam + 1
End If

Membuat kondisi IF THEN pada tombol kedua yaitu BTN2. Jika tombol tersebut aktif maka nilai menit akan bertambah 1

If Btn2 = 0 Then
Menit = Menit + 1
End If

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.