Perhatikan rangkaian berikut:
Program dengan Bascom
Dim Detik as byte, mili as word
Config timer1=timer, gate= internal, mode =2
Enable interrupts
Enable timer1
On timer1 tim_1
Load timer1,250
start timer0
cls
do
locate 1,4
lcd “hitung detik”
locate 2,8
lcd detik
loop
tim_1:
incr mili
if mili =4000 then
mili=0
incr detik
end if
return
penjelasan program:
Ket, Untuk header program dan deklarasi lcd sengaja tidak disertakan karena dinggap sudah mengerti,
- Config timer1=timer, gate= internal, mode =2, inisialisi timer 0 sebagai timer, dengan gate internal dan mode 2(autoreload)
- Enable interrupts
Enable timer1
On timer1 tim_1, untuk memperbolehkan interupsi pada timer0
- Load timer0, 250, untuk mengisi timer dengan nilai 250 mode auto reload dengan asumsi kita gunakan clock internal pada atmega sebesar 1Mhz maka interupsi timer0 terjadi setiap 250mikrodetik.
- do
locate 1,4
lcd “hitung detik”
locate 2,8
lcd detik
loop, program utama untuk menampilkan nilai detik pada lcd
- tim_1:
incr mili
if mili =4000 then
mili=0
incr detik
end if
return, program yang dijalankan ketika terjadi interupsi
Berikut hasil simulasinya
Selamat belajar semoga bermanfaat.
Salam santun…
mantap,, terima kasih gan
BalasHapustimer 0 atau timer 1 mas? sepertinya timer 0 ya
BalasHapus