3.3.1 Sistem Perangkat Lunak secara Umum
Secara sederhana, sistem ini berfungsi untuk menampilkan waktu secara digital berdasarkan informasi yang diambil dari RTC. Tiga buah push button
digunakan untuk mengatur waktu sementara sensor optik digunakan untuk membangkitkan sinyal interupsi setiap kali rangkaian melewati posisi yang telah
ditentukan. Sinyal interupsi inilah yang digunakan sebagai acuan untuk menentukan kapan LED harus dinyalakan. Flowchart dari program yang akan dibuat dapat dilihat
pada Gambar 3.7.
Start
Inisialisasi data,
variabel, PORT
Apakah PB1 ditekan ?
Apakah PB2 ditekan ?
Apakah PB3 ditekan ?
Ambil data dari
RTC
Ambil data dari
RTC
Ambil data dari
RTC Naikkan cacah
jam
Naikkan cacah menit
Nolkan cacah detik
Kirim data ke RTC
Kirim data ke RTC
Kirim data ke RTC
Ya
Ya
Ya Tidak
Tidak
Tidak
Interupsi dari sensor optik
Tentukan nilai setiap digit
i=0 Ambil
data dari RTC
i8 ?
Tampilkan data kolom
berikutnya
Tunda 250 µs
Apakah masih ada kolom
berikutnya ?
RET
Ya Tidak
Ya
Tidak Increment
i
Gambar 3.7
Diagram Alir dari Perangkat Lunak
3.3.2 Membaca Masukan dari Push Button
Pembacaan masukan dari push button dilakukan dengan metode polling dimana mikrokontroler akan terus-menerus bertanya apakah ada tombol yang ditekan.
Jika tombol pertama PB1 ditekan maka mikrokontroler akan mengambil data waktu dari RTC dan kemudian menaikkan cacah pada jam sebanyak satu dan mengirimkan
data yang telah diperbaharui kembali ke RTC. Jika tombol kedua PB2 ditekan maka mikrokontroler akan mengambil data waktu dari RTC dan kemudian menaikkan
cacah pada menit sebanyak satu dan mengirimkan data yang telah diperbaharui kembali ke RTC. Jika tombol ketiga PB3 ditekan maka mikrokontroler akan
mengambil data waktu dari RTC dan mengirimkan kembali data dengan membuat bagian detik menjadi nol.
3.3.3 Konversi Karakter ke Tampilan LED
Untuk menampilkan tampilan waktu dengan menggunakan LED maka diperlukan program untuk menentukan kapan masing-masing LED harus menyala
agar dapat menampilkan karakter yang diinginkan. Karakter yang akan ditampilkan berjumlah 11 buah yaitu dari angka 0 sampai dengan 9 dan lambang titik dua Proses
konversi dilakukan dengan membuat suatu tipe data array yang berisi kumpulan nilai heksadesimal dari setiap karakter yang akan dikirimkan ke PORT B untuk
menyalakan LED untuk menampilkan karakter yang diinginkan.
3.3.4 Interupsi Eksternal