RATUSAN EQU 100
CACAH EQU -10000
ORG 0H
MOV TMOD,#01H
MULAI:
MOV P1,#00H
CALL TUNDA
MOV P1,#0FFH
CALL TUNDA
SJMP MULAI
TUNDA:
MOV R1,#RATUSAN
LAGI:
MOV TH0,#HIGH CACAH
MOV TL0,#LOW CACAH
SETB TR0
TUNGGU:
JNB TF0,TUNGGU
CLR TF0
CLR TR0
DJNZ R1,LAGI
RET
END
Pada program di atas menggunakan timer 0 mode 16 bit. Timer ini tergantung dari clock pada mikrokontroler tersebut, dimana pada aplikasi ini menggunakan kristal 12 Mhz dan kapasitor 33 pF pada kaki 18 (XTAL 1) dan kaki 19 (XTAL 2). Osilator yang digunakan adalah rangkaian osilator yang sudah terdapat pada mikrokontroler, dan hanya menambahkan kristal dan kapasitor sebagai penentu frekuensi clock yang digunakan.
Kristal yang digunakan adalah 12 Mhz,
Karena = Frekuensi kristal = 12 MHz
T = 1 / f
T = 1 / 12 MHz
= 8,333333333-8
T = 8,333333333-8 x 1000000
= 0,083333333 udetik
sehingga satu periode gelombang kotak adalah :
satu periode = 0,083333333 / 2
= 0,04166 udetik
Gambar Priode Gelombang Kotak
satu siklus mesin terbagi menjadi 6 kelompok dengan setiap satu kelompok membutuhkan dua periode gelombang kotak, maka satu siklus mesin adalah:
satu siklus mesin = 0,083333333 x 2 x 6
= 0,9 ~ 1 udetik
Satu siklus mesin akan menjalankan satu perintah mikrokontroler, tidak menutup kemungkinan satu perintah membutuhkan dua siklus mesin. Apabila digunakan kristal 12 MHz, maka waktu yang diperlukan setiap satu siklus mesin adalah 1 udetik.
Pada aplikasi ini, kita mengisi timer dengan perhitungan 100x10000 = 1000000 udetik = 1 detik.
0 komentar:
Posting Komentar